การใช้งาน SIP over TCP นั้น ผมทดสอบดูก็พบว่า เฉพาะ Signaling เท่านั้นที่ใช้บน TCP ส่วน Voice RTP ก็ยังคงวิ่งบน UDP อย่างเดิมครับ แต่มันจะช่วยให้ Zoiper ไม่หลับเวลาหน้าจอสมาร์ทโฟนดับไป
1. เปิดหน้า FreePBX -> Settings -> Asterisk SIP Settings
2. เพิ่มบรรทัด tcpenable = yes
จากนั้นกด Submit Chages และ Apply Config
3. ตรวจสอบ
รันคำสั่ง netstat -ln | grep 5060 บน Linux Prompt จะเห็นแบบนี้
- โค้ด: เลือกทั้งหมด
tcp 0 0 0.0.0.0:5060 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:5060 0.0.0.0:*
แสดงว่า Asterisk SIP รันทั้งบน TCP และ UDP
4. เข้าหน้าเว็บคอนฟิกเบอร์ Extensions (หน้า FreePBX หรือ Elastix ก็ได้)
บรรทัด Transport เปลี่ยนจาก UDP Only เป็น All - อะไรก็ได้ เช่น All - UDP Primary หรือ All - TCP Primary เป็นต้น ซึ่งจะรองรับหลายโปรโตคอล แต่ถ้าต้องการให้รองรับเฉพาะ TCP เท่านั้น ให้เลือกเป็น TCP Only
แล้วกด Submit และ Apply Config
รูปนี้เป็นตัวอย่างการตั้งค่าให้เบอร์ Extension รองรับ TCP เท่านั้น
5. คอนฟิก SIP Client ให้ใช้ TCP
5.1 ใช้ Zoiper Sofphone บน Android
รีจิสเตอร์ได้
5.2 โปรแกรม X-Lite for windows
รีจิสเตอร์ได้
5.3 โปรแกรม PortGo
5.4 โปรแกรม Zoiper for Windows
6. ตรวจสอบ
- โค้ด: เลือกทั้งหมด
[root@elastix-a ~]# asterisk -rx "sip show peers"
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
1001/1001 192.168.100.101 D Yes Yes A 54146 OK (231 ms)
- โค้ด: เลือกทั้งหมด
[root@elastix-a ~]# asterisk -rx "sip show peer 1001"
* Name : 1001
...
Prim.Transp. : TCP
Allowed.Trsp : TCP
...
Useragent : X-Lite release 4.9.7 stamp 83108
Reg. Contact : sip:1002@192.168.100.102:5161;rinstance=6de0ca4f76bcfbc8
...
จากนั้นทดสอบการใช้งาน
บทความที่เกี่ยวข้อง
เทคนิคการติดตั้ง Elastix 2.5
เทคนิคการติดตั้ง Elastix 4.0
เทคนิคการติดตั้ง Elastix 3.0
เทคนิคการดาวน์โหลดไฟล์เสียง mp3 จากเว็บ TTS (ใหม่)