اگر علاقه مند به مبحث VoIP هستید یا در این حوزه مشغول به کار هستید ، بارها و بارها نام پروتکل SIP را شنیده اید و از آن استفاده نموده اید. پروتکل ها در کنار نرم افزار های voip ، لازمه برقراری ارتباط در سیستم voip هستند. پروتکل SIP نیز یکی از پروتکل های اساسی voip هست که از بخش های مختلفی تشکیل شده است.پروتکل ارتباط ویپ SIP
پروتکل SIP چیست؟
پروتکل SIP یک پروتکل سیگنالینگ ارتباطی بوده که برای کنترل Sessionهای ارتباطات Multimedia مورد استفاده قرار می گیرد.
کاری که این پروتکل انجام می دهد این است که ارتباطاتی مانند انتقال صدا و ویدئو بر روی شبکههای IP کنترل می کند همچنین این پروتکل شروع ، تغییر و پایان session را کنترل می کند.
المانهای شبکه SIP
User Agent، یک واحد منطقی ای که وظیفه آن ایجاد و دریافت message مانند http در header پیامهای دریافتی و ارسال اطلاعاتی درباره User Agent می باشد.
Proxy Server،زمانی استفاده می شود که شما بخواهید یک سری policy را روی ارتباطات خود تعریف کنید که برای اینکار درواقع از پروکسی سرور استفاده خواهید کرد بنابراین Proxy Server یک واحد منطقی بوده که نقش روتر را برای شما بازی می کند.
Registrar یک SIP endpoint است که به Accept کردن درخواستهای REGISTER پرداخته و زمانی که شما یک endpoint را رجیستر می کنید endpoint مورد نظر به ذخیره اطلاعات شما در یک دیتا بیس می پردازد.
Redirect Server، در واقع یک User agent server بوده که به ایجاد یک response با کد 300 پرداخته و کاری می کند که بین یک کلاینت و یک URI ارتباط مستقیم برقرار شود. sip redirect gateway، اینترفیسی است که ارتباط بین شبکه ها با پروتکلهای متفاوت را برقرار می کند.
Session border controller، دستگاهی است که جریان تماس ، کیفیت و کنترل مکانیسم را در voip کنترل می کند.
در SIP پیامها به دو نوع تقسیم میشود:
- request
- response
مهمترین این پیامها:
پیام:INVITE در واقع request ی است که زمانی که شما یک شماره را می گیرید این شماره تبدیل به یک آدرس IPمی شود و پیام برای مخاطب ارسال شده و از مخاطب خواهان برقراری ارتباط است و اگر مخاطب آن را قبول کرد تلفن زنگ خواهد خورد.
پیام: ACK از نوع response بوده و هنگامی که بسته های SIP که از پروتکل TCP برای انتقال استفاده می کنند سالم به مقصد برسد پیام ACK برای فرستنده پیام فرستاده می شود.
پیام: BYE از نوع request است و زمانی که یکی از طرفین در حال مکالمه گوشی را قطع کند از طرف مخاطبی که گوشی را قطع کرده یک پیام BYE برای مخاطب دیگر ارسال می شود.
پیام: CANCEL از نوع request بوده و توسط پروکسی سرور خواهد شد این پیام بیان کننده ی این است تماسهایی که در حالت معلق هستند قطع شود بعد از این پیام ، پیام BYE صادر خواهد ش
پیام: OPTIONS از نوع request بوده و زمانی که از (U.A)یا(USER AGENT) و (P.S) یا (PROXY SERVER) بخواهید تا تواناییهای خود را بگویند.
پیام: REGISTER از نوع request است و زمانی که خواهان معرفی کلاینت به سرور باشید از این پیام استفاده می شود و حاوی اطلاعاتی چون: IP ,PORT ,OPTION و… می باشد.
تمامی پیامهایی که گفته شد تنها گوشه ای از پیامهای SIP بود.
اجزای شبکهی SIP
از نقطه نظر معماری، اجزای فیزیکی یک شبکه SIP در دو مجموعه Client ها و server ها دسته بندی شده، که به آنها (UAC) یا User Agent Client و (UAS) یا User Agent Server گفته می شود. یک end-point SIP توانایی ایفای هر دو نقش UAC و UAS را دارد،اما تنها یک نقش را در هر انتقال می تواند داشته باشد. عمل کردن یک نقطه انتهایی بهعنوان UAS یا UAC به UAC ی که شروع به تقاضا م کند وابسته می باشد
SIP Client
یک client یا UAC برنامه کاربردی ایست که درخواست فرستنده درخواست سیب می باشد.
SIP Client شامل تلفنها، Soft phoneها و Gatewayها می باشد که در باره ی هر کدام توضیحاتی خواهیم داد.
تلفنها: تلفنها قادر به ایفای نقش یک UAC یا UAS می باشند.
Soft phoneها: کامپیوترهایی که توانایی نصب phone را بر روی خود دارند و می توانند آغازکننده و یا پاسخ دهنده به درخواست SIP باشند
Gatewayها: فراهم کننده کنترل call بوده و عملیات ترجمه بین end-point SIPها و انواع ترمینالهای دیگر در یک گفتگو را انجام می دهد که ترجمه فرمتهای انتقال و پردازههای ارتباط را شامل می شود.
SIP Server ها :
چهار نوع مختلف server وجود دارد:
PROXY Server:
این سرور به عنوان واسطه عمل می کند و این بدان معنی است که بعد دریافت درخواستهای SIP این درخواستها را بعد از اینکه برخی از ترجمه ا را انجام داد به یک سرور دگر می فرستد. بنابراین این سرور ایفا کننده ی هر دو نقش client و server می باشد. سرورهایی از این دسته قادرند اعمالی مانند تصدیق، اجازه کنترل و دسترسی به شبکه، مسیریابی، ارسال مجدد درخواست بهصورت معتبر و امنیت را انجام دهند.
redirect server:
کاری که redirect server انجام میدهد پذیرفتن درخواست SIP ، تبدیل ادرس مقصد به آدرس جدید و در اخر ارسال کردن این آدرس به درخواست کننده است.سپس درخواست توسط درخواست کننده به سرور redirect server فرستاده می شود.باید توجه داشته باشید که این سرور شروع کننده ی هیچگونه درخواست SIP ی نمی باشد
User agent server:
کاری که این سرور انجام می دهد دریافت کردن درخواست SIP و ارتباط برقرار کردن با کاربر است.همانطور که قبلا گفته شد تلفنهایی که از قابلیت SIP برخوردارند قادرند هر دو نقش UAC و UAS را دارا باشند.اگر اغازکننده ی دزخواست SIP باشند نقش UAC را دارند و اگر دریافت کننده و پاسخ دهنده ی درخواستها باشند نقش UAS را دارند.
Registrar server:
این سرور پذیرنده ی درخواستهای SIP Register است و همانند SIP دارنده ی مفهومی به نام ثبت کاربر بوده و این مفهوم به معنی تعیین یک کاربر در شبکه با یک IP خاص می باشد. اما طریقه ثبت کاربر بدین شکل است که یک درخواست R از طرف کاربر به سرور register server انتشار داده می شود. register server قادر به ترکیب با Proxy server یا redirect server می باشد .
سیگنالینگ پروتکل SIP برای برقراری تماس
شکل بالا نحوه برقراری تماس بین دو کاربر که در یک دامنه قرار دارند را نشان میدهد.
مراحل انجام این تماس به شرح زیر است:
۱. درخواست کاربر A که از یک تلفن IP استفاده میکند برای برقراری ارتباط با کاربر B به سرور پروکسی SIP هدایت میشود. آدرس سرور پروکسی SIP را میتوان هنگام کنترل دسترسی کاربر به شبکه انتقال و انجام تنظیمات IP آن به کاربر اعلام کرد.
۲ و۳. سرور پروکسی با ارتباط با ثبتکننده SIP اطلاعات کاربر B مانند آدرس IP آن را درخواست و دریافت میکند.
۴. سرور پروکسی از جانب کاربر A با کاربر B تماس میگیرد و درخواست برقراری ارتباط میکند.
۵. کاربر B قبول درخواست را به سرور پروکسی اعلام میکند. معمولاً قبل از اعلام درخواست قبول یک بوق به سرور پروکسی برگردانده میشود تا بهسوی کاربر A هدایت شود. پس از برداشتن گوشی توسط کاربر B پیام قبول به سمت کاربر A ارسال میشود.
۶. قبول درخواست به کاربر A اعلام میشود.
سیگنالینگ پروتکل
SIP در تماس بین دو دامنه
مراحل برقراری تماس با پروتکل SIP در این شکل نشان دادهشده است.
سیگنالینگ تماس بهصورت زیر است:
۱. کاربر A درخواست برقراری تماس با کاربر B میکند.
۲. سرور پروکسی A از روی URI کاربر B متوجه میشود که کاربر در دامنه دیگری قرار دارد. بنابراین با سرور تغییر جهت SIP ارتباط برقرار میکند.
۳. سرور تغییر جهت آدرس IP سرور پروکسی B که به کاربر B سرویس میدهد را برمیگرداند.
۴. سرور پروکسی A درخواست کاربر A را به سرور پروکسی B ارسال میکند.
۵ و۶. سرور پروکسی با ارتباط با ثبتکننده SIP اطلاعات کاربر B مانند آدرس IP آن را درخواست و دریافت میکند.
۷. سرور پروکسی از جانب کاربر A با کاربر B تماس میگیرد و درخواست برقراری ارتباط میکند.
۸. کاربر B قبول درخواست را به سرور پروکسی اعلام میکند. معمولاً قبل از اعلام درخواست قبول یک بوق به سرور پروکسی برگردانده میشود تا بهسوی کاربر A هدایت شود. پس از برداشتن گوشی توسط کاربر B پیام قبول به سمت کاربر A ارسال میشود.
۹. سرور پروکسی B پاسخ را به سرور پروکسی A برمیگرداند.
۱۰. قبول درخواست تماس به کاربر A اعلام میشود.
برای پشتیانی شبکه و پشتیبانی voip با شرکت تیلاتل در تماس باشید.