در بسیاری از پروژهها ممکن است نیاز داشته باشیم از سلامت ماژول E1 و تنظیمات DSP/PVDM روی روتر اطمینان حاصل کنیم. همچنین گاهی نیاز است سناریوهای پیچیده مسیریابی تماس را بدون هزینه مکالمه تست کنیم.
در این آموزش، نحوه ساخت یک کابل Loopback و کانفیگ روتر برای ارسال تماس از سرور VoIP به پورت E1 و دریافت مجدد آن (Hairpinning) را بررسی میکنیم.
۱. پیشنیازهای سختافزاری
- روتر سیسکو: (در این سناریو مدل 2811 با ماژول VWIC استفاده شده است).
- ماژول PVDM: اطمینان حاصل کنید ماژول DSP روی روتر نصب است (
show voice dsp). - سوکت RJ45 و کابل شبکه: برای ساخت لوپ سختافزاری.
۲. ساخت کابل Loopback (سختافزار)
پورتهای E1 سیسکو (RJ45) از پینهای 1,2 برای دریافت (RX) و 4,5 برای ارسال (TX) استفاده میکنند. برای اینکه روتر سیگنال ارسالی خودش را دریافت کند، باید پینهای ارسال را به دریافت متصل کنیم.
نقشه پیناوت (Pinout):
- پین ۱ وصل شود به پین ۴
- پین ۲ وصل شود به پین ۵
(سایر پینها آزاد باشند)
۳. سناریوی منطقی (Logic)
برای اینکه تماسها در یک حلقه بیپایان نیفتند، از یک تکنیک تغییر شماره (Translation) استفاده میکنیم:
- ارسال از سرور (PBX): سرور تماس را با پیشوند
Bمیفرستد که در مواقع اتک هم کار را برای مهاجم سخت میکند (مثلاًB9123). - ورود به روتر: روتر تماس را دریافت کرده و با
Translation ProfileحرفBرا حذف میکند (شماره میشود9123). - ارسال به پورت E1: روتر شمارههای شروع شده با
9را به پورت E1 میفرستد. - لوپ فیزیکی: سیگنال از پورت خارج شده و توسط کابل دستساز، فوراً به همان پورت برمیگردد.
- بازگشت به سرور: روتر تماس جدیدی روی E1 دریافت میکند (
9123). چون دیگرBندارد، آن را با یک Dial-peer دیگر به سمت سرور برمیگرداند.
۴. نکته بسیار مهم: مشکل Caller ID و خطای 401
هنگام تست، اگر Caller ID تماس ارسالی (مثلاً داخلی 201) هنگام برگشت از لوپ تغییر نکند، سرور VoIP ممکن است تماس برگشتی را مسدود کند.
چرا؟ چون سرور میبیند داخلی 201 در حال تماس با خودش است یا یک تماس احراز هویت نشده با شناسه داخلی خودی وارد شده است. این منجر به خطای 401 Unauthorized یا Loop Detected میشود.
راه حل: در سمت سرور (Outbound Route) برای این مسیر تست، یک Caller ID متفاوت (Fake)(در سیموتل با استفاده از کامپوننت corrector) ست کنید تا تماس برگشتی به عنوان یک تماس جدید و غریبه شناسایی شود.
۵. پیادهسازی گامبهگام (IOS Config)
در ادامه کانفیگ نهایی و تست شده روی روتر Cisco 2811 با IOS 15.1 آورده شده است.
الف) تنظیمات کلاک و کنترلر (لایه ۱)
چون مخابراتی در کار نیست، روتر باید خودش کلاک تولید کند (clock source internal).
card type e1 0 0
!
! دستور زیر برای روترهای سری 2800 حیاتی است
network-clock-participate wic 0
!
controller E1 0/0/0
! حذف CRC4 (معمولا برای لوپ ساده نیاز نیست اما استاندارد است)
framing NO-CRC4
! تولید کلاک توسط خود روتر
clock source internal
! اختصاص تمام کانالها
pri-group timeslots 1-31
ب) تنظیمات پورت سریال و سیگنالینگ
interface Serial0/0/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
! این دستور برای عبور ویس ضروری است
isdn incoming-voice voice
no cdp enable
no shutdown
ج) تنظیمات Translation (حذف پیشوند B)
! تعریف قانونی که حرف B را از ابتدای شماره حذف کند
voice translation-rule 1
rule 1 /^B/ //
!
! اعمال قانون روی شماره مقصد (Called Number)
voice translation-profile Strip-B
translate called 1
د) تنظیمات Dial-Peer ها (مسیریابی تماس)
ما به سه دایلپییر نیاز داریم (یا دوتا با کانفیگ هوشمندانه).
- Dial-peer 201 (ورودی از SIP): تماس
B...را میگیرد،Bرا حذف میکند. - Dial-peer 101 (خروجی به سیم): تماس
9...را به پورت فیزیکی میفرستد. - Dial-peer 202 (برگشت به SIP): تماس
9...که از سیم برگشته را به سرور میفرستد.
! ۱. دریافت از سرور و حذف B
dial-peer voice 201 voip
description Incoming-FROM-SIP
! فقط تماسهایی که با B شروع شوند را پردازش میکند
incoming called-number B.T
translation-profile incoming Strip-B
session protocol sipv2
codec g711ulaw
no vad
!
! ۲. ارسال به سمت کابل لوپ
dial-peer voice 101 pots
description Outgoing-To-Loop
! هر شمارهای که با 9 شروع شود
destination-pattern 9T
! ارسال تمام ارقام (حذف نکردن 9)
forward-digits all
port 0/0/0:15
!
! ۳. دریافت از لوپ و ارسال مجدد به سرور
dial-peer voice 202 voip
description Return-Back-To-Server
! مقصد نهایی سرور SIP
session target ipv4:192.168.51.205
! شمارهای که از سیم برگشته (B ندارد و با 9 شروع میشود)
destination-pattern 9T
codec g711ulaw
ه) تنظیمات امنیتی SIP (رفع مشکلات رجیستر و پورت)
voice service voip
sip
! اتصال ترافیک SIP به اینترفیس شبکه (رفع مشکل Trust نشدن پورت رندوم)
bind control source-interface FastEthernet0/0
bind media source-interface FastEthernet0/0
۶. عیبیابی (Troubleshooting)
برای مشاهده لحظهای وضعیت تماسها از دستورات زیر استفاده کنید:
- مشاهده وضعیت لایه ۱ و ۲ (باید MULTIPLE_FRAME_ESTABLISHED باشد):
show isdn status
- مشاهده جریان تماس زنده:
debug isdn q931
debug voice ccapi inout
خلاصه عملکرد:
با این کانفیگ، وقتی از سافتفون یا تلفن خود شماره B9000 را بگیرید، تماس به روتر میرود، B حذف میشود، به پورت E1 میرود، توسط کابل برمیگردد و روتر مجدداً تماس را به سرور برمیگرداند و گوشی شما (یا مقصدی که تعیین کردید) زنگ میخورد. این یعنی هم ماژول سالم است، هم DSP کار میکند و هم تنظیمات روتر صحیح است.