آشنایی عمیق‌تر با پروتکل‌ها و استانداردهای ویپ

پروتکل‌ها و استانداردهای ویپ

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

معرفی و کاربرد پروتکل‌ها و استانداردهای ویپ مانند SIP، RTP و SDP

پروتکل‌ها و استانداردهای ویپ-پروتکل SIP (Session Initiation Protocol)

SIP پروتکلی است که برای ایجاد، مدیریت، و پایان دادن به تماس‌های ویپ استفاده می‌شود. از پروتکل SIP برای شروع جلسات ارتباطی، شامل تماس‌های صوتی و تصویری، استفاده می‌شود.
نحوه کار این پروتکل به این صورت است که پروتکل SIP درخواست‌های مختلفی مانند INVITE (برای شروع تماس) و BYE (برای پایان تماس) ارسال می‌کند.
برای درک ساختار و عملکرد پروتکل SIP آشنایی با پیام‌هایی مانند INVITE، ACK، CANCEL، و نحوه پاسخ‌دهی به آن‌ها بسیار مهم است.

پروتکل‌ها و استانداردهای ویپ – پروتکل RTP (Real-time Transport Protocol)

پروتکل RTP برای انتقال داده‌های صوتی و تصویری در تماس‌های ویپ استفاده می‌شود. این پروتکل وظیفه ارسال پکت‌های صوتی یا تصویری به گیرنده را دارد.
RTP معمولاً با UDP کار می‌کند و برای ارائه ارتباطات بلادرنگ طراحی شده است. هر پکت RTP شامل دنباله‌ای از داده‌ها به همراه اطلاعات مربوط به زمان‌بندی است.
پروتکل SRTP نسخه امن‌تری از RTP که از رمزنگاری برای حفاظت از محتوای ارتباطات استفاده می‌کند.

پروتکل‌ها و استانداردهای ویپ – پروتکل SDP (Session Description Protocol)

پروتکل SDP برای توصیف پارامترهای جلسات چندرسانه‌ای استفاده می‌شود. از این پروتکل برای تبادل اطلاعات مانند کدک‌های صوتی، فرکانس نمونه‌برداری، و نرخ بیت استفاده می‌شود.
SDP معمولاً به عنوان بخشی از پیام‌های SIP ارسال می‌شود و در تنظیمات و برقراری تماس‌ها نقش مهمی دارد.

تحلیل و بررسی پیام‌های پروتکل‌ها و استانداردهای ویپ


برای شروع تحلیل پیام‌های SIP، بهتر است از ابزارهایی مانند Wireshark استفاده کنیم. این نرم‌افزار به شما اجازه می‌دهد تا ترافیک شبکه را مانیتور کرده و پیام‌های SIP را دقیقاً بررسی کنید. مراحل کار به این شکل است:

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

پس از اجرای Wireshark، شبکه‌ای که از آن استفاده می‌کنید را انتخاب کنید و روی دکمه “Start Capture” کلیک کنید.
برای فیلتر کردن ترافیک، مورد نظر خود در اینجا ترافیک مربوط به مرکز تلفن می‌باشد می‌توانید از فیلتر sip یا rtp استفاده کنید تا فقط پیام‌های مرتبط با ویپ را ببینید.

بررسی پیام‌های SIP در نرم افزار وایرشارک

INVITE: این پیام برای شروع یک تماس ارسال می‌شود. می‌توانید در Wireshark پیام‌های INVITE را مشاهده کنید. در این پیام اطلاعاتی مانند آدرس IP تماس‌گیرنده، پورت‌ها، و کدک‌های پیشنهادی وجود دارد.
ACK: این پیام برای تایید پذیرش یک تماس ارسال می‌شود.
BYE: برای پایان یک تماس ارسال می‌شود.
REGISTER: این پیام توسط دستگاه‌های ویپ برای رجیستر شدن به سرور SIP ارسال می‌شود.
وقتی یک پیام را انتخاب می‌کنید، در پایین صفحه Wireshark می‌توانید جزئیات آن را مشاهده کنید. مثلاً در پیام INVITE می‌توانید اطلاعاتی مانند:
From و To: که آدرس SIP تماس‌گیرنده و گیرنده را نشان می‌دهد.
SDP: بخشی از پیام که مشخصات رسانه (کدک‌ها و پورت‌ها) را تعیین می‌کند.
مثال یک پیام INVITE:

INVITE sip:1234@192.168.1.100 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-1c9a7-341
From: “Caller” ;tag=as30f2a6b1
To:
Call-ID: 87654321@192.168.1.50
CSeq: 102 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 180

تحلیل پیام‌های RTP برای آشنایی بیشتر با پروتکل‌ها و استانداردهای ویپ

بعد از ایجاد تماس، پیام‌های RTP برای انتقال صدا شروع به کار می‌کنند. می‌توانید آن‌ها را با فیلتر rtp مشاهده کنید.
در RTP، می‌توانید شماره پکت، تأخیر و میزان افت بسته را بررسی کنید که به شما در عیب‌یابی مشکلات کیفیت صدا کمک می‌کند.
تمرین:
یک تماس ویپ برقرار کنید.
در Wireshark ترافیک SIP و RTP آن تماس را ضبط کنید.
پیام‌های SIP را تحلیل کنید (INVITE، ACK، BYE).
بررسی کنید که کدام کدک‌ها استفاده می‌شوند و پارامترهای رسانه‌ای چگونه تنظیم شده‌اند.
آیا می‌خواهید در این بخش یا بررسی پیام‌های خاص بیشتری به شما کمک کنم؟

بسیار خوب! بیایید به تحلیل جزئیات بیشتری از پیام‌های SIP و RTP بپردازیم و به برخی از جزئیات مهم هر پیام نگاه کنیم.

تحلیل پیام INVITE:
این پیام برای شروع یک تماس ارسال می‌شود و شامل اطلاعات کلیدی زیر است:

From و To: این فیلدها آدرس SIP تماس‌گیرنده و مقصد را نشان می‌دهند.

From: “Caller” ;tag=as30f2a6b1
To:
Call-ID: شناسه منحصربه‌فرد تماس که در همه پیام‌های مرتبط با این تماس ثابت می‌ماند.

Call-ID: 87654321@192.168.1.50
CSeq: نشان‌دهنده تعداد دنباله درخواست‌هاست. برای هر پیام INVITE، یک CSeq جدید استفاده می‌شود.

CSeq: 102 INVITE
SDP (Session Description Protocol): بخش مهمی از پیام INVITE است که پارامترهای مربوط به رسانه را مشخص می‌کند. این اطلاعات شامل کدک‌های قابل استفاده، نرخ بیت، پورت RTP و IP برای انتقال صدا است.

مثالی از بخش SDP:

v=0
o=- 53655765 1 IN IP4 192.168.1.50
s=-
c=IN IP4 192.168.1.50
t=0 0
m=audio 49170 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000


این بخش نشان می‌دهد که:

m=audio 49170 RTP/AVP 0 101: تماس از طریق RTP روی پورت 49170 برقرار می‌شود و کدک‌های PCMU (0) و DTMF (101) پشتیبانی می‌شوند.
a=rtpmap: مشخصات کدک‌ها را نشان می‌دهد. در اینجا، PCMU با نرخ 8000 هرتز و همچنین DTMF مشخص شده‌اند.

تحلیل پیام REGISTER:
این پیام وقتی ارسال می‌شود که یک دستگاه ویپ (مثلاً یک تلفن SIP) قصد دارد به سرور SIP رجیستر شود.

Contact: این فیلد آدرس IP دستگاه را مشخص می‌کند. همچنین مدت زمان رجیستر شدن را نیز نشان می‌دهد.
Contact: ;expires=3600 اینجا مشخص شده که این رجیستر برای 3600 ثانیه (1 ساعت) معتبر خواهد بود.

تحلیل پیام ACK:
پیام ACK به‌عنوان تایید نهایی پس از یک پاسخ مثبت (مثلاً 200 OK) به پیام INVITE ارسال می‌شود.

این پیام ساده است و شامل Call-ID، From، To و CSeq است تا تایید کند که طرف مقابل پیام 200 OK را دریافت کرده است.

تحلیل پیام RTP:
RTP مسئول انتقال صدا (یا تصویر) است و بعد از تایید تماس شروع به ارسال می‌شود.

Sequence Number: شماره دنباله پکت‌ها را مشخص می‌کند و به بررسی اینکه آیا پکتی از دست رفته است یا نه کمک می‌کند.
Timestamp: نشان‌دهنده زمان ارسال پکت است.
Payload Type: نوع داده را نشان می‌دهد (مثلاً کدک استفاده‌شده).

عیب‌یابی پروتکل‌ها و استانداردهای ویپ با Wireshark

Packet Loss (افت بسته): اگر در پکت‌های RTP افت بسته مشاهده شود (پکت‌ها به ترتیب نرسند)، کیفیت صدا تحت تأثیر قرار می‌گیرد. با مشاهده فاصله بین شماره‌های Sequence در RTP می‌توانید این افت را تشخیص دهید.
Jitter: نوسانات زمانی در رسیدن پکت‌های RTP که بر کیفیت تماس تأثیر می‌گذارد. Wireshark به شما امکان اندازه‌گیری jitter را می‌دهد.

برای آشنایی بیشتر با پروتکل‌ها و استانداردهای ویپ یک تماس برقرار کنید و Wireshark را روی شبکه خود فعال کنید.
پیام‌های SIP را فیلتر کنید (sip) و پیام‌های INVITE، REGISTER، و ACK را تحلیل کنید.
پیام‌های RTP را فیلتر کنید (rtp) و پکت‌های مربوط به انتقال صدا را بررسی کنید.