ทดลอง Setup Asterisk Testbed

ทดลอง Setup Asterisk Testbed

เมื่อวันก่อน ผมได้ ทดลอง Setup Asterisk Testbed ที่ห้องวิจัยที่ ENSEEIHT, Toulouse, France

ใช้คอมพิวเตอร์ 3 เครื่อง โดยแบ่งกันติดตั้งดังนี้

SIP Server:
Asterisk (Linux Ubuntu 8.10)
SIP Client: LinPhone (recommend) , Ekiga (there is sound problem)
SIP Client: X-Lite (Windows)

Asterisk ทำหน้าที่เป็น SIP proxy+registra server.
Linphone ทำหน้าที่เป็น SIP phone client.


Step by step:
1. ติดตั้งโปรแกรมทั้งหมดโดยใ้ช้ synaptic
    => Asterisk & LinPhone

2. แก้ไขไฟล์ sip.conf และ extension.conf ตามนี้

/etc/asterisk/sip.conf

           [general]
           context=default
           bindport=5060
           bindaddr=0.0.0.0
           srvlookup=yes

[100] ; this is the sip user name
secret=100 ; this is the password
type=friend
host=dynamic ;anyone can connect
context=from-internal
qualify=yes
port=5060
dtmfmode=rfc2833

[200]
secret=200
type=friend
host=dynamic
context=from-internal
qualify=yes
port=5060
dtmfmode=rfc2833

[300]
secret=300
type=friend
host=dynamic
context=from-internal
qualify=yes
port=5060
dtmfmode=rfc2833

/etc/asterisk/extension.conf
[from-internal]
exten => 100,1,Dial(SIP/100)
exten => 200,1,Dial(SIP/200)
exten => 300,1,Dial(SIP/300)

3. Start asterisk service => #/etc/init.d/asterisk start
     (ปรกติแล้วถ้า ติดตั้งผ่าน synaptic มันจะ start อัตโนมัติ)

4. ติดต่อกับ asterisk terminal => #asterisk -r

5. เราจะได้ SIP console => *CLI>

6. CLI> sip show peers
// คำสั่งนี้ใช้สำหรับตรวจสอบสถานะของ peers หรือ คนที่เชื่อมต่อกับ SIP Server ครับ

7. CLI> sip show users
// คำสั่งนี้ใช้สำหรับแสดงผู้ใช้ ก็คล้าย ๆ กับ peers แหละครับ

8. เปิดโปรแกรม linphone (SIP Phone client), เจอ error message เกี่ยวกับ port เพราะว่า linphone ก็ใช้ UDP: port 5060 ซึ่งเป็น port เดียวกับ asterisk service กับของ server ครับ (พอดีว่าผมลง linphone ไว้ในเครื่อง server ด้วย)  ดังนั้นเราก็แค่จัดการเปลี่ยน port ของ linphone ให้เป็น port อื่น ที่ไม่ใช้ 5060 แทนครับ  ถ้าเป็นโปรแกรม Ekiga ให้ใช้คำสั่ง #gconf-edit ในการเปลี่ยน ซึ่งตอนที่ผมทดสอบ ผมใช้เป็น UDP: port 5100 ครับ

9.จากนั้นก็ไปยังเครื่องลูกข่ายอีกเครื่อง แล้วก็จัดการเปิดโปรแกรม linphone เหมือนกัน คราวนี้จะไม่เจอปัญหา port ชนกันแล้ว (นอกจากว่าจะมีโปรแกรมอื่นใช้ port นี้อยู่)

10. ทำการลงทะเบียนผู้ใช้กับ asterisk (SIP server). โดยใช้ Account & User name ตามที่เรากำหนดไว้ใน in sip.conf ซึ่งก็คือ

Account Name=100,user=100, pass=100
Account Name=200,user=200, pass=200
Account Name=300,user=300, pass=300

SIP URI จะมีหน้าตาประมาณนี้ => sip:[email protected]

11.  หลังจากลงทะเบียนกับ Asterisk server เรียบร้อยแล้ว, เราสามารถตรวจสอบสถานะการลงทะเบียนจาก server ได้โดยใช้คำสั่ง
*CLI> sip show peers
The status should label with "O.K."

12. เพียงเท่านี้เราก็สามารถโทรหาใคร ๆ ก็ได้ที่ลงทะเบียนใน SIP Server ของเราแล้วครับ :-)