اگر علاقه مند به مباحث VoIP باشید یا در این حوزه مشغول به کار هستید ، بارها و بارها نام پروتکل SIP را شنیده اید و از آن استفاده نموده اید. در این مقاله قصد داریم کمی موشکافانه تر پروتکل SIP مخفف Session Initiation Protocol به معنی پروتکل شروع نشست را مورد بررسی قرار دهیم.
SIP یک پروتکل Signaling است که برای آغاز ، برقراری و ویرایش یا پایان دادن به یک نشست یا Session که به صورت Real-Time یا در لحظه ایجاد شده استفاده می گردد. این نشست ها یا Sessions حاوی ویدیو ، صدا ، پیغام متنی و سایر سرویس ها و برنامه های ارتباطی بین دو یا بیشتر از دو دستگاه در شبکه های IP است.
Session Initiation Protocol توسط سازمان IETF یا Internet Engineering Task Force به منظور رفع نیازهای ارتباطات بر پایه IP گسترش داده شده است. پروتکل SIP مکمل دیگر پروتکل های ارتباطی نظیر Real Time Transport Protocol یا RTP و Real-Time Streaming Protocols یا RTSP که در نشست های بر پایه آی پی استفاده می شوند ، است.
ویژگی های SIP
پروتکل SIP پنج ویژگی اصلی را در زمان ایجاد و پایان یک نشست چند رسانه ای تعیین می نماید.
User Location
User Availability
User Capabilities
Session Setup
Session Management
اگر چه خود پروتکل SIP وظیفه ارائه سرویس های ارتباطی را بر عهده ندارد ، اما ویژگی های آن ، برنامه های تعاملی را برای خصوصیت های SIP که در بالا عنوان شد تعریف می نمایند. برای مثال از طریق این برنامه های تعاملی می توان اطلاعات اضافه ای را به سرویس ارتباطی که از طریق SIP Message ایجاد شده است اضافه نماید. به عنوان نمونه لینک شدن تصویر کاربر در زمان برقراری تماس از طریق SIP که در Directory مخاطبان وجود دارد.
همچنین پروتکل SIP از Name Mapping و سرویس های Redirection پشتیبانی می کند. این ویژگی ها جهت Mobility یا قابلیت جابه جایی بسیار کلیدی هستند. Name Mapping به این معنا است که کاربر و دستگاه ها می توانند توسط یک شناسه تک و منحصر به فرد شناخته شوند. به این شناسه URI یا Uniform Resources Identifier گفته می شود. URI مجزا از Network Location یا آدرس شبکه ای کاربر می باشد. URI ها شامل عدد و حروف الفبایی هستند که Syntax آن بیشتر شبیه آدرس ایمیل است. برای مثال sip:100@192.168.1.1:5060 یا Narinnet@192.168.1.1
همچنین SIP به غیر از سرویس های Real-Time قابلیت استفاده به عنوان اعلان رویداد غیر هم زمان ، مانند قابلیت Call Back اتوماتیک و بسیاری امکانات دیگر را نیز دارا می باشد.
SIP چگونه کار می کند؟
SIP نیز مانند پروتکل هایی مثل HTTP و SMTP در لایه ی Application از مدل OSI کار می کند. همچنین آن را به عنوان یک پروتکل Request-Response می شناسیم. در SIP درخواست ها از کلاینت ها دریافت می شود و پاسخ ها از طریق سرور فرستاده می شوند. این درخواست ها می توانند از طریق هر پروتکل انتقالی مانند UDP ، TCP و SCTP فرستاده شوند.
SIP سیستم نهایی را برای برقراری Session ، رسانه ارتباط یا Communication Media و ویژگی های رسانه یا Media Parameters را تشخیص می دهد. همچنین بررسی قبول یا عدم قبول درخواست مشارکت در ارتباط توسط End Point ها بر عهده SIP می باشد. در نهایت پس از اطمینان از ویژگی های Session ایجاد شده ، SIP ویژگی های تماس را در دو طرف یا تمام End Point ها ایجاد می نماید. از این پس وظیفه Call Transfer یا انتقال تماس و Call Termination یا پایان تماس نیز به عهده SIP خواهد بود.
در انتها بهتر است بدانید که Session Initiation Protocol هر دو آی پی های ورژن ۴ و ۶ را پشتیبانی می کند.
نگاهی به بسته های SIP
بسته های SIP که بین دو دستگاه EndPoint رد و بدل می شوند ، به طور معمول یا از نوع Request هستند یا از نوع Response. همچنین ۱۴ مدل مختلف SIP Request وجود دارد که در تلفن های آی پی کاربرد دارند. از این ۱۴ نوع ۶ عدد آن ها از اهمیت بالایی برخوردار هستند.
Invite
همان طور که از نام آن مشخص است ، طرف مقابل را دعوت به آغاز تماس می کند.
Ack
طرف مقابل با ارسال Ack دعوت آغاز کننده تماس را لبیک می گوید.
Bye
برای پایان نشست SIP با استفاده از این پیغام همدیگر را به خدای بزرگ و مهربان می سپارند.
Cancel
درخواست های معلق (بلاتکلیف) را پایان می دهد.
Register
اطلاعات دارنده یک SIP Extension را به سرور می رساند. برای مثال نام هاست (نام دستگاه تلفن) و آی پی آدرس آن
Options
حاوی امکانات یک تماس SIP خاص است. به عبارت دیگر ، چه سرویس ها و ویژگی هایی بر روی این تماس وجود دارند؟
باقی بسته ها از نوع Request عبارتند از : Prack ، Subscribe ، Notify ، Publish ، Info ، Refer ، Message ، Update