پروتکل سیپ
پروتکل سیپ یک پروتکل سیگنالینگ ارتباطی است که به صورت گسترده برای کنترل sessionهای ارتباطات Multimedia مورد استفاده قرار میگیرد. از SIP در کار کنترلی ارتباطاتی همچون انتقال صدا و ویدئو بر روی شبکههای IP استفاده میشود. پروتکل SIP کنترل شروع، تغییر و پایان session را انجام میدهد.
این پروتکل در لایه پنجم OSI کار میکند.
این پروتکل از جهت انجام کارهای خود از پیامهایی استفاده میکند.
المانهای شبکه SIP
User Agent:یک واحد منطقی برای ایجاد و دریافت message و مانند http در header پیامهای دریافتی و ارسالی اطلاعاتی دربارهٔ User Agent وجود دارد.
Proxy Server:یک واحد منطقی که نقش میانجی یا در اصل روتر را بازی میکند زمانی که ما بخواهیم یک سری policy را روی ارتباطات وضع کنیم در واقع از پروکسی سرور استفاده میکنیم.
Registrar: یک SIP endpoint است که در خواستهای REGISTER را Accept میکند در واقع زمانی که در یک endpoint رجیستر میکنیم آن endpoint اطلاعات مارا در یک دیتابیس ذخیره میکند.
Redirect Server:یک User agent serverی است که یک response با کد ۳۰۰ ایجاد میکند که باعث میشود یک کلاینت با یک URI ارتباط مستقیم بر قرار کند. sip redirect gateway:یک اینترفیس است یرای ارتباط با شبکههایی با پروتکلهای متفاوت مثل مخابرات.
Session border controller:یک دستگاهی که در voip برای کنترل جریان تماس استفاده میشود و در واقع میتواند کیفیت و کنترل مکانیسم voip کنترل کند.
در سیپ پیامها به دونوع تقسیم میشود:
۱:request و ۲: response
مهمترین این پیامها در جدول زیر آمدهاست:
SIP Request | Description |
---|---|
INVITE | initiate a session between two participants |
ACK | the client acknowledges receiving the final message from an INVITE request |
BYE | terminates a connection |
CANCEL | cancels any pending actions, but does not terminate any accepted connections |
OPTIONS | queries the server for a list of capabilities |
REGISTER | registers the address in the To header with the server |
در جدول بالا انواعی از پیامهایی سیپ که جهت ارتباط سیگنالینگی بین سرور و کلاینت ردو بدل میشود دیده میشود.
به عنوان مثال
پیام 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 استو به عنوان مثال بیان شد.
در کل پیامهای SIP به تقسم بندی زیر میباشند
(۱XX) این پیامها اطلاعرسانی میکنند مانند ۱۰۰ TRYING (2XX)نشانه موفقیت در کار مورد نظر است ۲۰۰ OK (3XX) که نشانه جابجایی را دارد ۳۰۰ Multiple Choices (4XX) نشانه خطای درخواست مشترک BAD REQUEST 400 (5XX) نشانه مشکل در سمت سرور است ۵۰۰ ROUTING FAILED
لیست کامل این پیامها در این آدرس موجود است که سایت RFC مرجع میباشد.
همانطور که مشاهده میکنید کاربر ۱ درخواست ارتباط با کاربر ۲ را دارد که در مسیر راه از دو سیپ پراکسی میگذرد که هر کدام از سیپ پراکسیها تا رسیدن به مقصد پیام ۱۰۰ TRYING را صادر میکنند که نشان دهنده سعی آنها بر ایجاد ارتباط است
پس از رسیدن به مقصد توسط همان مشترک پیام ۱۸۰ RINGING که نشان دهنده خوردن زنگ در آن مکان و سپس ۲۰۰ OK که نشان دهنده موفقیت ارتباط را اطلاعرسانی میکند
کاربر یک نیز ACK آن را مستقیم به خود کاربر دو میفرستد که نشان دهنده رسید بستههای قبول درخواست از طرف کاربر دو میباشد
سپس مدیا نقطه به نقطه بدون عبور از پراکسیها با هم برقرار میشود.
و در نهایت پیام BYE از طرف یکی از کاربرها صادر میشود که در نهایت باید کاربر مقابل نتیجه موفقیتآمیز بودن قطع تماس را اطلاعرسانی کند.