1. คอนฟิก SIP trunk
เราจะใช้ SIP trunk ของ TOT (NT) ซึ่งมีรายละเอียด ดังนี้
username = 02579xxxx (เบอร์ 02 ของ TOT (NT))
password = xxyyhhjjkk (password ที่ได้จาก TOT (NT))
TOT SIP server = 172.30.213.92
คอนฟิกไฟล์จะอยู่ที่ directory /etcfreeswitch/sip_profiles/external
สร้างไฟล์ siptrunk_01.xml ตามรายละเอียด ดังนี้
<include>
<gateway name="siptrunk_01">
<param name="username" value="02579xxxx"/>
<param name="password" value="xxyyhhjjkk"/>
<param name="proxy" value="172.30.213.92"/>
<param name="register" value="true"/>
<param name="ping" value="25"/>
</gateway>
</include>
เมื่อ save ไฟล์เรียบร้อยแล้ว
# chown freeswitch:freeswitch siptrunk_01.xml
# fs_cli
freeswitch@sipx> sofia profile external rescan
freeswitch@sipx> sofia status
Name Type Data State
=========================================================================
external-ipv6 profile sip:mod_sofia@[::1]:5080 RUNNING (0)
192.168.100.50 alias internal ALIASED
external profile sip:This email address is being protected from spambots. You need JavaScript enabled to view it.:5080 RUNNING (0)
external::example.com gateway sip:This email address is being protected from spambots. You need JavaScript enabled to view it. NOREG
external::siptrunk_01 gateway sip:This email address is being protected from spambots. You need JavaScript enabled to view it. REGED
internal-ipv6 profile sip:mod_sofia@[::1]:5060 RUNNING (0)
internal profile sip:This email address is being protected from spambots. You need JavaScript enabled to view it.:5060 RUNNING (0)
=========================================================================
จะเห็นว่า siptrunk_01 registered กับ TOT SIP server 170.30.213.92 เรียบร้อยแล้ว (state = REGED)
ออกจาก mode cli ของ freeswitch โดยใช้คำสั่ง
freeswitch@sipx> /exit
2. คอนฟิก Dialplan
คอนฟิกไฟล์จะอยู่ที่ directory /etc/freeswitch/dialplan/default
สร้างไฟล์ 02_sipout.xml ตามรายละเอียด ดังนี้
<include>
<extension name="outsip-to-pstn">
<condition field="destination_number" expression="^(0\d{8})$">
<action application="bridge" data="sofia/gateway/siptrunk_01/$1"/>
</condition>
</extension>
<extension name="outsip-to-mobile">
<condition field="destination_number" expression="^(0\d{9})$">
<action application="bridge" data="sofia/gateway/siptrunk_01/$1"/>
</condition>
</extension>
</include>
โดยที่ ^(0\d{8})$ หมายถึง dialplan จะ match เบอร์โทรที่ขึ้นต้นด้วย 0 และตามด้วยตัวเลขอีก 8 ตัว
เก็บตัวเลขทั้ง 9 ตัวไว้ในตัวแปร $1 แล้วโทรออกที่ siptrunk_01
ทำนองเดียวกัน ^(0\d{9})$ หมายถึง dialplan จะ match เบอร์โทรที่ขึ้นต้นด้วย 0 และตามด้วยตัวเลขอีก 9 ตัว
เก็บตัวเลขทั้ง 10 ตัวไว้ในตัวแปร $1 แล้วโทรออกที่ siptrunk_01
# chown freeswitch:freeswitch 02_sipout.xml
# fs_cli
freeswitch@sipx> reloadxml
freeswitch@sipx> /exit
แล้วทดสอบโทรออกเบอร์บ้าน เบอร์มือถือ ดูว่าได้หรือไม่
3. เพิ่มเติม
จะเห็นว่าเมื่อเรา run คำสั่ง
# fs_cli
freeswitch@sipx> sofia status
จะแสดง external::example.com ซึ่งเป็น gateway ที่มาจาก default configuration ในไฟล์ /etc/freeswitch/directory/default/example.com.xml
ถ้าเราไม่ต้องการให้แสดง gateway ตัวนี้ เนื่องจากเราไม่ได้ใช้งาน ทำตามขั้นตอนดังนี้
# rm /etc/freeswitch/directory/default/example.com.xml
# fs_cli
freeswitch@sipx> sofia profile external killgw example.com
freeswitch@sipx> /exit