گذر زمان باعث شده است که راهها و روشهای جدید برای برقراری ارتباط به وجود بیاید. یکی از جدیدترین راههای ارتباطی استفاده از webrtc است. این روش ارتباطی برای بسیاری از کسب و کارها و شرکت های بزرگ و کوچک کاربرد خواهد داشت. در ادامه این نوشته ویپ سازان به بررسی webrtc و نحوه کار آن خواهیم پرداخت پس تا انتهای این نوشته با ما همراه باشید.

Webrtc چیست؟
WebRTC مخفف عبارت web real-time communicationsاست که به معنی ارتباطات وب در زمان واقعی است. این فناوری پیشرفته و استاندارد بسیار هیجان انگیزو قدرتمند است که میتواند امکان برقراری تماسهای صوتی و تصویری را به مرورگرها به همراه بیاورد. در واقع به کمک این امکان به راحتی و بدون نیاز به هیچ تجهیزات جانبی و فقط با داشتن اینترنت و یک مرورگر به راحتی میتوانید تماسهای خود را مدیریت کنید.. WebRTC مجموعهای از APIهای بدون پلاگین را استفاده میکند که میتواند در مرورگرهای دسکتاپ و موبایل استفاده شود. پیش از این برای دستیابی به عملکرد مشابهی که توسط WebRTC ارائه میشود ، به پلاگینهای خارجی نیاز بود.
WebRTC از چندین استاندارد و پروتکل استفاده میکند که بیشتر آنها در این مقاله مورد بحث قرار خواهد گرفت. این موارد شامل جریان داده ها، سرورهای STUN / TURN، سیگنالینگ، JSEP ، ICE ، SIP ، SDP ، NAT ، UDP / TCP، سوکتهای شبکه و موارد دیگر است.
بیشتر بخوانید: جنگ بین فکس اینترنتی و فکس معمولی، کدام یک برنده خواهد شد؟
ارتباط همتا به همتا
از WebRTC میتوان برای مقاصد مختلف استفاده کرد، اما ارتباطات صوتی و تصویری نظیر به نظیر در زمان واقعی مزیت اصلی آن است. برای برقراری ارتباط با یک شخص دیگر از طریق یک مرورگر وب، باید با شروع ارتباط، موقعیت مرورگرها نسبت به همدیگر، عبور از امنیت و فایروال و انتقال کلیه ارتباطات چند رسانهای را در زمان واقعی توسط هر مرورگر شناسایی شود.
یکی از بزرگترین چالشهای مرتبط با ارتباطات نظیر به نظیر مبتنی بر مرورگر، دانستن نحوه قرارگیری و ایجاد اتصال سوکت شبکه با مرورگر وب رایانه دیگر به منظور انتقال دو طرفه دادههای چند رسانهای است. مشکلات مرتبط با این مسئله ممکن است در ابتدا واضح به نظر نرسد، اما اجازه دهید بیشتر توضیح دهم:
وقتی از یک وب سایت بازدید میکنید، معمولاً یک آدرس وب وارد می کنید یا برای مشاهده صفحه روی یک لینک کلیک میکنید. در این حالت درخواستی به سرور ارسال میشود که با ارائه صفحه وب (HTML ، CSS و JavaScript) پاسخ میدهد. نکته کلیدی در اینجا این است که شما یک درخواست HTTP را به یک سرور شناخته شده و به راحتی قابل مکان یابی از طریق(DNS) ارائه میدهید و پاسخ (یعنی صفحه وب) را پس میگیرید. در این حالتی معمولا یک تاخیر latency وجود خواهد داشت همان چیزی که در voip به اسم جیتر آن را میشناسیم. اما در نظر داشته باشید که در هنگام برقراری تماس با یک نفر دیگر هیچکدام از شما نقش سرور را ندارد. بنابراین برای اینکه بتوانید تماس خود را برقرار کنید لازم است که نرم افزارهای واسط یا افزونهها استفاده کنید. اما راحتترین کار استفاده از وب آر تی سی است. در واقع WebRTC نیاز به سرور مجزا را از بین برده و به شما این امکان را میدهد که به راحتی تماسهای صوتی و تصویری خود را مدیریت کنید.
بیشتر بخوانید: 5 راهکار عملی برای کاهش زمان انتظار در مرکز تماس
سیگنالینگ، جلسات و پروتکلها
روند کشف اطلاعات شبکه که در بالا توضیح داده شد، بخشی از مبحث بزرگتر سیگنالینگ است که در مورد WebRTC بر اساس استاندارد پروتکل ایجاد جلسه جاوا اسکریپت (jesp) ساخته شده است. سیگنالینگ شامل کشف شبکه و پیمایش NAT، ایجاد و مدیریت جلسه، امنیت ارتباطات، فراداده و هماهنگی قابلیت رسانه و مدیریت خطا است.
سیگنالینگ توسط استاندارد WebRTC مشخص نشده است و همچنین توسط APIهای آن پیاده سازی نشده است تا امکان انعطاف پذیری در فناوریها و پروتکلهای مورد استفاده را فراهم کند. سیگنالینگ و سروری که آن را مدیریت میکند به سازنده برنامه WebRTC برای مرتب سازی سپرده میشود.
با فرض اینکه برنامه مبتنی بر مرورگر WebRTC شما قادر به تعیین آدرس IP عمومی با استفاده از STUN همانطور که شرح داده شده، است مرحله بعدی مذاکره و ایجاد اتصال جلسه شبکه با همتای خود است. این روند مشابه برقراری تماس تلفنی است.
مذاکره و ایجاد جلسه اولیه با استفاده از یک پروتکل سیگنالینگ / ارتباطی متخصص در ارتباطات چندرسانهای انجام میشود. این پروتکل همچنین وظیفه کنترل قوانینی را دارد که جلسه توسط آن مدیریت و خاتمه مییابد.
یکی از این پروتکلها پروتکل (Session Initiation) معروف بهSIP است. توجه داشته باشید که به دلیل انعطاف پذیری سیگنالینگ WebRTC ، SIP تنها پروتکل سیگنالینگ قابل استفاده نیست. پروتکل سیگنالینگ انتخاب شده همچنین باید با یک پروتکل لایه برنامه به نام Session Description Protocol (SDP) کار کند، که در مورد WebRTC استفاده میشود. همه فرادادههای خاص چند رسانهای با استفاده از پروتکل SDP منتقل میشوند.
هر نظیر به عنوان مثال ، برنامه اهرم WebRTC) ) که سعی در برقراری ارتباط با همتای دیگر خود دارد، مجموعهای از کاندیدهای ICE را ایجاد میکند، جایی که ICE مخفف پروتکل ایجاد ارتباط متقابل است. کاندیدهای ترکیبی مشخص از آدرس IP، پورت و پروتکل حمل و نقل را برای استفاده نشان میدهند. توجه داشته باشید که یک کامپیوتر ممکن است دارای چندین رابط شبکه (بیسیم، سیمی و غیره) باشد، بنابراین میتوان آدرسهای IP متعددی را برای هر رابط اختصاص داد.
در ادامه یک نمودار از MDN وجود دارد که این تبادل را نشان میدهد:
گذر زمان باعث شده است که راهها و روشهای جدید برای برقراری ارتباط به وجود بیاید. یکی از جدیدترین راههای ارتباطی استفاده از webrtc است. این روش ارتباطی برای بسیاری از کسب و کارها و شرکت های بزرگ و کوچک کاربرد خواهد داشت. در ادامه این نوشته ویپ سازان به بررسی webrtc و نحوه کار آن خواهیم پرداخت پس تا انتهای این نوشته با ما همراه باشید.
Webrtc چیست؟
WebRTC مخفف عبارت web real-time communicationsاست که به معنی ارتباطات وب در زمان واقعی است. این فناوری پیشرفته و استاندارد بسیار هیجان انگیزو قدرتمند است که میتواند امکان برقراری تماسهای صوتی و تصویری را به مرورگرها به همراه بیاورد. در واقع به کمک این امکان به راحتی و بدون نیاز به هیچ تجهیزات جانبی و فقط با داشتن اینترنت و یک مرورگر به راحتی میتوانید تماسهای خود را مدیریت کنید.. WebRTC مجموعهای از APIهای بدون پلاگین را استفاده میکند که میتواند در مرورگرهای دسکتاپ و موبایل استفاده شود. پیش از این برای دستیابی به عملکرد مشابهی که توسط WebRTC ارائه میشود ، به پلاگینهای خارجی نیاز بود.
WebRTC از چندین استاندارد و پروتکل استفاده میکند که بیشتر آنها در این مقاله مورد بحث قرار خواهد گرفت. این موارد شامل جریان داده ها، سرورهای STUN / TURN، سیگنالینگ، JSEP ، ICE ، SIP ، SDP ، NAT ، UDP / TCP، سوکتهای شبکه و موارد دیگر است.
بیشتر بخوانید: جنگ بین فکس اینترنتی و فکس معمولی، کدام یک برنده خواهد شد؟
ارتباط همتا به همتا
از WebRTC میتوان برای مقاصد مختلف استفاده کرد، اما ارتباطات صوتی و تصویری نظیر به نظیر در زمان واقعی مزیت اصلی آن است. برای برقراری ارتباط با یک شخص دیگر از طریق یک مرورگر وب، باید با شروع ارتباط، موقعیت مرورگرها نسبت به همدیگر، عبور از امنیت و فایروال و انتقال کلیه ارتباطات چند رسانهای را در زمان واقعی توسط هر مرورگر شناسایی شود.
یکی از بزرگترین چالشهای مرتبط با ارتباطات نظیر به نظیر مبتنی بر مرورگر، دانستن نحوه قرارگیری و ایجاد اتصال سوکت شبکه با مرورگر وب رایانه دیگر به منظور انتقال دو طرفه دادههای چند رسانهای است. مشکلات مرتبط با این مسئله ممکن است در ابتدا واضح به نظر نرسد، اما اجازه دهید بیشتر توضیح دهم:
وقتی از یک وب سایت بازدید میکنید، معمولاً یک آدرس وب وارد می کنید یا برای مشاهده صفحه روی یک لینک کلیک میکنید. در این حالت درخواستی به سرور ارسال میشود که با ارائه صفحه وب (HTML ، CSS و JavaScript) پاسخ میدهد. نکته کلیدی در اینجا این است که شما یک درخواست HTTP را به یک سرور شناخته شده و به راحتی قابل مکان یابی از طریق(DNS) ارائه میدهید و پاسخ (یعنی صفحه وب) را پس میگیرید. در این حالتی معمولا یک تاخیر latency وجود خواهد داشت همان چیزی که در voip به اسم جیتر آن را میشناسیم. اما در نظر داشته باشید که در هنگام برقراری تماس با یک نفر دیگر هیچکدام از شما نقش سرور را ندارد. بنابراین برای اینکه بتوانید تماس خود را برقرار کنید لازم است که نرم افزارهای واسط یا افزونهها استفاده کنید. اما راحتترین کار استفاده از وب آر تی سی است. در واقع WebRTC نیاز به سرور مجزا را از بین برده و به شما این امکان را میدهد که به راحتی تماسهای صوتی و تصویری خود را مدیریت کنید.
بیشتر بخوانید: 5 راهکار عملی برای کاهش زمان انتظار در مرکز تماس
سیگنالینگ، جلسات و پروتکلها
روند کشف اطلاعات شبکه که در بالا توضیح داده شد، بخشی از مبحث بزرگتر سیگنالینگ است که در مورد WebRTC بر اساس استاندارد پروتکل ایجاد جلسه جاوا اسکریپت (jesp) ساخته شده است. سیگنالینگ شامل کشف شبکه و پیمایش NAT، ایجاد و مدیریت جلسه، امنیت ارتباطات، فراداده و هماهنگی قابلیت رسانه و مدیریت خطا است.
سیگنالینگ توسط استاندارد WebRTC مشخص نشده است و همچنین توسط APIهای آن پیاده سازی نشده است تا امکان انعطاف پذیری در فناوریها و پروتکلهای مورد استفاده را فراهم کند. سیگنالینگ و سروری که آن را مدیریت میکند به سازنده برنامه WebRTC برای مرتب سازی سپرده میشود.
با فرض اینکه برنامه مبتنی بر مرورگر WebRTC شما قادر به تعیین آدرس IP عمومی با استفاده از STUN همانطور که شرح داده شده، است مرحله بعدی مذاکره و ایجاد اتصال جلسه شبکه با همتای خود است. این روند مشابه برقراری تماس تلفنی است.
مذاکره و ایجاد جلسه اولیه با استفاده از یک پروتکل سیگنالینگ / ارتباطی متخصص در ارتباطات چندرسانهای انجام میشود. این پروتکل همچنین وظیفه کنترل قوانینی را دارد که جلسه توسط آن مدیریت و خاتمه مییابد.
یکی از این پروتکلها پروتکل (Session Initiation) معروف بهSIP است. توجه داشته باشید که به دلیل انعطاف پذیری سیگنالینگ WebRTC ، SIP تنها پروتکل سیگنالینگ قابل استفاده نیست. پروتکل سیگنالینگ انتخاب شده همچنین باید با یک پروتکل لایه برنامه به نام Session Description Protocol (SDP) کار کند، که در مورد WebRTC استفاده میشود. همه فرادادههای خاص چند رسانهای با استفاده از پروتکل SDP منتقل میشوند.
هر نظیر به عنوان مثال ، برنامه اهرم WebRTC) ) که سعی در برقراری ارتباط با همتای دیگر خود دارد، مجموعهای از کاندیدهای ICE را ایجاد میکند، جایی که ICE مخفف پروتکل ایجاد ارتباط متقابل است. کاندیدهای ترکیبی مشخص از آدرس IP، پورت و پروتکل حمل و نقل را برای استفاده نشان میدهند. توجه داشته باشید که یک کامپیوتر ممکن است دارای چندین رابط شبکه (بیسیم، سیمی و غیره) باشد، بنابراین میتوان آدرسهای IP متعددی را برای هر رابط اختصاص داد.
در ادامه یک نمودار از MDN وجود دارد که این تبادل را نشان میدهد:

تفاوت وب فون و webrtc
وب فون به عنوان یک نرم افزار تحت شبکه برای برقراری تماس کاربرد دارد. این نرم افزارها معمولا توسط شرکتهای ثالث تولید شده و به بازار عرضه میشوند. ماژولهای وب فون معمولا از پروتکلهای مختلفی برای برقرای ارتباط استفاده می کنند. برخی از این نرم افزارها مبتنی بر ویپ هستند و برخی ممکن است مبتنی بر پروتکل های sip باشند. بنابراین میتوان تفاوتهای وب فون و
webrtc در پروتکلهای مورد استفاده و شرکتهای ارائه کننده آن بیان کرد.