ใช้คำสั่ง
- โค้ด: เลือกทั้งหมด
watch
ครับ คำสั่งนี้มีบน Linux อยู่แล้วรวมทั้ง CentOS ด้วย ตัวอย่างคำสั่ง
- ดูผลลัพธ์คำสั่ง sip show peers แบบ Realtime
- โค้ด: เลือกทั้งหมด
watch -t -n 1 "asterisk -rx 'sip show peers'"
ออปชั่น -n 1 คือให้อัพเดททุก 1 วินาที
ผลลัพธ์เราก็จะเห็นว่าเบอร์ไหนรีจิสเตอร์อยู่หรือไม่ได้รีจิสเตอร์ ดูได้แบบเรียลไทม์เลย
- โค้ด: เลือกทั้งหมด
Name/username Host Dyn Forcerport ACL Port Status
1000 (Unspecified) D N A 0 UNKNOWN
1001/1001 192.168.101.151 D N A 5060 OK (88 ms)
1002 (Unspecified) D N A 0 UNKNOWN
1003 (Unspecified) D N A 0 UNKNOWN
1100/1100 192.168.101.201 D N A 5060 OK (131 ms)
1101 (Unspecified) D N A 0 UNKNOWN
1102 (Unspecified) D N A 0 UNKNOWN
1103 (Unspecified) D N A 0 UNKNOWN
1104 (Unspecified) D N A 0 UNKNOWN
1200 (Unspecified) D N A 0 UNKNOWN
1201 (Unspecified) D N A 0 UNKNOWN
1300 (Unspecified) D N A 0 UNKNOWN
1301 (Unspecified) D N A 0 UNKNOWN
1302 (Unspecified) D N A 0 UNKNOWN
1303 (Unspecified) D N A 0 UNKNOWN
1400 (Unspecified) D N A 0 UNKNOWN
2000/2000 192.168.101.201 D N A 7898 OK (152 ms)
fxo-in 192.168.101.8 N 5060 UNREACHABLE
fxo-out 192.168.101.8 N 5060 Unmonitored
gsm-in 192.168.101.13 N 5060 OK (19 ms)
gsm-out 192.168.101.13 N 5060 OK (20 ms)
voip-out 119.59.100.62 N 5060 Unmonitored
22 sip peers [Monitored: 5 online, 15 offline Unmonitored: 2 online, 0 offline]
- ดูว่าใครโทรไปหาใคร ดูจำนวน Channels ดูจำนวน Calls และจำนวน Calls ที่ Asterisk โทรเข้า/โทรออกนับตั้งแต่รีสตาร์ทครั้งล่าสุด
คำสั่ง
- โค้ด: เลือกทั้งหมด
watch -t -n 1 "asterisk -rx 'core show channels'"
ผลลัพธ์
- โค้ด: เลือกทั้งหมด
Channel Location State Application(Data)
SIP/voip-out-0000001 0851619439@from-trun Down AppDial((Outgoing Line))
SIP/1001-00000015 s@macro-dialout-trun Ring Dial(SIP/voip-out/0851619439,3
2 active channels <-- จำนวน channels ที่เกิด ปกติ 1 call มักจะมี 2 channels เสมอ ยกเว้น call ที่ Asterisk เป็นคนรับสายเอง จะมีแค่ 1 channel
1 active call <- จำนวน call ที่กำลังเกิด
14 calls processed <- จำนวน calls ที่ผ่านมาแล้ว รวม call ปัจจุบันด้วย
ตัวอย่างก็ประมาณนี้แหล่ะครับ นอกจากนั้นยังสามารถใช้เครื่องหมาย pipe (|) ฟิลเตอร์เอาเฉพาะข้อมูลที่ต้องการได้ อย่างคำสั่งที่สอง ถ้าผมไม่ต้องการจะดูว่าใครโทรไปหาใคร แต่แค่อยากจะรู้ว่าตอนนี้ Asterisk มีทั้งหมดกี่ calls
คำสั่ง
- โค้ด: เลือกทั้งหมด
watch -t -n 1 "asterisk -rx 'core show channels' | grep call"
ผลลัพธ์
- โค้ด: เลือกทั้งหมด
2 active calls <- กำลังโทรอยู่ 2 calls
16 calls processed
หรืออยากจะรู้ว่ามีใครกำลังโทรไปหาเบอร์ 0851619439 หรือไม่
- โค้ด: เลือกทั้งหมด
watch -t -n 1 "asterisk -rx 'core show channels' | grep 0851619439"
ผลลัพธ์
- โค้ด: เลือกทั้งหมด
SIP/1001-0000001b s@macro-dialout-trun Ring Dial(SIP/voip-out/0851619439,3 <- เบอร์ 1001 กำลังโทรไปหาเบอร์ 0851619439 แต่ยังไม่ได้รับสาย เพราะสถานะเป็น Ring อยู่
SIP/voip-out-0000001 0851619439@from-trun Down AppDial((Outgoing Line))