API לשליחת הודעות קוליות
ממשק ההודעות הקוליות של מיקרופיי מאפשר לשלוח הודעות קוליות (VMS) לרשימה של מספרי טלפון או לרשימות תפוצה, ישירות ממערכות מחשוב, מערכות CRM ואתרים. ניתן להשמיע שירות טלפוני קיים, להמיר טקסט לקול (TTS), או לנגן קובץ MP3, עם זיהוי תא קולי, נסיונות חוזרים, תזמון, ושימושים מתקדמים כמו click to call.
סקירת הממשק
ניתן לבצע שליחה של הודעות קוליות לרשימות תפוצה או לרשימה של מספרי טלפון, ישירות ממערכות מחשוב שונות, מערכות CRM, אתרים ועוד. המערכת מחזירה תשובה ראשונית מיידית המאשרת שהשליחה התקבלה ונכנסה לתור, וכוללת את קוד הקמפיין שניתן לשמור למעקב, לבדיקת סטטוס או למחיקה עתידית.
כתובת הממשק ושיטת השליחה
הכתובת לפנייה לממשק שליחת ההודעות הקוליות היא:
https://www.micropay.co.il/extApi/scheduleVms.php
לכתובת זו מוסיפים את הפרמטרים המתאימים. חלק מהפרמטרים הם חובה וחלקם רשות. יש לשלוח את כל שמות הפרמטרים באותיות קטנות (Lower Case). ניתן להעביר את הפרמטרים בשיטת GET או POST, או לשלוח אותם בגוף הבקשה בפורמט JSON.
אימות וטוקן
כל קריאה דורשת פרמטר token, טוקן שיצרת במערכת עם הרשאת שירותי טלפוניה.
פרמטרים
פרמטרים בסיסיים
| פרמטר | חובה | תיאור |
|---|---|---|
token | חובה | טוקן הזדהות שיצרת במערכת, עם הרשאת שירותי טלפוניה. |
from | חובה | המספר שיופיע כמספר המתקשר. יש לרשום מספר ללא מקף או רווח. ניתן לרשום רק מספרים שהוגדרו בחשבון, או את הספרה 0 למספר חסוי. |
desc | חובה | תיאור קצר של נושא השליחה, בין 2 ל-100 תווים. לגבי קידוד הטקסט ראו אפשרויות שליחה וקידוד. |
get / post | חובה | מציין למערכת באיזו שיטה נשלחו הפרמטרים. יש לשלוח אחד מהם בלבד: get=1 בשליחת GET, או post=2 בשליחת POST. הפרמטר אינו משנה את שיטת השליחה בפועל, אלא רק מצהיר עליה. (בפורמט JSON אין צורך בפרמטר זה.) |
קביעת הנמענים
יש לשלוח אחד מבין שני הפרמטרים הבאים, לפי יעד השליחה:
| פרמטר | חובה | תיאור |
|---|---|---|
list | לפי הצורך | רשימת מספרי טלפון מופרדים בפסיק, לשליחה ישירה. לדוגמה list=0501234567,0541234567. מומלץ ספרות בלבד, בפורמט מקומי או בינלאומי. עד כ-10,000 מספרים בשליחה בודדת. |
pid | לפי הצורך | רשימת קודים של רשימות תפוצה המוגדרות במערכת, מופרדים בפסיק. לדוגמה pid=12345,23456. |
קביעת השירות הראשון שיופעל
בכל שיחה יש לקבוע מה יושמע ללקוח ברגע המענה. קיימות שלוש דרכים, ויש לשלוח אך ורק אחת מהן:
אפשרות 1: שירות קיים במערכת
| פרמטר | חובה | תיאור |
|---|---|---|
sid | אפשרות | קוד שירות טלפוני קיים במערכת שיופעל ברגע המענה לשיחה. ניתן לבחור כל קוד שירות שמוגדר תחת השירותים הטלפוניים בחשבון. |
אפשרות 2: המרת טקסט לקול (TTS)
| פרמטר | חובה | תיאור |
|---|---|---|
tts | אפשרות | טקסט של עד 1000 תווים שהמערכת תמיר להודעה קולית. ברירת המחדל היא קול גבר; לקול אישה הוסיפו את הפרמטר gender עם הערך female (ראו פרמטרים נוספים). השימוש ב-TTS מחייב הפעלת המרת טקסט לקול בחשבון. |
אפשרות 3: קובץ MP3
| פרמטר | חובה | תיאור |
|---|---|---|
fileurl | אפשרות | קישור ישיר לקובץ MP3 המכיל את ההודעה. המערכת תפנה לקישור, תמשוך את הקובץ, תמיר אותו לפורמט המתאים ותבצע את השליחה. |
sid יחד עם tts או fileurl, או שליחת tts ו-fileurl יחד, תחזיר שגיאה.
פרמטרים נלווים ל-TTS ו-MP3
בעת שימוש ב-tts או ב-fileurl ניתן להוסיף את שני הפרמטרים הבאים:
| פרמטר | חובה | תיאור |
|---|---|---|
getdigits | רשות |
מגדיר האם הלקוח יכול להקיש מקשים במהלך השמעת ההודעה, ואת הספרות שניתן לקבל בשירות שלאחר מכן. האפשרויות:
• no: הלקוח לא יוכל להקיש על אף מקש בזמן ההשמעה.
• all: הלקוח יוכל להקיש כל מקש; ההקשה תפסיק מיד את ההודעה ותתקדם לשירות הבא או לסיום השיחה.
• num: ההקשה תפסיק את ההודעה, והמערכת תמתין לספרות נוספות (כחמש שניות בין ספרה לספרה, או עד הקשת כוכבית או סולמית), ואז תתקדם.
• רשימת ספרות (לדוגמה 159): רק הספרות שצוינו יתקבלו. הקשה על ספרה מאושרת תפסיק את ההודעה ותתקדם. לא ניתן לשלוח רק את הספרה 0.
|
nextsid | רשות | קוד השירות שיופעל לאחר השמעת ההודעה. אם הפרמטר לא נשלח, השיחה תסתיים מיד בתום ההשמעה. |
דוגמאות קוד
הדוגמאות מוצגות ב-cURL. לכל מצב מוצגת דוגמה בסיסית בפרמטרים (name=value), דוגמה בסיסית ב-JSON, ודוגמה מלאה ב-JSON.
שליחה לרשימת מספרים
# השמעת שירות קיים (sid) למספר טלפון curl "https://www.micropay.co.il/extApi/scheduleVms.php?get=1&token=XXXXX&desc=Test&from=035555555&list=0501234567&sid=2000"
curl -X POST https://www.micropay.co.il/extApi/scheduleVms.php \ -H "Content-Type: application/json" \ -d '{"token":"XXXXX","desc":"Test","from":"035555555","list":"0501234567","sid":"2000"}'
curl -X POST https://www.micropay.co.il/extApi/scheduleVms.php \ -H "Content-Type: application/json" \ -d '{ "token": "XXXXX", "desc": "עדכון ללקוחות", "from": "035555555", "list": "0501234567,0541234567", "tts": "שלום, זוהי הודעה לדוגמה ממיקרופיי", "gender": "female", "getdigits": "all", "nextsid": "2100", "amd": "1", "retry": "2", "retryint": "10", "lang": "he", "dh": "09", "di": "30", "dy": "2026", "dm": "06", "dd": "20" }'
שליחה לרשימת תפוצה
curl "https://www.micropay.co.il/extApi/scheduleVms.php?get=1&token=XXXXX&desc=Test&from=035555555&pid=2300&sid=2000"curl -X POST https://www.micropay.co.il/extApi/scheduleVms.php \ -H "Content-Type: application/json" \ -d '{"token":"XXXXX","desc":"Test","from":"035555555","pid":"2300","sid":"2000"}'
Content-Type: application/json, כפי שמופיע בדוגמאות.
אם אינך יכול לקבוע כותרות בבקשה, תוכל במקום זאת להוסיף json=1 בכתובת ה-URL ולשלוח את גוף ה-JSON ב-POST.
תשובת השרת
המערכת מחזירה תשובה ראשונית מיידית. בקריאה רגילה התשובה מתקבלת כטקסט פשוט; בקריאת JSON מוחזר מבנה אחיד שבו data.taskId הוא קוד הקמפיין, ו-data כולל תמיד את remoteIP.
תשובה רגילה (טקסט)
# הצלחה: OK ואחריו קוד הקמפיין שהוקצה OK 34556 # שגיאה: ERROR ואחריו תיאור ERROR --> Description: from parameter, invalid caller number
תשובה ב-JSON
// התקבל בהצלחה ונכנס לתור {"status":1,"action":"sendvms","message":"OK","data":{"taskId":"34556","remoteIP":"203.0.113.10"}} // שגיאת פרמטר {"status":0,"message":"ERROR","data":{"description":"from parameter, invalid caller number","remoteIP":"203.0.113.10"}}
טבלת קודי תשובה
| ערך | status ב-JSON | משמעות |
|---|---|---|
OK | 1 | הבקשה תקינה ונכנסה לתור. בטקסט מופיע אחריו קוד הקמפיין; ב-JSON הקוד נמצא ב-data.taskId. שמור אותו למעקב, בדיקת סטטוס או מחיקה. |
ERROR | 0 | שגיאה באחד הפרמטרים. בטקסט מופיע רווח ותיאור השגיאה; ב-JSON התיאור נמצא ב-data.description. |
תזמון השליחה
| פרמטר | חובה | תיאור |
|---|---|---|
stop | רשות | הגבלת זמן: השליחה תיעצר בכל מקרה בשעה שתגדיר, גם אם טרם הסתיימה. יש לשלוח 4 ספרות ברצף בפורמט HHMM (שעה ודקות). |
dh | לתזמון | שעה בפורמט 24 שעות, מספר בין 00 ל-23. |
di | לתזמון | דקות, מספר בין 00 ל-59. |
dy | לתזמון | שנה, בארבע ספרות. |
dm | לתזמון | חודש בשתי ספרות, מספר בין 01 ל-12. |
dd | לתזמון | יום בשתי ספרות, מספר בין 01 ל-31. |
לתזמון לתאריך ושעה עתידיים יש לשלוח את כל חמשת פרמטרי התאריך (dh, di, dy, dm, dd) יחד. ברירת המחדל היא מועד שליחת הבקשה.
נסיונות שליחה חוזרים
ניתן להגדיר למערכת לבצע שיחות חוזרות למספרים שלא ענו:
| פרמטר | חובה | תיאור |
|---|---|---|
retry | רשות | מספר הנסיונות החוזרים, מספר בין 1 ל-10. |
retryint | רשות | זמן ההמתנה בין כל נסיון, בדקות, בין 1 ל-30. הזמן מחושב מסיום סבב השליחה ועד תחילת הסבב הבא. |
זיהוי תא קולי
הפרמטר amd קובע האם המערכת תנסה לזהות הגעה לתא קולי, ומה לעשות אז. הערכים האפשריים הם 0, 1, 2 או 3:
| ערך | חובה | התנהגות |
|---|---|---|
0 | רשות | אין זיהוי תא קולי. אם הגדרת נסיונות חוזרים, המערכת תחזור רק למספרים שלא ענו; מספרים שהגיעו לתא קולי ייחשבו כאילו ענו. |
1 | רשות | המערכת תזהה תא קולי, תמתין לסיום הפתיח של התא, ואז תשמיע את ההודעה כך שתישמר בתא הקולי. שיחות אלו נחשבות תקינות, ולא יבוצעו אליהן נסיונות חוזרים. |
2 | רשות | המערכת תזהה תא קולי ותנתק מיד. השיחה תיחשב ללא מענה לצורך נסיונות חוזרים, אך בפועל היא נענתה ולכן תחויב כהודעה רגילה. |
3 | רשות | השיחה תיחשב כתא קולי רק אם הלקוח לא הקיש מקש בשירותים: תפריט רגיל, תפריט שלוחות או קבלת קוד מספרי. חובה להפעיל אחד מהשירותים הללו, ולבחור בהגדרותיו "כן" בשדה "שמירה כנתון אחרון", אחרת כל השיחות יוגדרו ללא מענה. |
3, המבוססת על הקשה, מתאימה לכל מצב.
פרמטרים נוספים
| פרמטר | חובה | תיאור |
|---|---|---|
np | רשות | מספר טלפון סלולרי לקבלת התראות על תחילת וסיום השליחה ועל תקלות. 10 ספרות, ללא רווח או מקף. |
ne | רשות | כתובת דואר אלקטרוני לקבלת התראות על תחילת וסיום השליחה ועל תקלות. לא ניתן לשלוח פרמטר זה בשליחה למספר בודד. |
lang | רשות | שפת ההודעות הגנריות והמספרים שמשמיעה המערכת: he = עברית (ברירת מחדל), ar = ערבית, ru = רוסית, en = אנגלית. |
gender | רשות | הקול שבו יושמעו הודעות גנריות ומספרים (וטקסט TTS): male = גבר (ברירת מחדל), female = אישה. |
פרמטרים לשימוש מתקדם
| פרמטר | חובה | תיאור |
|---|---|---|
data | רשות | נתון של עד 50 תווים שמוכנס למערכת כ"נתון אחרון שהוקש", וניתן להשתמש בו כאילו הוא המספר האחרון שהלקוח הקיש (רק אם השירות מוגדר לשמור את הנתון האחרון). הנתון נמחק כשהלקוח מקיש מקשים אחרים. ראו דוגמת click to call בהמשך. |
constdata | רשות | נתון של עד 50 תווים שנשמר קבוע לכל אורך השיחה, ומועבר גם כחלק מהנתונים בממשקים שמעבירים מידע לשרת שלך. |
endsid | רשות | קוד של שירות מסוג "מידע דינמי" שיופעל תמיד בסיום השיחה, כדי לקבל עדכון על כל סיום שיחה ישירות לעמוד בשרת שלך. |
list ואת מספר הנציג בפרמטר data, והפעילו שירות "ניתוב שיחה ישיר" עם מספר דינמי. המערכת תתקשר ללקוח ומיד תחבר אותו לנציג, כך שלקוח שמקיש את מספר הטלפון שלו באתר שלך מקבל שיחה מיידית מנציג מטעמך.
שאלות נפוצות
מה ההבדל בין sid, tts ו-fileurl?
אלו שלוש דרכים לקבוע את ההודעה הראשונה שתושמע, ויש לשלוח רק אחת מהן. sid מפעיל שירות טלפוני קיים, tts ממיר טקסט להודעה קולית, ו-fileurl מנגן קובץ MP3 מכתובת שתספקו.
איך ממירים טקסט לקול בקול אישה?
שולחים את הטקסט בפרמטר tts ומוסיפים gender=female (ברירת המחדל היא קול גבר). השימוש ב-TTS מחייב הפעלת המרת טקסט לקול בחשבון.
איך מבצעים click to call עם הממשק?
שולחים את מספר הלקוח ב-list ואת מספר הנציג ב-data, ומפעילים שירות ניתוב שיחה ישיר עם מספר דינמי. המערכת מתקשרת ללקוח ומיד מחברת אותו לנציג.
איך המערכת מזהה הגעה לתא קולי?
באמצעות הפרמטר amd (ערכים 0 עד 3). ערכים 1 ו-2 מבוססים על לוגיקת המתנה ואינם מומלצים לשליחות חוזרות לאותם מספרים; ערך 3 מבוסס על הקשה ומתאים לכל מצב. ראו זיהוי תא קולי.
איך יודעים אם השליחה התקבלה בהצלחה?
התשובה המיידית מתחילה ב-OK ואחריו קוד הקמפיין (ב-JSON: data.taskId). שגיאת פרמטר מתחילה ב-ERROR ואחריה תיאור.