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