نصب و پیکربندی WebRTC در استریسک

اموزش راه اندازی webrtc در بستر voip امروز با اموزش نصب و راه اندازی WebRTC در سرور های استریسک در خدمت شما هستیم.در این اموزش شما با نحوه پیکربندی استریسک برای استفاده از این قابلیت اشنا خواهید شد.این اولین پست من تو ویرگوله.سعی میکنم از این به بعد بیشتر راجع تجربیات انجام یه سری از کارهام بنویسم.با استفاده از این سرور برنامه نویسان وب قادر خواهند بود با استفاده از API های موجود که اکثرا به زبان Javascript هستن اقدام به نوشتن تلفن های تحت وب یا سیستم تماس با کلیک نمایندشما توسط این سرویس میتوانید لذت یک ارتباط realtime را در بستر وب تجربه کرده و حتی در صورت نیاز این امکان را برای کاربران برون سازمانی خود نیز فراهم کنید.برای استفاده از این بستر نیاز به نصب افزونه خاصی بر روی مرورگر اینترنت خود نداریدنصب و پیکربندی WebRTCدر گام اول برای استفاده از این سرویس نیاز به نصب چند ماژول برای سرور استریسک خود دارید که برنامه های تحت وب قادر باشند به سرور شما متصل شوند. این ماژول ها عبارتند از : · res_crypto· res_http_websocket· res_pjsip_transport_websocketعلاوه بر این موارد در صورتی که کیفیت صدا برای شما مهم است با نصب کدک Opus میتوانیم به بهترین کیفیت مکالمات در این بستر دست پیدا کنیم.البته باید بدانیم در صورت عدم نصب کدک نیز مکالمات با کیفیت قابل قابولی انجام پذیر است.ابتدا به کنترل نصب یا عدم نصب ماژول های مورد نظر و کدک Opus اقدام می کنیماز دستور زیر برای کنترل نصب موارد بالا میتوان اقدام کرد : ls -w 1 /usr/lib/asterisk/modules/{*crypto*,*websocket*,*opus*}در صورتی که خروجی به صورت زیر بود یعنی ماژول های مورد نیاز نصب شده است/usr/lib/asterisk/modules/codec_opus.so/usr/lib/asterisk/modules/res_crypto.so/usr/lib/asterisk/modules/res_format_attr_opus.so/usr/lib/asterisk/modules/res_http_websocket.so/usr/lib/asterisk/modules/res_pjsip_transport_websocket.soدر گام دوم بررسی می کنیم که موارد فوق به درستی در استریسک load شده اند یا خیر۳ دستور زیر را در محیط کامند وارد می کنیم : asterisk -rx "module show like crypto"asterisk -rx "module show like websocket"asterisk -rx "module show like opus"در صورت مشاهده این خروجی : # asterisk -rx "module show like crypto"Module Description Use Count Status Support Levelres_crypto.so Cryptographic Digital Signatures 1 Running core1 modules loaded# asterisk -rx "module show like websocket"Module Description Use Count Status Support Levelres_http_websocket.so HTTP WebSocket Support 3 Running extendedres_pjsip_transport_websocket.so PJSIP WebSocket Transport Support 0 Running core2 modules loaded# asterisk -rx "module show like opus"Module Description Use Count Status Support Levelcodec_opus.so OPUS Coder/Decoder 0 Running extendedres_format_attr_opus.so Opus Format Attribute Module 1 Running core3 modules loadedماژول ها به طرز صحیحی در سرور نصب و بالا امده است.در صورتی که ماژول ها روی سرور شما نصب نبود شما می توانید با استفاده از قابلیت menuselect سرور استریسکی خود اقدام به نصب نماییددر مرحله بعد احتیاج به ساخت یک فایل certificate برای استفاده از این سیستم داریممرورگر های جدید احتیاج به استفاده از TLS و یا DTLS-SRTP برای برقرای ارتباط و انجام عملیات سیگنال دهی دارند. در این آموزش با ما به ایجاد یک گواهینامه امضا شده self-signed اکتفا می کنیم و برای استفاده از گواهینامه‌های مورد تایید در اینترنت در مقالات بعدی صحبت خواهیم کردما با استفاده از ابزار ast_tls_cert که در داخل خود استریسک وجود دارد اقدام به ایجاد این گواهی نامه می کنیم برای این منظور از دستورات زیر استفاده خواهیم کردابتدا برای ایجاد فایل ذخیره گواهینامه ها دستور را می زنیم : mkdir /etc/asterisk/keysسپس با استفاده از دستور زیر اقدام ساخت گواهینامه می کنیم : ./ast_tls_cert -C pbx.example.com -O "My Super Company" -d /etc/asterisk/keysحال به توضیح سوئیچ های استفاده شده در این دستور می پردازیم : سوئیچ -C : برای مشخص کردن آی پی سرور و یا آدرس کامل خواندنی سرور(FQDN)سوئیچ -O : برای مشخص کردن نام شرکتسوئیچ -d : برای مشخص کردن آدرس ذخیره کردن فایل های گواهینامهپس از وارد کردن دستور بالا شما احتیاج به وارد کردن چندین باره پسورد خود دارید این پسورد را به خاطر بسپارید در صورت نیاز به استفاده از این گواهینامه برای موارد دیگر احتیاج به وارد کردن این پسورد دارید.توجه کنید که نیاز نیست این پسورد با پسورد سرور شما یکسان باشد اما همیشه این پسورد را به خاطر بسپاریدسپس با استفاده از دستور :ls -w 1 /etc/asterisk/keys به بررسی صحت انجام دستور بالا اقدام می کنیمخروجی مورد انتظار ما در صورت صحیح بودن مرحله قبل به شکل زیر خواهد بود : asterisk.crtasterisk.csrasterisk.keyasterisk.pemca.cfgca.crtca.keytmp.cfgدر گام بعدی ما نیاز داریم که به پیکربندی وب سرور داخلی سرور استریسک اقدام کنیم. بدین منظور فایل etc/asterisk/http.conf را باز کرده و خط های زیر را در آن اضافه میکنیم : [general]enabled=yesbindaddr=0.0.0.0bindport=8088tlsenable=yestlsbindaddr=0.0.0.0:8089tlscertfile=/etc/asterisk/keys/asterisk.pemبا استفاده از این دستور وب سرور داخلی سرویس را پیکربندی کردیم و با اختصاص دادن یک پورت اقدام به فعال کردن حالت نمودیمبا استفاده از دستور: netstat -an | grep 8089می توانیم بررسی کنیم آیا پورت مورد نظر ما در حال حاضر بر روی سرور باز است یا نه در صورت باز بودن عملیات با موفقیت انجام شده. خروجی مورد انتظار ما از پس از اجرای این دستور در محیط ترمینال به شکل زیر خواهد بود در صورت بسته نشان دادن پورت مورد نظر که در مثال ما شماره ۸۰۸۹ بوده عملیات قبلی به درستی انجام نشدهtcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN در گام آخر ما برای استفاده از این سرویس نیاز به پیکربندی یک شماره داخلی مختص سرویس WebRTC خواهیم داشت بدین منظور باید فایل sip.conf را باز کرده و خط های زیر را به آن اضافه کنیم پس از اضافه کردن این خطوط داخلی شماره ۱۹۹ ساخته شده و قابلیت استفاده توسط سرویس مورد نظر ما را خواهد داشت[general]udpbindaddr=0.0.0.0:5060realm=123.123.123.123 ;replace with your Asterisk server public IP address or hosttransport=udp,ws,wss[199]host=dynamicsecret=199context=defaulttype=friendencryption=yesavpf=yesforce_avp=yesicesupport=yesdirectmedia=nodisallow=allallow=opusallow=ulawdtlsenable=yesdtlsverify=fingerprintdtlscertfile=/etc/asterisk/keys/asterisk.pemdtlscafile=/etc/asterisk/keys/ca.crtdtlssetup=actpassrtcp_mux=yesپس از انجام مراحل بالا کار به اتمام رسیده و شما می توانید با استفاده از یک کلاینت از پیش طراحی شده یا یک کلاینت اختصاصی اقدام به استفاده از این سرویس برای ایجاد تماس و یا دریافت کنیدامیدوارم این آموزش مورد توجه شما قرار گرفته باشد