เทคนิคที่จะแนะนำต่อไปนี้ผมได้ไอเดียมาจากคุณ Chana ครับ ต้องขอขอบคุณมา ณ ที่นี้ด้วยครับ เทคนิคต่อไปนี้น่าจะเหมาะสำหรับท่านที่ใช้บริการของ Cat2Call+ ตัวใหม่อยู่นะครับ ซึ่งคุณ Chana พบว่าเขาต้องคอยรันคำสั่ง sip reload บน Asterisk Console อยู่เป็นระยะๆ ไม่งั้น Asterisk/Elastix ก็จะไม่รีจิสกับกับ Cat2Call+ ครับ
ปัญหาที่ว่า Asterisk/Elastix ไม่รีจิสกับ Cat2Call+ (เมื่อเวลาผ่านไปสักพัก) นั้นผมคาดว่าจริงๆแล้ว Asterisk/Elastix มันก็พยายามส่ง Register ไปอยู่นะครับแต่ว่าทาง Cat2Call+ ไม่ตอบกลับมาเอง ทั้งๆที่เน็ตก็เชื่อมต่อปกติ
ครั้นจะไปให้ทาง Cat2Call+ ช่วยตรวจสอบหาสาเหตุก็คงจะยากนิดนึง เขาก็ช่วยนะเท่าที่ผมได้ยินมา แต่ลูกค้าก็ยังเจอปัญหาอยู่เรื่อยๆ เรามาแก้ปัญหาทางฝั่งเราจะง่ายกว่าครับ
1. ให้ Asterisk/Elastix รีจิสเตอร์ไปเรื่อยๆ
ให้ตรวจสอบว่าเราคอนฟิก Asterisk/Elastix ให้รีจิสเตอร์กี่ครั้ง รีจิสเตอร์เรื่อยจนกว่าจะได้ หรือว่าพอรีจิสเตอร์ไม่ได้ x ครั้งก็เลิกเลย เช็คที่ไฟล์ไฟล์ /etc/asterisk/sip.conf หรือ sip_custom.conf เพิ่มบรรทัดนี้
- โค้ด: เลือกทั้งหมด
registerattempts=0
บรรทัดนี้สั่ง Asterisk ให้รีจิสเตอร์ไปเรื่อยๆจนกว่าจะสำเร็จ
2. ให้ CentOS รีโหลด SIP ทุกๆ x นาทีที่กำหนด
โดยเอาไปไว้ใน crontab ครับ และรับประกันว่าขณะที่มันทำงานตามคำสั่งนี้สายจะไม่หลุดครับ
ให้เพิ่มคำสั่งบรรทัดนี้ สมมติว่ารีโหลดทุก 15 นาที
- โค้ด: เลือกทั้งหมด
5 * * * * /usr/sbin/asterisk -rx "sip reload"
หรือดูรายละเอียดการใช้ crontab ในกระทู้นี้
ใช้ crontab ตั้งเวลารันโปรแกรมในเครื่อง CentOS
น่าจะพอแก้ไขปัญหาได้บ้างครับ ที่สุดแล้วอาจต้องเปลี่ยน ISP ดูครับ (เอาไปลองรีจิสเตอร์ผ่านอินเตอร์เน็ตของเจ้าอื่นๆเปรียบเทียบกันดู)
บทความที่เกี่ยวข้อง
เทคนิคการคอนฟิก Elastix/Asterisk กับบริการ Cat2Call+