با بررسی نحوه برقراری یک تماس با استفاده از پروتکل SIP میتوان قابلیتهای مهم SIP را نشان داد. در این مقاله برای سادگی فعلاً فرض میکنیم که هر دو کاربر در یک شبکه SIP قرار دارند. سپس حالت پیچیده تر را بررسی خواهیم کرد.
آدرس کاربر در پروتکل SIP:
کلاینت های SIP هنگام روشن شدن باید موقعیت خود (آدرس IP و سایر اطلاعات مورد نیاز) را در ثبت کننده SIP (SIP Registrar) ثبت کنند. به این ترتیب کاربر میتواند صرف نظر از مکان تماسهای خود را از طریق ترمینالهای دلخواه دریافت کند. مثلاً یک کاربر همواره از طریق آدرس sip:Alice.Smith@domain.com صرف نظر از اینکه در محل کار و یا دانشگاه خود حاضر است، قابل دسترسی است. این آدرس Uniform Resource Identifier و یا URI عمومی کاربر نامیده میشود. کلاینت SIP میتواند با ثبت موقعیت فعلی خود در ثبت کننده، نگاشت URI خود بر روی آدرس IP فعلی را ممکن می سازد. کاربر می تواند از طریق چندین کلاینت SIP خود را در شبکه رجیستر کند. با انعطافی که در پروتکل SIP وجود دارد، کاربر میتواند برنامهریزی کند که در ساعتهای خاصی از روز تماسهای خود را از طریق یک یا چند ترمینال دریافت کند.
پیامهای پروتکل SIP:
برای برقراری ارتباط و کنترل آن از پیامهای SIP استفاده میشود. هر پیام SIP سه بخش دارد:
- خط شروع: نوع پیام (درخواست و یا پاسخ و کد پیام) و مبدأ آن را مشخص میکند. توجه کنید ممکن است سرورهای پروکسی مبدأ را دوباره نویسی کنند. در این صورت آدرس مبدأ به آدرس سرور پروکسی تغییر پیدا خواهد کرد.
- سربارها: در پیامهای SIP سربارها اطلاعات لازم و یا اختیاری را حمل میکنند. قسمتهای To، From و Call-ID نمونهای از سربارهای SIP هستند.
- بدنه: شامل اطلاعاتی مربوط به نشست مانند نوع Codec های صدا و تصویر است. توصیف تماس(نشست) با استفاده از پروتکل SDP در قسمت بدنه پیام SIP انجام میشود.
پیامهای SIP به صورت درخواست/پاسخ رد و بدل میشوند. جدول زیر برخی از پیامها را نشان میدهد.
Description | Method |
Initiates a call, changes call parameters (re-INVITE) | INVITE |
Confirms a final response for INVITE | ACK |
Terminates a call | BYE |
Cancels searches and “ringing” | Cancel |
Queries the capabilities of the other side | OPTIONS |
Registers with the Location Service | Register |
سیگنالینگ پروتکل SIP برای برقراری تماس
شکل بالا نحوه برقراری تماس بین دو کاربر که در یک دامنه قرار دارند را نشان میدهد. مراحل انجام این تماس به شرح زیر است:
1. درخواست کاربر A که از یک تلفن IP استفاده میکند برای برقراری ارتباط با کاربر B به سرور پروکسی SIP هدایت میشود. آدرس سرور پروکسی SIP را میتوان هنگام کنترل دسترسی کاربر به شبکه انتقال و انجام تنظیمات IP آن به کاربر اعلام کرد.
2 و 3. سرور پروکسی با ارتباط با ثبت کننده SIP اطلاعات کاربر B مانند آدرس IP آن را درخواست و دریافت میکند.
4. سرور پروکسی از جانب کاربر A با کاربر B تماس میگیرد و درخواست برقراری ارتباط میکند.
5. کاربر B قبول درخواست را به سرور پروکسی اعلام میکند. معمولاً قبل از اعلام درخواست قبول یک بوق به سرور پروکسی برگردانده میشود تا به سوی کاربر A هدایت شود. پس از برداشتن گوشی توسط کاربر B پیام قبول به سمت کاربر A ارسال میشود.
6. قبول درخواست به کاربر A اعلام میشود.
سیگنالینگ پروتکل SIP در تماس بین دو دامنه
مراحل برقراری تماس با پروتکل SIP در این شکل نشان داده شده است. سیگنالینگ تماس به صورت زیر است:
1. کاربر A درخواست برقراری تماس با کاربر B میکند.
2. سرور پروکسی A از روی URI کاربر B متوجه میشود که کاربر در دامنه دیگری قرار دارد. بنابراین با سرور تغییر جهت SIP ارتباط برقرار میکند.
3. سرور تغییر جهت آدرس IP سرور پروکسی B که به کاربر B سرویس میدهد را برمیگرداند.
4. سرور پروکسی A درخواست کاربر A را به سرور پروکسی B ارسال میکند.
5 و 6. سرور پروکسی با ارتباط با ثبت کننده SIP اطلاعات کاربر B مانند آدرس IP آن را درخواست و دریافت میکند.
7. سرور پروکسی از جانب کاربر A با کاربر B تماس میگیرد و درخواست برقراری ارتباط میکند.
8. کاربر B قبول درخواست را به سرور پروکسی اعلام میکند. معمولاً قبل از اعلام درخواست قبول یک بوق به سرور پروکسی برگردانده میشود تا به سوی کاربر A هدایت شود. پس از برداشتن گوشی توسط کاربر B پیام قبول به سمت کاربر A ارسال میشود.
9. سرور پروکسی B پاسخ را به سرور پروکسی A بر میگرداند.
10. قبول درخواست تماس به کاربر A اعلام میشود.
واقعا ممنونم.مفاهیم بسیار کاربردی و عالی بود
سلام
ممنون از اطلاعات مفیدتون .
من دانشجوی ارشد مخابرات هستم . میتونم از طریق ایمیل سوالهایی که دارم را ازتون بپرسم ؟
سوالهام بیشتر در رابطه با طراحی لینک رادیویی و یا طراحی شبکه است . اگه لطف کنید به من این امکان رو بدید ممنون میشم .
بسیار عالی و ممنون