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

مشکل عدم شناسایی کارت تلفنی

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

در غیر این صورت کارت تلفنی از نظر سخت افزاری به درستی نصب نشده است. لازم است سیستم را خاموش نموده، و از صحت نصب کارت بر روی مادربورد آگاه شوید. می توانید برای ان روند از لاگ زیر استفاده کنید: 

از سوی دیگر می توانید کارت را بر روی یک اسلاید دیگر مادربورد نصب نمایید. تا این مشکل برطرف شود. 

مشکل عدم دریافت Caller ID در تماس ورودی

دومین مورد از مشکلات کارت های تلفنی، دریافت نشدن کالر آی دی در تماس های ورودی می باشد. 

  • لینک PRI :

برای اطمینان از دریافت کالر آیدی از سوی مخابرات، می توانید در لینک PRI، دستور زیر را در کنسول استریسک اجرا نمایید: 

pri set debug on span x

که در این بخش منظور از X، همان شماره پورت E1 می باشد. پس از آن که این دستور را در کنسول استریسک اجرا نمودید، می توانید شاهد پیغام هایی از سوی سرور با علامت ( <) باشید. در حالی که اگر از سوی مخابرات کلرایدی دریافت نمایید، می توانید مقابل عبارت  calling party number شماره تماس گیرنده را مشاهده نمایید. همچون تصویر زیر:

اگر Caller Id را از سوی مخابرات دریافت نمودید، بهتر است در فایل  chan_dahdi.conf، تنظیمات زیر را اعمال کنید: 

Vi/etc/asterisk/chan_dahdi.conf

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

hidecallerid=no

usecallerid=yes

پس از آن برای اعمال کردن تنظیمات، اقدام به ری استارت سرویس استریسک نمایید. 

service asterisk restart

  • خطوط آنالوگ :

افرادی که دوره های آموزش کار با کارت های تلفنی را گذرانده اند، می توانند بسیاری از مشکلات کارت تلفنی را برطرف نمایند. یکی از رایج ترین مشکلاتی که بر روی خطوط آنالوگ شهری، که از سیستم ویپ برخوردار هستند، به وجود می آید، عدم تشخیص Caller Id است. 

علت بروز این مشکل، در واقع تنوع روش هایی است که مخابرات برای ارسال کالرآیدی در نظر می گیرد. لازم است برای برطرف کردن این مشکل، ابتدا نوع سیگنالینگ بررسی شود و سپس بر روی cidsignaling و cidstart کانال های Dahdi تنظیماتی انجام شود. 

برای این کار بهتر است از نرم افزار dahdi_monitor بر روی یکی از کانال ها استفاده شود. می توان با استفاده از این نرم افزار،  ورودی ها و خروجی ها را از مانیتور کانال ها ضبط نمود. پیش از ان که اقدام به شماره گیری نمایید، در محیط CLI لینوکس کارت تلفنی بهتر است این تنظیمات اجرا شود. 

"مسیر فایل ضبط شده"dahdi_monitor x -r 

در این مسیر منظور از –R، جریان ورودی، -T، جریان خروجی و X، شماره کانال مربوطه می باشد. این نکته را در نظر داشته باشید که، اگر خط شهری به پورتی متصل باشد که شماره کانال آن در اختیار شما نیست، می توانید اطلاعات لازم را از طریق فایل زیر بدست آورید:

vi/etc/dahdi/system.conf

از سوی دیگر نیز می توانید این دستور را بر روی محیط لینوکس کارت تلفنی خود اعمال نموده، و اقدام به ضبط کانال مورد نظر خود نمایید:

dahdi_monitor x -r /tmp/filename.raw

در این فایل منظور از X، همان شماره کانال مورد نظر جهت ضبط می باشد. 

پس از آن که فایل های مورد نظر خود را ضبط نمودید، می توانید آنها را با استفاده از نرم افزار Adobe Audition اجرا نمایید.بر روی این نرم افزار نوع سیگنالینگ ها نیز قابل شناسایی می باشد. از سوی دیگر می توانید با استفاده از نرم افزار WinSCP، فایل ذخیره شده در لینوکس کارت تلفنی را بر روی ویندوز نیز کپی نمایید. 

این نکته را در نظر داشته باشید که با تایپ دستور زیر، می توانید در حین مکالمه مقدار rx , tx را به دست آورید:

dahdi_monitor x –vv

مشکل شناسایی کارت تلفنی اما عدم لود شدن

در این مورد از مشکلات، لازم است ابتدا اطمینان حاصل کنید که Dahdi به درستی نصب شده است یا خیر. علاوه بر آن درایور کارت نیز باید به درستی نصب شده باشد. پس از آن می توانید دستور lsdahdi را اجرا نموده، و کانال های لود شده را مشاهده کنید. 

اما در صورتی که هیچ چیزی برای شما به نمایش در نیابد، ممکن است سرویس Dahdi به درستی نصب و راه اندازی نشده باشد. پس برای تنظیم این سیستم بهتر است از دستورات خودکار کارت تلفنی استفاده کنید:

dahdi_cfg –vvvv

dahdi_genconf

پس از اجرای این دستورات، می توانید به لاگ زیر دست یابید: 

پس از آن نیز اقدام به ری استارت سرویس Asterisk کنید:

service asterisk restart

در صورتی که پس از طی کردن تمامی این مراحل باز هم کانال ها بارگذاری نشدند، بهتر است اقدام به بررسی فایل chan_dahdi.conf نمایید. این نکته را نیز مد نظر داشته باشید، که در این فایل پارامتر channels وجود دارد. همچون تصویر زیر:

مشکل اکو و برگشت صدا در مکالمات تلفنی

در صورتی که با چنین مشکلی مواجه شدید، بهتر است تنظیمات زیر را انجام دهید:

Vi/etc/asterisk/chan_dahdi.conf

echo training=800

echo cancel=yes

اگر مشکل باز هم برطرف نشد، می توانی به جای yes عدد 512 قرار دهید. از سوی دیگر نیز می توانید اقدام به بررسی تنظیمات اکو کنسلر سخت افزاری بر روی پورت های مورد نظر نمایید. پورت هایی که در حالت yes می باشند. برای نمونه می توانید به تنظیمات پورت 1 بروید. 

vi/etc/wanpipe/wanpipe1.conf

TDMV_HWEC = YES

پس از تایپ کردن تمامی این موارد، در کنسول لینوکس کارت تلفنی، اقدام به ری استارت سرویس استریسک خود نمایید. 

مشکل اشغال ماندن و آزاد نشدن خطوط آنالوگ پس از قطع مکالمه

یکی دیگر از مشکلات کارت تلفنی، اشغال ماندن خطوط آنالوگ می باشد. در حالی که تماس قطع شده است. برای برطرف کردن این مشکل لازم است از مسیر زیر وارد  فایل Chan_dahdi.conf  شده و اقدام نمایید: 

Vi/etc/asterisk/chan_dahdi.conf

پس از آن مقادیر را اصلاح یا اضافه نمایید:

busycount=3

busydetect=yes

در پایان تنظیمات نیز، اقدام به راه اندازی مجدد سرویس استریسک نمایید. در غیر این صورت می توانید دستور زیر را در کنسول استریسک تایپ کنید:

module reload chan_dahdi.so

در صورتی که پس از ریستارت مشکل کارت تلفنی برطرف نشد، Gain دریافتی ضعیف می باشد که در این حالت لازم است مقدار rxgain را افزایش دهید. این نکته را در نظر داشته باشید که در زمان استفاده از rxgain و txgain سعی کنید مقدار آنها را زیاد تغییر ندهید. زیرا این مسئله در ارسال و دریافت فکس مشکلاتی را به بار می اورد. 

مشکل قطع شدن تماس ها در حین مکالمه

برای برطرف کردن این مشکل کارت تلفنی می توانید از طریق فایل زیر اقدام نموده و به آدرس زیر بروید:

Vi/etc/asterisk/chan_dahdi.conf

پس از آن مقادیر را تغییر دهید: 

busy count=8

busydetect=yes

با ذخیره کردن تغییرات، سیستم را ریستارت کنید. می توانید به جای این کار دستور زیر را در کنسول استریسک نیز تایپ نمایید:

module reload chan_dahdi.so

مشکل آپ بودن لینک E1، عدم برقراری تماس

برای برطرف کردن این مشکل کارت تلفنی باید کانال مربوط به Signaling را بر روی لینک E1 بررسی نمایید. می توانید برای انجام این کار به آدرس زیر مراجعه نمایید:

vi/etc/asterisk/system.conf

حتما بررسی نمایید که پارامتر hardhdlc بر روی پورت ها با مقدار پیش فرض کانال سیگنالینگ برابر باشد. مثلا اگر بر روی کانال سیگنالینگ پورت شماره یک برابر با hardhdlc=16 باشد، باید این میزان بر روی پورت دیگر نیز برابر با این پورت باشد. 

مشکل آپ نشدن لینک E1

بر روی کارت تلفنی های سنگوما، در صورت بروز چنین مشکلی باید موارد زیر را بررسی کرد: 

  • بررسی مقدار Rx      در کنسول لینوکس طبق دستور زیر:

wanpipemon -i w1g1 -c Ta

مقدار صحیح ان باید آن (2.5db-) باشد. در صورتی که عددی غیر از این به وجود آید، مشکل بر روی خط ایجاد می شود.

  • صحبت کابل ها
  • مشکل بر روی کابل در صورتی که عدد بین (10 db-)تا (20 db-) باشد.
  • تنظیمات مربوط به CRC4 که بر روی دو آدرس زیر باید بررسی شود:

etc/asterisk/system.conf/

etc/asterisk/wanpipe(x).conf/ (مقدار x به معنی شماره پورت است)

در آدرس اول باید span تایپ شود. در آدرس دوم نیز تنظیمات باید چنین اعمال شود: 

FE_FRAME = CRC4

در نهایت نیز تمامی تنظیمات ذخیره شده و سیستم ریستارت شود. 

این نکته را در نظر داشته باشید که دستور wanpipe mon مربوط به کارت تلفنی های سنگوما می باشد. پس برای این که از پارامتر های بالا اطلاعات کسب کنید، لازم است از دستورات زیر بر روی کارت های openvox و Digium استفاده نمایید:

gcc dahdi_pri.c -o dahdi_pri

نحوه اجرای آن نیز به این صورت است: 

./dahdi_pri -s 1

می توانید شماره span را در قسمت –s در نظر بگیرید. 

مشکل ایجاد نویز در مکالمات تلفنی از طریق کارت تلفنی

بروز مشکل overrun:

در چنین حالتی که کیفیت صدا بر روی کارت های تلفنی پایین است، مربوط به مشکل overrun می باشد. دو دلیل وجود دارد این که این مشکل ایجاد می شود. برای آن که از وجود چنین مشکلی بر روی کارت تلفنی سنگومای خود اطمینان حاصل نمایید، می توانید دستور زیر را اجرا کنید:

watch -d -n 0.5 ifconfig

بر روی این سیستم w1g1 را بیابید. اگر مقدار آن افزایش می باشد، یعنی کارت overrun دارای مشکل است. 

 

این نکته را در نظر داشته باشید که با آپ شدن کارت تلفنی مقدار overrun مشخص می شود. نباید مقدار این کارت افزایشی باشد. برای اطمینان از افزایش آن می توانید دستور ifconfig را بزنید.برای کارت های openvox نیز لازم است دستور dmesg را اجرا نموده، و در قسمت خروجی آن به دنبال مشکل باشید. 

dmesg | grep -i overrun

در صورتی که خروجی را همچون معادل زیر مشاهده کردید، نشان دهنده کارت overrun می باشد. 

dahdi: HDLC Receiver overrun on channel TE4/0/1/16 (master=TE4/0/1/16)

بروز مشکل Hard Disk:

برای بررسی این مشکل، ابتدا باید خروجی دستورات زیر را بررسی کنید. نباید این عدد بالاتر از 40 mb/sec باشد. پکیج hdparm را بر روی کارت تلفنی لینوکس نصب نمایید. 

rpm -qa | grep hdparm

در غیر اینصورت می توانید از دستور زیر استفاده کنید. 

yum install hdparm

در صورتی که از هارد ساتا استفاده می کنید، بهتر است دستور زیر را اجرا نمایید:

و در صورت استفاده از هارد IDE، بهتر است از دستور زیر استفاده کنید:

hdparm -t /dev/hda

اگر تمامی تست های بالا را با موفقیت انجام دهید، می توانید از عدم فعال بودن acpi در سیستم خود اطمینان حاصل نمایید. زیرا این برنامه منجر می شود تا عملکرد کارت تلفنی دچار مشکل شود. برای انجام این فرایند بهتر است دستور زیر از اجرا نمایید. 

cat /proc/interrupts | grep -c acpi

در صورتی که خروجی  این سیستم عددی غیر از صفر باشد، acpi بر روی سیستم شما فعال می باشد. 

برای غیر فعال نمودن آن دستور زیر را اجرا کنید:

vi/boot/grub2/grub.cfg

acpi=off

 مشکل دریافت DTMF در تماس های ورودی

برای برطرف کردن این مشکل باید مراحل زیر را طی کنید. 

vi/etc/asterisk/chan_dahdi.conf

relaxdtmf=yes

علاوه بر آن نیز باید مقدار rxgain و txgain صفر باشند. همچون تصویر زیر: 

پس از ذخیره نمودن تغییرات سیستم استریسک را ریستارت نمایید.

module reload chan_dahdi.so

 Down و Up شدن لینک E1 به صورت مداوم

اصولا این مشکل بر روی کارت تلفنی به دو دلیل ایجاد می شود:

  • مشکلات فیزیکی شبکه، از جمله کابل، مودم، سوکت و ...
  • مشکلات مربوط به clock mode

همیشه باید کلاک لینک ای1 در حالت نرمال باشد. زیر این لینک مربوط به مخابرات می باشد. می توانید وارد مسیر زیر شوید، و تنظیمات لازم را بر روی این قسمت انجام دهید. TECLOCK= NORMAL

عدد 1 در این دستور در واقع بیانگر شماره پورت کارت است. در این دستور منظور از wanpipe1، تنظیمات مربوط به پورت شماره 1 می باشد:

vi/etc/wanpipe/wanpipe1.conf

TE_CLOCK= NORMAL

پس از آن نیز بهتر است در کنسول لینوکس دستور زیر را تایپ نمایید:

wanrouter restart

مشکل عدم برقراری تماس خروجی از طریق لینک PRI

این مشکل بر روی کارت تلفنی اصولا به دو دلیل ایجاد می شود:

  • یک طرفه بودن لینک از سوی مخابرات
  • تعریف مناسب trunk و نادرست outbound route

برای برطرف کردن این مشکل می توانید تنظیمات مربوط به پورت E1 را بررسی نمایید یا نوع گروه را در قسمت Dahdi setting مشخص کنید. یا در قسمت outbound route نام ترانکی که تعریف کرده اید را قرار دهید. برای این کار باید به قسمت Trunk Sequence for Matched Routes روید. 

در انتها تماسی برقرار نمایید، و لاگ استریسک کارت تلفنی را با استفاده از کنسول بررس نمایید. طبق تصویر زیر می توانید لاگ یک تماس خروجی را مشاهده کنید که از کانال Dahdi و گروه G1 خارج گردیده است.

مشکل عدم برقراری تماس ورودی از طریق کارت تلفنی

در مواجهه با این مشکل باید تنظیمات inbound route و context بررسی شوند. علاوه بر آن نیز می توانید از طریق کنسول استریسک، ورود تماس به سیستم را شناسایی نمایید. 

مشکل بریده بریده شدن یا رباتیک شدن صدا در مکالمات

این مشکل اصولا بر روی کارت تلفنی آنالوگ ایجاد می شود و دو دلیل دارد:

  • Overrun: که نوعی ناسازگاری بین مادربرد Chipset و کارت با سخت افزار می باشد.
  • مشکل در Load که منجر به بروی اشغالی در CPU می شود.

می توانید با تایپ دستور زیر در لینوکس، ولتاژ پورت را بر روی کارت تلفنی آنالوگ بررسی کنید. در این دستور منظور از x شماره پورت می باشد. 

wanpipemon -i w1g1 -c astats -m X

ولتاژ مناسب برای هر پارت، 47 ولت می باشد. هر عدد دیگری غیر از این مقدار، دلیل بر وجود مشکل در بستر ارتباط فیزیکی کابل می باشد. 

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

در نهایت باید به یکی دیگر از مشکلات کارت تلفنی اشاره نماییم. که برای بررسی آن لازم است تنظیمات outbound route و trunk چک شوند. 

می توانید ابتدا گروه ماژول های FXO را تنظیم نمایید. برای این کار مسیر زیر را در نظر گرفته و تمامی این ماژول ها را بررسی نمایید. این نکته را در نظر داشته باشید که اگر از کارت دیگری بر روی سرور استفاده می کنید، نباید این کارت با چنل دیگری هم گروه باشد. 

vi/etc/asterisk/chan_dahdi.conf

پس از ذخیره نمودن تنظیمات در کنسول لینوکس، دستورات زیر را به ترتیب انجام دهید.

service asterisk stop

wanrouter restart

service asterisk start

در مشکل بعدی می توانیم به سراغ تنظیمات Dahdi trunk روید. تا ایزابل را چک کنید و نوع گروه را در Dahdi setting قسمت مشخص نمایید. 

در قسمت outbound route نیز می توانید اسم ترانکی که تعریف نموده اید را قرار دهید. البته پس از تعیین dial pattern در قسمت Trunk Sequence for Matched Routes.

در نهایت نیز بهترین روش حل کردن مشکل، لاگ های استریسک هستند. پس لازم است فایل لاگ یا کنسول استریسک را از طریق مسیر زیر بررسی نمایید:

var/log/asterisk