همه ما می‌دانیم که g711 (alaw / ulaw) در اولین نگاه، بهترین کدک محسوب می‌شود. هیچ فشرده‌سازی در این کدک وجود ندارد و کیفیتی برابر با خطوط ISDN دارند. خطوط ISDN هم اکنون در سیستم‌های سانترال قدیمی در اکثر کسب و کارها مورد استفاده قرار می‌گیرد. هر چند اگر بحث ارزیابی اقتصادی در میان باشد، پهنای باند 64 کیلو بیت در هر ثانیه به علاوه پهنای بالا دستی چیزی حدود 111 کیلوبیت در هر ثانیه می شود که با محاسبه سایر فاکتور هایی که در خطوط ADSL محسوب می‌شود، رقم بالایی برای هر تماس به دست می‌آید. این رقم زمانی بیشتر معنی پیدا می‌کند که شما بخواهید برروی خطوط استاندارد ای دی اس ال ۵ تا ۷ خط SIP راه‌اندازی کنید. (مخصوصاً اگر خطوط ADSL شما از نوع اختصاصی نباشد‌). در چنین سناریوهایی است که وجود کدک‌های فشرده‌سازی مثل ILBC (کدک مورد علاقه من)‌ یا g729 می‌تواند به صورت غیر‌ قابل باور هزینه‌ها را سرشکن کرده و تعداد خطوط SIP را به ۱۵ -۲۰ عدد در همان خطوط اشتراکی ADSL افزایش دهد. این کار به این معنی است که اگر شما یک کسب و کار کوچکی هستید با انجام QoS استاندارد می‌توانید با یک خط ADSL، کلیه امورات روزانه خود به همراه ۵-۱۰ تماس همزمان را در کنار هم داشته باشید. ما در این مقاله نکات زیر را به صورت اجمالی بررسی خواهیم کرد.


MOS‌ چیست و چرا اهمیت دارد؟ کلمه MOS‌ برگرفته از عبارت “Mean Opinion Score“ که در واقع به ۵ فاکتوری اشاره می‌کند که بر اساس آن می‌توان گفت که یک کدک مشخص (‌شما بخوانید یک مکالمه) چه میزان قابل قبول است. یک مقاله در Wikipedia در مورد مبحث MOS‌ وجود دارد که به صورت ریز در این مورد نوشته شده است و در جدولی مجزا رتبه‌های کدک و کلماتی که خود شما می‌توانید امتحان کنید تا میزان دریافت کلمه را در بازگشت صدا بسنجید، آورده شده است. همه ما دنبال یک MOS عالی هستیم چرا که هیچ چیز بدتر از شنیدن گلایه همکاران از قطع و وصلی‌ها و صداهای نامناسب تماس‌ها در انتهای یک روز نیست. شخصا به دنبال دریافت کیفیت بالاتر هستم و دقیقاً به همین خاطر است که روی استفاده از کدک ILBC‌ تأکید می‌کنم. در نهایت انتخاب با شما است و این شما (یا بهتر بگویم کسی که در نهایت چک پرداخت کارمزدتان را می‌نویسد‌) هستید که باید از انتخابتان شاد باشید.


چه کدکی برای من مناسب است؟ یکی از سوالات به جایی که همه از یکدیگر می‌پرسند همین سوال است. سوالی که باید به آن پاسخ داده شود. در زیر ما به فواید هریک از کدک‌های بالا پرداخته‌ایم. مزایای ILBC، رایگان است، عموماً از کد‌های منبع نصب می‌شود، MOS‌ بهتری نسبت به G729 دارد،  گوشی‌های متن باز نرم‌افزاری زیادی از این کدک پشتیبانی می‌کنند، پکت‌های از دست‌رفته نسبت به G711 , G729 بهتر مدیریت می‌شود.

 

 معایب ILBC: دستگاه‌های فیزیکی کمتری از این کدک پشتیبانی‌ می‌کنند.


مزایای G729: بیشتر دستگاه‌های فیزیکی از این کدک پشتیبانی می‌کنند. خیلی رایج‌تر از کدک ILBC‌ است. منابع CPU کمتری نسبت به ILBC برای کدینگ و دیکدینگ استفاده می‌کند لذا برای پروژه‌ها با استفاده بالا عالی است.


معایب G729: برای هر کانال هزینه دارد، لایسنسینگ جالبی دارد، گوشی‌های نرم‌افزاری رایگان کمی از این کدک پشتیبانی می‌کنند، هدر رفت داده‌ها در مقایسه با ILBC بیشتر است، ورژن‌های مختلف خیلی زیادی دارد.

 

تشخیص این که هریک از کدک‌های بالا دارای مزایای مختص به خود است، کار سختی نیست. شما اگر دنبال راه کم هزینه برای گسترش شبکه تلفنی خود هستید و یا در یک شبکه‌ای هستید که سرعت اتصال ADSL‌ در نوسان است احتمال زیاد گزینه‌ای جز انتخاب ILBC‌ نخواهید داشت. اگر شما یک کار پر حجم‌تری انجام می‌دهید یا در برابر سخت‌افزار با قدرت ضعیفی قرار گرفته‌اید و تعداد داخلی‌های زیاد با همزمانی تماس بالا دارید ارزش آن را دارد که سراغ G729‌ روید. لطفاً در نظر داشته باشید که قرار نیست حتماً فقط و فقط از یک کدک مشخص استفاده کنید. شما می‌توانید در یک پروژه بسته به سطح مشتری یا سطح دستگاه‌های مورد استفاده از هر دو کدک به صورت همزمان استفاده کنید.


نصب G729: در این مرحله من دست به تقلب می‌زنم و شما را به سایت digium هدایت می‌کنم. به قیمت حدود 10 دلار برای هر تماس هم‌زمان می‌توانید از سایت digium لایسنس خریداری کنید. قطعاQ این مقدار پول ارزشش را برای مشتری که پهنای باند برایش مهم باشد را دارد. به هر حال اگر شما ورژن رایگان این کدک را دانلود کرده‌اید فقط کافی است فایل را در مسیر /usr/lib/asterisk/modules با دسترسی ۷۵۵ و در ورژن‌های ۶۴ بیتی در مسیر /usr/lib64/asterisk/modules کپی کنید. اگر ورژن‌هایی غیر از این استفاده می‌کنید کافی است راهنمای‌ فوق‌العاده digium را از این بخش دنبال کنید.


نصب ILBC: ما می‌‌خواهیم این کار را به شما از همان ابتدای کار به صورت کامل نشان دهیم. چقدر خوش شانس هستیم (در ادامه حرف من را تأیید خواهید کرد) که الستیکس تک تک این مراحل را برای ما قبلاً انجام داده است و اگر از سیستم الستیکس استفاده می‌کنید دیگر نیازی به این مراحل نخواهید داشت. در قدم اول Asterisk را از دانلود کنید. به محیط فایل‌های سیستمتان از طریق یکی از راه‌ها متصل شوید (‌SCP/SSH/Local terminal ) و به پوشه /usr/src بروید و فایل‌ها را آنجا بارگذاری کنید. در محیط ssh دستور زیر را اجرا کنید:

tar xvzf asterisk-1.4.*.tar.gz

به مسیر جدید ایجاد شده به نام asterisk رفته و دستور زیر را وارد کنید.

./contrib/scripts/get_ilbc_source.sh

زمانی که دکمه enter را فشار می‌دهید پیغام هشدار خواندن سند را نشان می‌دهد و سپس پیغام زیبای “دانلود منابع کدک ILBC با موفقیت به اتمام رسید“ را نشان می‌دهد. هم اکنون دستور زیر را اجرا کنید:

./configure

باید بدون هیچ موردی این دستور اجرا شود. در این مرحله (به خاطر کمبود وقت) به Asterisk دستور خواهیم داد که فقط کدک ILBC را می‌خواهیم داشته باشیم. برای فعال‌سازی کدک iLBC باید مطمئن شوید که در Codec Translators گزینه codec_ilbc فعال است.


تذکر : به یاد داشته باشید که به هنگام زدن دکمه Esc دکمه S را برای ذخیره کلیه اقدام‌های بالا فشار‌ دهید.


هم اکنون فقط کافی است دستور make را اجرا کنید تا سیستم کدک ilbc را ساخته و فعال سازد. هم اکنون تقریباً پروسه نصب کدک iLBC‌ به اتمام رسیده است و فقط کافی است فایل ./codecs/codec_ilbc.so را به مسیر /usr/lib/asterisk/modules انتقال دهیم. دسترسی این فایل می‌بایست بر روی ۷۵۵ باشد.


تنظیم Trunk و داخلی‌ها: حال با توجه به این که شما می‌خواهید برروی داخلی یا یک Trunk SIP، کدک را فعال سازید یکی از مراحل زیر را انجام دهید. لازم به یادآوری است که با فعال‌سازی این کدک در Trunk، کل سیستم از این کدک استفاده خواهد کرد.


تنظیم Trunk: در بخش اطلاعات peer در یکی از Trunk SIP یا IAX2 خطوط زیر را وارد کنید:

disallow=all
allow=g729&ilbc

با توجه به نیازهایتان می‌توانید یکی از کدک‌ها را حذف یا کدک دیگری در خطوط بالا اضافه کنید.


تنظیم در داخلی‌ها: داخلی‌ای را که می‌خواهید از کدک مشخصی استفاده کنید باز کنید و بر روی گزینه Disallow رفته و مقابلش کلمه all‌ را بنویسید. و در گزینه بعدی “allow” اسم کدکتان را بنویسید. مثل g729 یا ILBC یا ilbc&g729. سپس تغییرات انجام شده را ذخیره کنید.


تذکر: از هرنوع ترنس کدینگ جلوگیری کنید. درست است که Asterisk به زیبایی این کار را انجام می‌دهد اما خود این کار، تأخیری در تماس ایجاد می‌کند. لازم به یادآوری نیست که استفاده بیش از حد CPU نیز یکی از عوارض ترنس‌کدینگ است.


تذکر: در نظر داشته باشید که اگر استفاده از یک کدک مشخص را در سیستم اجباری کنید. هر دستگاهی که از کدک شما پشتیبانی نکند آن تماس برقرار نخواهد شد.


تست کردن کدک: جذاب‌ترین قسمت برای من، تست کارهای انجام شده است. خوشبختانه تا این‌جای کار آن طور که انتظار داشتیم پیش رفته است. با استفاده از ssh به سیستم Asterisk وارد شوید: Asterisk –r را اجرا کنید. وقتی که تماس برقرار شده است و در حال مکالمه است دستور sip show channels را اجرا کنید. باید پیغامی شبیه پیغام زیر را مشاهده کنید:

x.x.x.x 09xxxxxxx 2408517b625 00101/00102 0x400 (ilbc) No Rx: ACK


منبع: VOIPIRAN