มาติดตั้ง iLBC codec ให้ Asterisk กันเถอะครับ
โพสต์แล้ว: 04 เม.ย. 2010 17:17
iLBC หรือ Internet Low Bit Rate Codec เป็น Codec ที่ว่ากันว่าให้คุณภาพดีกว่า G.729 ซะอีก กินแบนวิดธ์ต่ำโดยที่ถ้า frame size 20 ms ตัว voice ใช้แบนวิดธ์ 15.20 kbpsและใช้แบนวิดธ์ 13.33 kbps เมื่อใช้ frame size 30 ms
เมื่อเปรียบเทียบการสิ้นเปลือง CPU Time ระหว่าง G.729 กับ iLBC ก็มี 2 กระแสครับ บ้างก็ว่าสิ้นเปลืองพอๆกัน บ้างก็ว่า iLBC สิ้นเปลืองมากกว่า ก็ไม่รู้ว่าใครผิดใครถูกอ่ะครับ วัดไม่เป็น
ถึงแม้จะเป็น Free Codec แต่ดีฟอลท์ไม่ได้ติดตั้งมาพร้อมกับ Asterisk นะครับเนื่องจากมีไลเซ่นต์ครับ เราต้องดาวน์โหลด Source Code ของ Codec iLBC เอง แล้วให้ Asterisk คอมไพล์ให้
เว็บไซต์ http://www.ilbcfreeware.org/
วิธีการติดตั้ง Codec iLBC บน Asterisk
1. ไปที่ Source Code ของ Asterisk
กด enter 2 ครั้ง แล้วก๊อป Source Code
2. คอมไพล์ Asterisk ใหม่
เลื่อนลูกศรมาที่ 4. Codec Translators แล้วกด enter
เลือก codec_ilbc
[*] 7. codec_ilbc
กด esc
กด s
3. เริ่มคอมไพล์ Asterisk
ไม่ต้อง make samples
4. ทดสอบโหลด ilbc
เข้า Asterisk Conso4le
5. ตรวจสอบการ Translation ระหว่าง Codec ต่างๆ
เข้า Asterisk Console แล้วพิมพ์คำสั่ง
ก็จะเห็น Translation ระหว่าง Codec และเวลาในการทำ Translation แบบนี้ครับ
ปัญหาที่ยังแก้ไม่ได้
ตอนใช้ DTMF จะมีข้อความ Error แบบนี้ครับ
[2010-04-04 16:24:03] WARNING[2046]: codec_ilbc.c:138 ilbctolin_framein: Huh? An ilbc frame that isn't a multiple of 50 bytes long from RTP (4)?
[2010-04-04 16:24:03] WARNING[2046]: translate.c:211 framein: ilbctolin did not update samples 0
[2010-04-04 16:24:03] WARNING[2046]: translate.c:175 framein: no samples for ilbctolin
เมื่อเปรียบเทียบการสิ้นเปลือง CPU Time ระหว่าง G.729 กับ iLBC ก็มี 2 กระแสครับ บ้างก็ว่าสิ้นเปลืองพอๆกัน บ้างก็ว่า iLBC สิ้นเปลืองมากกว่า ก็ไม่รู้ว่าใครผิดใครถูกอ่ะครับ วัดไม่เป็น
ถึงแม้จะเป็น Free Codec แต่ดีฟอลท์ไม่ได้ติดตั้งมาพร้อมกับ Asterisk นะครับเนื่องจากมีไลเซ่นต์ครับ เราต้องดาวน์โหลด Source Code ของ Codec iLBC เอง แล้วให้ Asterisk คอมไพล์ให้
เว็บไซต์ http://www.ilbcfreeware.org/
วิธีการติดตั้ง Codec iLBC บน Asterisk
1. ไปที่ Source Code ของ Asterisk
- โค้ด: เลือกทั้งหมด
cd /usr/src/asterisk-1.4.26.3
cd contrib/scripts
./get_ilbc_source.sh
กด enter 2 ครั้ง แล้วก๊อป Source Code
- โค้ด: เลือกทั้งหมด
cp -rf codecs/ilbc /usr/src/asterisk-1.4.26.3/codecs
2. คอมไพล์ Asterisk ใหม่
- โค้ด: เลือกทั้งหมด
cd /usr/src/asterisk-1.4.26.3
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make menuselect
เลื่อนลูกศรมาที่ 4. Codec Translators แล้วกด enter
เลือก codec_ilbc
[*] 7. codec_ilbc
กด esc
กด s
3. เริ่มคอมไพล์ Asterisk
- โค้ด: เลือกทั้งหมด
make
make install
ไม่ต้อง make samples
4. ทดสอบโหลด ilbc
เข้า Asterisk Conso4le
- โค้ด: เลือกทั้งหมด
modules load codec_ilbc.so
5. ตรวจสอบการ Translation ระหว่าง Codec ต่างๆ
เข้า Asterisk Console แล้วพิมพ์คำสั่ง
- โค้ด: เลือกทั้งหมด
core show translation
ก็จะเห็น Translation ระหว่าง Codec และเวลาในการทำ Translation แบบนี้ครับ
ปัญหาที่ยังแก้ไม่ได้
ตอนใช้ DTMF จะมีข้อความ Error แบบนี้ครับ
[2010-04-04 16:24:03] WARNING[2046]: codec_ilbc.c:138 ilbctolin_framein: Huh? An ilbc frame that isn't a multiple of 50 bytes long from RTP (4)?
[2010-04-04 16:24:03] WARNING[2046]: translate.c:211 framein: ilbctolin did not update samples 0
[2010-04-04 16:24:03] WARNING[2046]: translate.c:175 framein: no samples for ilbctolin