پارامترهای پروتکل SIP
پارامترهای SIP
پارامترهای پروتکل SIP، یکی از رایج ترین پروتکل های VoIP است که در لایه Application شبکه کار میکند .در واقع این پروتکل برای رجیستری شماره های داخلی (Extensions) و ترانک ها (Trunk) استفاده می شود و وظیفه ایجاد، مدیریت، کنترل و قطع ارتباط را بر عهده دارد. پارامتر SIP یک پروتکل متنی است که با مشاهده پیام های آن در کنسول Asterisk امکان تفسیر رفتارهای آن وجود دارد که برای عیب یابی نیز بسیار کاربردی و مفید است.
برای ایجاد ارتباط بین دو سرور از طریق SIP Trunk و یا تنظیمات داخلی های Extensions پارامترهایی وجود دارند که هر کدام از آنها وظیفه ای را بر عهده دارند که در این مقاله به شرح وظایف آنها می پردازیم.
پارامترهایی که در محیط وب نرم افزار مانند Issabel تنظیم می شوند که به شرح ذیل هستند:
host=IP or Domain Name
آدرس SIP Server که به صورت IP و URL قابل تنظیم است .
Port=5060
پورت پیش فرض برای SIP همان 5060 است و فقط در صورت تغییر است که نیاز به تنظیم دارد.
disallow=all
با مقدار all تنظیم میشود و درخواست برقراری تماس از همه کدک ها را رد میکند.
allow= ulaw, alaw, g729
با مجاز کردن کدک های صوتی و تصویری فقط به این کدک ها اجازه عبور داده میشود.
type=friend/user/peer
نوع ارتباط ترانک را مشخص میکند که در حالت Registeration از user/peer و در حالت Trust IP از friend استفاده می شود.
qualify=yes
با مقدار yes پر میشود و مسئول مانیتور کردن ارتباط شبکه بین کاربر و استریسک است و در صورتی که این مقدار سمت کاربر تنظیم نشده باشد استریسک ارتباط خودش با کاربر را چک نمیکند و وضعیت کاربر در حالت unmonitored می ماند.
Insecure و کاربرد آن در پارامترهای پروتکل SIP:
در نسخه استریسک 1.0.9 و به قبل از آن از دو مقدار yes و very استفاده میشد.
insecure=yes
به این معنی که در ارتباط بین سرور و کلاینت IP در نظر گرفته میشود و پورت بررسی نمی شود.
insecure=very
به تمام سرورهای مجاور بدون احراز هویت اجازه Peer شدن را میدهد.
از نسخه استریسک 1.0.9 به بعد از مقادیر port / invite / port, invite استفاده می شود.
insecure=port
اجازه برقراری تماس با سرور مجاور با IP و بدون تطبیق پورت داده می شود.
insecure=invite
درخواست های ورودی نیاز به احراز هویت ندارند.
insecure=port, invite
این حالت زمانی است که نه احراز هویت با username/password و نه بررسی پورت وجود دارد.
NAT وکاربرد آن در پروتکل SIP:
زمانی کاربرد دارد که یکی از طرفین SIP SERVER و Client یا هر دو بیرون از شبکه و در پشت NAT قرار گرفته اند.
Nat=yes
زمانی که کلاینت پشت NAT قرار میگیرد باید در سمت کاربر تنظیم شود.
Nat=force_rport, comedia
در صورتی که SIP Server پشت NAT قرار بگیرد نیاز به تنظیم این پارامتر است که اغلب در خطوط تلفنی NGN مورد استفاده قرار میگیرد.
Nat=never
برخی از تلفن ها از rport پشتیبانی نمیکنند در این صورت از never استفاده می شود.
Nat=no
در صورتی که NAT وجود ندارد تنظیم می شود که اگر به کلی تنظیم نشود هم به همان معنا است.
Dtmfmod و کاربرد آن در پارامترهای پروتکل SIP:
این پارامتر سیگنال ارقام گرفته شده در تلفن را روی جریان RTP ارسال میکند.
Dtmfmode=info
اطلاعات ارقام را از بدنه SIP دریافت کرده و ارسال میکند.
Dtmfmode=rfc2833
سیگنال دریافتی را با استاندارد rfc2833 و به صورت دیجیتال ارسال میکند.
Dtmfmode=inband
این روش به صورت آنالوگ است و موقع ارسال DTMF به کدک های تنظیم شده در ترانک نگاه میکند.
Dtmfmode=auto
زمانی که نوع dtmf مشخص نیست از این حالت استفاده میشود که به صورت خودکار تنظیم می شود.
Keepalive=X
یک پارامتر شبکه ای است و طبق عددی که تنظیم شده بر حسب ثانیه اگر در این مدت زمان از ترانک ترافیکی عبور نکند ارتباط را قطع میکند.
Context=context name
تعیین کننده این است که ترانک در کدام محدوده کار میکند برای مثال: from-pstn/from-internal که بر اساس آن dial pattern مورد نظر برای تماس ورودی و خروجی نوشته میشود.
Registration و کاربرد آن در پروتکل SIP:
در صورتی که نیاز به رجیستری و عملیات احراز هویت بین دو طرف باشد میتوان از پارامترهای زیر استفاده کرد.
Username=set username
نام کاربری تعریف شده در سرور.
Secret=set long and compex password
رمز عبور که بهتر است طولانی و پیچیده در نظر گرفته شود.
Fromdomain=voip.mahanvoip.com
مشخص کننده این است که درخواست از سمت کدام سرور است و اغلب برای حالت NAT مورد استفاده قرار میگیرد.
Fromuser=set username or callerid
این پارامتر اغلب برای رجیستری خطوط NGN استفاده میشود و زمانی که از طرف سرویس دهنده درخواست میشود باید تنظیم شود که معمولاخود شماره خط است.
Register String
درخواست رجیستری به همراه احراز هویت را به شکل دیگری میتوان نوشت که در این حالت نام کاربری، رمز عبور و آدرس سرور و کالرآی دی همه در یک خط نوشته میشوند که به آن register string می گویند.
username:secret@domain/callerid number
در صورتی که سرور استریسک پشت NAT قرار دارد باید درتنظیمات sip.conf مقادیر مربوط به شبکه اضافه شود.
localnet=ipaddress/range
IP Range شبکه داخلی
externip=valid ip address
Public IP یا همان IP اینترنتی که در حالت NAT روی Packet Header قرار میگیرد. لازم به ذکر است که تمامی این پارامترها برای ایجاد SIP Trunk نیاز است و پارامترهای دیگر بسیاری وجود دارند که برای SIP Extension کاربرد دارد و بعضا مورد استفاده قرار میگیرند که در مقاله دیگری به تفصیل به آنها خواهیم پرداخت.