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

เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP engine

โพสต์โพสต์แล้ว: 10 ต.ค. 2013 16:58
โดย nuiz
หากไม่สามารถโทรผ่าน Asterisk โดยเจอข้อความแบบนี้บนหน้า Console

โค้ด: เลือกทั้งหมด
rtp_engine.c:259 ast_rtp_instance_new: No RTP engine was found. Do you have one loaded?

สาเหตุเกิดจาก Asterisk ไม่ได้โหลดโมดูล res_rtp_asterisk.so ครับ และที่มันไม่ได้โหลดก็เพราะว่าโมดูลนี้ไม่ได้ถูกติดตั้งตอนที่เราคอมไพล์ Asterisk ครับ

ปัญหาแบบนี้จะเกิดเฉพาะ Asterisk 11.x และต้องติดตั้งบน VMWare เท่านั้นถึงจะเจอครับ หากติดตั้งบนเครื่องเดี่ยวๆจะไม่เจอปัญหานี้

ต้นตอจริงๆเกิดจากเราไม่ได้ติดตั้ง libuuid-devel ครับ ต้องติดตั้งก่อนคอมไพล์ Asterisk

โค้ด: เลือกทั้งหมด
yum -y install uuid-devel


แล้วคอมไพล์ Asterisk ใหม่ครับ

ผมมีรูปตอนรันคำสั่ง make menuselect ทั้งก่อนและหลังติดตั้ง libuuid-devel มาให้ดูด้วยครับ จะเห็นว่าตอนแรกโมดูล res_rtp_asterisk มี XXX อยู่ข้างหน้า แต่พอติดตั้ง libuuid-devel แล้วเครื่องหมาย XXX หายไป และเมื่อติดตั้ง Asterisk เสร็จก็จะเห็นโมดูล res_rtp_asterisk.so อยู่ในโฟลเดอร์ ../asterisk/modules ครับ

** ก่อนติดตั้ง libuuid-devel **
รูปภาพ

** หลังติดตั้ง libuuid-devel **
รูปภาพ

หลังจากคอมไพล์ Asterisk เสร็จแล้ว สตาร์ทและเช็คโมดูลอีกครั้ง
โค้ด: เลือกทั้งหมด
mAST*CLI> module show like res_rtp_asterisk.so

ก็จะเห็นว่ามีโมดูลให้โหลดและถูกโหลดเรียบร้อยแล้ว
โค้ด: เลือกทั้งหมด
Module                         Description                              Use Count
res_rtp_asterisk.so            Asterisk RTP Stack                       0         
1 modules loaded


บทความที่เกี่ยวข้อง
เทคนิคการติดตั้ง Asterisk 11.5.1
เทคนิคการติดตั้ง Asterisk 11.8.0
ซอร์สโค๊ด DAHDI 2.9.0+2.9.0 แบบฝัง OSLEC แล้ว
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 15.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 13.x + DAHDI 2.11.1 บน CentOS 7