nuiz เขียน:ทำเหมือนเดิมครับ แค่แก้ไขคำว่า IAX2 ให้เป็นคำว่า SIP
@ServerA
ไฟล์ /etc/asterisk/sip.conf
[osaka]
host=192.168.1.70
port=5060
insecure=port,invite
context=osaka_incoming
...
[2000]
host=dynamic
context=phones
...
ไฟล์ /etc/asterisk/extensions.conf
[phones]
include => internal
include => external
[internal]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30,tT)
exten => _2XXX,n,Hangup()
[remote]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/192.168.1.70/${EXTEN},30,tT)
exten => _1XXX,n,Hangup()
[osaka_incoming]
include => internal
@ServerB
ไฟล์ /etc/asterisk/sip.conf
[toronto]
host=192.168.1.69
port=5060
insecure=port,invite
context=toronto_incoming
...
[1000]
host=dynamic
context=phones
...
ไฟล์ /etc/asterisk/extensions.conf
[phones]
include => internal
include => remote
[internal]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/${EXTEN},30,tT)
exten => _1XXX,n,Hangup()
[remote]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/192.168.1.69/${EXTEN},30,tT)
exten => _2XXX,n,Hangup()
[toronto_incoming]
include => internal
สวัสดีครับพี่ nuiz ผมลองตามที่พี่แนะนำแล้วครับ ปรากฎว่าไม่สำเร็จครับ ผมเลยทำการแก้ โค้ดอีกนิดหน่อยทั้งใน sip.conf และใน extension.conf จึงทำให้สามารถโทรหากันได้สำเร็จครับ (ผมลองใส่ secret ของ แต่ละ extension ก็ยังสามารถโทรได้ครับ ดีใจมาก
) โค้ดตามนี้ครับพี่
Server A
sip.conf
[toronto]
host=192.168.1.69
port=5060
insecure=port,invite
disallow=all
allow=gsm,ulaw,alaw
context=toronto_incoming
...
[2000]
username=2000
secret=1234
host=dynamic
type=friend
** ตอนแรกไม่ใส่ type ทำให้ soft phone ไม่สามารถ register กับ sip ได้ครับcontext=defualt
** ตอนแรกไม่ใส่ context = phones ตอนโทร sip ฟ้อง call from 1000 to extension '1000'
rejected because extension not found in context 'default' เลยลองงมๆเปลี่ยนดูครับ ...ไฟล์ /etc/asterisk/extensions.conf
[default] <----------- เปลี่ยน context นี้ครับ
include => internal
include => remote
[internal]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30,tT)
exten => _2XXX,n,Hangup()
[remote]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/192.168.1.70/${EXTEN},30,tT)
exten => _1XXX,n,Hangup()
[toronto_incoming]
include => internal
Server B
sip.conf
[osaka]
host=192.168.1.70
port=5060
insecure=port,invite
disallow=all
allow=gsm,ulaw,alaw
context=osaka_incoming
...
[1000]
username=1000
secret=1234
host=dynamic
type=friend
** ตอนแรกไม่ใส่ type ทำให้ soft phone ไม่สามารถ register กับ sip ได้ครับcontext=defualt
** ตอนแรกไม่ใส่ context = phones ตอนโทร sip ฟ้อง call from 2000 to extension '2000'
rejected because extension not found in context 'default' เลยลองงมๆเปลี่ยนดูครับ ...ไฟล์ /etc/asterisk/extensions.conf
[default] <----------- เปลี่ยน context นี้ครับ
include => internal
include => remote
[internal]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/${EXTEN},30,tT)
exten => _1XXX,n,Hangup()
[remote]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/192.168.1.69/${EXTEN},30,tT)
exten => _2XXX,n,Hangup()
[osaka_incoming]
include => internal
ยังไงๆ ก็ต้องขอขอบคุณพี่ nuiz มากๆครับ ที่แนะนำ และ เริ่มให้ผมจนสำเร็จครับผม ขั้นต่อไปผมจะลองนำไปประยุกต์เข้ากับ iax protocol ครับผม หวังว่าคงได้ครับ ขอบคุณพี่ nuiz มากๆครับ