در این مقاله، قصد داریم برخی از سوالات و یا مشکلات رایجی که کاربران در بکارگیری کارت های تلفنی برایشان مطرح شده و یا با آن مواجه می شوند را به صورت کاربردی و ساده پاسخ دهیم. همچنین در این راهنما سعی شده است تا تنظیمات مربوط به کارت های تلفنی از برندهای شناخته شده همچون سنگوما و اپن وکس پوشش داده شود. اگر مشکل یا سوال دیگری هست که در این لیست موفق به یافتن آن نشدید، می توانید با تیم فنی ما در میان بگذارید.
1- شماره تماس گیرنده یا Caller ID در تماس ورودی دریافت نمی شود.
- لینک PRI
2- کارت تلفنی شناسایی نمی شود.
3- کارت شناسایی می شود ولی load نمی شود.
4- خطوط آنالوگ پس از قطع مکالمه، آزاد نمی شوند و اشغال می مانند.
5- در مکالمات تلفنی اکو و برگشت صدا وجود دارد.
6- تماس ها در حین مکالمه قطع می شوند.
8- لینکE1 آپ است ولی تماس برقرار نمی شود.
9- در مکالمات تلفنی از طریق کارت، نویز وجود دارد.
10- لینک E1 به صورت مداوم up و down می شود.
11- در تماس های ورودی مشکل دریافت DTMF وجود دارد.
12- تماس خروجی از طریق لینک PRI برقرار نمی شود.
13- صدا در مکالمات بریده بریده می شود و یا به صورت رباتیک است.
14- تماس ورودی از طریق کارت انجام نمی شود.
15- تماس خروجی از طریق کارت انجام نمی شود.
راهکارهای پیشنهادی:
1- CallerID در تماس ورودی دریافت نمی شود.
- لینک PRI:
در ابتدا برای اطمینان از دریافت کالرآیدی از سمت مخابرات، در کنسول استریسک دستور زیر را اجرا کنید:
pri set debug on span x
که x عدد مربوط به شماره پورت E1 مورد نظر است.
پس از اجرای این دستور در کنسول استریسک، توجه داشته باشید که پیغام هایی که به دست سرور میرسند با علامت (>) قابل تشخیص هستند. که در صورت دریافت کالرآیدی از سمت مخابرات در جلوی عبارت calling party number شماره تماس گیرنده نوشته شده است. همانند شکل زیر:
در صورتی که کالرآیدی از سمت مخابرات دریافت می شود، تنظیمات زیر را در فایل chan_dahdi.conf اعمال کنید:
Vi/etc/asterisk/chan_dahdi.conf
و سپس مقادیر زیر را در صورتی که وجود ندارند یا مقدار دیگری دارند به صورت زیر ویرایش نمایید:
usecallerid=yes
hidecallerid=no
سپس جهت اعمال تنظیمات با تایپ دستور زیر در کنسول لینوکس، سرویس استریسک را restart نمایید.
service asterisk restart
- خطوط آنالوگ:
یکی از مشکلات رایج در بکارگیری خطوط شهری آنالوگ به همراه سیستم های ویپ، عدم تشخیص CALLERID می باشد. مهمترین علت بروز این مشکل نیز تنوع روش های ارسال کالرآیدی از سوی مخابرات می باشد که پس از بررسی نوع سیگنالینگ باید تنطیمات مربوط به cidsignaling و cidstart کانال های Dahdi را متناسب با آن ها انجام داد.
برای این کار ابتدا باید با استفاده از نرم افزار dahdi_monitor یکی از کانال های Dahdi را ضبط کنیم. در واقع با این نرم افزار می توان جریان ورودی و خروجی (RX و TX) از کانال های Dahdi را مانیتور و ضبط کرد.
قبل از شماره گیری دستور زیر را در CLI لینوکس اجرا کنید تا ضبط کانال مربوطه انجام شود:
dahdi_monitor x -r "مسیر فایل ضبط شده"
در این دستور:
X: شماره کانال مربوطه
r-: نشان دهنده جریان ورودی
t-: نشان دهنده جریان خروجی
نکته: در صورتی که خط شهری به یکی از پورت ها متصل است و شماره کانال آن را نمی دانید، می توانید به فایل زیر رفته و اطلاعات لازم را بدست آورید:
vi/etc/dahdi/system.conf
با استفاده از دستور زیر در CLI لینوکس می توانید کانال مورد نظر خود را ضبط کنید:
dahdi_monitor x -r /tmp/filename.raw
x = شماره کانال مورد نظر برای ضبط
filename = اسم فایل
پس از ضبط، می توانید فایل های ذخیره شده را با نرم افزارAdobe Audition اجرا کنید تا نوع سیگنالینگ callerid را شناسایی کنید. همچنین با استفاده از نرم افزار WinSCP می توانید فایل ذخیره شده در لینوکس را بر روی ویندوز کپی نمایید.
جهت آموزش روش تحلیل فایل ضبط شده لازم است به مقاله عیب یابی کالرآیدی مراجعه نمایید.
نکته: با تایپ دستور زیر در کنسول لینوکس می توانید مقدار rx و tx را در حین مکالمه بررسی کنید:
dahdi_monitor x –vv
2- کارت تلفنی شناسایی نمی شود.
در محیط CLI لینوکس سیستم تلفنی، دستور lspci را اجرا کنید. اگر در نتایج، نام کارت مورد نظر نمایش داده شد، بیانگر نصب درست کارت از لحاظ سخت افزاری است. در غیر این صورت کارت از لحاظ سخت افزاری به درستی نصب نشده است. بنابراین سیستم را خاموش کرده و از صحت نصب صحیح کارت تلفنی بر روی مادربورد اطمینان حاصل نمایید.
لاگ زیر حاصل دستور فوق در کنسول لینوکس و در حالتی است که سیستم کارت را شناسایی کرده است:
یکی از روش های پیشنهادی در صورت بروز این مشکل، نصب کارت بر روی یک اسلات دیگر مادربورد میباشد.
3- کارت شناسایی می شود ولی load نمی شود.
در این مورد باید از صحت نصب و کارکرد Dahdi اطمینان حاصل کنیم. همچنین درایور کارت (wanpipe) نیز باید نصب شده باشد. پس از اجرای دستور lsdahdi لیست کانال های load شده نمایش داده میشود. اما اگر هیچ چیزی را نمایش ندهد این احتمال وجود دارد که سرویس dahdi به درستی راه اندازی نشده است.
بنابراین برای راه اندازی سرویس dahdi و تنظیم خودکار کارت، دستورات زیر را به ترتیب اجرا کنید:
dahdi_genconf
dahdi_cfg -vvvv
لاگ زیر حاصل اجرای دستور فوق است:
حال سرویس Asterisk را با دستور زیر restart کنید:
service asterisk restart
اگر بعد از مراحل فوق همچنان کانال های dahdi در Asterisk بارگذاری نشده باشند، فایل chan_dahdi.conf را بررسی کنید.
این نکته را در نظر بگیرید که پارامتر [channels] در این فایل موجود باشد. همانند شکل زیر:
4- خطوط آنالوگ پس از قطع مکالمه، آزاد نمی شوند و اشغال می مانند.
برای حل این مشکل به مسیر زیر رفته و فایل Chan_dahdi.conf را ویرایش نمایید:
Vi/etc/asterisk/chan_dahdi.conf
سپس مقادیر زیر را اضافه کنید یا مقدار آن را مشابه مقادیر زیر اصلاح نمایید.
busydetect=yes
busycount=3
در پایان سرویس استریسک را مجددا راه اندازی نمایید.
در غیر این صورت می توانید با تایپ دستور زیر در کنسول استریسک، chan_dahdiرا reload کنید:
module reload chan_dahdi.so
پس از راه اندازی مجدد سرویس استریسک، اگر همچنان مشکل رفع نگردید، دو حالت وجود خواهد داشت:
• busypattern متفاوت است: در این حالت باید مقدار busypattern را تغییر داد.
busypattern=0,0
• gain دریافتی ضعیف است: در این حالت باید مقدار rxgain را بیشتر کرد. این نکته نیز قابل ذکر است که در صورت استفاده از فکس، مقدار rxgain و txgain را به مقدار قابل توجهی تغییر ندهید، زیرا احتمال بروز مشکل در دریافت و ارسال فکس بالا می رود.
5- در مکالمات تلفنی اکو و برگشت صدا وجود دارد.
برای حل این مشکل به مسیر زیر رفته و تنظیمات زیر را اعمال کنید:
Vi/etc/asterisk/chan_dahdi.conf
echocancel=yes
echotraining=800
در صورت برطرف نشدن مشکل می توانید بجای مقدار yes در پارامتر echocancel عدد 512 را قرار داد.
همچنین می توانید بررسی کنید که تنظیم اکوکنسلر سخت افزاری برای پورت های مد نظر در حالت yes باشد:
برای مثال برای تنظیم و اطلاع از تنظیمات پورت شماره 1 به مسیر زیر می رویم:
vi/etc/wanpipe/wanpipe1.conf
TDMV_HWEC = YES
سپس با تایپ دستور زیر در کنسول لینوکس، سرویس استریسک را restart کنید:
service asterisk restart
6- تماس ها در حین مکالمه قطع می شوند.
در کنسول لینوکس به آدرس زیر بروید و فایل را ویرایش نمایید:
Vi/etc/asterisk/chan_dahdi.conf
سپس مقادیر زیر را Set کنید:
busydetect=yes
busycount=8
تنظیمات اعمال شده را ذخیره و Asterisk را Restart کنید.
در غیر این صورت می توانید با تایپ دستور زیر در کنسول استریسک، chan_dahdi را reload کنید:
module reload chan_dahdi.so
7- لینک E1، آپ (UP) نمی شود.
برای کارت های سنگوما می بایست موارد زیر بررسی گردد:
- صحت کابل
- مقدار Rx که با دستور زیر در کنسول لینوکس بررسی می شود:
wanpipemon -i w1g1 -c Ta
و مقدار صحیح آن (2.5db-) است. هر مقدار دیگری غیر از این عدد به معنی وجود مشکل بر روی خط است. برخی از مقادیر به شرح زیر می باشند:
• عدد بین (10db-) تا (20db-) که بیانگر مشکلات مربوط به کابل است.
• عدد 44db- که به معنی عدم وجود پاور بر روی خط است.
- تنظیمات مربوط به CRC4 را در دو آدرس زیر بررسی کنید:
• etc/asterisk/system.conf/
در این مسیر باید در آخر هر سطر از span عبارت CRC4 تایپ گردد.
• etc/asterisk/wanpipe(x).conf/ (مقدار x به معنی شماره پورت مورد نظر می باشد)
مثال: wanpipe1.conf:
در این مسیر باید تنظیم زیر را اعمال و ذخیره کنید:
FE_FRAME = CRC4
در آخر سرویس استریسک را restart کنید.
• نکته: دستور wanpipemon مختص به کارت های سنگوما می باشد. بنابراین برای اطلاع از پارامترهای گفته شده در بالا، در کارت های openvox و Digium لازم است تا از طریق دستورات زیر ابزار مورد نظر را کامپایل کنید:
gcc dahdi_pri.c -o dahdi_pri
و به صورت زیر اجرا کنید:
./dahdi_pri -s 1
شما میتوانید با گزینه s- شماره span مورد نظر خود را وارد کنید.
8- لینک E1 آپ (UP) است ولی تماس برقرار نمی شود.
می بایست کانال مربوط به Signaling لینک E1 بررسی گردد. در کنسول لینوکس به آدرس زیر بروید:
vi/etc/asterisk/system.conf
بررسی کنید که پارامتر hardhdlc برای هر پورت، برابر با مقدار پیش فرض کانال سیگنالینگ برای همان پورت می باشد. به طور مثال کانال سیگنالینگ برای پورت شماره ی یک از کارت Sangoma A102 برابر با hardhdlc=16 می باشد.
9- در مکالمات تلفنی از طریق کارت، نویز وجود دارد.
مشکل overrun:
اغلب مشکلات مربوط به پایین بودن کیفیت صدا در کارتهای تلفنی به دلیل وجود overrun در کارت میباشد. دو دلیل که باعث overrun می شود shared IRQ و Disk activity میباشد. برای اینکه از وجود overrun در کارت خود مطمئن شوید در کارت های Sangoma شما میتوانید با زدن دستور:
watch -d -n 0.5 ifconfig
به دنبال overrun، در کارت خود که به صورت w1g1 نشان داده میشود بگردید، اگر مقدار overrun رو به افزایش بود، یعنی شما بر روی کارت overrun دارید.
توجه کنید مقدار overrun هنگام up شدن کارت به وجود میآید که مشکلی ندارد فقط مقدار آن نباید رو به افزایش باشد که شما میتوانید با چند بار زدن دستور ifconfig از افزایش آن مطمئن شوید.
برای کارت های openvox نیز میتوانید بعد از اجرای دستور dmesg، در خروجی آن به دنیال overrun بگردید:
dmesg | grep -i overrun
اگر خروجی همانند زیر دیدید در واقع نشان دهنده overrun بر روی کارت openvox می باشد:
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
اگر از هارد sata استفاده میکنید دستور زیر را اجرا نمایید:
و اگر از هارد IDE استفاده میکنید دستور زیر را اجرا کنید:
hdparm -t /dev/hda
اگر تمامی تستهای بالا با موفقیت انجام شد مطمئن شوید acpi در سیستم شما فعال نباشد. acpi باعث میشود تا از عملکرد کامل pci شما جلوگیری شود. برای این کار دستور زیر را اجرا کنید اگر خروجی عددی غیر از صفر بود آن گاه acpi در سیستم شما فعال است.
cat /proc/interrupts | grep -c acpi
برای غیر فعال کردن آن در مسیر زیر باید acpi=off قرار بگیرد :
vi/boot/grub2/grub.cfg
acpi=off
10- لینک E1 به صورت مداوم up و down می شود.
این مشکل میتواند دو علت رایج داشته باشد.
1- مشکلات فیزیکی شبکه، شامل: سوکت، کابل و مودم
2 - مشکلات مربوط به clock mode:
همیشه باید کلاک لینک E1 بر روی حالت normal کانفیگ شود چرا که همواره طرفmaster مخابرات است. برای این منظور به مسیر زیر رفته و TE_CLOCK= NORMAL را تنظیم کنید:
(عدد 1 در کنار عبارت wanpipe بیانگر شماره پورت کارت می باشد که در اینجا wanpipe1 به معنی تنظیمات برای پورت شماره 1 است):
vi/etc/wanpipe/wanpipe1.conf
TE_CLOCK= NORMAL
سپس در کنسول لینوکس دستور زیر را تایپ کنید:
wanrouter restart
11- در تماس های ورودی مشکل دریافت DTMF وجود دارد.
به مسیر زیر رفته و تنظیمات را اعمال کنید:
vi/etc/asterisk/chan_dahdi.conf
relaxdtmf=yes
همچنین می توانید مقدار rx gain و tx gain را همانند مقدار زیر تعریف کنید:
تغییرات را ذخیره و سپس با تایپ دستور زیر در CLI استریسک chan_dahdi را reload کنید:
module reload chan_dahdi.so
12- تماس خروجی از طریق لینک PRI برقرار نمی شود.
این مشکل غالبا دو علت دارد:
1- تعریف نادرست outbound rout و trunk مناسب
2- یک طرفه بودن لینک از سمت مخابرات
به ترتیب تنطیمات زیر را چک کنید:
• تنظیمات گروه مربوط به پورت E1 را بررسی کنید.
• در قسمت Dahdi setting نوع گروه را مشخص کنید.
• در قسمت outbound rout پس از تعیین dial pattern، در قسمت Trunk Sequence for Matched Routes، اسم ترانکی که تعریف کرده اید را قرار دهید.
پس از آن یک تماس ایجاد کرده و log استریسک را از طریق کنسول بررسی کنید.
برای مثال لاگ زیر، یک تماس خروجی را نشان می دهد که از کانال Dahdi و گروه g1 خارج شده است.
13- صدا در مکالمات بریده بریده می شود و یا به صورت رباتیک است.
این مشکل غالبا در کارت های آنالوگ رخ می دهد و علت آن می تواند موارد زیر باشد:
- Load بر روی سیستم که باعث اشغال شدن CPU شده است.
- Overrun: ناسازگاری کارت با سخت افزار و یا Chipset مادربرد
همچین با تایپ دستور زیر در لینوکس می توانید ولتاژ بر روی هر پورت از کارت آنالوگ را بررسی کنید (x شماره پورت مورد نظر است):
wanpipemon -i w1g1 -c astats -m X
ولتاژ مناسب بر روی هر پورت برابر با 47 ولت است. هر عددی جز این مقدار مثل 3 ولت یا 70 ولت به معنی وجود مشکل بر بستر ارتباط فیزیکی کارت (کابل) است.
14- تماس ورودی از طریق کارت انجام نمی شود.
تنظیمات inbound rout و context چک شود. همچنین می توانید از طریق کنسول استریسک از ورود مکالمه به سیستم اطمینان حاصل کنید.
15- تماس خروجی از طریق کارت انجام نمی شود.
تنظیمات outbound rout و trunk چک شود.
به ترتیب تنطیمات زیر را چک کنید:
• تنظیم گروه ماژول های FXO (یا E1): به مسیر زیر رفته و گروه های هریک از ماژول های FXO را بررسی کنید. توجه داشته باشید اگر کارت دیگری در سرور دارید، هم گروه با چنل دیگری از آن کارت نباشد.
vi/etc/asterisk/chan_dahdi.conf
تنظیمات را ذخیره و در کنسول لینوکس دستورات زیر را به ترتیب اجرا کنید:
service asterisk stop
wanrouter restart
service asterisk start
• تنظیم مربوط به Dahdi trunk را در FreePBX یا ایزابل چک کنید. در قسمت Dahdi setting نوع گروه را مشخص کنید.
• در قسمت outbound rout پس از تعیین dial pattern، در قسمت Trunk Sequence for Matched Routes، اسم ترانکی که تعریف کرده اید را قرار دهید.
و باز هم مثل همیشه، تنها چراغ راه حل مشکلات، log های استریسک می باشند. پس کنسول استریسک یا فایل لاگ full را از مسیر var/log/asterisk/ چک کنید.