תקשורת בזמן אמת או בעצם תקשורת על פי בחירה…

 

שי כהן

המהפכה הבאה בשוק התקשורת כבר כאן, טכנולוגיית Web Real Time Communication תאפשר לנו לבצע שיחות באמצעות הדפדפן. סמנכ”ל הפיתוח של ג’גה ישראל אומר שכל אחד יכול ובחינם.
בחודשים האחרונים יש באז חדש בעולם התקשורת והאינטרנט והוא נקרא – (Web Real Time Communication).
webRTC הוא בעצם הגדרה (סטנדרט) של ארגוני התקינה בעולם האינטרנט (W3C IETF) שמאפשר לפתח שירותי ווידאו, קול ונתונים בתוך הדפדפן.
מה זה בעצם אומר? שכנראה, בעוד מספר חודשים, נוכל להתחיל לראות שירותים ואתרים שמציעים את היכולות החדשות באתרים האלה.
זה אומר שלמפתחי האתרים יהיה מאוד קל (וחינם) להוסיף יכולות חדשות לאתרים שלהם, או ליצור שירותים חדשים בזמן קצר יחסית.
זה אומר שנוכל לבצע שיחות ווידאו וקול דרך הדפדפנים (במחשב ו/או בנייד) שלנו ללא צורך בהתקנה של תוכנה מיוחדת (כמו סקייפ), או תוסף כלשהו (plugin) לדפדפן בכדי להתקשר דרך האינטרנט.
זה אומר שנוכל לבצע שיחות עם החברים שלנו בפייסבוק, עם הרופא שלנו ועם שירות הלקוחות בבנק. הכל פשוט, הכל בחינם, ללא התקנה וזמין מכל מחשב עם דפדפן.
חברת גוגל הייתה החלוצה בתחום כששחררה שני אלמנטים והכניסה את השוק להאצה – קוד פתוח שמאפשר לשאר יצרני הדפדפנים (פיירפוקס של מוזילה, אקספלורר של מיקרוסופט וסאפרי של אפל) להטמיע את הטכנולוגיה בחינם בדפדפנים שלהם ותמיכה מובנת בדפדפן שלה- כרום.
נכון להיום, webRTC נתמך בגרסת בטא של כרום של גוגל ועד סוף השנה, מוזילה ואופרה הבטיחו לשחרר גם הם גרסאות תומכות בטכנולוגיה החדשה. כולנו מחזיקים אצבעות…
אנחנו בחברת ג’ג’ה בשיתוף עם מחלקות נוספות בטלפוניקה דיגיטל עובדים כבר מספר חודשים, להטמיע את הטכנולוגיה החדשה במוצרים הקיימים והחדשים של החברה ולהציע אותם ללקוחותינו.
מה עוד webRTC יכול להציע לנו? מלבד שיחות ווידאו קול וכמובן הודעות טקסט (צ’אט), ניתן להעביר בעצם כל מידע – שיתוף תמונות, קבצים ישירות בין המשתמשים ללא צורך בהעברת מידע דרך צד שלישי(P2P).
עד היום או בעצם יותר ממאה שנה, חווית הטלפון שלנו הייתה מאוד מסוימת – המתקשר בעצם שלט בהתקשרות; הוא קבע את מועד השיחה ובאיזה מכשיר (טלפון קווי, נייד או מחשב) ובעצם הכתיב למקבל השיחה “עזוב הכל ודבר איתי עכשיו!”. כמובן שיכולנו לבחור לא לענות באותו עת ולהחזיר למתקשר באותו מטבע כעבור שעה.
האפשרויות החדשות שייפתחו בעתיד יוכלו לאפשר לנו לקבוע את מועד ההתקשרות, באיזה מכשיר אנחנו רוצים לתקשר ומתי. לא משנה אם אנחנו יזמנו את התקשרות או הצד השני.
איך זה בעצם עובד ?
כפי שציינתי למעלה, webRTC, הוא מנוע מדיה היושב בתוך הדפדפן ומאפשר למפתחי האתרים שתי יכולות – הראשונה, גישה למיקרופון ולמצלמה (GetUserMedia). היכולת השנייה היא חיבוריות לדפדפן מרוחק (PeerConnection).
שתי היכולות האלו זמינות למפתחים באמצעות Java-Script, שפת פיתוח שרצה בתוך הדפדפן ונהפכה לפופולרית מאוד בשנים האחרונות. Java script תפסה תאוצה נוספתבשנתיים האחרונות כחלק מהבאז שהביא HTML5 ויחד איתו פיתוח אחיד עבור כל הפלטפורמות בצורה כמעט אחידה.
באיור 1, אפשר לראות את המבנה הארכיטקטוני של webRTC הכולל את החיבורים למנועי המדיה והרשת של webRTC היושב בתוך הדפדפן ונחשפים ע”י הדפדפן בצורה אחידה.
באמצעות היכולות החדשות (java script API’s), לא נדרש הרבה מאמץ או הבנה בפרוטוקולים כמו SIP ,XMPP, ו-RTP בכדי לפתח אפליקציה המציגה חלון עם הווידאו של המצלמה והמיקרופון המקומיים ולשלוח (ולקבל) את הווידאו והקול מהאפליקציה של משתמש אחר.
webRTC מחביא, בכוונה תחילה, את כל הסיבוכיות הכרוכה בפיתוח אפליקציות VoIP (Voice-Over-Internet-Protocol):
פרוטוקולים להקמת שיחות והודעות כמו SIP, XMPP ו-H.323 שעדיין נפוץ בארגונים רבים.
מקודדים (codecs) הדוחסים וממירים קול ווידאו להצגה דיגיטליתואנלוגית.
RTP (Real-time Transport Protocol) – פרוטוקול להעברת מדיה ברשת.
בנוסף, webRTC מנסה לפתור רבות מהבעיות הנפוצות ב-VoIP ע”י הגדרת סטנדרט אחיד ובלתי מתפשר שאמור לנטרל חלק גדול מהם ברמת ההגדרה:
הצפנה – webRTC דורש שהמדיה תשודר באמצעות SRTP(Secure RTP), מה שאומר שהמדיה המשודרת בין הדפדפנים חייבת להיות מוצפנת. זוהי אחריות של הדפדפן ומנוע המדיה של webWRTC וחוסכת למפתח האפליקציה להתעסק עם SRTP, או אפילו לדעת שיש כזה פרוטוקול.
מקודדים (codecs) – כרגע הסטנדרט לא סגור, אבל הכיוון הוא לאפשר לאפליקציות לקבל מקודדים המאפשרים תאימות וקול ותמונה באיכות גבוהה בהרבה מהמקובל בטלפונים קווים, טלפונים ניידים ורוב אפליקציות ה- VoIP.
עבור שיחות קול מדובר על G.711, מקודד ישן יחסית המהווה את המכנה המשותף הנמוך ביותר עבור חיבוריות לטלפוניה רגילה ומקודד בשם Opus החינמי שנחשב לאחד מהמקודדים המצוינים שראו עד היום בתעשייה, מבחינת איכות הקול, צריכת הרשת והתאמה לרשתות עם קצבים מוגבלים או בעלי איכות נמוכה (איבוד נתונים ומהירות נמוכה).
עבור שיחות וידאו, כרגע ישנם שני מקודדים על המוקד – VP8 ו-H.264. ישנם שני הבדלים עיקריים בין השניים: ההבדל הראשון – H.264 נפוץ יותר והרבה פלטפורמות תומכות בו ברמת חומרה (ביצועים וצריכת חשמל טובים יותר).
ההבדל השני – פטנטים. ישנם הרבה פטנטים המעורבים במקודד H.264, ולכן הוא עולה כסף ליצרניות החומרה, התוכנה והדפדפנים. VP8 לעומתו הוא חינמי (קוד פתוח).
העובדה שהסטנדרט לא סגור ועמדת מיקרוסופט ואפל לא ברורה, יכולה לעכב (או לסבך) את האימוץ של webRTC.
בדפדפן של גוגל (chrome) נתכים כרגע G.711, Opus, VP8.
רשתות מקומיות (LAN) – רובנו מכירים את הבעיות שיש בעבודה עם רשת מקומית בבית, בעבודה וברשתות פתוחות (כמו בבתי קפה למשל). הנתב (router) המקומי חושף לרשת המקומית שאנחנו מחוברים אליה כתובות פנימיות אשר לא חשופות ובד”כ נחסמות לגישה מבחוץ. מה שגורם להרבה אפליקציות רשת, משחקים ומזרימי מדיה לא לעבוד עם שירותים חיצוניים.
בכדי לעקוף את הבעיה, נדרשת גישה להגדרות הנתב. רוב המשתמשים, לא יודעים איך לבצע זאת או אין להם הרשאות לכך.
בכדי לפשט את הבעיה למשתמשים ולמפתחים, webRTC, נבנה בצורה שאמורה להעלים את הבעיות הנ”ל כמעט לחלוטין ע”י אינטגרציה עם פרוטוקולים כמו (Interactive Connectivity Establishment) ו- (SessionTraversal Utilities for NAT), שחושפים את הכתובת החיצונית של המשתמש וממליצים באיזה כתובות ניתן להשתמש בכדי לבצע התקשרות מחוץ לרשת המקומית. כל שנדרש ממפתחי האפליקציות זה להתחבר לשרתי STUN ו-ICE (ישנם מספר שרתים ציבוריים ו/או חינמיים) ולהעביר את התוצאות של השרתים האלה למנוע ה-webRTC. הוא יבצע את שאר העבודה בכדי לוודא שהתקשורת תתבצע בהצלחה.
שלבים בכתיבת אפליקצית webRTC
גישה למדיה המקומית באמצעות java script ו-GetUserMedia
מציאת המשתמש השני ע”י שרת האפליקציה (HTTP)
החלפת יכולות המדיה בין הצדדים וחיבור באמצעות java script ו-PeerConnection

תגובות סגורות