کدک های صوتی، g729 در برابر ilbc

 

  همه ی ما می دانیم که g711 ( alaw/ ulaw ) در اولین نگاه، بهترین کدک محسوب می شود. هیچ فشرده سازی در این کدک وجود ندارد و کیفیتی برابر با خطوط ISDN دارند. خطوط ISDN هم اکنون در سیستم های سانترال قدیمی در اکثر کسب و کارها مورد استفاده قرار می گیرد.

هرچند اگر بحث ارزیابی اقتصادی در میان باشد، پهنای باند ۶۴ کیلو بیت در هر ثانیه بعلاوه پهنای بالادستی چیزی حدود ۱۱۱ کیلوبیت در هرثانیه می شود که با محاسبه سایر فاکتور هایی که در خطوط ADSL محسوب می‌شود، رقم بالایی برای هر تماس بدست می‌آید.

این رقم زمانی بیشتر معنی پیدا می‌کند که شما بخواهید برروی خطوط استاندارد ای دی اس ال ۵ تا ۷ خط سیپ راه‌اندازی کنید. ( مخصوصا اگر خطوط ADSL شما از نوع اختصاصی نباشد‌.)

در چنین سناریوهایی است که وجود کدک‌های فشرده‌سازی مثل ILBC ( کدک مورد علاقه من )‌ یا g729 می‌تواند به صورت غیر‌قابل‌باور هزینه‌ها را سرشکن کرده و تعداد خطوط سیپ را به ۱۵ -۲۰ عدد در همان خطوط اشتراکی ADSL افزایش دهد. این کار به این معنی است که اگر شما یک کسب و کار کوچکی هستید با انجام QoS استاندارد می‌توانید با یک خط ای دی اس ال، کلیه امورات روزانه خود به همراه ۵-۱۰ تماس همزمان را در کنار هم داشته باشید.

ما در این مقاله نکات زیر را به صورت اجمالی بررسی خواهیم کرد.

1- MOS‌ چیست و چرا اهمیت دارد؟

2- چه کدکی مناسب کار ما است؟

3- نصب g729

4- نصب ILBC

5- راهنمایی ایجاد ترانک و داخلی ها

6- تست نمودن کدک‌ها

MOS‌ چیست و چرا اهمیت دارد؟

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

همه‌ی ما دنبال یک MOS عالی هستیم چرا که هیچ چیز بدتر از شنیدن گلایه همکاران از قطع و وصلی‌ها و صداهای نامناسب تماس‌ها در انتهای یک روز نیست. شخصا به دنبال دریافت کیفیت بالاتر هستم و دقیقا به همین خاطر است که روی استفاده از کدک ILBC‌ تاکید می‌کنم. در نهایت انتخاب با شماست و این شما ( یا بهتر بگویم کسی که در نهایت چک پرداخت کارمزدتان را می‌نویسد‌) هستید که باید از انتخاب‌تان شاد باشید.

چه کدکی برای من مناسب است؟

یکی از سوالات بجایی که همه از یکدیگر می پرسند همین سوال است. سوالی که باید به آن پاسخ داده شود. در زیر ما به فواید هریک از کدک‌های بالا پرداخته ایم.

مزایای ILBC

رایگان است

عموما از کد‌های منبع نصب می شود

MOS‌ بهتری نسبت به G729 دارد

 گوشی‌های متن باز نرم‌افزاری زیادی از این کدک پشتیبانی می کنند

پکت‌های از دست‌رفته نسبت به G711 , G729 بهتر مدیریت می‌شود.

 معایب ILBC

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

مزایای G729

بیشتر دستگاه های فیزیکی از این کدک پشتیبانی می کنند

 خیلی رایج‌تر از کدک ILBC‌ است.

 منابع CPU کمتری نسبت به ILBC برای کدینگ و دیکدینگ استفاده می کند لذا برای پروژه‌ها با استفاده بالا عالی است.

معایب G729

برای هر کانال هزینه دارد

لایسنسینگ جالبی! دارد

گوشی‌های نرم‌افزاری رایگان کمی از این کدک پشتیبانی می‌کنند.

هدر رفت داده‌ها در مقایسه با ILBC بیشتر است.

 ورژن‌های مختلف خیلی زیادی دارد

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

لطفا در نظر داشته باشید که قرار نیست حتما فقط و فقط از یک کدک مشخص استفاده کنید. شما می‌توانید در یک پروژه بسته به سطح مشتری یا سطح دستگاه‌های مورد استفاده از هردو کدک به صورت همزمان استفاده کنید.

نصب G729 :

در این مرحله من دست به تقلب می‌زنم و شما را به سایت دیجیوم هدایت می کنم. به قیمت حدود ۱۰ دلار برای هر تماس هم‌زمان می‌توانید از سایت دیجیوم لایسنس خریداری کنید. قطعا این مقدار پول ارزشش را برای مشتری که پهنای‌باند برایش مهم باشد را دارد.

به هرحال اگر شما ورژن رایگان این کدک را دانلود کرده‌اید فقط کافیست فایل را در مسیر /usr/lib/asterisk/modules با دسترسی ۷۵۵ و در ورژن های ۶۴ بیتی در مسیر /usr/lib64/asterisk/modules کپی کنید.

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

نصب ILBC :

ما می‌ خواهیم این کار را به شما از همان ابتدای کار به صورت کامل نشان دهیم. چقدر خوش شانس هستیم ( در ادامه حرف من را تایید خواهید کرد ) که الستیکس تک تک این مراحل را برای ما قبلا انجام داده است و اگر از سیستم الستیکس استفاده می‌کنید دیگر نیازی به این مراحل نخواهید داشت.

در قدم اول استریسک را از اینجا دانلود کنید

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

در محیط ssh دستور زیر را اجرا کنید:

tar xvzf asterisk-1.4.*.tar.gz

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

./contrib/scripts/get_ilbc_source.sh

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

هم اکنون دستور زیر را اجرا کنید :

./configure

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

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

هم اکنون فقط کافیست دستور make را اجرا کنید تا سیستم کدک ilbc را ساخته و فعال سازد.

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

تنظیم ترانک و داخلی ها

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

تنظیم ترانک :

در بخش اطلاعات peer در یکی از ترانک های سیپ یا IAX2 خطوط زیر را وارد کنید :

disallow=all
allow=g729&ilbc

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

تنظیم در داخلی ها :

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

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

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

تست کردن کدک:

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

Asterisk –r را اجرا کنید.

وقتی که تماس برقرار شده است و در حال مکالمه است دستور sip show channels را اجرا کنید.

باید پیغامی شبیه پیغام زیر را مشاهده کنید :

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

اگر در هر مرحله از این مقاله نیاز به راهنمایی دارید و یا نکته نظری را دارید می‌توانید نظرات خود را در انجمن ویپ ایران به اشتراک بگذارید.

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest

0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها