مقایسه استاندارد های SIP و H.323
Session Initiation Protocol یا به اختصار SIP استاندارد سازمان IETTs[1] برای برقراری ارتباط کنفرانس چندرسانه ای بر پایه پروتکل اینترنت [2] است .
SIP ، پروتکلی کنترلی در لایه کاربردی [3] و مبتنی بر کدگذاری اسکی است که می تواند برای برقراری ، نگهداری و خاتمه تماس بین دو یا بیشتر نقطه انتهایی استفاده شود .
همانند دیگر پروتکل های VOIP ، SIP نیز برای آدرس دهی کاربردهای سیگنالینگ و مدیریت نشست[4] ها در یک شبکه تلفنی طراحی شده است . سیگنالینگ اجازه می دهد اطلاعات تماس در شبکه منتقل شود و مدیریت نشست قابلیت کنترل خصوصیات یک تماس را فراهم می آورد .
به طور کلی SIP توانایی های زیر را فراهم می کند :
1 – مشخص کردن موقعیت مقصد نهایی : SIP قابلیت تحلیل آدرس [5]، نگاشت نام [6]و تغییر مسیر تماس [7]را فراهم می کند .
2 – مشخص کردن خصوصیات و قابلیت های نقطه های تماس :SIP قادر است از طریق پروتکل توصیف نشست یا SDP[8] سرویس هایی که یک نقطه تماس می تواند ارائه می دهد را مشخص کند .
3 – مشخص کردن در دسترسی بودن نقطه تماس و علت آن : اگر تماس نتواند به علت در دسترس نبودن نقطه انتهایی برقرار شود ، SIP میتواند مشخص کند که آیا این تماس به علت مشغول بودن برقرار نشده است یا بعد از تعداد مشخصی زنگ خوردن پاسخی دریافت نشده است .
4 – برقراری نشست بین نقطه شروع و انتهایی تماس : اگر تماس بتواند تکمیل شود ، SIP نشستی بین نقاط ابتدایی و انتهایی دایر می کند . SIP همچنین تغییرات در حین تماس از جمله اضافه کردن یک نقطه جدید به کنفرانس چندرسانه ای ، تغییر خصوصیات رسانه و نحوه کدگذاری را پشتیبانی می کند .
5 – انتقال و اتمام تماس ها : SIP از انتقال تماس از یک نقطه به نقطه ای دیگر پشتیبانی می کند . SIP به سادگی یک نشست بین واگذار کننده [9]و نقطه جدید برقرار می کند و همچنین به نشست های بین واگذار کننده و نقطه انتهایی در صورت لزوم پایان می دهد .
توجه : اصطلاح کنفرانس به معنی یک نشست ( تماس ) برقرار شده بین دو یا چندین نقطه انتهایی است . کنفرانس می تواند دو یا چندین کاربر را در برگیرد و با استفاده از یک نشست multicast یا چندین نشست unicast برقرار شود .
اجزای SIP :
Sip یک پروتکل peer-to-peer است که به هرکدام از طرف ها در این نشست یک User Agent یا UA گفته می شود . یک UA می تواند در یکی ازنقش های زیر عمل کند :
1 – User Agent Client یا به اختصار UAC : یک برنامه کلاینت که یک درخواست SIP تولید می کند .
2 – User Agent Server یا به اختصار UAS : یک برنامه سرویس دهنده که هنگامی که یک درخواست SIP از کلاینت دریافت می کند با کاربر ارتباط برقرار کرده و به آن پاسخ می دهد .
یک نقطه انتهایی SIP قادر است به عنوان یک UAC و یک UAS عمل کند ولی در یک تراکنش خاص فقط می تواند در یک نقش عمل کند .
پس از دیدگاه ساختاری ، اجزای فیزیکی یک شبکه SIP می تواند به دو دسته کلاینت و سرور گروهبندی شود . شکل 1 اجزای شبکه SIP را نمایش می دهد .
توجه : سرورهای SIP می توانند با دیگر سرویس های کاربردی از جمله LDAP ، XML و برنامه های پایگاه داده ارتباط برقرار کنند . از این سرویس ها برای خدماتی از قبیل مدیریت و احراز هویت کاربران استفاده می شود .

شکل 1 – ساختار SIP
کلاینت SIP شامل بخش های زیر است :
· تلفن ها : که می توانند به عنوان یک UAS یا یک UAC عمل کنند . تلفن های نرم افزاری نیز می توانند درخواست های SIP را تولید یا به آنها پاسخ دهند .
· دروازه[10] ها : که کنترل تماس را فراهم می کنند . دروازه ها سرویس های مختلفی ارائه می دهند که رایج ترین آنها عمل ترجمه بین نقطه انتهایی یک کنفرانس مبتنی بر SIP و بقیه انواع ترمینال هاست . این عملیات شامل ترجمه فرمت انتقال و روال های ارتباطی است . دروازه ها همچنین عمل ترجمه کدگذاری بین صدا و تصویر و برقراری تماس را نیز انجام می دهند .
سرور های SIP به سه دسته زیر تقسیم می شوند :
1 – Proxy Server : که یک دستگاه میانی است که درخواست های SIP را از یک کلاینت دریافت می کندو درخواست را از طرف کلاینت به سمت سرور SIP بعدی هدایت می کند . سرور های پراکسی عملکردهایی از جمله ، کنترل دسترسی به شبکه ، مسیریابی ، امنیت و تجویز اختیار به کاربران را ارائه می دهند .
2 – Redirect Server : اطلاعاتی در مورد گره بعدی یا گره ای که پیام باید به آن تحویل داده شود به کلاینت ها ارائه کنند . سپس کلاینت به سرور بعدی یا UAS به صورت مستقیم ارتباط برقرار می کند .
3 – Register Server : درخواست هایی که از طرف UAC ها برای ثبت نام محل شان ( آدرس آی پی و دیگر مشخصات ) دریافت می کند را پردازش می کند .
SIP چگونه کار می کند ؟
SIP یک پروتکل ساده بر پایه کدگذاری اسکی است که از مکانیزم درخواست و جواب برای برقراری ارتباط در شبکه بر پا ساختن یک کنفرانس بین دویاچند نقطه انتهایی استفاده می کند .
کاربران در یک شبکه SIP بوسیله آدرس های SIP یکتا شناخته می شوند . یک آدرس SIP مشابه یک آدرس ایمیل و به فرمت sip:userid@gateway.com است . شناسه کاربری می تواندیک نام کاربری یا یک آدرس E.164 باشد .
یک کاربر نهایی SIP ممکن است بین سیستم ها حرکت کند . موقعیت یک کاربر نهایی می تواند به صورت پویا در یک سرور SIP ثبت شود . سرور می تواند یک یا چندین پروتکل از جمله finger ، rwhoise ، LDAP را برای تعیین محل کاربر نهایی استفاده کند .
چون کاربر نهایی می تواند در بیش از یک محل login کند و چون سرور موقعیت یاب ممکن است برخی مواقع اطلاعات نادرستی داشته باشد ، ممکن است بیش از یک آدرس برای کاربر نهایی برگرداند . اگر درخواست از طرف یک سرور پراکسی SIP آمده باشد ، سرور پراکسی هر یک از آدرس ها را چک کند تا زمانی که موقعیت کاربر نهایی را پیدا کند ولی اگر درخواست از یک SIP redirect Server آمده باشد ، تمامی آدرس ها را در هدر فیلد ارتباط به تماس گیرنده ارسال می کند .
برای اطلاعات بیشتر به RFC2543 که در آدرس http://www.faqs.org/rfcs قابل دستیابی است مراجعه کنید .
استفاده از یک سرور پراکسی :
اگر از یک سرور پراکسی استفاده شود ، UAC ها درخواست خود را به سوی آن می فرستند و سرور پراکسی مسیر را مشخص می کند و درخواست را به سمت پذیرنده تماس هدایت می کند . ( شکل 2 )

شکل 2 – درخواست SIP از طریق سرور پراکسی
پذیرنده تماس به سرور پراکسی پاسخ می دهد و آن نیز پاسخ را به سمت تماس گیرنده هدایت می کند . ( شکل 3 )

شکل 3 – پاسخ SIP از طریق سرور پراکسی
سرور پراکسی پاسخ تصدیق هر دوطرف را به یکدیگر هدایت می کند و یک نشست بین تماس گیرنده و پذیرنده تماس برقرار می شود . ( شکل 4 )
پروتکل انتقال زمان واقعی یا RTP[11] برای ارتباط بین تماس گیرنده و پذیرنده تماس استفاده می شود .

شکل 4 – نشست SIP از طریق سرور پراکسی
استفاده از Redirect Server :
اگر یک redirect server استفاده شود . UAC یک درخواست به سمت آن می فرستد و redirect server نیز با location server ارتباط برقرار می کند تا بتواند مسیر به پذیرنده ارتباط را مشخص کند . سپس redirect server این اطلاعات را به تماس گیرنده ارسال می کند . تماس گیرنده نیز پیام تصدیق دریافت اطلاعات را باز می گرداند . ( شکل 5 )
شکل 5 – درخواست SIP از طریق Redirect Server
سپس تماس گیرنده با توجه به اطلاعات دریافتی از redirect server درخواستی به سمت دستگاه هدف
ارسال می کند . این دستگاه می تواند پذیرنده تماس یا سروری دیگرکه پیام ها را هدایت می کند باشد .
هنگامی که پیامی به پذیرنده تماس رسید پاسخ می دهد و تماس گیرنده نیز پیام تصدیق دریافت را به سمت پذیرنده تماس ارسال می کند . ( شکل 6 (
RTP برای ارتباط بین تماس گیرنده و پذیرنده تماس استفاده می شود .

شکل 6 – نشست SIP از طریق Redirect Server
توجه : SIP و RTP در مدل TCP/IP در لایه کاربری قراردارند .
H . 323 :
علاوه بر SIP پروتکل های دیگری برای ارسال صدا از طریق پروتکل اینترنت وجود دارد . H . 323 به عنوان استاندارد رسانه ای سازمان بین المللی ارتباطات ( ITU) برای انتقال صدا و تصویر از طریق پروتکل اینترنت استفاده می شود .
استاندارد H .323 چندین پروتکل از جمله Q.931 ( برای سیگنالینگ (، H.245 ( برای تبادل پیام ) و RAS[12] ( برای کنترل نشست ها) را ترکیب می کند .
H .323 اولین استاندارد در آدرس دهی کنترل تماس ها در VOIP است که تمامی دروازه های صدای شرکت سیسکو از آن پشتیبانی می کنند .
SIP و H .323 بر آدرس دهی کنترل نشست ها و کاربردهای سیگنالینگ در یک ساختار کنترل تماس توزیع شده طراحی شده اند . اگرچهSIP و H .323 برای ارتباط با نقاط انتهایی هوشمند بسیار مناسب اند ولی می توانند با نقاط انتهایی با هوشمندی محدود نیز ارتباط برقرار کنند .
شکل 7 پشته پروتکل H .323 را با جزئیات کامل نمایش می دهد .
شکل 7 – پشته پروتکل H .323
مقایسه دو پروتکل H.323 و SIP در جدول زیر ارائه شده است .
|
SIP |
H.323 | |
|
Clients |
Intelligent |
Intelligent |
|
Network intelligence and services |
Provided by servers (Proxy, Redirect, Registrar) |
Provided by gatekeepers |
|
Model used |
Internet/WWW |
Telephony/Q.SIG |
|
Signaling protocol |
UDP or TCP |
TCP (UDP is optional in Version 3) |
|
Media protocol |
RTP |
RTP |
|
Code basis |
ASCII |
Binary (ASN.1 encoding) |
|
Other protocols used |
IETF/IP protocols, such as SDP, HTTP/1.1, IPmc, and MIME |
ITU / ISDN protocols, such as H.225, H.245, and H.450 |
|
Vendor interoperability |
Widespread |
Widespread |
اگزچه پیام های SIP به صورت مستقیم نمی توانند با H.323 ارتباط برقرار کنند ولی هر دو پروتکل می توانند در یک شبکه پکت تلفنی به صورت همزمان استفاده شوند . به عنوان مثال UAC ها می توانند از H.323 برای ارتباط با دروازه ها و از SIP برای سیگنالینگ بین تماس ها بهره ببرند . هنگامی که تماس برقرار شد ، اطلاعات از طریق دروازه های مختلف توسط یک جریان RTP منتقل می شوند .



