از پروتکل های حاصله از تحقیقات یکی از معتبر ترین نهاد های بین المللی در صنعت مخابرات یعنی نهاد IETF، پروتکل Session Initiation Protocol یا SIP می باشد. ارائه سرویس هایی از قبیل ویدئو کنفرانس، پیام گذاری (از قبیل پیام صوتی)، پیام های فوری، سرویس های مکانی، و بسیاری سرویس های جدید دیگر، ورای سرویس های سنتی که توسط PSTN ارائه می شدند از جمله نکات برتری این پروتکل می باشد. حیطه تأثیر این پروتکل راه اندازی، تغییر و پایان دادن به Session هاست و محتوای این Session ها توسط دیگر پروتکل های همراه SIP مدیریت می شود که از جمله آن ها می توان به SDP، RTP، RTSP و … اشاره کرد که بر روی پروتکل های TCP و UDP لایه انتقال حمل می شوند. از مهمترین مسائل، پیاده سازی این پروتکل است که می بایست قابلیت تعامل با PSTN داشته باشد زیرا PSTN چنان فراگیر شده است که فرض کنار گذاشتن این سیستم تا مدت ها نمی تواند عملی باشد. این پروتکل قویترین پروتکل انتقال صدا و تصویر روی اینتر نت است که می توان آن را به جایگزینی TCP/IP در دنیای شبکه را در دنیای VOIE OVER IP را به آن شباهت کرد. یعنی دیگر IP/PBX جدیدی تولید نمی شود که این پروتکل را ساپورت نکند. پروتکلی بس قوی که می تواند با فشار خیلی کمتر از دیگر پروتکل ها انتقال صدا را با همان سخت افزار انجام دهد.
ک پروتکل سیگنالینگ ارتباطی است که به صورت گسترده برای کنترل sessionهای ارتباطات Multimedia مورد استفاده قرار میگیرد. از SIP در کار کنترلی ارتباطاتی همچون انتقال صدا و ویدئو برروی شبکههای IP استفاده میشود. پروتکل SIP کنترل شروع، تغییر و پایان session را انجام میدهد.
این پروتکل در لایه سوم OSI کار میکند و جهت انجام کارهای خود از پیامهایی استفاده میکند.
المانهای شبکه SIP
User Agent:یک واحد منطقی برای ایجاد و دریافت message و مانند http در header پیامهای دریافتی و ارسالی اطلاعاتی درباره User Agent وجود دارد.
Proxy Server:یک واحد منطقی که نقش میانجی و یا در اصل روتر را بازی میکند زمانی که ما بخواهیم یک سری policy را روی ارتباطات وضع کنیم در واقع از پروکسی سرور استفاده میکنیم.
Register: یک Sip endpoint است که در خواست Register را Accept میکند در واقع زمانی که در یک endpoint رچیستر میکنیم آن endpoint اطلاعات مارا در یک دیتابیس ذخیره میکند.
Redirect Server:یک User agent serverی است که یک response با کد ۳۰۰ ایجاد میکند که باعث میشود یک کلاینت با یک URI ارتباط مستقیم بر قرار کند. sip redirect gateway:یک اینترفیس است یرای ارتباط با شبکههایی با پروتکلهای متفاوت مثل مخابرات.
Session border controller:یک دستگاهی که در voip برای کنترل جریان تماس استفاده میشود و در واقع میتواندکیفیت و کنترل مکانیسم voip کنترل کند.
در سیپ پیامها به دونوع تقسیم میشود:
۱: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 استو به عنوان مثال بیان شد.
در کل پیامهای SIP به تقسم بندی زیر میباشند
(۱XX) این پیامها اطلاع رسانی میکنند مانند ۱۰۰ TRYING (2XX)نشانه موفقیت در کار مورد نظر است ۲۰۰ OK (3XX) که نشانه جابجایی را دارد ۳۰۰ Multiple Choices (4XX) نشانه خطای درخواست مشترک BAD REQUEST 400 (5XX) نشانه مشکل در سمت سرور است ۵۰۰ ROUTING FAILED لیست کامل این پیامها در این آدرس موجود است که سایت RFC مرجع میباشد.
همانطور که مشاهده میکنید کاربر ۱ درخواست ارتباط با کاربر ۲ را دارد که در مسیر راه از دو سیپ پراکسی میگذرد که هر کدام از سیپ پراکسیها تا رسیدن به مقصد پیام ۱۰۰ TRYING را صادر میکنند که نشان دهنده سعی آنها بر ایجاد ارتباط است
پس از رسیدن به مقصد توسط همان مشترک پیام ۱۸۰ RINGING که نشان دهنده خوردن زنگ در آن مکان و سپس ۲۰۰ OK که نشان دهنده موفقیت ارتباط را اطلاع رسانی میکند
کاربر۱ نیز ACK آن را مستقیم به خود کاربر ۲ میفرستد که نشان دهنده رسید بستههای قبول درخواست از طرف کاربر ۲ میباشد
سپس مدیا نقطه به نقطه بدون عبور از پراکسیها با هم برقرار میشود.
و در نهایت پیام BYE از طرف یکی از کاربرها صادر میشود که در نهایت باید کاربر مقابل نتیجه موفقیت آمیز بودن قطع تماس را اطلاع رسانی کند.