SIP و NAT – نحوه تنظیم Asterisk برای حل مشکل عدم عبور صدا یا صدای یک طرفه

SIP و NAT – نحوه تنظیم Asterisk برای حل مشکل عدم عبور صدا یا صدای یک طرفه

در این پست توپولوژی را بررسی می کنیم که Asterisk به عنوان SIP Server  درون شبکه NAT شده  و IP Phone  ها خارج از شبکه قرار دارند . شاید در نگاه اول به نظر بیاد که Forward کردن پورت 5060  که برای سیگنالینگ SIP استفاده میشود ، مشکل را حل کند ولی تتظیمات مخصوص NAT در Asterisk  و محدود کردن پورت های مورد استفاده پروتکل  RTP نیز از جمله کارهایی که برای حل این مشکل باید انجام شود .

تنظیمات مربوط به NAT در Asterisk  در دو فایل sip.conf و rtp.conf  گنجانده شده است .

بهتره از فایل rtp.conf  شروع کنیم . همانطور که می دانید بعد از عملیات Signalling  که توسط پروتکل SIP انجام می شود نوبت به Real-time Transfer Protocol یا همان RTP است تا صدا را بین دو گوشی تلفن منتقل کند . اما RTP مشابه SIP از یک پورت خاص (پورت شماره 5060 ) استفاده نمی کند بلکه در هر ارتباط از یک رنج پورت خاص برای انتفال Media بهره می برد . برای Forward کردن این رنج در فایروال یا مسیر یاب که انجام عملیات NAT را بر عهده دارد باید این رنج را بدانید و انرا با توجه به تعداد کلاینت ها محدود تر کنید تا مشکلی در عملیات PortForwarding در فایروال یا مسیریاب ایجاد نشود .

این رنج پورت در بخش [general] فایل rtp.conf در مسیر /etc/asterisk قابل مشاهده و تنظیم است . که در اینجا این رنج را به صد پورت محدود کرده ایم .

[general]

rtpstart=10000 ; first port to use

rtpend=10100   ; last port to use 

اگر از لینوکس و IPTables برای عملیات مسیریابی یا فایروال استفاده می کنید می توانید از دستورات زیر برای تنظیم قوانین IPtables  بهره ببرید .

iptables -t nat -A PREROUTING -i eth0 -p udp 
-m udp  dport 10000:10100 -j DNAT 
 to-destination 192.168.16.1
iptables -t nat -A PREROUTING -i eth0 -p udp 
-m udp  dport 5060 -j DNAT 
 to-destination 192.168.16.11

مرحله دوم تنظیمان مربوط به NAT در فایل sip.conf در مسیر /etc/asterisk  است .

در بخش [general] پارامتر externip را با آدرس آی پی عمومی فایروال یا مسیریاب شبکه که در مثال ما 217.219.220.220   است را مقدار دهی کنید . و رنج آی پی های داخلی شبکه را در پارامتر localnet وارد کنید .

[general]
localnet=192.168.16.0/255.255.255.0 ; or your subnet 
externip=217.219.220.220               ; use your address
حال باید برای گوش های آی پی ای که در خارج از شبکه محلی هستند باید پارامتر nat را yes کنید .
 اضافه کردن پارامتر qualify=yes باعث میشود تا Asterisk به صورت دائم ارتباط را چک کند و به عبارتی زنده نگه دارد 
تا ترجمه NAT از فایروال یا مسیر یاب پاک نشود . 
[YOURREMOTEPEER]               ; your peer's name
nat=yes
qualify=yes                    ; Force keepalives

مرجع مقاله : نت استاک

دیدگاه دیگران

دیدگاهی در اینجا ارسال نشده است، اولین دیدگاه را شما ارسال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *