Networking

VoIP בעברית — איך באמת עוברת שיחה על גבי הרשת: SIP, RTP ו-RTCP למי שרוצה להבין לעומק

14 דק׳ קריאהמכללת נטמי
VoIP בעברית — איך באמת עוברת שיחה על גבי הרשת: SIP, RTP ו-RTCP למי שרוצה להבין לעומק

היי חברים, מה קורה? בואו נדבר על VoIP — Voice over IP. ואני רוצה להתחיל בלי מילים גדולות ובלי ראשי תיבות, פשוט עם סיטואציה שכולנו מכירים.

דמיינו שאתם בבית ורוצים להתקשר לחבר. מאיפה תעשו את זה? מהנייד — מצוין. עכשיו דמיינו שהנייד לא איתכם. מטלפון הבית? מעולה, גם זה עובד. ורגע, אם הייתי רוצה עכשיו להתקשר דרך סקייפ, טימס, ווטסאפ או כל תוכנה דומה — גם זה היה עובד. אז מה בעצם ההבדל?

ההבדל הוא בנתיב שהמידע עושה. בשיחה מטלפון הבית הקול נוסע דרך עורקי תמסורת אל תוך מרכזייה — עולם ה-PSTN, תשתית ייעודית שנבנתה אך ורק כדי להעביר שיחות. בשיחה דרך סקייפ הקול עובר על גבי רשת הנתונים, בדיוק אותה רשת שמעבירה את המיילים והסרטונים שלכם. וזה בדיוק VoIP: העברת מידע קולי אנלוגי, אחרי המרה לדיגיטלי, על גבי רשת IP.

השוואה בין טלפוניה מסורתית דרך PSTN ומרכזייה לבין טלפוניית VoIP על גבי רשת נתונים IP
אותה שיחה, שני עולמות: עורקי תמסורת ומרכזייה מצד אחד, חבילות IP על גבי רשת הנתונים מצד שני. דיאגרמת מעבדה — מכללת נטמי.

רגע, איך בכלל קול הופך לחבילות?

לפני שנצלול לפרוטוקולים, שווה להבין מה קורה מרגע שאתם פותחים את הפה ועד שהחבר שומע אתכם. הקול שלכם הוא גל אנלוגי רציף. הטלפון (או ה-Softphone במחשב) דוגם אותו, ממיר אותו לערכים דיגיטליים, דוחס אותו באמצעות Codec — G.711 שמעביר איכות מלאה בסביבות 64Kbps, או G.729 שדוחס לסביבות 8Kbps כשרוחב הפס יקר — ואז אורז את הדגימות לחבילות קטנות.

ברירת המחדל בעולם הזה היא חבילה כל 20 מילישניות. זה אומר 50 חבילות בשנייה, לכל כיוון, לכל שיחה. תחשבו על זה רגע: שיחה אחת היא זרם קבוע וצפוף של חבילות זעירות שחייבות להגיע בזמן. זה בדיוק ההבדל בין קול לבין הורדת קובץ — לקובץ לא אכפת אם חבילה מאחרת בשנייה, לאוזן שלכם מאוד אכפת.

רשת נתונים אוהבת חבילות גדולות שמגיעות בסוף. קול אוהב חבילות קטנות שמגיעות עכשיו. כל תורת ה-VoIP היא ניהול המתח הזה.

ועוד נקודה חשובה שחייבים להפנים כבר עכשיו: בשיחת VoIP יש שני זרמים נפרדים לגמרי. אחד שמנהל את השיחה — מי מתקשר למי, מתי מצלצל, מתי ענו, מתי ניתקו. והשני שמעביר את הקול עצמו. הראשון נקרא Signaling והוא בדרך כלל SIP. השני נקרא Media והוא RTP. הם רצים בנפרד, לרוב גם בנתיבים שונים ברשת, וזו הסיבה למצב הקלאסי שכל טכנאי טלפוניה מכיר — הטלפון מצלצל, עונים, ואין קול. הסיגנלינג עבד, המדיה נחסמה.

מושג ראשון — SIP (Session Initiation Protocol)

SIP הוא הפרוטוקול שמאפשר לבצע איתותים על מצב השיחה: התחלה של שיחה, מצב צלצול, מצב מענה, מצב תפוס, העברת שיחה, המתנה, ומגוון רחב של מצבים נוספים. אם תסתכלו על הודעת SIP גולמית תגלו שהיא נראית מוכר להפליא — היא טקסטואלית, בנויה משורת בקשה וכותרות, ומאוד דומה בהיגיון שלה ל-HTTP. גם קודי התשובה מוכרים: 180 לצלצול, 200 להצלחה, 404 כשהיעד לא נמצא, 486 כשתפוס.

מבחינת תעבורה: SIP עובד מעל פורט 5060 ב-UDP (ולעיתים גם TCP), וכשהוא מאובטח באמצעות TLS — כלומר SIP over TLS, או SIPS — הוא עובר לפורט 5061. את הפורטים האלה כדאי לזכור בעל פה, הם חוזרים בכל אבחון תקלה ובכל כלל פיירוול שתכתבו.

האיתותים הנפוצים של SIP

  • INVITE — בקשה ליצירת קשר. זו ההזמנה לשיחה, והיא נושאת בתוכה גם את תיאור המדיה המוצע (SDP): אילו קודקים אני יודע לדבר, לאיזו כתובת IT ולאיזה פורט לשלוח את הקול.
  • ACK — אישור לתגובה של הצד השני עבור בקשה שנשלחה. זה הצעד שסוגר את לחיצת היד ומאשר שהשיחה אכן מתחילה.
  • BYE — בקשה לסיום קשר. מי שסוגר את השיחה שולח BYE, והצד השני משיב 200 OK.
  • CANCEL — בקשה לביטול יצירת קשר. שימו לב להבדל: CANCEL מבטל שיחה שעדיין מצלצלת ולא נענתה, BYE מנתק שיחה שכבר פעילה.
  • REGISTER — בקשה להירשם מול שרת הטלפוניה. כך הטלפון מודיע לשרת 'שלוחה 1004 נמצאת כרגע בכתובת ה-IP הזו' — בלי רישום מוצלח, אף אחד לא יצליח להתקשר אליכם.
דיאגרמת זרימת שיחת SIP: INVITE, 100 Trying, 180 Ringing, 200 OK, ACK, זרם RTP, BYE ו-200 OK
זרימת שיחה מלאה: הסיגנלינג בונה את השיחה, ה-RTP נושא את הקול, וה-BYE סוגר. הדיאגרמה שאנחנו מציירים על הלוח בשיעור הראשון.

בואו נקרא את הדיאגרמה יחד, כי היא כל הסיפור: אני מרים שפופרת ומחייג — הטלפון שולח INVITE לשרת. השרת עונה 100 Trying, כלומר 'קיבלתי, אני מטפל'. הוא מוצא את היעד ומעביר אליו INVITE. הטלפון של היעד מתחיל לצלצל ומחזיר 180 Ringing — וזה בדיוק הרגע שבו אני שומע צליל חיוג חוזר באוזן. היעד עונה, נשלח 200 OK, אני משיב ACK, ומכאן נפתח זרם ה-RTP וזורם קול. בסוף מישהו מנתק, נשלח BYE, מתקבל 200 OK, והמשאבים משוחררים.

טיפ מהשטח: כשמישהו מתלונן ש'השיחה לא מתחברת', תסתכלו על קודי התשובה של SIP לפני שאתם נוגעים במשהו אחר. 403 מריח כמעט תמיד כמו הרשאות או Calling Search Space. 404 אומר שתכנית החיוג לא יודעת לאן לשלוח את המספר. 488 Not Acceptable Here כמעט תמיד מצביע על אי-התאמת קודקים בין הצדדים. קודי התשובה חוסכים שעות ניחושים.

מושג שני — RTP (Real-time Transport Protocol)

RTP מספק שירות Real Time לאפליקציות שדורשות זאת מעל רשת IP. אחרי ש-SIP סגר את העסקה, RTP הוא זה שנושא בפועל את הקול והווידאו. והשאלה שתמיד עולה בכיתה היא: למה דווקא מעל UDP, ולא מעל TCP המהימן?

התשובה פשוטה ואלגנטית: אין שום משמעות לטיפול בחבילות שהולכות לאיבוד בזמן אמת. עד שהחבילה האבודה תשודר מחדש ותגיע, הרגע שאליו היא שייכת כבר חלף — האוזן כבר עברה הלאה. במקום לשפר את השיחה, השידור החוזר רק היה מוסיף שיהוי ופוגע באיכות. בקול ובווידאו רציפים עדיף לאבד מילישניות בודדות מאשר לעצור את הזרם ולחכות.

כדי שזה יעבוד, RTP מוסיף לכל חבילה שני שדות קריטיים: מספר סידורי (Sequence Number) שמאפשר לצד המקבל לזהות חבילות שהגיעו לא בסדר או לא הגיעו בכלל, וחותמת זמן (Timestamp) שמאפשרת לשחזר את התזמון המקורי של הדגימות. בנוסף יש שדה SSRC שמזהה באופן ייחודי כל מקור זרימה, ושדה Payload Type שאומר לצד השני איזה קודק מדובר.

בצד המקבל יושב Jitter Buffer — חוצץ קטן שאוגר חבילות למספר מילישניות, מסדר אותן לפי המספר הסידורי ומשחרר אותן בקצב קבוע. הוא זה שמסתיר מהאוזן את חוסר האחידות של הרשת. חוצץ קטן מדי יגרום לקטיעות, גדול מדי יגרום להשהיה מורגשת ולשיחה שבה שני הצדדים כל הזמן נכנסים אחד לדברי השני.

מושג שלישי — RTCP, המבקר שיושב ליד RTP

RTCP הוא פרוטוקול הבקרה שעובד בצמוד וכחלק בלתי נפרד מ-RTP. הוא לא מעביר קול בכלל — הוא מאפשר לתחנות שקשורות ביניהן ב-RTP לנטר ולשלוט על הקשר. אחת לכמה שניות כל צד שולח דוח קצר: כמה חבילות שלחתי, כמה הגיעו, כמה אבדו, מה רמת ה-Jitter, ומה זמן ההלוך-חזור.

  • Sender Report (SR) — כמה חבילות ובתים שלח הצד המשדר, כולל מידע תזמון לסנכרון בין אודיו לווידאו.
  • Receiver Report (RR) — כמה חבילות אבדו באחוזים, מה ה-Jitter הנמדד, ומהו המספר הסידורי הגבוה ביותר שהתקבל.
  • SDES — פרטי זיהוי של המשתתפים בזרם.
  • BYE — הודעת עזיבה של משתתף בזרם ה-RTP.
זרם RTP מעל UDP עם מספרים סידוריים וחותמות זמן, חבילה אבודה, Jitter Buffer וערוץ בקרה של RTCP
RTP נושא את הקול, RTCP מדווח על האיכות, וה-Jitter Buffer מיישר את הזרם לפני שהוא מגיע לאוזן.

למה זה כל כך חשוב בעבודה יומיומית? כי RTCP הוא המקור לכל מספר שתראו אחר כך בדוחות איכות של המערכת. כשמנהל אומר לכם 'התלוננו שהשיחות מקרטעות אתמול בצהריים', אתם לא צריכים לנחש — אתם פותחים את דוחות ה-CDR/CMR ורואים בדיוק כמה אחוזי איבוד היו, מה היה ה-Jitter ומה היה ה-Latency.

שלושת המספרים שקובעים אם השיחה תישמע טוב

  • Latency (השהיה) — עד 150 מילישניות בכיוון אחד השיחה מרגישה טבעית. מעל 200-250 מילישניות מתחילים לדרוך אחד לשני על המילים.
  • Jitter (שונות בהשהיה) — כמה לא אחיד הקצב שבו החבילות מגיעות. מתחת ל-30 מילישניות בדרך כלל בסדר. מעל זה הקול נשמע מתכתי או קטוע.
  • Packet Loss (איבוד חבילות) — מתחת לאחוז אחד כמעט לא מורגש בזכות מנגנוני השלמה. שלושה אחוזים ומעלה כבר יישמעו כמו רובוט.

וכאן נכנס QoS. ברשת שבה כולם שווים, גיבוי כבד או משתמש שמעלה קובץ ענק יכולים בקלות לדחוק את חבילות הקול לסוף התור. לכן מסמנים תעבורת קול ב-DSCP EF (ערך 46) ואת הסיגנלינג ב-CS3 (ערך 24), ומגדירים בציוד תור עדיפות שמטפל בהם ראשון. בלי זה, ה-VoIP הכי מוצלח בעולם יישבר ברגע שהרשת תתעמס.

שכבה נוספת שחייבים להכיר היא הפרדת VLAN. IP Phone כמעט תמיד יושב על Voice VLAN נפרד, מקבל חשמל דרך PoE מהמתג, ומעביר את תעבורת המחשב שמחובר מאחוריו ב-VLAN הנתונים. ההפרדה הזו היא לא קוסמטיקה — היא מה שמאפשר לסמן, לתעדף ולאבטח את הקול בנפרד מכל השאר.

טופולוגיית מעבדת VoIP ארגונית: שרת CUCM, מתג PoE, IP Phone ב-Voice VLAN, נתב כ-SIP Gateway אל ה-PSTN וסימוני QoS
כך נראית סביבת טלפוניה ארגונית אמיתית — וזו בדיוק המעבדה שהתלמידים שלנו בונים בקורס.

איך זה מתחבר לעולם האמיתי — CUCM, Gateway ו-Trunk

בארגון, במקום מרכזייה אנלוגית יש שרת ניהול שיחות — לרוב Cisco Unified Communications Manager. הוא זה שהטלפונים נרשמים אליו, הוא זה שמחזיק את תוכנית החיוג, הוא זה שיודע ששלוחה 1004 מותר לה לחייג לחו״ל ושלוחה 1005 לא (זה בדיוק העולם של Partitions ו-Calling Search Space).

וכשצריך לצאת החוצה לעולם הישן — לנייד, למספר בית, למוקד — נכנס ה-Gateway. נתב עם יכולות קול, או CUBE, שממיר בין ה-SIP הפנימי לבין SIP Trunk של הספק או קו ISDN ישן. שם גם קורים חצי מהאתגרים המעניינים: התאמת קודקים, מניפולציה של מספרים, ו-NAT Traversal.

ולסיום ההקדמה הזו — קצת אבטחה, כי VoIP הוא יעד פופולרי: SIP לא מוצפן שקוף לחלוטין למי שמאזין לרשת, ו-RTP גולמי ניתן להקלטה ולשחזור בכלים חינמיים. הפתרון הוא TLS לסיגנלינג ו-SRTP למדיה, יחד עם הפרדת VLAN, הגבלת רישום, ומדיניות ברורה מול הספק כדי למנוע Toll Fraud — גניבת שיחות יוצאות שיכולה לעלות לארגון הון בלילה אחד.

סיכום בשלוש שורות

  • VoIP = העברת קול על גבי רשת נתונים במקום דרך עורקי תמסורת ומרכזייה.
  • SIP מנהל את השיחה (INVITE, ACK, BYE, CANCEL, REGISTER) על פורט 5060, או 5061 כשמוצפן ב-TLS.
  • RTP נושא את הקול מעל UDP עם מספור וחותמות זמן, ו-RTCP מדווח על איבוד חבילות, Jitter ואיכות.
מבחנון קצר

מבחנון קצר — בדקו את עצמכם על VoIP

1. באיזה פורט עובד SIP כברירת מחדל, ולאיזה פורט הוא עובר כשהוא מאובטח ב-TLS?

2. מה ההבדל בין CANCEL לבין BYE?

3. למה RTP רץ מעל UDP ולא מעל TCP?

4. מה תפקידו של RTCP?

5. באיזה ערך DSCP מקובל לסמן תעבורת קול (RTP) ברשת ארגונית?

ענית על 0 מתוך 5

רוצים לעשות את זה בידיים, ולא רק לקרוא עליו?

כל מה שקראתם כאן הוא השיעור הראשון. הכיף האמיתי מתחיל כשאתם מרימים CUCM, רושמים טלפון ראשון ורואים אותו עולה, בונים תוכנית חיוג, מגדירים Voice VLAN ו-PoE על המתג, מחברים Gateway ל-PSTN ואז — הכי חשוב — שוברים משהו בכוונה ולומדים לאבחן: למה אין קול לכיוון אחד, למה השיחה מתנתקת אחרי 30 שניות, ולמה דווקא השלוחה הזו לא נרשמת.

בקורס Cisco Collaboration — טלפוניה ותקשורת מאוחדת של מכללת נטמי עוברים בדיוק את המסלול הזה, בעברית, מאפס ועד סביבת טלפוניה ארגונית עובדת. הקורס מיועד גם למי שמגיע מרשתות ורוצה להוסיף התמחות מבוקשת, וגם למי שרוצה להיכנס לתחום שבו יש הרבה פחות מתחרים ממה שנדמה לכם.

תגיות ומילות מפתח
  • #VoIP
  • #קורס_VoIP
  • #קורס_VoIP_בעברית
  • #קורס_טלפוניה
  • #קורס_Cisco_Collaboration
  • #SIP
  • #RTP
  • #RTCP
  • #CUCM
  • #Unified_Communications
  • #טלפוניה_IP
  • #קורס_ניהול_רשתות_תקשורת
  • #קורס_CCNA
  • #QoS
  • #מכללת_נטמי

רוצים להתמקצע?

הפוסט הזה הוא רק טעימה. הקורס המלא של Cisco Collaboration — טלפוניה ותקשורת מאוחדת ילמד אתכם הכל מא׳ עד ת׳.