آشنایی با پروتکل SIP و RTP
دوستان عزیز ما قرار است در این ویدئو در رابطه با پروتکل Sip و RTP صحبت کنیم.
آنچه در این مقاله می خوانید:
پروتکل Sip
خب ابتدا به سراغ اسلایدی که برایتان آماده کردیم می رویم و در رابطه با پروتکل محبوب Sip صحبت می کنیم؛ پروتکل استاندارد جهانی که تقریباً می توان گفت، تمام مرکز تلفن های ویپ از این پروتکل پشتیبانی می کنند و پروتکل استاندارد است. ما غیر از این پروتکل، پروتکل های دیگری هم داریم. مثلاً هر برندی برای خود، استانداردهایی دارد؛ مثلاً پاناسونیک از یک پروتکل مخصوص به خودش استفاده می کند و یک سری تغییرات را ایجاد کرده است یا برندهای دیگر.
اما می توان گفت که پروتکل Sip را تقریباً تمام مرکز تلفن های ویپ در دنیا، پشتیبانی می کنند و وقتی که شما می خواهید مراکز مختلف را به هم دیگر وصل کنید، اگر در حال استفاده از برندهای مختلف هستید، ناچاراً باید از پروتکلی استفاده کنید که توسط مرکز تلفن ها پشتیبانی می شود و همان طور که گفتیم پروتکل Sip به این شکل است.
پس برای ارتباط و راه اندازی داخلی ها، ترانک زدن و انتقال صدا و سیگنالینگ در شبکه ی ویپ و موارد دیگر، ما معمولاً از پروتکل Sip استفاده می کنیم. خب در مورد پروتکل هم که می دانید؛ می توان گفت که یک زبان مشترک و قابل فهم بین سیستم ها، مرکز تلفن ها و کامپیوترها می باشد.
وقتی که یک مرکز تلفن می خواهد دیتایی را با مرکز تلفن دیگری رد و بدل کند(چه صدا چه سیگنال فرقی نمی کند)، باید از یک پروتکلی استفاده کند که بینشان مشترک است؛ یعنی باید یک زبان قابل فهم باشد بین هر دو که به آن پروتکل می گوییم و پروتکل Sip هم محبوب ترین پروتکل در دنیا برای ویپ است.
حالا دوستان پروتکل Sip مخفف چیست؟ پروتکل Sip، مخفف Session Initiation Protocol است و در مورد پروتکل RTP هم بعدا صحبت می کنیم که پروتکل RTP چه کاری را برای ما انجام می دهد. ما ابتدا یک سری توضیحات اولیه را در مورد پروتکل Sip به شما می گوییم که ما چطور در حال استفاده از پروتکل Sip در تکنولوژی ویپ و مرکز تلفن های ویپ هستیم.
اول این که دوستان پروتکل Sip با استفاده از UDP است؛ یعنی در حال استفاده کردن از UDP است و در دوره ی رایگان شبکه، ما در رابطه با پروتکل ها صحبت کردیم. اگر بخواهیم یک جمع بندی در این قسمت داشته باشیم به این شکل است که پروتکل UDP، پروتکلی است که نسبتاً نامطمئن است و دیتا را ارسال می کند و کاری با این موضوع ندارد که آن مقصد این دیتا را دریافت می کند یا نه؛ فقط دیتا ارسال می شود. اما در TCP، وقتی دیتا ارسال می شود، اول ارتباط چک می شود و وقتی که ارتباط برقرار بود، دیتا ارسال شده و حتما باید دلیوری هم داشته باشد تا از این که دیتا به درستی به مقصد رسیده است، مطمئن شده که اگر نرسیده باشد، دوباره ارسال می کند.
پس ما در TCP، دیتا از بین نمی رود و مطمئن است و دیتا حتماً به مقصد می رسد؛ اما در UDP، اصلاً مهم نیست و دقیقاً در صدا در بخش های مختلف هم در حال استفاده کردن از همین پروتکل Sip هستیم که بر پایه ی UDP است و در حال فرستادن ویس یا دیتای ما است؛ ولی اصلاً برایش مهم نیست که این دیتا به مقصد رسیده یا نرسیده است.
پس Sip و RTP هر دو از UDP استفاده می کنند و باید این را بدانیم. این جزو لزوم کارمان است و باید بدانیم که هم Sip و هم RTP از UDP استفاده می کنند. موقعی که شما می خواهید Sip Trank را راه اندازی کنید به یک سری مشکلات این چنینی برخورد می کنید و باید بدانید که دقیقاً چرا این اتفاق در حال رخ دادن است و چرا مثلاً برخی اوقات ما پینگ را داریم ولی انتقال Sip اتفاق نمی افتد؛ خیلی از همکاران در این موارد مشکل دارند؛ زیرا ساختارش را نمی دانند.
وقتی که شما در حال گرفتن پینگ در شبکه هستید از پروتکل ICMP استفاده می شود و با استفاده از TCP است و هیچ دلیلی ندارد که وقتی پینگ شما برقرار است، حتما Sip هم برقرار باشد؛ خیر، می تواند برقرار نباشد؛ چون Sip روی UDP است و ربطی به ICMP یا TCP ندارد.
خب حالا Sip پروتکل Signaling است؛ یعنی چه؟ یعنی دیتا را برای ما رد و بدل می کند؛ برای مثال موقعی که شما می خواهید تلفن را رجیستر کنید. ما در این قسمت، تصویری از ویکی پدیا برداشته و برایتان گذاشته ایم که در مورد این مطالب به صورت خلاصه برایتان توضیح دهد.
برای مثال وقتی که شما می خواهید یک داخلی را رجیستر کنید(تصویر پایانی)، ابتدا دیتایی برای رجیستر شدن ارسال می شود. بعد از سمت سرور دوباره یک دیتا برمی گردد که می گوید که رجیستر نیست یا نیاز به Authentification دارد و بعد دوباره User Pass ارسال شده و در نهایت با پیغام ۲۰۰(که به معنای رجیستر شدن است)، رجیستر می شود. کل این کارها توسط Sip انجام می شود.
پس برای مثال وقتی ما می خواهیم یک تلفن را در شبکه ی خودمان رجیستر کنیم، دیتایی که در حال فرستادن برای رجیستر شدن وجود دارد توسط Sip رد و بدل می شود؛ این را باید بدانیم. یا مثلاً نگاه کنید در تصویر بالا، وقتی که می خواهیم تماس برقرار شود، یک درخواست یا Invite ارسال می شود، بعد سرور جواب می دهد و Ring را می فرستد که برای مثال در حال زنگ خوردن است(البته تصاویر چپ و راست با هم دیگر هستند) و در نهایت قبل از این که تماس برقرار شود و مقصد گوشی را بردارد، این موارد توسط Sip انجام می شوند. پس ما می گوییم کل کارهای Signaling یا انتقال دیتا در شبکه ی ویپمان توسط Sip انجام می شوند. اما RTP چه کار می کند؟
پروتکل RTP
ببینید دوستان به پروتکل RTP، پروتکل Media نیز می گوییم. موقعی که شما می خواهید صدا را در شبکه ی ویپتان رد و بدل کنید، فقط و فقط از طریق پروتکل RTP می توانید این کار را انجام دهید. پروتکل RTP مخصوص رد و بدل کردن صدا و تصویر است.
این پروتکل از کدک های مختلفی استفاده می کند و صدا را رد و بدل می کند. نکته ای که وجود دارد این است که وقتی شما برای مثال DTMF هم ارسال می کنید، باز هم از همین پروتکل استفاده می شود. پس ما کل ارتباطمان را به دو بخش تقسیم می کنیم؛ یک بخش Signaling که به Sip مربوط می شود و یک بخش صدا که به RTP مربوط است. این موضوعی است که شما باید بدانید و RTP هم همان طور که گفتیم، UDP است.
حالا Sip روی چه پورتی عمل می کند؟ دوستان پیش فرض پروتکل Sip، ۵۰.۶۰ است؛ اما پیش فرض RTP از ۱۶۰۰۰ تا نزدیک ۱۷۰۰۰ است که ما برای مثال، یک محدوده ی بازتر یا بیشتری را برای آن در نظر می گیریم؛ مثلاً چیزی که در استریکس در نظر گرفته می شود، ۲۰۰۰۰_۱۰۰۰۰ است. پس پورت RTP که UDP است، ۱۰۰۰۰ تا ۲۰۰۰۰ مخصوص رد و بدل کردن صدا و تصویر است و سیگنال مخصوص ۵۰.۶۰ است که پروتکل Sip بوده و UDP است.
ما با این موضوع به صورت عملی، وقتی که می خواهیم داخلی یا ترانک را راه اندازی کنیم یعنی در بخش های بعدی، سروکار داریم. اصلاً شما نگران این موضوع نباشید؛ فقط این را بدانید که وقتی می خواهید تماس برقرار شود، ما یک قسمت دیتا و Signaling و یک قسمت صدا داریم. صدا توسط RTP استفاده می شود و Sip در واقع با استفاده از RTP، صدا را انتقال می دهد و کار خودش چیست؟ برقراری تماس است که به آن اصطلاحاً Session می گویند؛ یعنی Session ما برقرار می شود تا لحظه ای که صدا رد و بدل شده و تمام شد و وقتی مکالمه قطع شد، دوباره توسط Sip انجام می شود. یعنی کل رد و بدل اطلاعات و دیتا توسط Sip است و صدا فقط توسط RTP بین کلاینت و سرور انتقال پیدا می کند.
حالا نکته ی دیگری وجود دارد و آن، این است که گفته است سرورمان در حالت B2BUA است(Back To Back User Agent). این حالت پیش فرض است. برای مثال کلاینت سمت چپ و سمت راست را در نظر بگیرید. وقتی این دو می خواهند به هم زنگ بزنند(در تصویر کلاینت سمت چپ به کلاینت سمت راست زنگ می زند)، یک سری دیتا یا پیغام هایی بین کلاینت ها و سرورها رد و بدل می شود و در نهایت صدا برقرار شده و در نهایت تماس قطع می شود.
حالا در حالت B2BUA هم Sip و هم RTP در حال رد و بدل شدن بین کلاینت و سرور است. این حالت، همان حالت پیش فرض است. حالت دیگری به نام P2P داریم(Point To Point) که در این حالت مدیا یا RTP از طریق سرور انتقال نمی یابد و مستقیماً بین کلاینت ها یعنی روی سوئیچتان جا به جا می شود و اصلا به سرور نمی رود. این برای موقعی است که کدک هایشان یکی بوده و نیازی به ترنسلیت نداشته باشیم(در مورد کدک ها بعدا صحبت می کنیم).
پس پروتکل Sip مخصوص سیگنال و RTP مخصوص صدا و RTP روی پورت ۱۰۰۰۰ تا ۲۰۰۰۰ و UDP است و Sip هم روی ۵۰.۶۰ و UDP می باشد و شما تا این بخش از آموزش همین قدر که در مورد Sip و RTP اطلاعات داشته باشید، کفایت می کند. این هم بدانید که ما کلاً با همین پروتکل سروکار داریم؛ برای مثال روی مرکز تلفن های گرنداستریم یا مرکز تلفن های ایزابل و برای مواردی از این قبیل. وقتی می گوییم Sip، یعنی RTP هم هست؛ اصلا خود پروتکلSip در حال استفاده کردن از RTP برای انتقال صدا است.
امیدواریم این ویدئو برایتان مفید بوده باشد. حالا به سراغ بخش بعدی آموزش برویم.
دیدگاه شما درباره این مقاله چیست ؟