אינטגרציות VoiceBox: מה מתחבר היום, ומה עדיין לא

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

אנחנו לא מחליפים את המרכזייה, וגם לא מתחזים ליכולות שאין לנו. מה שלא כתוב כאן - לא קיים.

מסלולים נתמכים
4
מותנים
2
לא נתמכים היום
3
אימות אחרון
28.7.2026

בודק ההתאמה

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

המערכת יודעת לשלוח בקשת HTTP לכתובת חיצונית בסיום שיחה?

נקרא גם Webhook, HTTP notification או callback. אם יש בממשק שדה שבו מזינים כתובת URL לאירועי שיחה - התשובה כן.

אפשר לחשב חתימת HMAC-SHA256 על הבקשה, במרכזייה או ברכיב שאתם שולטים בו?

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

לכל הקלטה יש כתובת URL שנגישה מהאינטרנט?

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

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

כולל שיתוף רשת שממופה למכונה אחרת. זה המצב הרגיל במרכזיות ותיקות ובמקליטים מקומיים.

אפשר להריץ תוכנה קטנה (Node.js) על מכונה שקוראת את התיקייה הזו?

לא חייב להיות השרת של המרכזייה. כל מכונה עם גישת קריאה לתיקייה ועם יציאה ל-HTTPS מתאימה.

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

למשל out-101-0501234567-20270401-091500.wav. אם השם הוא מזהה פנימי בלבד, ענו לא.

התוצאה תופיע כאן

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

שלושה מצבים, בלי אמצע מטושטש

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

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

מטריצת המסלולים

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

מסלולי הקליטה, המצב שלהם והדרישות מכל מערכת
מסלולמצבמה נדרש מהמערכת שלכםמאמץ הקמהאימות אחרון
Webhook JSON חתוםנתמך ומאומתהמערכת שולחת POST לכתובת חיצונית, וניתן לחשב עליו חתימת HMAC-SHA256עבודת פיתוח קצרה בצד שלכם28 ביולי 2026
העלאת קובץ חתומה (multipart)נתמך ומאומתגישה לקובץ ההקלטה, ויכולת לשלוח בקשה חתומה אחת לכל שיחהעבודת פיתוח קצרה בצד שלכם28 ביולי 2026
משיכת ההקלטה מכתובת שנשלחה (recording_url)נתמך ומאומתכתובת HTTPS להקלטה שנגישה מהאינטרנט, שנשלחת בתוך ה-Webhookהגדרה בצד המרכזייה, ללא פיתוח נוסף28 ביולי 2026
סוכן תיקייה מקומינתמך ומאומתההקלטות נשמרות כקבצים בתיקייה, ואפשר להריץ Node על מכונה שקוראת אותההתקנה חד-פעמית ברשת שלכם28 ביולי 2026
מיפוי שדות לספק (Voicenter, 3CX, Twilio, Asterisk CDR)מותנההספק שולח אלינו Webhook חתום; המיפוי קיים בקוד אך לא אומת מקצה לקצהתלוי בספק, ובבדיקה משותפתלא אומת מקצה לקצה
מרכזייה שאינה יודעת לחתוםמותנהרכיב ביניים שאתם מפעילים, שמקבל את האירוע, חותם ומעבירפיתוח קטן בצד שלכםתלוי ברכיב שלכם
משיכה מדלי S3לא נתמך היום——לא קיים בקוד
משיכה מ-SFTPלא נתמך היום——לא קיים בקוד
העלאה ידנית ממסך בקונסולהלא נתמך היום——אין מסך העלאה

המסלולים הנתמכים, לעומק

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

Webhook JSON חתום

המרכזייה או ה-CRM שולחים לנו רשומת שיחה בסיום כל שיחה, לכתובת ‎POST /api/ingest/<connectorId>‎. הבקשה נחתמת ב-HMAC-SHA256 על גוף הבקשה המדויק, ונבדקת מול חלון של חמש דקות.

שדות נדרשים
מזהה שיחה יציב, זמן תחילת שיחה שניתן לפענוח, ומספר הצרכן. כיוון, משך, שלוחת הנציג, שם הנציג וכתובת ההקלטה הם רשות. לכל שדה יש רשימת שמות מקובלים, כך שברוב המקרים אין צורך לשנות שמות בצד שלכם.
מסלול האודיו
לא נכלל בבקשה. מגיע אחר כך, דרך recording_url או דרך העלאת קובץ נפרדת.
מגבלות ידועות
  • גוף הבקשה מוגבל ל-256KiB, ונספר על הזרם עצמו ולא לפי מה שהוצהר
  • שיחה חדשה מוחזרת ב-201, שידור חוזר של אותו מזהה ב-200 ובלי יצירת שיחה שנייה
  • שעון שסוטה ביותר מחמש דקות נדחה בדיוק כמו מפתח שגוי
  • רשומת שיחה בלי מסלול אודיו נשארת שיחה בלי הקלטה - זה נראה כמו הצלחה עד שמישהו מבקש את השיחה
בדיקות אוטומטיות
packages/services/src/__tests__/webhooks.test.ts

התיעוד המלא, עם דוגמאות curl ו-Node

העלאת קובץ חתומה

מטא-דאטה וקובץ האודיו בבקשת multipart אחת, לכתובת ‎POST /api/ingest/<connectorId>/upload‎. זה המסלול לכל מצב שבו יש גישה לקובץ אבל אין כתובת שנגישה מהאינטרנט - וזה בדיוק מה שסוכן התיקייה עושה מתחת למכסה המנוע.

שדות נדרשים
בשדה meta: externalId, startedAt ו-counterparty הם חובה. agentRef, direction ו-durationSeconds רשות.
מסלול האודיו
הקובץ עצמו, בתוך אותה בקשה.
מגבלות ידועות
  • החתימה מכסה את שדה meta בלבד, ולא את בייטים של האודיו
  • עד 200MiB לכלל הבקשה, כולל המטא-דאטה וגבולות ה-multipart; אין הרכבה מחלקים
  • התשובה היא 201 תמיד, גם כששיחה עם אותו מזהה כבר נקלטה - אין דרך להסיק מקוד התשובה אם זו הפעם הראשונה
  • קובץ שאינו אודיו מזוהה, או WAV מסוג PCM שקט לחלוטין, נשמר אך מסומן בבידוד ומדווח בתשובה
בדיקות אוטומטיות
packages/services/src/__tests__/webhooks.test.ts

מבנה הבקשה והחתימה

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

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

שדות נדרשים
אותם שדות של ה-Webhook, בתוספת כתובת ההקלטה.
מסלול האודיו
נמשך על ידינו מהכתובת שנשלחה, בשלב נפרד מקליטת השיחה.
מגבלות ידועות
  • HTTP או HTTPS בלבד; כתובת שמפנה לרשת פנימית או לכתובת מקומית נחסמת בכוונה
  • עד 200MiB לקובץ, עם מגבלת זמן של דקה להורדה
  • אימות מול המרכזייה (Basic, Bearer, כותרת או פרמטר בכתובת) מוגדר על מקור הקליטה על ידינו, ואין לו מסך בקונסולה
  • כתובת שפגה לפני שהספקנו להוריד היא הקלטה שלא תגיע; במרכזייה שמוחקת מהר, עדיף מסלול העלאה
בדיקות אוטומטיות
apps/worker/src/__tests__/jobs.test.ts · packages/telephony/src/__tests__/telephony.test.ts

איך שולחים recording_url

סוכן תיקייה מקומי

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

שדות נדרשים
נגזרים משם הקובץ: מזהה, מספר הצד השני, מועד השיחה, ולעיתים שלוחת הנציג והכיוון. אזור הזמן שבו נקראת חותמת הזמן מוגדר בהגדרות ונשמר עם השיחה; מועד שנגזר מתאריך הקובץ מסומן ככזה, או נדחה בהגדרה המחמירה.
מסלול האודיו
הקובץ מהתיקייה, בבקשת ההעלאה החתומה.
מגבלות ידועות
  • שם קובץ שאינו תואם אף תבנית מדווח ואינו נשלח - הסוכן אינו מנחש שיוך
  • ברירת המחדל סורקת שבעה ימים אחורה לפי תאריך הקובץ, ולכן ארכיון ישן אינו עולה מעצמו - נדרשת הרצה מכוונת עם חלון פתוח
  • נדרשת סביבת Node 20 ומעלה על מכונה ברשת; אין כרגע חבילת התקנה חתומה ל-Windows
  • הסוכן אינו מוחק ואינו משנה את הקבצים בתיקייה
בדיקות אוטומטיות
tools/agent/src/__tests__/agent.test.ts, והרצה מלאה מול תיקייה סינתטית

מדריך ההתקנה והתפעול

מה שאינו נתמך היום

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

משיכה מדלי S3

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

מה עושים במקום: התהליך שכותב לדלי יכול לשלוח לנו במקביל בקשה חתומה, או להעלות את הקובץ ישירות. אם הדלי חשוף בכתובת HTTPS, אפשר לשלוח את הכתובת בשדה recording_url.

משיכה מ-SFTP

אותו מצב בדיוק: ערך בשם sftpPull שממופה למפענח הכללי, בלי שום לקוח SFTP בקוד.

מה עושים במקום: סוכן התיקייה קורא כל תיקייה מקומית או שיתוף רשת, כולל תיקייה שאליה המרכזייה כותבת דרך SFTP בצד שלכם.

העלאה ידנית ממסך בקונסולה

אין בקונסולה מסך שמעלה קובץ אודיו. ההעלאה היחידה שקיימת היא בקשת multipart חתומה לנקודת הקצה.

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

משיכה יזומה מ-API של ספק טלפוניה

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

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

מיפוי שדות לספקים, ומה הוא לא

בקוד קיימות רשימות של שמות שדות עבור Voicenter, 3CX, Twilio ועבור רשומות CDR בסגנון Asterisk, לצד המיפוי הכללי. תפקידן אחד: לדעת שאותו פרט - מזהה השיחה, מועד ההתחלה, מספר הצד השני - נקרא אצל כל ספק בשם אחר. זה חוסך עבודת מיפוי בצד שלכם, ולא יותר מזה.

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

מה נדרש כדי שמסלול ייחשב "נתמך"

  1. נקודת קצה או תוכנה שקיימות בקוד ורצות בייצור, ולא ענף פיתוח או תכנון.
  2. בדיקות אוטומטיות שמכסות את המסלול, עם הפניה לקובץ הבדיקות כאן בדף.
  3. מגבלות ידועות שכתובות במפורש - גדלים, פורמטים, כשלים - כדי שאיש IT יוכל להעריך את המסלול לפני שהוא מתחייב אליו.
  4. כתובת אחת לפניות טכניות בכל מסלול: hello@voicebox.co.il. אין כאן שמות של אנשים שאי אפשר לאמת מבחוץ, אבל יש ערוץ אחד שמישהו אחראי לענות בו.
  5. תאריך אימות אחרון בשורה עצמה. תיעוד בלי תאריך מתיישן בשקט, ומסלול שנבדק לפני שנה אינו מסלול שנבדק.

איך מתחילים בפועל

  1. להריץ את בודק ההתאמה ולסמן את המסלול המתאים.
  2. לקרוא את התיעוד של אותו מסלול: Webhook והעלאת קובץ או סוכן התיקייה.
  3. לבקש מאיתנו מקור קליטה ייעודי לבדיקות. פתיחת חשבון אינה יוצרת מקורות קליטה - אנחנו מקצים אותם, ורק אחר כך אפשר להציג בקונסולה את המזהה ואת מפתח החתימה.
  4. לשלוח שיחה אחת ולראות אותה בקונסולה, כולל האודיו, לפני שמעבירים תנועה אמיתית.
  5. לעבור לייצור, ולבדוק אחרי יומיים שהמונים עולים ושאין שיחות בלי הקלטה.

אם המערכת שלכם אינה ברשימה

כתבו לנו ל-hello@voicebox.co.il ותארו שלושה דברים: איזו מערכת מקליטה, איפה הקובץ נשמר אחרי שיחה, ומה המערכת יודעת לעשות בסיום שיחה. אלה שלושת הדברים שקובעים אם יש מסלול, ולרוב אפשר לענות מהם בלי גישה למערכת. אם אין מסלול, נאמר את זה - ולא נמכור הקמה שתיתקע.

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

שאלות שחוזרות

האם VoiceBox מושכת הקלטות מדלי S3 או משרת SFTP?
לא. יש בבסיס הנתונים ערכים בשמות s3Pull ו-sftpPull, אבל הם ממופים למפענח ה-Webhook הכללי ואין בקוד שום תהליך שמתחבר לדלי או לשרת קבצים ומושך מהם. מי שההקלטות שלו נכתבות לאחד מהשניים יכול לשלוח לנו בקשה חתומה מהתהליך שכותב אותן, או להריץ את סוכן התיקייה על העותק המקומי.
יש לכם אינטגרציה מוכנה ל-Voicenter, ל-3CX או ל-Twilio?
קיים בקוד מיפוי שדות לכל אחת מהן, כלומר רשימה של השמות שכל ספק נותן לאותם פרטי שיחה. מיפוי שדות אינו אינטגרציה שאומתה מקצה לקצה, ואין לנו שותפות או אישור של אף אחד מהספקים האלה. בפועל מדובר במסלול Webhook רגיל שבו הפענוח כבר מוכן, וההוכחה היחידה שהוא עובד בתצורה שלכם היא שיחת בדיקה שנקלטה.
מה בודק ההתאמה בודק, ומה הוא שולח?
הוא בודק את התשובות שסימנתם ותו לא. החישוב רץ בדפדפן, התשובות אינן נשלחות לשרת ואינן נשמרות, ואיננו סורקים, בודקים או מתחברים לשום מערכת שלכם. הכלי הוא עזר להערכה עצמית, ולא בדיקה טכנית של המרכזייה.
מה נדרש מהמרכזייה כדי להתחבר בלי להחליף אותה?
אחת משתי יכולות. או שהיא יודעת לשלוח בקשת HTTP בסיום שיחה, ואז מסלול ה-Webhook פתוח - עם רכיב ביניים שחותם, אם היא לא יודעת לחתום בעצמה. או שההקלטות נשמרות כקבצים בתיקייה, ואז סוכן התיקייה עושה את העבודה בלי לגעת בהגדרות המרכזייה.
למה אין דף נפרד לכל ספק מרכזייה?
כי לא בדקנו את כל הספקים, ודף לספק שלא נבדק הוא הבטחה שלא ניתן לעמוד בה. מה שקובע אינו שם הספק אלא מה המערכת יודעת לעשות: לשלוח בקשה, לחתום, לחשוף כתובת או לכתוב קובץ לתיקייה. הדף הזה בנוי סביב היכולות האלה, וכשספק ייבדק מקצה לקצה נכתוב זאת כאן במפורש.
מה קורה אם אף מסלול לא מתאים?
כותבים לנו מה המערכת יודעת לעשות. לפעמים יש רכיב ביניים פשוט שסוגר את הפער, לפעמים יש מערכת אחרת בארגון - מוקד, CRM או מקליט - שכן יודעת לדווח, ולפעמים התשובה הכנה היא שהיום זה לא נתמך. עדיף לדעת את זה לפני שמתחילים בהקמה.

עדיף לגלות שאין מסלול עכשיו, ולא אחרי חודש הקמה

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

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