آشنایی با پروتکل سیپ ( SIP )
سیپ یا Session Initiation protocol پروتکل سیگنالینگ و برقراری ارتباط است که به صورت گسترده برای کنترل sessionهای ارتباطات Multimedia مورد استفاده قرار میگیرد. از پروتکل سیپ SIP در کار کنترلی ارتباطاتی همچون انتقال صدا و ویدئو بر روی شبکههای IP استفاده میشود. پروتکل سیپ SIP Protocol کنترل شروع، تغییر و پایان session را انجام میدهد. این پروتکل در لایه پنجم OSI کار میکند.
پروتکل سیپ در سال 1996 توسط Mark Handley و Henning Schulzrinne طراحی شد ، در سال 1999 تحت RFC 2543 استاندارد سازی شد و در سال 2000 توسط 3GPP به عنوان یک پروتکل سیگنالینگ و یکی از اجزای دائمی زیر سیستم مالتی مدیا مبتنی بر آی پی IP Multimedia Subsystem (IMS) پذیرفته شد.
عناصر شبکه سیپ
User Agent، یک واحد منطقی برای ایجاد و دریافت message مانند http در header پیامهای دریافتی و ارسال اطلاعاتی درباره User Agent است.
Proxy Server، یک واحد منطقی که نقش میانجی یا در اصل روتر را بازی میکند زمانی که ما بخواهیم یک سری policy را روی ارتباطات وضع کنیم درواقع از پروکسی سرور استفاده میکنیم.
Registrar یک SIP endpoint است که درخواستهای REGISTER را Accept میکند در واقع زمانی که در یک endpoint رجیستر میکنیم آن endpoint اطلاعات ما را در یک دیتا بیس ذخیره میکند.
Redirect Server، یک User agent server است که یک response با کد 300 ایجاد میکند که باعث میشود یک کلاینت با یک URI ارتباط مستقیم برقرار کند. sip redirect gateway، یک اینترفیس برای ارتباط با شبکههایی با پروتکلهای متفاوت مثل مخابرا است.
Session border controller، یک دستگاهی است که در voip برای کنترل جریان تماس استفاده میشود و در واقع میتواند کیفیت و کنترل مکانیسم voip را کنترل کند.
در SIP پیامها به دو نوع تقسیم میشود
- request
- response
مهمترین این پیامها
پیام: INVITE یک request است و هنگامیکه یک شماره گرفته میشود و این شماره در PBX تبدیل آدرس IP شده و این پیام برای مشترک مخاطب ارسال میشود و درخواست ارتباط مینماید در صورت قبول پیشنهاد جهت برقراری تماس از طرف تماس گرفته شده تلفن زنگ میخورد.
پیام: ACK یک response است که این پیام در صحت رسیدن بستههای SIP با استفاده از پروتکل TCP به ما اطلاعرسانی میکند.
پیام: BYE یک request است و این پیام پس از گذاشتن یکی از گوشیهای طرفین از طرف همان مخاطب برای مخاطب دیگر ارسال میشود که حاوی اطلاعاتی مبنی بر عدم حضور طرف مقابل برای مکالمه هست.
پیام: CANCEL این پیام تنها پیامی است که توسط پروکسی سرور صادر میشود و در آن بیان میشود که تماسی که در حالت معلق است قطع شود سپس نیز پیام BYE صادر میشود که هردو این پیامها REQUEST هست.
پیام: OPTIONS این پیام یعنی که از (U.A)که مخفف(USER AGENT) یا (P.S) که مخفف (PROXY SERVER) است، خواسته باشیم که تواناییهاییهای خود را بیان کنند و یک REQUEST هست.
پیام: REGISTER یک request است و این پیام حاوی اطلاعاتی است که از سمت کلاینت به سرور جهت معرفی خود به آن صادر میگردد. در این پیام اطلاعاتی ازجمله IP ,PORT ,OPTION و… را مورد پیشنهاد قرار میدهد.
البته این پیامها گوشهای از پیامهای SIP استو بهعنوانمثال بیان شد.
اجزای فیزیکی شبکه سیپ میتوانند در دو مجموعه طبقهبندی شوند:
Client ها و server ها، که به آنها ( UAC) User Agent Client و User Agent Server (UAS) نیز گفته میشود. یک end-point SIP قادر است هر دو نقش UAC و UAS را ایفا کند، اما در هر انتقال فقط باید یک نقش داشته باشد. اینکه یک نقطه انتهایی بهعنوان UAS یا UAC عمل کند وابسته به UA ی است که تقاضا را شروع کرده است.
SIP Client
یک client که به آن User Agent Client نیز گفته میشود یک برنامه کاربردی است که درخواست sip را میفرستد.
SIP Client شامل موارد زیر است :
تلفنها: تلفنها میتوانند بهعنوان یک UAC یا UAS عمل کنند.
Soft phoneها: به PC هایی که قابلیت نصب phone را دارند و میتوانند درخواست SIP را آغاز کنند و به آن پاسخ دهند.
Gatewayها: گیت وی ها کنترل call را فراهم میکند و رایجترین آنها عملیات ترجمه بین end-point SIPها و انواع ترمینالهای دیگر در یک گفتگو است. این عمل شامل ترجمه فرمتهای انتقال و پردازههای ارتباط است.
انواع سیپ سرور
چهار نوع مختلف server وجود دارد
PROXY Server
یک وسیله واسط است که درخواستهای SIP را از یک مشتری دریافت میکند و سپس یا آنها را خودش مدیریت میکند و یا، احتمالاً بعد از مهیاکردن برخی ترجمهها ، به یک server دیگر ارسال میکند. proxy که درخواستها را دریافت کرده و آنها را میفرستد، درواقع هر دو نقش client و server را ایفا میکند. Proxy server ها میتوانند اعمالی نظیر تصدیق، اجازه کنترل و دسترسی به شبکه، مسیریابی، ارسال مجدد درخواست بهصورت معتبر و امنیت را میسر کنند.
redirect server
یکredirect server ، سروری است که درخواستهای SIP را میپذیرد، آدرس مقصد را به آدرس جدید تبدیل میکند، و آن را به درخواستکننده ارسال میکند. سپس، درخواستکننده درخواست را به آدرس بازگردانده شده از redirect server میفرستد. یک redirect server هیچ درخواست SIP را خودش شروع نمیکند.
User agent server
Serverی است که درخواستهای SIP را دریافت کرده و با کاربر ارتباط برقرار میکند. درواقع یک وسیله SIP (مثل یک تلفن با قابلیت SIP) که همه بهعنوان یک UAC و هم بهعنوان یک UAS عمل خواهد کرد. درصورتیکه بتواند درخواستهای SIP را آغاز کند. بهعنوان یک UAC عمل میکند و درصورتیکه بتواند درخواستها را دریافت کرده و به آنها پاسخ دهد، بهعنوان یک UAS عمل میکند.
Registrar server
serverی است که درخواستهای SIP Register را میپذیرد. همچون SIP مفهومی به نام ثبت کاربر دارد به این معنی که یک کاربر تعیین میکند که در شبکه در یک آدرس خاص در دسترس است . این ثبت از طریق انتشار یک درخواست R از طرف کاربر به register server انجام میشود. یک register server میتواند با یک Proxy server یا redirect server ترکیب شود .