יסודות הטלפוניה

מה זה RTP, ולמה הקול עובר בנפרד מ-SIP?

RTP (Real-time Transport Protocol) הוא הפרוטוקול שבו עובר הקול עצמו בשיחת אינטרנט. SIP מנהל את השיחה — מי מתקשר, מתי מצלצל, מתי מנתקים — ו-RTP נושא את חבילות הקול, עשרות בכל שנייה. רוב תקלות השמע ("אני לא שומע אותך") הן תקלות בערוץ הזה.

RTPReal-time Transport Protocolערוץ הקולמדיהRTCPSRTPMedia stream

זמן קריאה: כ-8 דקות

הגדרה ומקור

RTP הם ראשי התיבות של Real-time Transport Protocol — "פרוטוקול להעברה בזמן אמת". הוא תוקנן לראשונה באמצע שנות התשעים, והגרסה שבשימוש היום מוגדרת בתקן RFC 3550. הוא משמש לא רק לטלפון, אלא גם לווידאו ולשידורים חיים.

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

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

שני ערוצים בשיחה אחת

בכל שיחת VoIP יש שני ערוצים נפרדים, וכדאי להכיר את שניהם:

נושאSIP — ערוץ הניהולRTP — ערוץ הקול
מה עובר בובקשות: חייג, מצלצל, ענה, נתק, העברהקול עצמו, חבילה אחרי חבילה
כמותכמה הודעות בתחילת השיחה ובסופהעשרות חבילות בשנייה, כל השיחה
רגישות לעיכובנמוכה — עיכוב של חצי שנייה לא מורגשגבוהה — עיכוב קטן כבר נשמע
אם חבילה הולכת לאיבודשולחים שובלא שולחים שוב; ממשיכים הלאה
פורט מקובל5060 (או אחר שנקבע)טווח רחב של פורטים, משתנה בכל שיחה

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

למה בכלל להפריד?

נשאלת השאלה: למה לא להעביר הכל בערוץ אחד? יש לכך שלוש סיבות עיקריות.

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

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

איך נקבע ערוץ הקול

בתחילת השיחה, בתוך הודעות ה-SIP, כל צד כותב "כרטיס ביקור" קטן בפורמט שנקרא SDP. בכרטיס כתוב לאיזו כתובת ולאיזה פורט לשלוח לו את הקול, ובאילו קודקים הוא יודע להשתמש.

  1. הטלפון המתקשר שולח: "שלחו לי קול לכתובת שלי, פורט 12000. אני יודע G.722 ו-G.711".
  2. הצד השני עונה: "אני אשלח לך ב-G.711. ואתה שלח לי לכתובת הזאת, פורט 30400".
  3. שני הצדדים מתחילים לשלוח RTP זה לזה, כל אחד לכתובת שהשני ביקש.

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

מה קורה לחבילה בדרך

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

  • השהיה (Latency) — החבילה מגיעה, אבל באיחור. מרגישים "דיליי", מדברים זה על זה. השהיה חד-כיוונית של עד כ-150 אלפיות שנייה נחשבת טובה לפי המלצת ITU-T G.114.
  • ריצוד (Jitter) — החבילות מגיעות בקצב לא אחיד. הטלפון מחזיק "מאגר" קטן כדי ליישר את הקצב, וכשהריצוד גדול מדי, הקול נשמע מקוטע או רובוטי.
  • אובדן חבילות (Packet Loss) — חלק מהחבילות לא מגיעות בכלל. שומעים חורים, מילים שנבלעות, קול "מגמגם".

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

RTCP ו-SRTP — שני האחים

ל-RTP יש שני "קרובי משפחה" שכדאי להכיר בשם:

  • RTCP (RTP Control Protocol) — ערוץ קטן שרץ לצד הקול ושולח מדי כמה שניות דוח: כמה חבילות התקבלו, כמה אבדו, מה הריצוד. ממנו מחושבים מדדי איכות כמו MOS. הוא לא נושא קול.
  • SRTP (Secure RTP) — RTP מוצפן. החבילות עוברות באותה צורה, אבל מי שמיירט אותן בדרך לא יכול להבין מה נאמר. ראו הצפנה.

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

כמה רוחב פס RTP צורך

כל חבילת RTP נושאת קצת קול והרבה "מעטפה": כותרות של RTP, של UDP ושל IP, ועוד כותרות של הרשת המקומית. בחבילות קטנות כל כך, המעטפה היא חלק גדול מהמשקל. לכן הצריכה בפועל גבוהה מקצב הקודק עצמו.

קודקקצב הקול עצמוצריכה בפועל לכל כיוון, כולל תקורה
G.71164 קילוביט לשנייהכ-87 עד 100 קילוביט לשנייה
G.722 (קול HD)64 קילוביט לשנייהדומה ל-G.711
G.7298 קילוביט לשנייהכ-30 עד 40 קילוביט לשנייה

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

פורטים וחומת אש

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

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

טבלת אבחון: מה שומעים ומה זה אומר

מה קורהמה כנראה הסיבהמה בודקים
מצלצל, עונים, שקט משני הצדדיםערוץ הקול חסום לגמריחומת אש, טווח פורטי הקול
רק צד אחד שומעהקול נשלח לכתובת לא נכונה בכיוון אחדSIP ALG בראוטר, שני ראוטרים בשרשרת
קול מקוטע, רובוטיריצוד גבוה או אובדן חבילותעומס על החיבור, Wi-Fi חלש, הורדות במקביל
דיליי, מדברים זה על זההשהיה גבוההחיבור האינטרנט, מרחק לשרת
הקול נעלם אחרי העברה או המתנהערוץ הקול לא נבנה מחדש כמו שצריךSIP ALG; גרסת התוכנה של הטלפון
הכל תקין בשלוחה אחת ורע באחרתבעיה מקומיתכבל, מתג, Wi-Fi של אותה שלוחה

כלל אצבע: אם השיחה לא נוצרת בכלל — חפשו ב-SIP. אם השיחה נוצרת והקול בעייתי — חפשו ב-RTP.

דוגמה מהשטח

במשרד של עמותת "יד ביד לשכן" (שם בדוי) התלוננו ששיחות נכנסות נשמעות טוב, אבל בחלק מהשיחות היוצאות הצד השני לא שומע את המזכירה. הטלפונים צלצלו ונענו בלי בעיה — כלומר SIP עבד.

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

מה הטלפון עושה כדי להסתיר בעיות

מכיוון ש-RTP לא מתקן תקלות בדרך, הטלפון בצד המקבל עושה כמה דברים כדי שהשיחה תישמע טוב ככל האפשר:

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

הכלים האלה עוזרים, אבל יש להם גבול. כשהאובדן או הריצוד גדולים מדי, שום מאגר לא יציל את השיחה, וצריך לטפל ברשת עצמה — למשל בתעדוף תעבורה (QoS).

איך זה עובד אצלנו בקשר

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

ההמלצה שלנו לכל ראוטר: SIP ALG כבוי, וזמן החזקת חיבורי UDP (UDP timeout) של 180 שניות. שתי ההגדרות האלה מונעות חלק גדול מתקלות השמע החד-כיווני.

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

בלוח הבקרה, במסך השיחות הפעילות, רואים כל שיחה שמתנהלת עכשיו, ואפשר להעביר או לנתק אותה משם.

שאלות נפוצות

למה הטלפון מצלצל, אני עונה, ואין קול?

כי ערוץ הניהול (SIP) עבד, וערוץ הקול (RTP) נחסם בדרך. בדרך כלל הבעיה בחומת האש או בראוטר.

צריך לפתוח פורטים לקול בראוטר?

במרכזייה בענן בדרך כלל לא. הטלפון פותח את החיבור החוצה, והראוטר מאפשר את התשובות. חשוב רק שלא תהיה חסימה של תעבורה יוצאת ושה-SIP ALG יהיה כבוי.

למה RTP לא שולח שוב חבילה שאבדה?

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

מה זה RTCP?

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

השיחה מוצפנת?

כשמשתמשים ב-SRTP, הקול מוצפן בדרך. האם הוא מופעל תלוי במערכת ובמכשירים.

האם Wi-Fi משפיע על RTP?

מאוד. Wi-Fi עמוס או חלש גורם לריצוד ולאובדן חבילות, ולכן לטלפון שולחני עדיף כבל רשת.

למה הקול נעלם אחרי שהעברתי שיחה?

בהעברה ערוץ הקול נבנה מחדש. אם הראוטר משנה את הודעות הניהול (SIP ALG), הוא עלול לשבש את הבנייה החדשה. הצעד הראשון: לכבות אותו.

כמה חבילות קול נשלחות בשנייה?

בדרך כלל כ-50 בכל כיוון, כשכל חבילה נושאת 20 אלפיות שנייה של קול.

למה לפעמים יש שקט מוחלט כשהצד השני לא מדבר?

מכשירים מסוימים מפסיקים לשלוח קול בזמן שקט. מכשירים טובים משמיעים במקום זה רעש רקע עדין, כדי שיהיה ברור שהשיחה עדיין מחוברת.

חזרה למרכז הידע — כל המושגים

רוצים לשמוע איך זה יעבוד אצלכם?

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

השאירו פרטים ונחזור אליכם
077-921-9000