کاربرد کدک در مرکز تلفن ایزابل و سیستم تلفنی VOIP
در این بخش از آموزش میخواهیم در مورد Codecها صحبت کنیم. اینکه Codecها چه کاربردی در مرکز تلفن ایزابل یا به طور کلی در سیستم تلفنیهای VOIP دارند و چطور و بر چه اساسی ما باید بهترین Codec را انتخاب کنیم.
آنچه در این مقاله می خوانید:
توضیحات اولیه
تعریف کلی Codec و کاربرد آن
دوستان ابتدا یک تعریف کلی از Codec داریم و اینکه Codec چه کاری را انجام میدهد؟ زمانی که صدا بین دو مرکز یا حتی Soft phone یا IP phone میخواهد انتقال پیدا کند، وقتیکه صدا بین دوتا End Point یا بین دوتا Client میخواهد انتقال پیدا کند، این صدا هم باید فشردهسازی شود و هم تبدیل شود که این کار توسط مرکز تلفن انجام میشود.
اما با استفاده از ابزارهای Codec هست و مرکز تلفن با Codecهایی که در اختیار دارد این کار را انجام میدهد. حالا اینکه Codecها چه فرقهایی با یکدیگر دارند جلوتر در مورد آن صحبت میکنیم .
مهمترین بحث ما این است که بتوانیم بهترین Codecها را برای جایی که نیاز داریم استفاده کنیم. ما در این ویدئو میخواهیم بیشتر در مورد این موضوع صحبت کنیم.
انواع Codecها
معرفی معروفترین کدکها
ابتدا به روی One note برویم. من تصویری را از انواع Codecها در واقع Codecهایی که بیشتر استفاده میشود و یا بیشتر در مرکز تلفنها هست اینجا برای شما در نظر گرفتم.
ببینید سمت چپ اولین ستون Codec G711 هست که یکی از معروفترین Codecها هست. همچنین Codec G722 ,G729 و ILBC البته GSM هم هست. اینها Codecهای بسیار معروفی هستند و خیلی از مرکز تلفنها اینها را ساپورت میکنند. یک تفاوتهایی را با یکدیگر دارند.
من یک توضیح کلی در مورد آن میدهم بعد به سراغ مرکز تلفن ایزابل میرویم. ببینید Codec G711 یا همان Codec ELAW یا ULAW هست که میشناسیم. کدکی هست که یک پهنای باند حدودا ۶۴ کیلوبایت را اشغال میکند.
در واقع برای یک کانال صدا که میخواهد رد و بدل شود ۶۴ کیلوبایت پهنای باید را اشغال میکند. اما روی Codec G729 ببینید حدود ۸ کیلوبایت است پس پکتها فشرده شدهاند.
یعنی زمانی که یک مکالمه در مرکز تلفن ایزابل برقرار میشود در صورتیکه extention ما کدک G711 باشد حدود ۶۴ کیلوبایت یا مثلا ۶۸ کیلوبایت که این استاندارد یک مقدار متغیر است را اشغال میکند. اما اگر G729 باشد حدود ۸ کیلوبایت را اشغال میکند.
حال یک Codec معروف دیگر هم داریم ILBC که این کدک حدود ۱۶ کیلوبایت را اشغال میکند و این هم خوب است.
کاربرد بهترین نوع Codec
شاید این برایتان سوال شود که ما بهتر است از کدکی استفاده کنیم که کمترین پهنای باند را استفاده بکند قاعدتاً این در هر شبکهای بهتر است. اما بعضی جاها لازم است که شما کیفیت صدا داشته باشید.
یعنی هر چه که فشردهسازی بیشتر میشود، کیفیت صدا افت پیدا میکند این مورد را مدنظر قرار بدهید. پس ما روی Codec G711 حدوداً بهترین کیفیت صدا را داریم و روی G729 بیشترین فشردهسازی، کمترین پهنای باند مصرفی و پایینترین کیفیت صدا را نسبت به G711 داریم.
تصورتان این نباشد که اصلاً صدایی رد و بدل نمیشود یا اگر رد و بدل شود وضوحی ندارد اصلاً اینگونه نیست اما قاعدتاً کیفیت G711 را ندارد.
ILBC چیست و کاربرد آن چگونه است؟
ILBC هم یک Codec است که نسبت به G729 یک برتری دارد که ILBC رایگان است. پس G729 کدکی هست که رایگان نیست و شما نمیتوانید بر روی هر Soft Phone یا هر مرکز تلفنی راهاندازی کنید.
مثلاً مرکز تلفنهای پاناسونیک این Codec را بهصورت پیشفرض دارد و مرکز تلفن ایزابل به عنوان مثال G729 را ندارد بهدلیل اینکه رایگان نیست و نمیتواند استفاده کند.
اما جایگزین آن ILBC است پس زمانی که برای ما پهنای باند مهم باشد و بخواهیم از کدکی استفاده کنیم که کمترین پهنای باند را مصرف کند و رایگان هم باشد، پیشنهاد ما ILBC است که هم کیفیت صدای قابل قبولی دارد و هم پهنای باند کمتری را نسبت به G711 اشغال میکند و Codec G711 هم یک Codec رایگان هست که روی مرکز تلفن ایزابل بهصورت پیشفرض فعال است که جلوتر به شما نشان خواهم داد.
مصرف CPU روی مرکز تلفن
یک نکته دیگر هم هست که اینجا روی تصویر میبینید میزان مصرف منابع را به ما نشان میدهد. در اینجا CPU را ببینید ما روی G711 بر اساس فاکتوری که گفته ۰.۵ مصرف میشود. اما روی G729 ببینیدCPU 22 است یعنی تقریباً ۴۰ یا ۵۰ برابر G711 دارد CPU را مصرف میکند.
خوب دلیل این امر چیست؟ چون فشردهسازی بیشتر انجام میشود. دوستان دقت داشته باشید به نسبتی که فشردهسازی بیشتر شود میزان استفاده CPU افزایش پیدا میکند. در عین حال روی RAM خیلی تاثیرگذار نیست. یعنی CPU را بیشتر مشغول میکند.
پس این را مدنظر قرار بدهید که اگر به عنوان مثال از Codec ILBC استفاده میکنید ببینید این ۰.۵ ILBC حدود ۱۵ تا ۱۸ اینهاست. یعنی حدود سی برابرش است. اگر از Codec ILBC داریم استفاده میکنیم این را درنظر بگیرید که مصرف CPU روی مرکز تلفن ایزابل خیلی افزایش پیدا میکند و باید CPU مرکز تلفن ما قادر به تبدیل صدا باشد و بتواند این فشردهسازی را انجام دهد.
پس ما میتوانیم از این جدول چند تا نتیجهگیری کنیم. نتیجهگیری کنیم که چه موقع از چه کدکی استفاده کنیم.
بهترین زمان استفاده از Codec ILBC
در واقع ILBC کدکی هست که معمولاً ما در خارج از شبکه و روی فضای اینترنت استفاده میکنیم. چرا؟ چون پهنای باند کمی را اشغال میکند.
وقتی شما به عنوان مثال دو تا مرکز در دو فاصله مکانی دور دارید مثلاً در دو تا شهر و میخواهید این دو تا مرکز را با یکدیگر لینک کنید به شرطی که تماسها خیلی زیاد نباشد یا پهنای باندمان محدود باشد یا از اینگونه محدودیتها اگر داریم پیشنهاد میکنم از Codec ILBC استفاد کنید که مخصوصاً در فضای اینترنت با کمترین پهنای باند صدا انتقال پیدا کند.
اما باید این نکته را بدانیم که همه Soft Phone ها را ما نباید این کار را انجام بدهیم. چرا؟ چون CPU را به شدت مشغول میکند. من در ادامه در رابطه با Codecها و کاربردشان صحبت میکنم.
بهترین Codecها در شبکه داخلی و خارجی
در شبکه داخلی یعنی شبکه LAN یک مجموعه به شرط آنکه سوییچها به درستی انتخاب شده باشند و سختافزارها به درستی گزینش شده باشند، پیشنهاد ما همان کدک پیشفرض ELAW یا ULAW هست همان Codec G711 ببینید ما این Codec G711 را با ELAW یا ULAW میشناسیم.
اینکه چه تفاوتی با یکدیگر دارند میتوانید در گوگل سرچ بزنید توضیحات کامل آن هست. پس ما در شبکه داخلی سعی میکنیم که همان G711 را استفاده کنیم که کیفیت صدا به بهترین شکل انتقال پیدا کند و CPU خیلی مشغول نشود.
اما روی اکستنشنهای روی موبایل یا مرکز تلفنهایی که در خارج از شبکه داریم ارتباط میدهیم سعی میکنیم که از Codec ILBC استفاده کنیم که رایگان است. G729 هم به دلیل اینکه رایگان نیست نمیتوانیم استفاده کنیم. حال نحوه فعالسازی آن را با یکدیگر بررسی میکنیم. ببینیم نحوه فعالسازی کدکها در مرکز تلفن به چهصورتی است؟
نحوه فعالسازی Codecها در مرکز تلفن
انتخاب بهترین Codec و تنظیم آن
دوستان شما ابتدا در گام اول باید Codecهایی را که میخواهید در مرکز تلفنخود استفاده کنید را انتخاب کنید و گام دوم این است که هم باید روی Extension که روی ایزابل ساخته میشود و هم بر روی Soft Phone یا IP Phone خود نیز تنظیم کنید.
پس این سه مرحله را باید انجام دهید. مرحله اول چیست؟ اینکه ببینیم مرکز تلفن ما از چه Codecهایی پشتیبانی میکند. این خیلی راحت است اگر مرکز تلفن ایزابل مثلاً نسخه ۲۰۱۷ را دارید که اینجا نیست اما از نسخه ۲۰۲۰ و نسخههای جدید اینجا یک گزینه داریم بهنام Asterisk SIP Settings روی آن که کلیک کنیم در این قسمت که قبلاً هم در مورد آن صحبت کردیم Codec ها را به ما نشان میدهد.
ببینید Codec ULAW، GSM و ALAW که در جدول Codecها GSM هم بود که در مورد آن صحبت نکردیم. GSM حدود ۱۳ کیلوبایت پهنای باند را اشغال میکند و در عین حال برای تبدیل، بیشتر RAM یا در واقع حافظه RAM را مشغول میکند و CPU را کمتر.
این بستگی به شما دارد گاهی اوقات Soft Phone که دارید استفاده میکنید و میخواهید یک داخلی روی موبایل خود راهاندازی کنید آن Soft Phone ممکن است که ILBC و GSM را پشتیبانی نکند و شما مجبور هستید که از G711 استفاده کنید. اما اگر پشتیبانی کرد این کار را به راحتی انجام میدهید. چرا؟ چون ILBC و GSM توسط ایزابل پشتیبانی میشوند.
حال اگر خواستید ILBC را اضافه کنید در اینجا تیک آن را میزنیم و در نهایت Submit میکنیم و Apply را میزنیم. دقت کنید اینجا ILBC فعال شده است و میتوانید از ILBC استفاده کنید.
اگر برای اولین بار وارد Asterisk SIP Settings شدید حتماً این IP Configuration را روی Public IP بگذارید. اگر نگذارید امکان ذخیره را به شما نمیدهد.
اگر نسخه ۲۰۱۷ را استفاده میکنید اینجاAsterisk SIP Settings را نداریم و حتماً باید در قسمت Security گزینه Advanced Settings گزینه Enable direct access (Non-embedded) to IssabelPBX را فعال کنیم که ما این کار را از قبل انجام دادیم.
در قسمت PBX Configuration بعد گزینه Unembeded در تنظیمات PBX Setting گزینه Asterisk SIP Settings این را روی حالت Public میگذاریم. اینجا Codec را انتخاب کرده و در نهایت Submit کنیم.
پس Codecهای پیشفرض ULAW، ELAW و GSM هستند و ILBC را هم در خارج از شبکه من پیشنهاد میکنم که استفاده کنید. اگر از Soft Phone GS Wave برای راهاندازی موبایلها در خارج از شبکه استفاده میکنید بهترین گزینه همان ILBC است که GS Wave هم پشتیبانی میکند.
حال به روی مرکز تلفن ایزابل میرویم. پس اولین گام این است که ما Codecهایی را که قرار است مرکز تلفن استفاده کند را در قسمت Asterisk SIP Settings فعال کنیم. من در اینجا مراحلش را مینویسم.
خلاصه مراحل فعال کردن Codec
فعال کردن Codecهایی که در مرکز تلفن استفاده میشود شامل:
۱-فعالسازی کدکهای مرکز تلفن در قسمت Asterisk SIP Settings
۲-تنظیم کدک در Extensionها
۳-تنظیم در Client که حال ممکن است Soft Phone یا IP Phone باشد که منظور از IP Phone همان تلفن رومیزی است و Soft Phone هم روی موبایل یا روی سیستم است.
تنظیمات Codec در Extension
گام اول را انجام دادیم حال به روی Extension برویم روی مرکز ۲۰.۲۰۰ مثلاً ما یک داخلی ۵۰۰ داریم این داخلی ۵۰۰ را میتوانیم در قسمت allow کدک خود را فعال کنیم هر کدکی که نیاز داریم. یا چند Codec را باهم بنویسیم.
در قسمت disallow میتوانیم Codecها را غیرفعال کنیم یا اگر مثلاً بنویسیم all، کل Codecها را غیرفعال میکند و در قسمت allow هر کدکی را که بنویسیم همان یکی فعال میشود.
تنظیمات Codec در Extension
در واقع تنظیمات Codecها روی ترانک هم به همین صورت است. ۵۰۰ یک داخلی است و همانطور که مشاهده میکنید هیچ کدکی در قسمت disallow نوشته نشده است. آیا این بدین معناست که این هیچ کدکی را ندارد پس صدا چطور انتقال پیدا میکند و این تبدیل صدا یا فشردهسازی صدا چطور انجام میشود؟
شما اگر هیچ گزینهای را هم ننویسید یا انتخاب نکنید پیشفرض Extensionها و Trunkها و تمام بخشهای مرکز تلفن این است که از همان Codecهایی که در قسمت Asterisk SIP Settings استفاده کردیم و آنهایی را که فعال کردیم در اینجا استفاده میکند.
اگر خواستید ببینید کجاست میتوانید خیلی راحت با Putty یا نرمافزار MOBAXTERM به مرکز ۲۰.۲۰۰ وصل شوید.
نرم افزار mobaxterm / نظارت و کنترال کامپیوتر از راه دور
در قسمت log Asterisk اینجا مینویسیم Sip Show Peer یک فاصله میگذاریم یک علامت سوال که بگذاریم کل Extensionهایی را که داریم را به ما نشان میدهد.
مثلاً بنویسم ۵۰۰ یک Enter بزنم کل تنظیماتی را که روی Asterisk ما نشسته و SAVE شده را در اینجا به ما نشان میدهد. در اینجا Codecهای ULAW، GSM، ALAW و ILBC را به ما نشان میدهد که ILBC را الان فعال کردیم. پس تمام Codecهایی که آنجا فعال شده است را به ما نشان میدهد.
انتخاب Codec برای داخلی مورد نظر
حال اگر من در اینجا disallow را all بکنم و یک Enter بزنم و در نهایت Apply کنم ببینیم در اینجا چه اتفاقی میافتد؟ Codec آن کلاً پاک میشود و در واقع این داخلی در حال حاضر هیچ کدکی را پشتیبانی نمیکند. داخلیهای دیگر طبق پیشفرض خود همه Codecها را پشتیبانی میکنند. اما این داخلی هیچ کدکی را پشتیبانی نمیکند.
حال اگر من دوباره همینجا که disallow را all کردم بگویم داخلی من فقط میخواهد ILBC را پشتیبانی کند و Enter میزنم حالا Apply میکنم.
دوباره نگاه میکنیم در کدکها ILBC قرار گرفت. پس اگر خواستیم یک کدک خاصی را اجرا کنیم disallow را all میگذاریم و در قسمت allow کدک مورد نظر خود را قرار میدهیم. اما اگر خواستیم تمام Codecها را پشتیبانی کند نیازی نیست چیزی را انتخاب کنیم. در قسمت Asterisk SIP Settings که Codecهای خود را Select کردیم همان کفایت میکند.
تنظیمات Codec در Soft Phone
فعال کردن Codec روی Soft Phone
دوستان مرحله سوم روی Soft Phone است. روی گزینه Preferences مثلاً این داخلی Bria هست. هر Soft Phone دیگری هم باشد بدین صورت است. روی GS Wave که در چند ویدئوی آموزشی قبلی در مورد آن صحبت کرده بودم. File قسمت Account Setting داخلی ما را نشان میدهد.
اما در قسمت Preferences در قسمت Messaging میتوانیم تنظیمات خود Soft Phone را انجام دهیم. در قسمت Audio Codec در سمت راست Selected Codecs ها هستند یعنی کدکهایی که شما انتخاب کردهاید و کدکهایی که موجود هستند هم سمت چپ در قسمت Codecs قرار دارند.
در قسمت Selected Codecs کدکهای ILBC، G729، ULAW و ALAW را دارد پشتیبانی میکند. هر یک را که مدنظر داشته باشید میتوانید استفاده کنید.
تنظیم کردن Codec
پس ما سه مرحله کار باید انجام دهیم. Codec روی خود مرکز تلفنمان هست. اگر Codec خاصی مدنظر ما هست روی Extension هم باید تنظیمات آن را انجام دهیم و اگر روی IP Phone هم مدنظر داریم آن را هم باید نگاه کنیم و ببینیم از چه کدکی پشتیبانی میکند.
مثلاً روی GS Wave روی موبایل کاملاً مشخص است. شما میتوانید فقط R121 را فقط تیک بزنید که فقط با همان Codec صدا را انتقال بدهد و در واقع پهنای باند کمتری را برای شما در اینترنت اشغال کند.
تنظیم Codec روی ترانک
حال به روی Trunk برویم. فرض کنید یک Trunk در قسمت Trunk name با اسم ۶۷۲۴۱ بسازیم و Host= 10.105.40.30 باشد Type=Pear میتوانیم Context هم به آن بدهیم و Codec و هیچ تنظیماتی روی آن انجام نمیدهم. این را Submit میکنم و Ok میزنم و Apply میکنم.
۶۷۲۴۱ آخرین پارامتر است که اضافه شد.
با دستور ۶۷۲۴۱ Sip Show Peer میتوانم با آن ترانکی که ساختم ببینم که چه تنظیماتی روی Asterisk من قرار گرفته است. دقت کنید در قسمت پایینتر تمام کدکها را نشان میدهد و میگوید تمام کدکهایی که شما انتخاب کردید این ترانک هم میتواند استفاده کند.
حال اگر ما Trunk خاصی مدنظر داریم باید چهکار کنیم؟ دوتا در واقع دستور را باید روی Trunk خود اجرا کنیم؟ دوتا دستور چه بود؟ disallow و allow بود. روی مرکز تلفن روی Trunk خود ۶۷۲۴۱ در قسمت Peer Details مینویسیم disallow=all یعنی همه کدکها را غیر فعال کن. حالا مثلاً allow=ILBC و یک Enter میزنیم تا Submit شود و در نهایت Apply میکنیم که تنظیمات روی Asterisk قرار بگیرد.
اگر دوباره چک کنیم میبینیم که فقط کدک ILBC انتخاب شد. پس تنظیمات کدک برای ترانک با Extension کاملاً مشابه همدیگر است و برای همین است که میگویم برای تنظیمات ترانک نیازی به نوشتن کدک نیست چرا؟ چون خود ایزابل بهصورت پیشفرض G711 را پشتیبانی میکند و شما وقتی که بخواهید یک SIP Trunk راهاندازی بکنید از هر شرکتی که بگیرید معمولاً پیشفرض آنها همان G711 است و با Codec G711 صدا به راحتی انتقال پیدا میکند و نیازی به تنظیمات خاصی ندارید.
تنظیمات Codec برای دو شرکت با دو مرکز تلفن
فقط اگر دوتا شرکت هستید که دو تا مثلاً مرکز تلفن ایزابل دارد و در فاصله زیاد از هم هستند و رادیو یا MPLS یا مواردی دیگر را ندارید که کاملاً Stable باشد مجبورید که از اینترنت یا بستر اینترنت استفاده کنید و Tunnel بزنید.
در چنین مواقعی پیشنهاد من این است که روی هر دو تا ترانک هر دو مرکز تلفن ایزابل خود disallow را all بگذارید و allow را ILBC کنید.
میدانید که از قبل باید ILBC را در Asterisk SIP Setting انتخاب کنید که انتقال صدا بین این دو تا ترانک از طریق ILBC صورت بگیرد که پهنای باند کمتری را برای شما اشغال کند و روی اینترنت بتوانید صدا را بهتر انتقال دهید. کیفیت صدا یک مقداری اگر پایینتر باشد بهتر است تا کامپیوتری شود و یا کلا قطع شود.
چون ما مشکلی که در ایران روی اینترنتها داریم بحث آپلود است. ببینید شما اینترنت را از هر ISP که بگیرید دانلود خوبی به شما میدهد و سرعت دانلود نسبتاً خوبی دارید. اما آپلود خیلی پایین است. آپلود مثلا ۱۰۰، ۴۰۰،۳۰۰،۲۰۰ یا ۵۰۰ کیلوبایت به شرط اینکه اینترنت Dedicate نباشد.
معمولاً اینترنتها Dedicate نیستند و آپلود پایینی دارند. پس در چنین مواقعی که شما یک Soft Phone در خارج از شرکت دارید یا دو تا مرکز تلفن دارید که میخواهید با یکدیگر لینک کنید روی بستر اینترنت پیشنهاد من این است که کدک آنها را حتماً ILBC بگذارید که صدا با کیفیت یک مقدار پایینتر اما درست انتقال پیدا کند.
پس این کاربرد Codecها شد و یک سری نکات دیگر هم هست که در بخشهای جلوتر میتوانیم در مورد آنها صحبت کنیم. اینها مواردی است که شما باید بدانید و در پروژههای سطح بالاتر نیاز هست که کدکها را بهدرستی انتخاب کنید.
دیدگاه شما درباره این مقاله چیست ؟