SIP Protocol | پروتکل سیپ

برای پروژه‌ای یک مقاله کوتاه در مورد SIP نوشتم. اینجا هم قرارش میدم شاید به درد کسی خورد.

تماسهای روی IP از دو دسته‌ی اصلی پروتکل تشکیل شده اند:

۱- پروتکل‌های Transmission

۲- پروتکل‌های Signaling

برای برقراری تماس تحت آی‌پی نیاز است که ابتدا با استفاده از آی‌پی و پورت مخاطب،‌  یک ارتباط سوکت با مخاطب برقرار کنیم و از طریق این ارتباط پکت‌های صدا رو ارسال و دریافت کنیم. بخش ایجاد سوکت به عهده‌ی پروتکل‌های سیگنالینگ و بخش ارسال و دریافت پکتها به عهده‌ی پروتکل انتقال است.

معروفترین پروتکل سیگنالینگ پروتکل SIP است که کار ایجاد سوکت با مخاطب را انجام میدهد. برای مثال وقتی شما میخواهید با وایبر تماس تلفنی‌ای برقرار کنید، ابتدا وایبر شماره تلفن مخاطب رو به یک سرور که پروتکل SIP را اجرا میکند ارسال میکند و این سرور در صورتی که اون مخاطب اشغال نباشد و یا شما رو بلاک نکرده باشد، به او پیغام برقراری تماس تلفنی را ارسال میکند. حال در صورتی که مخاطب تماس را قبول کند، سوکتی بین مخاطب و شما ایجاد میشود تا از طریق آن پکتهای صدا را از طریق پروتکلهای انتقال مثل RTP، ارسال کنید.

از آنجایی که پیاده سازی SIP نیاز به سرور دارد،‌ بعضی از شرکتها در قبال دریافت هزینه‌ای SIP Server اجاره میدهند. به این معنی که شما اکانت آن سرور رو خریداری میکنید و میتونید از آن سرور برای برقراری تماسهای VoIP استفاده کنید. خیلی از اپلیکیشنهای رایگان موبایل خودشان از SIP Server خاصی پشتیبانی نمیکنند و شما رو مجبور میکنند که یک اکانت SIP داشته باشید.

پروتکل SIP یک پروتکل لایه اپلیکیشن هست که شباهت زیادی به پروتکل HTTP دارد. بدین صورت که با ارسال پیغامهای متنی، کلاینت و سرور با هم ارتباط برقرار میکنند. پیغامهای متنی SIP از دو دسته تشکیل شده اند. درخواست ها و پاسخ ها.

درخواست ها شامل یک فیلد به نام  method هستند که مشخص میکنند این درخواست برای چه ارسال میشود.

لیستی از مقدارهایی که فیلد method میتواند داشته باشد:

•REGISTER: Used by a UA to register to the registrar.

•INVITE: Used to establish a media session between user agents.

•ACK: Confirms reliable message exchanges.

•CANCEL: Terminates a pending request.

•BYE: Terminates an existing session.

•OPTIONS: Requests information about the capabilities of a caller without the need to set up a session. Often used as keepalive messages.

•REFER: indicates that the recipient (identified by the Request-URI) should contact a third party using the contact information provided in the request. (call transfer)

 پاسخ‌ها هم شامل یک فیلد response code هستند که وضعیت پاسخ داده شده را مشخص میکند.

لیستی از مقدارهایی که فیلد response code میتواند بگیرد:

•Provisional (1xx): Request received and being processed.

•Success (2xx): The action was successfully received, understood, and accepted.

•Redirection (3xx): Further action needs to be taken (typically by sender) to complete the request.

•Client Error (4xx): The request contains bad syntax or cannot be fulfilled at the server.

•Server Error (5xx): The server failed to fulfill an apparently valid request.

•Global Failure (6xx): The request cannot be fulfilled at any server.

در شکل زیر که از ویکی‌پدیا برداشته شده، نحوه برقراری یک تماس ویپ با استفاده از پروتکل سیگنالینگ SIP نمایش داده شده است:

SIP_call_flow_between_UA,_Redirect_Server,_Proxy_and_UA

وقتی از SIP Server حرف میزنیم،‌منظور یک برنامه تحت سرور است که تحت پروتکل SIP تماس گیرنده را به فرد مورد نظر متصل میکند. به خاطر معروف بودن این پروتکل و استفاده گسترده از آن در تماسهای VoIP، گاهی به تماسهای ویپ SIP Call هم میگویند.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین