หน้า 1 จากทั้งหมด 1

อะไรอยู่เบื้องหลัง Elastix MT

โพสต์โพสต์แล้ว: 13 ม.ค. 2016 14:43
โดย nuiz
จากการที่ผมลองเล่น Elastix MT แล้วติดปัญหาหลายอย่างโดยเฉพาะเรื่อง Trunks ผมก็ค้นดูจากใน Google ก็พบว่า Elastix MT ได้เปลี่ยนแปลงไปดังนี้

- เพิ่ม SIP Proxy Server และ Registrar Server
เขาใช้โปรแกรมชื่อ "Kamailio" อ่านว่า "คาเมลลิโอ้" โปรแกรมนี้ชื่อเดิมคือ OpenSER, OpenSIP ครับ เป็น Open Source SIP Server อีกตัวหนึ่ง ฟีเจอร์น้อยกว่า Asterisk มากครับ แต่ทำงานเร็วและรองรับคอลได้เยอะกว่า ความปลอดภัยก็มีมากกว่าด้วย บนเครื่อง Elastix MT โปรแกรมนี้รันพอร์ต UDP 5060 ครับ แต่ก็ยังมี Asterisk อยู่นะครับ เพียงแต่ไม่ได้เชื่อมต่อกับ User โดยตรงเหมือนแต่ก่อน รันบนพอร์ต UDP 5080

เมื่อ Extensions รีจิสเตอร์มาที่พอร์ต 5060 โปรแกรม Kamailio จะรับจัดการก่อน จากนั้นจะเช็ค domain name ที่อยู่ในส่วนของ Username หรือ Authorization Name ของ SIP Messages ถ้าพบว่าตรงกับ domain ที่สร้างไว้ก็จะยอมรับเข้ามาและส่งต่อไปให้ Asterisk ครับ โดยโปรแกรมทั้งสองนี้คุยกันด้วยไอพี 127.0.0.1

คอนฟิกของ Kamailio อยู่ในโฟลเดอร์ /etc/kamailio ครับ สามารถสั่งสตาร์ท สต๊อป รีโหลดได้ด้วยคำสั่ง "service kamailio start|stop|reload" เก็บคอนฟิกไว้ในดาต้าเบสชื่อ "kamailio"

- Asterisk จะส่งทุกอย่างไปที่ Kamailio
Asterisk ไม่ได้เชื่อมต่อกับ User และโลกภายนอกโดยตรง มันจะส่งทุกอย่างไปให้ Kamailio จัดการให้ มันรู้ว่าต้องทำแบบนี้โดยการคอนฟิกบรรทัด proxyserver และ proxyport ไว้ในไฟล์ /etc/asterisk/sip.conf ครับ

- Asterisk ใช้คอนฟิกแบบ Real Time
ไม่ได้เก็บ SIP Accounts ไวในไฟล์ sip.conf และไม่ได้เก็บ Dialplan ไว้ในไฟล์ extensions.conf แล้ว โดยทุกอย่างจะเก็บไว้ในดาต้าเบส MySQL ครับ ดังนั้นเวลาเรารัน "sip show peers" จึงไม่เห็นเบอร์ SIP ทุกเบอร์ จะเห็นเฉพาะเบอร์ที่รีจิสเตอร์อยู่เท่านั้น

- มีโปรแกรม rtpproxy
rtpproxy เป็นโปรแกรมที่ทำหน้าที่เป็น Proxy สำหรับ VoIP ครับ ซึ่ง Kamailio ใช้ทำหน้าที่เป็น Proxy สำหรับ RTP ช่วยแก้ปัญหาการใช้งาน VoIP ผ่าน NAT ได้ โปรแกรม rtpproxy เป็นอีกเซอร์วิสหนึ่งใน Elastix สามารถสั่งสตาร์ท สต๊อป รีสตาร์ทได้เหมือนเซอร์วิสอื่นทั่วไป โปรแกรมนี้รันบนพอร์ต UDP 7722 แต่เราก็เปลี่ยนพอร์ตได้ตอนสั่งรันโปรแกรม แต่หากเปลี่ยนพอร์ตเราต้องไปแก้ไขคอนฟิกในไฟล์ kamailio.conf ของ Kamailio ด้วย ไม่งั้นหากันไม่เจอ

** ถ้าเจออะไรอีกจะมาเขียนต่อครับ **

ผมคิดว่าที่ผมคอนฟิกแล้วยังติดปัญหา น่าจะเป็นที่ Kamailio นี่แหล่ะครับ ตอนนี้ติดเรื่อง Trunk อย่างเดียว การโทรระหว่างเบอร์ Extension ไม่มีปัญหา