เมื่อเปรียบเทียบการสิ้นเปลือง 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