เทคนิคการมอนิเตอร์ Asterisk แบบ Realtime ด้วยคำสั่ง watch

Elastix IP Pbx

Moderator: jubjang

เทคนิคการมอนิเตอร์ Asterisk แบบ Realtime ด้วยคำสั่ง watch

โพสต์โดย nuiz » 30 ต.ค. 2012 23:11

เทคนิคต่อไปนี้จะทำให้เราเห็น Call บน Asterisk ได้แบบ Realtime เลยครับ สั่งรันจาก Linux Prompt ได้เลยโดยไม่ต้องเข้า Asterisk Console โดยสามารถดูผลลัพธ์ได้จากทุกๆคำสั่งที่เราพิมพ์บน Asterisk Console ได้ แต่ดีกว่าคือพิมพ์คำสั่งครั้งเดียว โชว์ผลลัพธ์ให้เห็นตลอดจนกว่าจะยกเลิก การยกเลิกให้กด Ctrl+C ครับ

ใช้คำสั่ง
โค้ด: เลือกทั้งหมด
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))
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7058
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง Elastix - Unified Communications Software

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 11 ท่าน