מדריך מלא ומפושט למתכנת — הסבר, דוגמאות ועקרונות עבודה עם ה-API
ה-API של המרכזיה מאפשר לשלוט על שיחות טלפון באופן תכנותי. כשמתקשר נכנס לשלוחה — המרכזיה שואלת את השרת שלכם מה לעשות, והשרת מחזיר הוראות בפורמט JSON.
לקוח חייג למספר שלכם ונכנס לשלוחה במרכזיה.
המרכזיה שולחת בקשת GET לכתובת שהגדרתם, עם פרטי השיחה כפרמטרים ב-URL.
השרת מחזיר הוראות — למשל "הנגן הודעה ובקש ספרת בחירה מהמתקשר".
המרכזיה מבצעת, ואז פונה שוב לשרת עם התוצאה — מה המתקשר הקיש, מה הוקלט וכו'.
name שהגדרתם!"name": "userInput" → התוצאה תגיע כ-userInput=1 ב-URL.בכל פנייה מהמרכזיה לשרת שלכם, הפרמטרים הבאים מצורפים ל-URL אוטומטית:
PBXcallStatus=HANGUP מגיע גם לאחר ניתוק.
זה הרגע לבצע פעולות סיכום — שמירה ב-DB, שליחת מייל וכו'.כל תגובה מהשרת חייבת לכלול "type" המציין איזה מודול להפעיל.
המודולים מסודרים לפי הגיון שימוש: מהשמעה בלבד ← אינטראקציה ← ניתוב ← ניווט ← סיום.
מודול ההפשוט ביותר — משמיע את קבצי ה-files שהגדרתם,
ועובר מיד לפקודה הבאה בתור (או לפנייה הבאה לשרת).
אין קלט, אין אינטראקציה, אין ערך מוחזר.
simpleMenu — ניתן להשתמש בכל סוגי קבצי השמע
כולל טקסט, מספר, ספרות ולינק חיצוני.| פרמטר | חובה? | הסבר |
|---|---|---|
| type | חובה | "simpleMessage" |
| files | חובה | קבצי שמע להשמעה — ראו מקטע "קבצי שמע" |
מנגן הודעה ומחכה שהמתקשר יקיש מקש אחד בלבד מתוך רשימה מוגדרת מראש. מתאים לתפריטים כמו "הקישו 1 למכירות, 2 לתמיכה".
enabledKeys — לא עושה כלום. המתקשר ממשיך להמתין.| פרמטר | חובה? | ערכים | הסבר |
|---|---|---|---|
| type | חובה | "simpleMenu" | סוג המודול |
| name | חובה | שם כלשהו | שם הפרמטר שיחזור עם ההקשה. לדוגמה "menuChoice" → יחזור menuChoice=2 |
| enabledKeys | חובה | "1,2,3" | מקשים מותרים מופרדים בפסיקים. ניתן להשתמש: 1234567890*# |
| times | אופציונלי | מספר | כמה פעמים לחזור על התפריט לפני שמחזיר שגיאה |
| timeout | אופציונלי | שניות | כמה שניות לחכות להקשה לפני חזרה |
| errorReturn | אופציונלי | "ERROR" | הערך שיוחזר אם פג הזמן ללא הקשה |
| extensionChange | אופציונלי | ID / "." / ".." | לאן לעבור אחרי מיצוי times:"." = חזרה לשלוחה הנוכחית".." = חזרה לשלוחה קודמתמספר = ID שלוחה ספציפית |
| setMusic | אופציונלי | "yes" / "no" | מוזיקת המתנה בזמן שהשרת מעבד |
| files | אופציונלי | מערך | קבצי שמע להשמעה לפני ההמתנה |
מאפשר לקבל קלט מספרי חופשי מהמתקשר — מספר תעודת זהות, קוד לקוח, טלפון וכו'. בניגוד לתפריט פשוט, כאן ניתן לקבל מספר ספרות ברצף.
| פרמטר | חובה? | ערכים | הסבר |
|---|---|---|---|
| type | חובה | "getDTMF" | סוג המודול |
| name | חובה | שם כלשהו | שם הפרמטר שיחזור עם הקלט |
| max | חובה | מספר | מקסימום ספרות לקבל |
| min | אופציונלי | מספר | מינימום ספרות — אם הוקשו פחות, יבקש שוב |
| timeout | אופציונלי | שניות | זמן המתנה בין ספרה לספרה |
| skipKey | אופציונלי | מקש (כגון "#") | מקש שמסיים קלט מוקדם, ללא צורך להגיע ל-max |
| skipValue | אופציונלי | טקסט | הערך שיישלח אם הוקש מקש הדילוג ללא קלט קודם |
| confirmType | אופציונלי |
number מקריא כמספר שלם (ברירת מחדל) digits מקריא ספרה-ספרה no ללא קריאה חוזרת | |
| setMusic | אופציונלי | "yes" / "no" | מוזיקת המתנה בזמן עיבוד בשרת |
| files | אופציונלי | מערך | הודעה לפני קבלת הקלט |
מקליט הודעה קולית מהמתקשר ושומר אותה כקובץ שמע במערכת. מתאים להשארת הודעה, איסוף חוות דעת, ועוד.
| פרמטר | חובה? | ערכים | הסבר |
|---|---|---|---|
| type | חובה | "record" | סוג המודול |
| name | חובה | שם | בסיס לשמות הפרמטרים שיחזרו (ראו תגובה למטה) |
| max | אופציונלי | שניות | אורך מקסימלי להקלטה |
| min | אופציונלי | שניות | אורך מינימלי להקלטה |
| confirm | אופציונלי |
confirmOnly בקש אישור + אפשרות שמיעה ב-2 (ברירת מחדל) ful השמע ובקש אישור no ללא אישור | |
| fileName | אופציונלי | שם קובץ | שם הקובץ לשמירה במערכת |
| saveFolder | אופציונלי | ID שלוחה | לשמור לתיקיית שלוחה אחרת (לא ברירת המחדל) |
| files | אופציונלי | מערך | הודעה להשמעה לפני ההקלטה |
מקליט את המתקשר וממיר את הקול לטקסט. המתקשר מדבר — אתם מקבלים מחרוזת טקסט מוכנה לעיבוד.
| פרמטר | חובה? | הסבר |
|---|---|---|
| type | חובה | "stt" |
| name | חובה | שם הפרמטר שיחזור עם הטקסט המתומלל |
| max | אופציונלי | מקסימום שניות (עד 10) |
| min | אופציונלי | מינימום שניות |
| fileName | אופציונלי | שם הקובץ לשמירה |
| saveFolder | אופציונלי | ID שלוחה לשמירת קובץ הקול |
| campaignBilling | אופציונלי | מזהה קמפיין לשיוך לחיוב |
| files | אופציונלי | הודעה לפני ההקלטה |
מעביר את השיחה לטלפון ישראלי — נייד או נייח. מתאים לניתוב לנציג, לנייד של עובד, וכדומה.
dialPhone חייב להיות מספר טלפון ישראלי תקין (נייד/נייח).| פרמטר | חובה? | הסבר |
|---|---|---|
| type | חובה | "simpleRouting" |
| name | חובה | שם הפרמטר שיחזיר סטטוס ביצוע השיחה |
| dialPhone | חובה | מספר הטלפון לחיוג (ישראלי בלבד) |
| displayNumber | אופציונלי | המספר שיוצג אצל המקבל. ריק = מספר המתקשר המקורי |
| addDigits | אופציונלי | ספרות שיצורפו לסוף מספר המתקשר לצורך זיהוי |
| routingMusic | אופציונלי | "yes" = מוזיקת המתנה | "no" = צליל חיוג רגיל |
| ringSec | אופציונלי | שניות צלצול לפני ניתוק |
| limit | אופציונלי | הגבלת משך השיחה בשניות |
| campaignBilling | אופציונלי | מזהה קמפיין לשיוך לחיוב |
מעביר את השיחה לשלוחה SIP/IP — כתובת IP ומספר שלוחה. מתאים לחיבור עם מרכזיות חיצוניות, ציוד VoIP, וכדומה.
| פרמטר | חובה? | הסבר |
|---|---|---|
| type | חובה | "ipRouting" |
| name | חובה | שם הפרמטר לתוצאה |
| dialPhone | חובה | מספר השלוחה לחיוג |
| dialIP | חובה | כתובת ה-IP של היעד |
| displayNumber | אופציונלי | מספר שיוצג על הצג |
| routingMusic | אופציונלי | מוזיקת המתנה yes/no |
| ringSec | אופציונלי | שניות צלצול |
| limit | אופציונלי | הגבלת משך השיחה בשניות |
מנגן קבצי שמע בסדר רצוף ומחזיר מידע מפורט על ההאזנה — כמה האזין, איפה עצר, באיזה קובץ. מתאים לניגון תוכן ארוך, שיעורים, פרקי פודקאסט.
startSecond שחזר, ושלחו אותו בפנייה הבאה כדי להמשיך מהמקום שנעצר.| פרמטר | חובה? | ערכים | הסבר |
|---|---|---|---|
| type | חובה | "audioPlayer" | סוג המודול |
| name | חובה | שם כלשהו | שם הפרמטר לתוצאה |
| files | חובה | מערך | הקבצים לניגון — ראו מקטע "קבצי שמע" |
| startFile | אופציונלי | מספר (מ-1) | מאיזה קובץ במערך להתחיל |
| startSecond | אופציונלי | מילי-שניות | מאיזה רגע בקובץ להתחיל (1000 = שניה) |
| beepPlay | אופציונלי | YES / NO | ביפ בין קבצים (ברירת מחדל: YES) |
| playLength | אופציונלי | YES / NO | השמעת אורך הקובץ (ברירת מחדל: NO) |
| digitsSource | אופציונלי | "template" / אחר | מקור הגדרת מקשים אינטראקטיביים |
| playTemplate | אופציונלי | מזהה תבנית | בשימוש עם digitsSource: "template" |
מעביר את השיחה לשלוחה אחרת במרכזיה. שימושי לניתוב דינמי על פי לוגיקה עסקית — שעות פעילות, סוג לקוח, זמינות נציגים וכו'.
| פרמטר | חובה? | הסבר |
|---|---|---|
| type | חובה | "goTo" |
| goTo | חובה | מזהה השלוחה אליה לעבור |
מנתק את השיחה מיידית. הפשוט ביותר — שולחים ומנתקים.
PBXcallStatus=HANGUP —
ניתן להשתמש בה לפעולות סיכום שיחה.משמיע למתקשר את כל הודעות הקמפיינים שנשלחו אליו. ניתן לקבוע כמה ימים אחורה לחפש הודעות — אם לא צוין, ברירת המחדל היא שנה (365 ימים).
| פרמטר | חובה? | ערך | הסבר |
|---|---|---|---|
| type | חובה | "playAllCampaigns" | סוג המודול |
| daysBack | רשות | מספר ימים | כמה ימים אחורה להשמיע קמפיינים. ברירת מחדל: 365 |
daysBack, יוצגו קמפיינים מהשנה האחרונה (365 ימים).מבצע סליקת כרטיס אשראי מול הסולק (Nedarim Plus) באמצע תזרים API. אוסף מהמתקשר את פרטי הכרטיס (מספר, תוקף, ואופציונלית CVV / ת"ז / מספר תשלומים), שולח לסולק, ומחזיר את התוצאה (סטטוס + מספר אישור) לקריאה הבאה לשרת שלכם.
| פרמטר | חובה? | ערכים | הסבר |
|---|---|---|---|
| type | חובה | "creditCard" | סוג המודול |
| name | חובה | טקסט | שם לוגי. תחתיו יוחזרו הסטטוס ומספר האישור (ראו "מה חוזר") |
| fixed | אופציונלי | "yes" / "no" | "yes" = שמירת הערכים שחזרו לפנייה הבאה (ברירת מחדל "no") |
| פרמטר | ברירת מחדל | הסבר |
|---|---|---|
| sum | 0 | סכום לחיוב. 0 = יבקש מהמתקשר להזין סכום |
| sumChangeable | "no" | "yes" = משמיע את הסכום ומבקש אישור (1 = אישור, *0 = ביטול) |
| cvv | "yes" | "yes" = יבקש 3-4 ספרות CVV |
| tz | "yes" | "yes" = יבקש תעודת זהות (6-9 ספרות) |
| payments | 1 | מקסימום תשלומים. 1 = לא ישאל. >1 = ישאל בין 1 ל-X |
| category | "" | קטגוריה לסולק (טקסט חופשי, נתמך בעברית) |
| terminal | "" | מסוף בסולק |
| פרמטר | אם "yes" |
|---|---|
| noSum | משתיק את ההכרזה "הסכום לתשלום הוא X" — רק כש-sumChangeable=no |
| noSuccess | משתיק את "העסקה נקלטה בהצלחה" |
| noConfirmation | משתיק את "מספר האישור הוא X" + הקראת הספרות |
| noFailExit | בכשל לא יוצא מהמודול — חוזר שוב ושוב לבקש פרטי כרטיס עד הצלחה. אין שום מקש יציאה. |
noFailExit=yes: המתקשר נתקע בלולאה עד שיצליח לסלוק או ינתק.
השתמשו רק כשהשיחה לא יכולה להמשיך בלי סליקה מוצלחת.cvv=yestz=yespayments>11 = סליקה נוספת, *#0 = יציאה)noFailExit=yes חוזר לשלב 2; אחרת יוצא מהמודולname="payment"):OK / ERROR / סטטוס שחזר מהסולק (כגון DECLINE)| ערך | משמעות |
|---|---|
OK | הסליקה הצליחה |
ERROR | המתקשר ביטל (*/0), נתק, או תקלה כללית |
| אחר | סטטוס שחזר ישירות מהסולק (לדוגמה DECLINE) |
ברוב המודולים ניתן לצרף מערך files — רשימת פריטי שמע שיושמעו למתקשר.
ניתן לשלב סוגים שונים באותו מערך.
אם הקובץ שייך לשלוחה אחרת — רשמו את ה-ID שלה ב-extensionId.
שם הקובץ ללא סיומת.
המערכת תקריא את הטקסט בקול. ברירת המחדל היא קול גוגל סטנדרטי he-IL-Standard-D — ללא עלות נוספת. ניתן לבחור קול אחר ע"י הוספת voice (בתוספת תשלום — ראו "בחירת קול הקראה" למטה).
text ייחודית מתומללת פעם אחת ע"י מנוע ה-TTS, ומאז נשמרת בקאש.
השמעות חוזרות של אותה מחרוזת בדיוק — מוגשות מהקאש מיידית וללא חיוב נוסף
(חשוב במיוחד עבור קולות Gemini בתשלום, שמחויבים פר תמלול).
text קצרים ושמישים-לשימוש-חוזר,
במקום פסקה אחת ארוכה. ככה שינוי קטן באחד המשפטים לא מאלץ תמלול חוזר של כל הטקסט,
ומשפטים זהים שחוזרים על עצמם בין שיחות / תפריטים — מוגשים תמיד מהקאש.
יושמע: "מאה עשרים ושלוש"
יושמע: "אחת שתיים שלוש"
fileName!voiceהפרמטר voice תקף רק לפריטים מסוג text. עבור fileId / fileName / fileLink / number / digits הוא יתעלם.
voice (או הועבר "voice": "he-IL-Standard-D") — תופעל הקראה סטנדרטית של גוגל, ללא עלות נוספת.| voice | תיאור |
|---|---|
he-IL-Standard-D | קול גוגל סטנדרטי בעברית (פעיל אם לא הועבר voice) |
| voice | אופי |
|---|---|
Charon | מידעי |
Puck | שמח |
Fenrir | נמרץ |
Orus | תקיף |
Enceladus | רך |
Iapetus | צלול |
Umbriel | רגוע |
Algieba | חלק |
Algenib | מחוספס |
Rasalgethi | מידעי |
Alnilam | תקיף |
Schedar | מאוזן |
Achird | ידידותי |
Zubenelgenubi | יומיומי |
Sadachbia | חי |
Sadaltager | יודע דבר |
| voice | אופי |
|---|---|
Kore | תקיפה |
Zephyr | מאירה |
Leda | צעירה |
Aoede | קלילה |
Callirrhoe | רגועה |
Autonoe | מאירה |
Despina | חלקה |
Erinome | צלולה |
Laomedeia | שמחה |
Achernar | רכה |
Gacrux | בוגרת |
Pulcherrima | ישירה |
Vindemiatrix | עדינה |
Sulafat | חמימה |
מאפשר לשלוט אילו מקשים פעילים בזמן השמעת קובץ ספציפי:
ניתן לשלוח מספר מודולים יחד כמערך. המרכזיה תבצע אותם ברצף ותחזיר את כל הערכים יחד בפנייה אחת לשרת.
| מודול | type | שימוש עיקרי | מה מוחזר |
|---|---|---|---|
| הודעה פשוטה | simpleMessage | השמעת הודעה בלבד — ללא קלט | — (אין תגובה) |
| תפריט פשוט | simpleMenu | בחירה ממקש אחד (1, 2, 3...) | המקש שנלחץ |
| קבלת הקשות | getDTMF | קלט מספרי חופשי (ת.ז., קוד, טלפון) | הספרות שהוקשו |
| הקלטה | record | הקלטת הודעה קולית | שם קובץ + נתיב + גודל + משך |
| תמלול קולי | stt | קול לטקסט (עד 10 שניות) | טקסט + פרטי קובץ |
| ניתוב טלפוני | simpleRouting | העברה לטלפון ישראלי | סטטוס השיחה |
| ניתוב IP | ipRouting | העברה לשלוחה SIP/IP | סטטוס השיחה |
| נגן מדיה | audioPlayer | ניגון קבצי שמע עם מעקב האזנה | סטטוס האזנה + נקודת עצירה |
| מעבר לשלוחה | goTo | מעבר לשלוחה אחרת במרכזיה | — |
| ניתוק | hangup | סיום שיחה מיידי | — |
| השמעת קמפיינים | playAllCampaigns | השמעת כל הקמפיינים שנשלחו למתקשר | — |
| סליקת אשראי | creditCard | סליקת כרטיס אשראי באמצע השיחה | סטטוס + מספר אישור |
PBXcallId לכל שיחה — זה המפתח לזיהוי ב-DBname ייחודי לכל מודול כדי לזהות בקלות ערכים חוזריםHANGUP — בצעו שם לוגיקת סיכום שיחה