تشخیص Hang-up در Asterisk
یکی از مشکلات رایج در مراکز تلفنی که از وویپ سرور Asterisk استفاده می کنند ، عدم تشخیص قطع شدن تماس است. به این صورت که تماسی با یکی از کاربران برقرار می شود و کاربر پس از اتمام مکالمه تماس را قطع می کند ، اما سرور قطع شدن تماس را تشخیص نمی دهد. در نتیجه خط تلفن کاربر مورد نظر اشغال می ماند. در این مقاله به روش حل این مشکل و همچنین بررسی برخی از پارامترهای مربوط به آن می پردازیم.
در ابتدا نگاهی می اندازیم به نحوه تشخیص قطع شدن تماس یا همان Hang-up Detection :
سیگنال های هنگ آپ توسط اینترفیس های FXS و به منظور اطلاع قعطی تماس در سمت FXS به اینترفیس های FXO تولید می شوند. پس اگر یک FXO بخواهد قعطی تماس را به یک FXS اطلاع بدهد چگونه این کار را انجام می دهد ؟ درواقع FXO با تغییر سطح ولتاژ خود به حالت on-hook قطعی تماس را اطلاع رسانی می کند.
در مرکز تلفنی Asterisk تنظیمات Hang-up Detection در فایلی به نام chan_dahdi.conf در مسیر /etc/asterisk ذخیره می شوند. در این فایل پارامترهای متعددی نوشته شده است که تنظیمات آن ها در هر کشوری ممکن است متفاوت باشد. در ادامه توضیح مختصری درباره برخی از آن ها شرح داده شده است :
Busydetect=yes : در اینترفیس های ترانک ( FXS ) باعث می شود که تشخیص قعطی تماس و همچنین اشغالی خطوط ممکن گردد. این پارمتر listening را برای تشخیص الگوی بیپ-بیپ فعال خواهد کرد.
Busycount=6 : این پارامتر در زمانی که busydetect فعال باشد عمل می کند. کار آن به این شکل است که زمانی که busydetect الگوی اشغالی را تشخیص می دهد ، اگر الگوی بیپ-بیپ به تعدادِ مقدار تنظیم شده برای busycount رسید ، تماس را قطع شده اعلام می کند. مقدار پیش فرض آن ۳ است که می توانید برای اطمینان آن را بر روی ۶ یا ۸ تنظیم نمایید. به این معنا که بعد از دریافت مثلا ۶ الگوی اشغال تماس را قطع می کند.
Busypattern=500,500 :
با فعال شدن busydetect این پارامتر هم تاثیرگذار خواهد بود. Busypattern تعیین کننده آهنگ اِشغال است. برای مثال در بعضی از کشورها سیگنالِ بوق اشغال ۵۰۰ میلی ثانیه پخش می شود و سپس ۵۰۰ میلی ثانیه سکوت خواهد بود. ( این الگو ممکن است در هر کشوری متفاوت باشد ) اگر این مقدار تنظیم نگردد ، هر الگوی سکوت و صدایی که به صورت پشت سر هم باشد بدون توجه به مدت آن به عنوان بوق اشغال در نظر گرفته خواهد شد.
Progzone=ir : از آن جایی که این تنظیمات برای هر کشوری متفاوت است ، در این قسمت می توان با استفاد ه از مقدار دهی این پارامتر بر اساس مخفف نام هر کشور ( که برای ایران ir است ) سیستم را وادار به استفاده از تنظیمات مناسب هر کشور نماییم. در این صورت پارمتری مانند busypattern اگر از قبل تعریف نشده باشد به صورت خودکار توسط progzone معین خواهد شد.
اگر توضیحات بالا را به خاطر نسپردید و فقط به دنبال حل مشکل هستید نگران نباشید. مراحل زیر را دنبال نمایید :
از هر طریقی که احساس راحتی می کنید فایل chan_dahdi.conf را باز نمایید. ما برای این کار وارد محیط Elastix می شویم. در منوی PBX و زیر منوی Tools گزینه Asterisk File Editor را انتخاب نمایید.
از بین فایل های نمایش داده شده chan_dahdi.conf را پیدا و بر روی آن کلیک کنید. فایل مورد نظر باز خواهد شد. در قسمت آخر موارد busydetect=yes و busycount=3 را از حالت کامنت خارج نمایید. بدین صورت که علامت SemiColon را از ابتدای هر خط پاک کنید. مانند تصویر زیر :
اکنون کافی ست که دکمه Save را بزنید و با دکمه Reload Asterisk ، سرویس استریسک را دوباره بارگذاری نمایید.
سلام . ما تلفن cytco تو شرکت داریم . مشکل please hang up داره و اصلا تماسو وصل نمیکنه . چه مشکلی داره به نظر شما ؟
سلام. متاسفانه تا به حال به این مشکل برخورد نکردم.
سلام
تشکر بابت آموزش خوبتون
ولی مشکل حل نشد، البته وقتی یک SIP از IVR انتخاب میشه وبعد خط قطع میشه تشخیص میده ولی وقتی داره پیام IVR پخش میشه و خط از طرف تماس گیرنده قطع بشه اشغال میشناسه و دوباره وصل نمیشه
ممنون میشم راهنمایی کنید
سلام. ممنون که از وب سایت تک تیک بازدید می کنید.
فکر می کنم که تنظیمات الستیکس با آستریسک شما مشکلی نداشته باشه. در تنظیمات گیت وی دنبال مقداری شبیه disconnect tone بگردین و ببینین تنظیماتش چی هست. تنظیمات بعضی از کارت ها و گیت وی ها در خصوص disconnect tone مطابق ایران نیست و باید تغییرش بدید.
شاد باشید.
مطلبی که گذاشتید برای بنده خیلی مفید بود.
امیدوارم باز هم شاهد مقاله های از این دست، مثلا در مورد پارامترهای آنالوگ در سیستم ویپ (که در این مقاله هم به قسمتی از اون اشاره کردید)، پارامترهایEcho Cancel Ring Timeout، Relax DTMF، Send Caller ID After، Denoise، Echo Training، Opermode، Tone Zone و پارامترهای مربوط به کالر آی دی از قبیل موارد، زیر باشیم :
Caller ID Detection
Caller ID Signaling
Caller ID Start
CID Buffer Length
Ring Debounce
DTMF Hits Begin
DTMF Misses End
Detect Caller ID After
متشکرم
با سلام. از این که مطلب برای شما مفید بوده بسیار خوشحال هستیم. حتما در آینده نزدیک درباره مواردی که مطرح کرده اید مقاله هایی منتشر خواهیم کرد. ممنون که تک تیک را دنبال می کنید.