تمامی اجزاء یک سیستم ارتباط VoIP می‌بایست با زبانی شناخته شده برای همدیگر، باهم صحبت کنند تا زبان هم را متوجه شوند، به این زبان مشترک یک پروتکل می‌گویند. در دنیای VoIP پروتکل‌های زیادی وجود دارد، اما یک پروتکل استاندارد غالب اکثر ارتباطات و سیستم‌های تلفنی است و آن پروتکل SIP نام دارد. (Session Initiation Protocol). پروتکل SIP علاوه امکان برقراری مکالمه صوتی، امکان انتقال تصویر و پیام را نیز دارد، این پروتکل یکی از استانداردهای تعریف شده در IETF است. پروتکل SIP یک ساختار متنی دارد و از این لحاظ بسیار شبیه پروتکل HTTP است و البته برای ما فارسی زبان‌ها جالب است بدانیم متن ارسالی بر پایه UTF8 است و قابلیت انتقال متون فارسی را نیز دارد، این پروتکل به طور پیش‌فرض بر روی پورت 5060 UDP و 5060 TCP کار می‌کند، البته این پورت قابل تغییر است. وقتی یک مکالمه با این پروتکل برقرار می‌شود، آشنایی با پیام‌های ارسالی برای یک متخصص VoIP الزامی است، در بسیاری از نرم‌افزارها با نام این پیام‌ها مواجه خواهید شد، به خصوص برای نظارت بر عملکرد این پروتکل.

 

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

 

 


پیام Invite: هرگاه یک کاربر بخواهد درخواست برقراری ارتباط با مقصدی را بکند این پیام ایجاد می‌شود. در واقع Invite برای سرور ارسال می‌شود تا ارتباط را با مقصد برقرار کند. البته در سناریوهای مختلف ممکن است این درخواست به واسطه یک proxy به سرور منتقل شود.


پیام ACK: برای تأیید نهایی انجام یک عمل ارسال می‌شود، مثلاً وقتی عملیات hand shake صورت گرفت برای تأیید انجام موفق این عمل یک پیام ACK ارسال می‌گردد.


پیام BYE: درخواست برای قطع session یا همان مکالمه برقرار شده می‌باشد.


پیام Register: یک پیام برای درخواست Register شدن روی سرور که البته در سناریو ما مشاهده نمی‌کنید چون فرض این است داخلی ما قبلاً Register شده است.

 

هدف این مقاله بیشتر آشنایی با Invite, Bye, Register است که جزء پیام‌های مهم پروتکل SIP هستند اما در زیر جا دارد لیست پیام‌های از پیش تعریف شده این پروتکل را نیز ببینیم، احتمالاً با برخی از آن‌ها به واسطه مواجه شدن بر روی IPPhone یا Softphone خود آشنایی دارید:

 

ic Information -> 1XY

100 – Trying
180 – Ringing
181 – Call is being forwarded
182 – Queued
183 – Session progress

Success -> 2XY

200 – OK
202 – Accepted
204 – No notification

Redirection -> 3XY

300 – Multiple choices
301 – Moved permanently
302 – Moved temporarily
305 – Use proxy
380 – Alternative service

System Failures -> 4XY

400 – Bad request
401 – Unauthorized
402 – Payment required
403 – Forbidden
404 – Not found
405 – Method not allowed
406 – Not acceptable
407 – Proxy authentication required
408 – Request timeout
410 – Gone
412 – Conditional request failed
413 – Request entity too large
414 – Request URI too long
415 – Unsupported media type
416 – Unsupported URI scheme
417 – Unsupported resource priority
420 – Bad extension
421 – Extension required
422 – Session interval too small
423 – Interval too brief
428 – Use identity header
429 – Provide referrer identity
430 – Flow failed
433 – Anonymity not allowed
436 – Bad identity information
437 – Unsupported certificate
438 – Invalid identity header
439 – First hop lacks outbound support
440 – Maximal breadth exceeded
469 – Bad information package
470 – Consent needed
480 – Temporarily unavailable
481 – Call/Transaction does not exist
482 – Loop detected
483 – Too many hops
484 – Address incomplete
485 – Ambiguous
486 – Busy here
487 – Request terminated
488 – Not acceptable here
489 – Bad event
491 – Request pending
493 – Undecipherable
494 – Security agreement required

Server errors -> 5XY

500 – Server internal error
501 – Not implemented
502 – Bad gateway
503 – Service unavailable
504 – Server time out
505 – Version not supported
513 – Message too large
580 – Precondition failure

Global errors -> 6XY

600 – Busy Everywhere
603 – Decline
604 – Does Not Exist Anywhere
606 – Not Acceptable


منبع: VOIPIRAN