پارامترهای پروتکل SIP

پارامترهای پروتکل 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 کاربرد دارد و بعضا مورد استفاده قرار میگیرند که در مقاله دیگری به تفصیل به آنها خواهیم پرداخت.