پروتکل sip

پروتکل SIP ، یک پروتکل سیگنالینگ مبتنی بر متن در لایه­ ی کاربرد است که در برقراری ارتباطات بلادرنگ داده­های چندرسانه‌ای مورداستفاده قرا می­گیرد. این پروتکل که یکی از استانداردهای تعریف‌شده در IETF است، کنترل ایجاد، تغییر، اصلاح و خاتمه­ی نشست­های SIP را انجام می­دهد. پروتکل SIP سرویس خاصی ارائه نمی­دهد اما مقدماتی را برای استفاده از سایر سرویس­ها فراهم می­کند. معماری پروتکل SIP متشکل از دو نهاد منطقی عامل کاربر و عامل سرور می­باشد· عامل کاربر یک واحد منطقی در شبکه­ی SIP است که برای ایجاد و دریافت پیام­های SIP مورد استفاده قرار می­گیرد و بدین‌وسیله یک نشست SIP را مدیریت می­کند. این واحد منطقی می­تواند نقش یک کاربر سرویس‌گیرنده و یا سرویس‌دهنده را ایفا کند. عامل کاربر سرویس‌گیرنده مسئول ایجاد درخواست­های SIPاست و پاسخ و عکس‌العمل‌های SIP را می­پذیرد. عامل کاربر سرویس‌دهنده درخواست­های SIP را پذیرفته و یک پاسخ SIP را برمی‌گرداند. این دو عامل کاربر فقط در زمانی که نشست SIP برقرار است فعالیت می­کنند. هر کاربر در این معماری توسط یک URI شناسایی می­شود که این آدرس، دامنه­ای که حساب کاربر در آن واقع شده است را نشان می­دهد. URI استفاده‌شده به طرح sip:user:password@domainname:port می­باشد. پیام­هایی که این دو عامل کاربر جهت ارتباط با یکدیگر و برقراری تماس، ارسال و دریافت می­کنند به دو دسته­ی پیام­های درخواست و پاسخ SIP تقسیم می­شود و به قرار زیر است:Ø INVITE: دعوت کردن از کاربر برای برقراری تماس.Ø BYE: خاتمه دادن به ارتباط بین دو نقطه­ی پایانی.Ø ACK: پاسخی که در تصدیق رسیدن بسته­های INVITE ارسال می­شود.Ø OPTIONS: جمع­آوری کردن اطلاعات در رابطه با قابلیت­های تماس.Ø REGISTER: دادن اطلاعات در رابطه با موقعیت کاربر به سرور ثبت SIP.Ø CANCEL: پایان دادن به جستجوی کاربر.سرور پروکسی ، یک واحد منطقی و موجودیت میانی است که نقش اصلی آن مسیردهی در شبکه­ی SIP می­باشد. از جمله وظایف این واحد کنترل دسترسی ، امنیت و تصدیق هویت است.سرور ثبت کننده، درخواست­های ثبت SIP را از کاربر می­پذیرد. بعد از اینکه یک کاربر راه‌اندازی شد، لازم است که برای احراز هویت در سرور ثبت نام کرده و توسط یک آدرس خاص در دسترس باشد. عمل ثبت توسط انتشار درخواست ثبت از سمت کاربر به سرور ثبت کننده صورت می­پذیرد. این سرور اطلاعات دریافت شده از درخواست­های ثبت SIP را در محل خدمت برای دامنه­ای که مدیریت می­کند قرار می­دهد. سرور تغییر مسیر پس از دریافت درخواست SIP از کاربر، آدرس سروری که قرار است ملاقات شود را به کاربر برمی‌گرداند. در حقیقت کاربر را برای تماس با مجموعه URIهای معادل هدایت می­کند.شکل زیر روند برقراری یک نشست SIP بین دو عامل کاربر آلیس و باب و خاتمه­ی آن را نشان می­دهد. عامل کاربر آلیس درخواست INVITE را که در جهت برقراری ارتباط با عامل کاربر باب است را به سمت باب ارسال می­کند که در مسیر راه از دو پروکسی می­گذرد که هرکدام از پروکسی­های SIP تا رسیدن به مقصد پیام TRYING 100 را صادر می­کنند که نشان‌دهنده‌ی سعی آن­ها بر ایجاد ارتباط است. پس از رسیدن پیام INVITE به باب، پیام RINGING 180 که نشان‌دهنده‌ی خوردن زنگ در آن مکان است به تماس‌گیرنده ارسال می­شود. سپس باب در جهت اطلاع‌رسانی برای اعلام موفقیت ارتباط، پیام OK 200 به آلیس ارسال می­کند. پیام­های INVITE، TRYING و RINGING، هر سه در مسیر خود از پروکسی­ها عبور می­کنند اما پیام ACK که آلیس در جهت رسید بسته­های قبول درخواست به باب می­فرستد، مستقیم به خود کاربر باب ارسال می‌کند. بعد از برقراری نشست SIP بین این دو نقطه­ ی پایانی (آلیس و باب) داده به صورت نقطه به نقطه و بدون عبور از پروکسی­ها، بین دو کاربر منتقل می­شود و در نهایت پیام bye از سمت یکی از کاربرها ارسال شده که در جهت پایان نشست است