ก่อนอื่นรบกวนอ่านรายละเอียดเกี่ยวกับฟังก์ชั่น Spy, Whisper จากสองบทความนี้ก่อนนะครับ จะได้เข้าใจออปชั่นต่างๆในการนำไปใช้งาน
การใช้งาน ChanSpy บน Asterisk แบบที่ 1 และ การใช้งาน ChanSpy บน Asterisk แบบที่ 2
เมื่อเข้าใจบ้างแล้วและถ้าอยากเอามาใช้งานบน Elastix ผมมีตัวอย่างวิธีทำดังต่อไปนี้
ความต้องการ
อยาก Whisper เบอร์ Extension ในระบบทั้งแบบพูดแทรกได้และพูดแทรกไม่ได้ และสมมติว่าเบอร์ Extension มี 4 หลัก
1. แก้ไขไฟล์ /etc/asterisk/extensions_custom.conf
ค้นหา [from-internal-custom] แล้วเพิ่มบรรทัดต่อไปนี้เข้าไป
- โค้ด: เลือกทั้งหมด
exten => _**1XXXX,1,Authenticate(8888)
exten => _**1XXXX,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX,n,Hangup
exten => _**2XXXX,1,Authenticate(8888)
exten => _**2XXXX,n,ChanSpy(SIP/${EXTEN:3},Wv(2))
exten => _**2XXXX,n,Hangup
สรุปจะได้แบบนี้
- โค้ด: เลือกทั้งหมด
[from-internal-custom]
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup
include => from-internal-2
exten => _**1XXXX,1,Authenticate(8888)
exten => _**1XXXX,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX,n,Hangup
exten => _**2XXXX,1,Authenticate(8888)
exten => _**2XXXX,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**2XXXX,n,Hangup
จากนั้นรีโหลด Dialplan รันคำสั่งนี้
- โค้ด: เลือกทั้งหมด
asterisk -rx "dialplan reload"
รอจนเห็นข้อความว่า "Dialplan reloaded" ก็ลงมือเทสได้เลย
2. ทดสอบ
เลือกกดได้ 2 แบบคือ **1 หรือ **2 ตามด้วยเบอร์ Extensions 4 หลัก ที่ต้องการจะ Whisper ยกตัวอย่างเช่น ผมอยู่เบอร์ 5001 ต้องการจะ Whisper เบอร์ 5000 ผมกดแบบนี้
**15000 หรือไม่ก็ **25000
จากนั้นจะได้ยินเสียงว่า "Please enter your password followed by the pound key" ผมก็กด 8888# รอสักพักจะได้ยินเสียงว่า "Thank you" และเสียง "Beep" ก็จะได้ยินเสียงที่เบอร์ 5000 คุยสายอยู่
** ถ้าไม่อยากให้ได้ยินเสียง beep ให้ใช้ออปชั่น q เพิ่มครับ แบบนี้ **
exten => _**1XXXX,n,ChanSpy(SIP/${EXTEN:3},wqv(2))
exten => _**2XXXX,n,ChanSpy(SIP/${EXTEN:3},Wqv(2))
3. ดัดแปลงให้เฉพาะเบอร์ 5001 เท่านั้นที่ Whisper ได้
จากตัวอย่างข้างบนจะสังเกตุว่าใครที่รู้ code และ Password ก็สามารถ Whisper ได้หมด แต่ถ้าอยากได้ประมาณว่าเฉพาะเบอร์ Extension เบอร์ใดเบอร์หนึ่งเท่านั้นที่จะ Whisper ได้ ทำได้ครับ ดัดแปลง Dialplan นิดหน่อย
ของเดิม
exten => _**1XXXX,1,Authenticate(8888)
exten => _**1XXXX,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX,n,Hangup
ของใหม่
exten => _**1XXXX/5001,1,Authenticate(8888)
exten => _**1XXXX/5001,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX/5001,n,Hangup
คือใส่ /5001 เพิ่มเข้าไป แค่นี้เองครับ
4. เปลี่ยนหรือไม่ให้ถามพาสเวอร์ด
ถ้าจะเปลี่ยนพาสเวอร์ดก็แก้ไข 8888 เป็นตัวเลขอื่น
exten => _**1XXXX,1,Authenticate(9999)
exten => _**1XXXX,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX,n,Hangup
หรือ
exten => _**1XXXX/5001,1,Authenticate(9999)
exten => _**1XXXX/5001,n,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX/5001,n,Hangup
และถ้าไม่ต้องการให้ถามพาสเวอร์ดก็ลบบรรทัด Authenticate() ออก แบบนี้
exten => _**1XXXX,1,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX,n,Hangup
หรือแบบนี้
exten => _**1XXXX/5001,1,ChanSpy(SIP/${EXTEN:3},wv(2))
exten => _**1XXXX/5001,n,Hangup
สังเกตุว่าพอลบบรรทัแรกที่เป็น Authentication ออก บรรทัดแรกก็ต้องเปลี่ยน Priotiry จาก n เป็น 1 นะครับ ไม่งั้นจะไม่เวอร์ค
5. เปลี่ยน Code ใหม่
ในตัวอย่างผมใช้ **1 และ **2 เป็นโค๊ดสำหรับใช้งานฟีเจอร์นี้ ถ้าต้องการเปลี่ยนใหม่ก็ทำได้ครับ เปลี่ยนได้ตามใจชอบ แต่มันต้องไม่ซ้ำกับโค๊ดอื่นๆที่่มีอยู่แล้ว ไม่งั้นมันอาจจะไม่เวอร์คก็ได้ โค๊ดอื่นที่เคยเวอร์คมันก็อาจจะกลายเป็นไม่เวอร์คได้
ลองล่นดูครับ