บน Linux มีคำสั่ง watch ซึ่งจะแสดงผลแบบ realtime ตลอดเวลาที่เรายังรันคำสั่งนี้อยู่ครับ เมื่อเราเอาคำสั่ง watch มามอนิเตอร์คำสั่งบน Asterisk ก็เท่ากับว่ามีคนรันคำสั่ง Asterisk แทนเรานั่นเองครับ
สมมติว่าผมต้องการดูคำสั่ง sip show channelstats ของ Asterisk ปกติผมจะพิมพ์คำสั่งบน Linux prompt เลย แบบนี้ครับ asterisk -rx "sip show channelstats" เมื่อผมจะใช้คำสั่ง watch ก็จะพิมพ์แบบนี้ครับ
- โค้ด: เลือกทั้งหมด
watch 'asterisk -rx "sip show channelstats"'
ผลลัพธ์ก็ประมาณนี้ครับ แสดงผลแบบ realtime เลย ถ้าไม่ต้องการดูแล้วก็กด Ctrl+C ครับ
- โค้ด: เลือกทั้งหมด
Every 2.0s: asterisk -rx "sip show channelstats" Thu Mar 21 11:14:22 2019
Peer Call ID Duration Recv: Pack Lost ( %) Jitter Send: Pack Lost ( %) Jitter
10.200.1.107 b561c4f6f4f 00:01:01 0000003009 0000000000 ( 0.00%) 0.0000 0000002747 0000000001 ( 0.04%) 0.0000
10.100.2.39 50b70a42285 00:01:50 0000005408 0000000000 ( 0.00%) 0.0000 0000005408 0000000000 ( 0.00%) 0.0017
10.200.1.145 2b61ffcc715 00:00:11 0000000301 0000000000 ( 0.00%) 0.0000 0000000293 0000000000 ( 0.00%) 0.0008
10.200.1.108 5cd315e6611 00:00:20 0000000477 0000000000 ( 0.00%) 0.0000 0000000508 0000000000 ( 0.00%) 0.0001
10.200.1.129 8d167f2d854 00:01:56 0000005770 0000000000 ( 0.00%) 0.0000 0000005744 0000000003 ( 0.05%) 0.0000
10.200.1.125 11169173211 00:00:11 0000000293 0000000000 ( 0.00%) 0.0000 0000000301 0000000000 ( 0.00%) 0.0000
6 active SIP channels
หมายเหตุ...
จุดประสงค์ที่ผมต้องการดูคำสั่ง sip show channelstats แบบ realtime คือ ผมอยากดูว่าสายที่โทรคุยกันมี Lost หรือไม่ ซึ่งก็พบว่าบางครั้ง (อย่างในตัวอย่าง) มี Lost ด้วย ทำให้เสียงขาดหาย