عیب یابی در FreePBX

توسط: ویپ بلاگ|آخرین به روز رسانی: 1398/02/06
به اشتراک گذاری در:

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

نرم افزار تلفنی متن باز استریسک و پوسته ی مدیریتی آن یعنی FreePBX هم از این قائده مستثنی نبوده و نیاز است تا با روش های صحیح debug آن ها آشنا شوید. در ادامه، مشکلات رایجی که کاربران ممکن است با آن ها مواجه شوند و روش های عیب یابی آن ها را بررسی می کنیم.

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

۱- «عدم رجیستر شدن تلفن»

برای اکثر کاربران پیش می آید که پس از تعریف داخلی های مورد نظر با مشکل عدم رجیستر IPPhone مواجه می شوند. برای بررسی دقیق تر مشکل نیاز است ابتدا برخی موارد در FreePBX بررسی شده و سپس برای بررسی دقیق تر به محیط cli استریسک وارد شوید.

توجه: از طریق بخش reports و سپس Asterisk Logfiles نیز می توانید به لاگ های استریسک از طریق محیط وب دسترسی داشته باشید.

  اشتباه وارد کردن پورت SIP

 در FreePBX از نسخه ۱۳ به بعد، PJSIP به عنوان یک پیاده سازی جدید برای پروتکل SIP نیز پشتیبانی می شود و به همین دلیل پورت پیش فرض ۵۰۶۰ که معمولا برای chan_SIP بکار می رفت، برای PJSIP در نظر گرفته شده و پورت ۵۱۶۰ برای chan_SIP مورد استفاده قرار می گیرد. به همین دلیل باید توجه داشت اگر Extension یا داخلی هایی از نوع chan_SIP ساخته می شود، پورت مربوطه در تنظیمات تلفن، ۵۱۶۰ به جای ۵۰۶۰ وارد شود.

توجه: پس از ورود به منوی Dashboard در بخش System Overview می توان اعلان مربوط به پورت های SIP را مشاهده کرد.

نکته: می توان از منوی Settings و بخش Asterisk SIP Settings پورت های پیش فرض برای SIP را تغییر داد.

  اشتباه بودن کلمه عبور

برای بررسی این مورد باید به محیط cli وارد شده و با استفاده از دستور asterisk –r وارد محیط استریسک شوید. در محیط استریسک با استفاده از دستور core show verbose 10 ابتدا میزان نمایش لاگ ها را افزایش داده و سپس اقدام به بررسی لاگ هایی که ثبت می شود، نمایید.

در تصویر زیر ۲ لاگ مربوط به chan_PJSIP  و chan_SIP مشاهده می شود، که هر دو به مشکل عدم صحیح بودن کلمه عبور و در نتیجه عدم امکان Authenticate برای داخلی مورد نظر اشاره دارند.

 فعال سازی SIP Debugging:

 برای بررسی پیام هایی مربوط به پروتکل SIP که ارسال و دریافت می شوند، باید Debug مربوطه را در محیط CLI Asterisk فعال نمود.

برای فعالسازی chan_SIP Debug به صورت کلی از دستور زیر استفاده می کنیم:

Sip set debug on

برای فعالسازی Sip Debug فقط برای یک IP  خاص از دستور زیر استفاده می کنیم (آدرس IP مربوط به داخلی مورد نظر را به جای IP زیر جایگزین کنید):

Sip set debug ip 192.168.1.1

برای فعالسازی Sip Debug فقط برای یک Peer خاص از دستور زیر استفاده می کنیم (در اینجا peer ما دستگاه vega50 می باشد که با همین نام ترانک تعریف شده است):

Sip set debug peer vega50

در نهایت برای غیر فعال کردن SIP Debug  از دستور زیر استفاده می کنیم:

Sip set debug off

برای مثال در تصویر زیر بررسی wrong password به همراه پیام های SIP بررسی شده است:

 برای فعالسازی chan_PJSIP Debug نیز به صورت زیر عمل می کنیم:

Pjsip set logger on

برای فعالسازی PJSIP Debug فقط برای یک IP  خاص از دستور زیر استفاده می کنیم (آدرس IP مربوط به خود را به جای IP زیر جایگزین کنید):

Pjsip set logger host 192.168.1.1

در نهایت برای غیر فعال کردن PJSIP Debug  از دستور زیر استفاده می کنیم:

PJSIP set logger off

همچنین در تصویر زیر wrong password به همراه پیام PJSIP بررسی شده است.

۲- «عدم برقراری ارتباط از طریق Trunk»

 اشتباه بودن اطلاعات مربوط به authentication

مانند مشکل قبل برای عدم برقراری ارتباط ترانک هم می توان عیب یابی را با بررسی اطلاعاتی مانند username و password شروع کرد که برای این کار مجددا وارد محیطAstrerisk CLI  شده و اقدام به بررسی لاگ ها نمایید.

نکته: به دلیل اینکه در محیط Asterisk CLI تمامی لاگ های مربوط به استریسک در حال نمایش دادن می باشند، ممکن است پیدا کردن لاگ های مربوط به مشکل فعلی قدری سخت باشد؛ برای رفع این مشکل میتوان Debug را برای IP خاص یا Peer خاصی فعال کرد تا در حد امکان نمایش لاگ های دیگر را به حد اقل رساند. به عنوان مثال اگر یک ترانک (از نوع pjsip) برای ارتباط FreePBX و گیت وی Sangoma Vega50 تعریف کرده ایم و ارتباط ترانک بین این دو برقرار نمی شود، جهت بررسی دقیق تر می توان با دستور pjsip set logger host “Vega IP Address” فقط Debug را برای پیام هایی که از سمت دستگاه گیت وی دریافت می شود فعال کرده و راحت تر اقدام به بررسی لاگ ها کنیم.

اشتباه بودن پورت های پیش فرض SIP

از دلایل دیگری که برای عدم برقراری ارتباط ترانک می توان اشاره کرد، مشکل اشتباه بودن Port می باشد که در قسمت بخش شرح داده شد. در صورتی که ترانک داخل FreePBX از نوع chan_sip باشد باید داخل تنظیمات گیت وی از پورت ۵۱۶۰ استفاده نمایید.

 قرار گرفتن آدرس IP در لیست سیاه 

از دیگر مشکلات رایجی که برای عدم برقراری ترانک می توان به آن توجه داشت، مشکل Block شدن یا همان Ban شدن آی پی peer توسط IDS یا همان سرویس Fail2ban سیستم تلفنی FreePBX می باشد. برای بررسی این موضوع از محیط گرافیکی FreePBX وارد مسیر زیر شوید:

Admin >System Admin >Intrusion Detection

در این صفحه می توان آدرس های آی پی مربوط به گیت وی یا هر دستگاه دیگری که سعی بر ایجاد برقراری ارتباط با FreePBX را داشته و در حالت Ban قرار گرفته است مشاهده نمایید. توصیه می شود که آدرس peer ترانک را را در Whitelist اضافه کرده تا توسط IDS بلاک نشود.

 ۳- «debug کارت های تلفنی »

در صورتی که از کارت های سنگوما بر روی FreePBX استفاده می کنید، نباید نگران نصب آن باشید؛ چرا که بیشترین سازگاری و کمترین پیچیدگی در نظر گرفته شده است.

پس از نصب فیزیکی کارت، ابتدا با اجرای دستور lspci در محیط لینوکس، از نصب صحیح کارت و شناسایی آن توسط سرور اطمینان کسب نمایید.

در صورتی که نام کارت مشاهده نشود، باید اتصال فیزیکی بر رویslot  مادربورد بررسی شود و یا اسلات دیگری را انتخاب کنید.

با دستور wancfg_dahdi اقدام به نصب کارت نمایید.

پس از اتمام نصب، با دستور lsdahdi می توان وضعیت کانال های Dahdi را به همراه Type و Span مشاهده نمود.

یک نمونه از خروجی lsdahdi:

در صورتی که پس از دستور lsdahdi هیچ نتیجه ای دریافت نشد بدین معنی است که نصب کارت به صورت  صحیح انجام نشده است.

در صورتی که پس از اجرای دستور lsdahdi، کانال ها نمایش داده شدند اما عبارت RED در انتهای هر کانال وجود داشت می توان با استفاده از دستورات زیر به ترتیب wanrouter را ریستارت کرده و مجدد نتیجه را بررسی نمایید:

Service asterisk stop

Wanrouter restart

Service asterisk start

در صورتی که مجدد مقدار RED وجود داشت باید سیگنالینگ کانال ها بررسی شود.

توجه: در صورت اتصال به مودم مخابرات، باید کانال های دیجیتال E1 به صورت Normal و CPE کانفیگ شوند. همچنین بررسی CRC4 حین کانفیگ کارت ضروری می باشد، زیرا اگر در سمت مخابرات CRC4 ست شده باشد، نیاز است تا سمت کارت نیز ست شود و اگر سمت مخابرات CRC4 ست نشده باشد (که معمولا به همین شکل می باشد) نیاز است تا CRC4 در سمت کارت در نظر گرفته نـشود.

پس از نصب کارت های دیجیتال، برای تست نهایی PRI می توان به محیط استریسک با استفاده از دستور asterisk –r وارد شده و pri show spans را اجرا نمایید:

یک نمونه از وضعیت صحیح لینک ها:

در صورتی که وضعیت پورت یا پورت هایی به صورتDown,Active  باشد بدین معنی است که سیگنالینگ خط برقرار نیست که می توان این مورد را از سمت تامین کننده که معمولا مخابرات می باشد، پیگیری کرد.

در صورتی که وضعیت پورت روی In Alarm باشد یعنی یک آلارم برای خط در نظر گرفته شده است و باید جدول آلارم ها بررسی شود.

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

Wanpipemon –I w1g1 –c Ta

توجه داشته باشید برای پورت های دیگر مانند پورت های ۲ و ۳ می توان مقدار عددی w را افزایش داد. مانند w2g1  و w3g1 و…

یک نمونه از جدول آلارم ها:

مانندSIP، برای خطوط PRI هم می توان Debugging را فعال کرده تا در مواقعی که در دریافت و ارسال روی این خطوط مشکلی وجود دارد، علت را بتوان دقیق تر یافت.

جهت فعالسازی PRI Debug ابتدا با استفاده از دستور asterisk –r به محیط استریسک وارد شده و سپس دستور زیر را اجرا کنید:

Pri set debug on span 1

 توجه داشته باشید برای فعالسازی دیباگ برای spanها یا همان پورت های دیگر روی کارت می توان مقدار ۱ را با مقدار مورد نظر جایگزین کرد.

 

پلتفرم فروشگاهی نت استاک جهت فروش تجهیزات شبکه ، مخابرات و فناوری اطلاعات با بیش از 1200 مشتری در سرتا سر ایران با داشتن بیش از 20 نمایندگی در استان های کشور آماده خدمت رسانی میباشد

مرجع: ویپ بلاگ


چت با کارشناسان در واتس آپ