מצ"ב קישור להגדרות הAPI למערכות ימות המשיח. מפתחים מוזמנים להשתמש. API גישת מפתחים למערכות הAPI המפורסם כאן נותן אפשרות לניהול המערכת שלא דרך אתר הניהול אלא בצורה עצמאית. הדבר מיועד עבור מפתחים המעוניינים להתממשק בצורה אוטומטית עם המערכת. אין כל קשר בין הAPI הזה למודול API בכל פעולה בAPI יש 2 חלקים. חלק ראשון - שליחת בקשה לשרת. חלק שני - תשובה מהשרת. חלק ראשון: שליחת בקשה לשרת את הבקשות ניתן לשלוח לכתובת: https://www.call2all.co.il/ym/api/ או לכתובת: https://private.call2all.co.il/ym/api/ אין הבדל בין הכתובות. בדוגמאות להלן הכתובת הבסיסית תושמט ובמקומה יופיע {url}$ את כל הבקשות (למעט העלאת קבצים) ניתן לשלוח בGET או בPOST בבקשות POST ניתן לשלוח את הפרמטרים כJSON בתוך הbody. כמובן יש לציין בפניה Content-Type=application/json. הבקשה מורכבת מ2 חלקים. חלק 1 פקודה חלק 2 פרמטרים. לדוגמה: הפקודה להורדת קובץ היא DownloadFile והפרמטרים הנדרשים הם token path במקרה כזה הבקשה בGET תראה כך: ${url}DownloadFile?token=${token}&path=${path} ובצורה פשוטה יותר https://www.call2all.co.il/ym/api/DownloadFile?token=077000000:1234&path=ivr2:/1/1/000.wav בהמשך נביא את כל הפקודות הקיימות. חלק שני: התשובה מהשרת כל התשובות מהשרת (למעט הורדת קבצים) מקודדות בפורמט JSON וכוללות את המידע בנוגע לבקשה. בהמשך נביא את סוגי התשובות הקיימות עבור כל בקשה. בנוסף, בכל תשובה יכללו המאפיינים הבאים: yemotAPIVersion – גרסת הAPI הנוכחית (עשוי לשמש לאיתור בעיות תאימות עם גרסאות עתידיות) responseStatus – מידע אודות הפעולה המבוקשת. אם הפעולה המבוקשת הושלמה בהצלחה, הערך יהיה OK אם הפעולה נכשלה, הערך יהיה ERROR ערך FORBIDDEN פירושו שהבקשה הייתה אסורה על ידי השרת, ערך EXCEPTION פירושו שהבקשה גרמה לחריג בשרת. מאפיינים נוספים הנשלחים בחלק מהבקשות message - הסבר על הפעולה שבוצעה או הסבר על השגיאה. messageCode - קוד שגיאה. להלן יובאו כל סוגי הקודים הקיימים. אם במקום קוד שגיאה התקבל הערך null אירעה שגיאה כללית. דוגמה לתשובה מהשרת עם הודעת שגיאה: { "yemotAPIVersion": "1", "responseStatus": "ERROR", "message": "Username or password is incorrect", "messageCode": 1 } בדוגמה זו, גירסת הAPI היא 1, הפעולה נכשלה, הסבר על השגיאה זמין במאפיין 'message' קוד השגיאה הוא 1. הזדהות מול הAPI: ההזדהות מול ה API היא על ידי פרמטר token, או - מומלץ - לשלוח את הטוקן בכותרת (header) בשם authorization. יש שתי סוגי טוקנים: טוקן קבוע API KEY - מפתח שנוצר באמצעות ממשק ״חומת האש״. לתיעוד מלא והסברים על ממשק חומת האש: https://f2.freeivr.co.il/post/167806 מושלם בשביל שימוש אמיתי ב API בסקריפטים או שירותים שרצים בסביבת שרת. הסבר על טוקן מסוג API KEY: # # הערה טוקן קבוע שאינו משתנה לא פג תוקף אף פעם ניתן להגדיר הגבלות, כתובות IP מאושרות, הגבלות שירותים ועוד לא דורש אימות דו-שלבי לשימוש לאחר היצירה שלו דורש הכנה מראש ופעולה ייזומה של בעל המערכת כדי להנפיק את הטוקן לא ניתן לבצע אימות קשיח במפתח API ולכן לא ניתן לבצע פעולות שדורשות את זה טוקן משתנה - נותן על ידי שימוש בפקודת Login - טוקן זמני שמייצג סשן ספציפי. יצירת הטוקן מתבצעת על ידי קריאה לשירות התחברות-Login מיועד בעיקר לממשקים שבהם הלקוח צריך להתחבר לאיזה מערכת שהוא רוצה, ושניתן להפנות אותו במידת הצורך לביצוע אימות דו-שלבי. הסבר על טוקן זמני שמתקבל בשימוש עם Login: # # הערה טוקן משתנה - מייצג סשן ספציפי פג תוקף עם חוסר שימוש, וגם בשימוש תמיד - יפוג לאחר זמן מסויים מחייב מעבר אימות דו שלבי, בפועל - או על ידי פטור של כתובת IP וכו אין צורך בהכנה מראש על ידי בעל המערכת, הלקוח פשוט מכניס את מספר המערכת והסיסמה שלו ניתן לבצע אימות קשיח לטובת גישה לשירות הדורשים את זה הצורך בביצוע אימות דו שלבי: כל סשן שנוצר באמצעות שירות Login צריך לעבור אימות דו שלבי, או להיות פטור ממנו. כאשר מגיעה בקשת API מסשן שלא עבר אימות דו שלבי - התגובה תיהיה: מאפייני תגובת השרת: מאפיין סוג ערך responseStatus string ERROR / FORBIDDEN message string MFA_REQUIRED ניתן לעיין בנושא בפוסטים הבאים לטובת הסבר על הנושא לעומק: תיעוד API לביצוע אימות דו-שלבי: https://f2.freeivr.co.il/post/159985 הודעה על הפעלת אימות דו-שלבי: https://f2.freeivr.co.il/post/159438 פיתרון ל״אקטיבציה״ של סשן באמצעות ממשק האתר (כפיתרון זמני): https://f2.freeivr.co.il/post/160074 הפונקציות האפשריות בממשק הAPI: בגדול כמעט כל הדברים שאפשר לעשות דרך האתר אפשר גם בAPI (הפעלת קמפיינים שינוי שלוחות ניהול קבצים ועוד) במדריך זה נחלק את האפשרויות ל3 חלקים. חלק 1 התחברות למערכת והגדרות כלליות - שינוי סיסמה העברת יחידות עדכון פרטי משתמש ועוד חלק 2 ניהול קמפיינים - הגדרת קמפיינים, הפעלת קמפיין עדכון מספרים ועוד. חלק 3 מערכת תוכן - ניהול הקבצים והשלוחות במערכת. חלק 1 התחברות למערכת והגדרות כלליות התחברות-Login התנתקות-Logout פרטי המערכת-GetSession שינוי סיסמת ניהול-SetPassword עדכון פרטי משתמש-SetCustomerDetails קבלת רשימת חיובי יחידות-GetTransactions העברת יחידות-TransferUnits קבלת רשימת שיחות נכנסות-GetIncomingCalls העלאת קובץ-UploadFile הורדת קובץ-DownloadFile חלק 2 ניהול קמפיינים קבלת מצב כל תבניות הקמפיינים-GetTemplates עדכון תבנית קמפיין-UpdateTemplate העלאת והורדת קבצי שמע לקמפיין ניהול קבצי שמע בקמפיין (העתקה העברה או מחיקה) יצירת תבנית קמפיין חדשה-CreateTemplate מחיקת תבנית קמפיין-DeleteTemplate הצגת המספרים שברשימת התפוצה-GetTemplateEntries עדכון מספר בודד ברשימת תפוצה-UpdateTemplateEntry עדכון סטטוס או מחיקה של מספרים מרשימת התפוצה-UpdateTemplateEntries מחיקת כל המספרים מרשימת התפוצה-ClearTemplateEntries העלאת קובץ טקסט והפיכתו לרשימת טלפונים לתבנית קמפיין-UploadPhoneList הפעלת קמפיין-RunCampaign מצב הקמפיין-GetCampaignStatus הורדת דו"ח קמפיין-DownloadCampaignReport קבלת קמפיינים פעילים-GetActiveCampaigns ביצוע פעולות בקמפיינים פעילים-CampaignAction יצירת קמפיין מתוזמן-ScheduleCampaign קבלת קמפיינים מתוזמנים-GetScheduledCampaigns מחיקת קמפיין מתוזמן-DeleteScheduledCampaign חלק 3 מערכת תוכן קבלת מידע מלא על השלוחה-GetIVR2Dir קבלת מידע כללי על שלוחה - GetIVR2DirStats קבלת מידע על קובץ בודד -GetFile ניהול קבצים (שינוי שם, העתקה, העברה ומחיקה)-FileAction העלאת קבצים- ראה ערך UploadFile הורדת קבצים - ראה ערך DownloadFile קבלת תוכן קובץ טקסט-GetTextFile העלאת טקסט לקובץ-UploadTextFile עדכון סוג שלוחה-UpdateExtension הכוונת שיחה - העברת מאזין באפשרות הראשונה לשלוחה אחרת או לניתוק - CallAction ניהול חדרי ועידה-CallAction שינוי השפה בערוץ קבלת סיכום דקות נכנסות למערכת לפי טווח תאריכים-GetIncomingSum קבלת לוג סמסים יוצאים-GetSmsOutLog פעולות הנוגעות באבטחה של המערכת. צפיה בלוג התחברויות, ניתוק סשנים ValidationToken | DoubleAuth | GetLoginLog | GetAllSessions | KillSession | KillAllSessions הפעלת צינתוק-RunTzintuk בדיקה האם קובץ קיים-CheckIfFileExists שליחת SMS מהמערכת-SendSms הקמת שיחת גישור-CreateBridgeCall קבלת מידע בזמן אמת על שלוחת תור-GetQueueRealTime קבלת מידע על המערכת - GetCustomerData שליחת פקס-SendFax קבלת דוח קמפיין-ViewCampaignReports מערכת תזמון משימות GetTasks | GetTasksData | CreateTask | UpdateTask | DeleteTask הוספה ואימות של זיהוי ספיישל-ValidationCallerId שליחת קמפיין הודעת TTS הפקת דוח מקובץ ymgr (דוחו"ת)-RenderYMGRFile פירוט תנועות ביחידות סמסים שינוי שימוש (usage) של מספר משנה בדיקה האם תיקייה קיימת חשבונות ומערכת sip ניהול תור אונליין ניהול רשימות צינתוקים במודול צינתוקים חינמיים-TzintukimListManagement ניהול פרסומפון הפעלת קמפיין הנכנס לשלוחה במערכת קבלת רישומים לחשבון SIP קבלת כל חשבונות הSIP במערכת האם הם רשומים בשרת קבלת זיהויים מאושרים במערכת להוצאת שיחות/סמסים בדיקת זיהוי האם הוא מאושר לשימוש בשיחה/סמס קבלת SMS שהתקבלו במערכת ניהול/ביצוע אימות דו-שלבי/בדיקת האם הסשן עבר אימות דו-שלבי/ניסיון ביצוע אימות דו-שלבי/קבלת שיטות אימות זמינות/שליחת אימות/הוספה וניהול שיטות אימות/הוספה וניהול כתובות IP לבנות/ניהול אסימוני ״זכור אותי״ מוניטור SIP בזמן אמת - מערכת SiP_panel - SipRealtimeMonitor התחברות הסבר: בכל הבקשות הנשלחות לשרת יש צורך בפרמטר token שמשמש כקוד התחברות למערכת כאשר תשלחו פקודת Login תקינה, תקבלו בחזרה פרמטר token שאת הערך שלו עליכם לציין כשאתם שולחים כל פקודת API. ראה להלן דרך נוספת הפקודה היא -Login הפרמטרים הנדרשים: פרמטר תיאור / הערות username מספר מערכת password סיסמת הניהול של המערכת מאפייני תגובת השרת: מאפיין ערך הערה token טוקן הטוקן שנוצר יפוג לאחר 30 דקות אם לא תתבצע שיחת API עם הטוקן. כמו כן, כל עוד הטוקן תקף יש להשתמש בו ולהימנע מבקשת התחברות נוספת התנתקות מחיקת הטוקן שהתקבל בהתחברות הפקודה היא - Logout הפרמטרים הנדרשים: פרמטר תיאור / הערות token טוקן אין מאפיינים מיוחדים בתגובת השרת קבלת פרטי המערכת הפקודה היא - GetSession הפרמטרים הנדרשים: פרמטר תיאור / הערות token טוקן מאפייני תגובת השרת: מאפיין סוג ערך name שם לקוח unitsExpireDate string תאריך תפוגה של היחידות email כתובת אימייל organization שם ארגון contactName שם איש קשר phones טלפון invoiceName חשבונית על שם invoiceAddress כתובת למשלוח חשבונית fax פקס accessPassword סיסמת גישה למערכת units double כמות היחידות שבמערכת recordPassword סיסמת הקלטות creditFile שם משווק username string מספר המערכת שינוי סיסמת ניהול הפקודה היא - SetPassword הפרמטרים הנדרשים: פרמטר תיאור / הערות token טוקן password סיסמת הניהול הנוכחית newPassword סיסמה חדשה אין מאפיינים מיוחדים בתגובת השרת עדכון פרטי משתמש הערה: הפקודה מוחקת את פרטי המשתמש המעודכנים במערכת. הפקודה היא - SetCustomerDetails הפרמטרים הנדרשים: פרמטר תיאור token טוקן פרמטר חובה name שם לקוח email כתובת דוא"ל organization שם ארגון contactName שם איש קשר phones טלפון invoiceName חשבונית על שם invoiceAddress כתובת למשלוח חשבונית fax פקס accessPassword סיסמת גישה recordPassword סיסמת הקלטות אין מאפיינים מיוחדים בתגובת השרת קבלת רשימת חיובי יחידות היסטוריה של תנועת יחידות במערכת (כולל דוחות קמפיינים שהסתיימו) הפקודה היא - GetTransactions הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן חובה from מאיזה תנועה להציג רשות limit מספר מרבי של תנועות שיש לכלול רשות filter סינון תוצאות לפי סוג פעולה campaigns עבור חיובי קמפיינים מאפייני תגובת השרת: מאפיין סוג ערך transactions array מערך אובייקטים (ראה "תבנית אובייקט תנועה" להלן) totalCount int מספר כולל של תנועת יחידות תבנית אובייקט תנועה מאפיין סוג ערך id int מזהה תנועה ייחודי transactionTime string תאריך ושעה (פורמט: yyyy-MM-dd HH:mm:ss) amount double סכום היחידות description string תיאור העסקה. ראה להלן מילות מפתח מיוחדות who string בוצע על ידי:   1) כתובת IP במידה והפעולה בוצעה דרך אתר האינטרנט.   2) מספר טלפון במידה והפעולה בוצעה דרך הטלפון.   3) ADMIN במידה והפעולה בוצעה על ידי שירות הלקוחות.   4) TRANSFER במקרה של העברת יחידות.   5) expire במקרה של פג תוקף. newBalance double כמות יחידות מחודשת לאחר התנועה expireDate string במידה וקיים תאריך תפוגה חדש הוא יופיע בערך זה (בפורמט: yyyy-MM-dd). במידה ולא קיים יתקבל הערך null campaignId string במידה והתנועה שבוצעה היתה הפעלת קמפיין יופיע בערך זה מזהה הקמפיין המתאים (משמש להורדת דוח הקמפיין). במידה ולא, יתקבל הערך null מילות מפתח מיחדות למאפיין description שניתן להשתמש בהן כדי לזהות סוגי פעולות תיאור המתחיל ב פירושו Start- חיוב עבור הפעלת קמפיין transfer to חיוב עבור העברת יחידות למערכת אחרת transfer from יחידות שנוספו בהעברה ממערכת אחרת Units expired פג תוקף היחידות העברת יחידות העברת יחידות למערכת אחרת הפקודה היא - TransferUnits הפרמטרים הנדרשים: פרמטר תיאור/הערות token טוקן destination מספר מערכת להעברה amount כמות יחידות להעברה מאפייני תגובת השרת במקרה שהעברה בוצעה בהצלחה: מאפיין סוג ערך destination string מערכת היעד אליה בוצעה ההעברה amount double הסכום שהועבר newBalance double יתרת היחידות במערכת המקור לאחר ביצוע ההעברה במקרה של שגיאה בביצוע ההעברה ההודעות והקודים האפשריים הם כדלקמן: messageCode message הסבר 111 Bad destination יעד להעברה לא חוקי: המערכת אינה קיימת או שאינה מורשית לקבל יחידות ממערכת זו 112 Bad amount סכום היחידות להעברה אינו חוקי 113 Not enough balance יתרת היחידות שבמערכת אינה מאפשרת את ביצוע ההעברה קבלת רשימת שיחות הפעילות במערכת הפקודה היא - GetIncomingCalls הפרמטרים הנדרשים: פרמטר תיאור/הערות token טוקן מאפייני תגובת השרת: מאפיין סוג הסבר calls array מערך אובייקטים (ראה "תבנית אובייקט שיחה" להלן) callsCount int מספר כולל של שיחות במערכת תבנית אובייקט שיחה מאפיין ערך did מספר מחוייג callerIdNum מספר מחייג (כולל ערכים של ID val_name במידה וקיים במערכת) duration משך זמן שיחה - בשניות transferFrom האם השיחה הועברה ממערכת אחרת. במידה וכן יופיע הערך מועבר במידה ולא יפיע הערך null id מזהה ייחודי לאורך השיחה path מספר שלוחה (כולל תיאור שלוחה ומספר קובץ במידה וקיים) העלאת קובץ הפקודה היא - UploadFile מתודת פניה יש לפנות ב-HTTP POST בפורמט multipart/form-data. (פרמטרים כמו token path וכדומה ניתן לצרף בגוף הפנייה או במחרוזת השאילתה כמו בבקשת GET) שימו לב! ניתן לעלות קובץ בודד בכל פנייה. חשוב לשים לב שיש מגבלה על גודל הקובץ שאפשר לעלות בבקשה אחת (נכון לתאריך 28/09/2022 המגבלה היא 50MB) ולכן אם הקובץ שלכם שוקל יותר מזה, צריך לפצל את הקובץ ולהעלות אותו בחלקים נפרדים וכפי שיובא להלן. הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן חובה path נתיב להעלאה חובה. עבור העלאת קבצים לתיקיות במערכת יש לציין בהתחלה ivr2: ולאחר מכן את הנתיב המלא. למשל לקובץ 000.wav בתיקייה 5 הנתיב יהיה ivr2:5/000.wav. שימו לב שבהעלאה רגילה חובה לציין את שם הקובץ הרצוי, בהעלאה עם מספור אוטומטי (ראה להלן) יש לציין את התיקייה בלבד convertAudio המרת הקובץ בוליאני (1/0). ברירת המחדל היא ללא המרה. אם convertAudio = 1, הקובץ שהועלה יומר אוטומטית לפורמט wav המתאים לטלפוניה. קובץ המקור יכול להיות בכל אחד מפורמטי האודיו הפופולריים (MP3, OGG, WMA וכו '). הערה: פרמטר הנתיב חייב להיות בשם של קובץ היעד לאחר ההמרה (כך שהוא חייב להיות עם סיומת .wav) autoNumbering מספור אוטומטי כנ"ל tts הצהרה על קובץ tts בוליאני (1/0). נצרך במקרה של מספור אוטומטי לקבצי tts כדי שהמערכת לא תתן לקובץ את הסיומת wav אלא tts פיצול קובץ לחלקים נפרדים והעלאה לשרת שלב א' - העלאת הקבצים פרמטר תיאור דוגמה qquuid ID יש ליצור באופן רנדומלי לפני הבקשה הראשונה 2017390a-60cf-44ea-822f-27017c13de69 qqpartindex אינדקס העלאה 1 qqpartbyteoffset עד כה עלה ללא הבקשה הנוכחית בבתים 4000000 qqchunksize גודל הבקשה הנוכחית בבתים 4000000 qqtotalparts סה"כ חלקים לביצוע (מתחיל ב0 כולל הבקשה האחרונה של החיבור) 8 qqtotalfilesize גודל כולל של הקובץ בבתים 29863882 qqfilename השם המקורי של הקובץ בוקר טוב.mp3 qqfile מקטע של הקובץ שאותו אנחנו מעלים בבקשה הנוכחית (קובץ) uploader מחלקה שמבצעת את העלאה yemot-admin שלב ב' - סיום העלאה ובקשת חיבור לקבצים בסיום העלאה יש לפנות אל - UploadFile?done הפרמטרים שיש לצרף לבקשה פרמטר תיאור דוגמה token טוקן כנ"ל path נתיב כנ"ל convertAudio המרת אודיו כנ"ל autoNumbering מספור אוטומטי כנ"ל tts קובץ tts כנ"ל qquuid ID של מזהה הפעולה 2017390a-60cf-44ea-822f-27017c13de69 qqfilename שם מקורי בוקר טוב.mp3 qqtotalfilesize גודל כולל 29863882 qqtotalparts סך הכל חלקים 8 מאפייני תגובת השרת: מאפיין סוג הסבר path string נתיב הקובץ שהועלה, כפי שהועבר על ידי פרמטר הנתיב size long גודל הקובץ שהועלה בבייטים אם convertAudio = 1, יוחזרו בתגובה מאפיינים נוספים : מאפיין סוג הסבר convertedSize long גודל קובץ ה- WAV שהומר בבייטים duration double משך האודיו בשניות במקרה של שגיאה בביצוע ההעברה ההודעות והקודים האפשריים הם כדלקמן: messageCode message הסבר 105 System error שגיאה כללית במהלך הטיפול בהעלאה 107 File upload expected לא נמצאה קובץ להעלאה בבקשה 108 Only single upload per request is supported הועלה יותר מקובץ אחד בבקשה אחת 109 path is required דרוש נתיב 110 path is invalid הנתיב אינו חוקי על מנת לבדוק העלאות HTTP ניתן להשתמש בטופס פשוט זה: https://www.call2all.co.il/ym/api_upload_test.php הורדת קובץ הפקודה היא - DownloadFile הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן path שם הקובץ להורדה בהמשך יפורט איך לציין את הנתיב של כל קובץ מאפייני תגובת השרת: במידה והקובץ קיים - התגובה תכיל את את תוכן הקובץ המבוקש. במידה והקובץ לא קיים או שהתרחשה שגיאה - התגובה תהיה HTTP 404 Not Found. הערה: שימו לב שהתגובה לבקשה זו אינה JSON (בשונה משאר הבקשות) קבלת מצב כל תבניות הקמפיינים הפקודה היא - GetTemplates הפרמטרים הנדרשים פרמטר תיאור / הערות token טוקן מאפייני תגובת השרת: מאפיין סוג הסבר templates array מערך אובייקטים (ראה "אובייקט מזהה תבנית" להלן) אובייקט מזהה תבנית: מאפיין סוג ערך הערות templateId int מזהה התבנית שימו לב לא מדובר במספר הסידורי כמו שמופיע באתר description string תיאור התבנית במידה ולא מוגדר יתקבל הערך null callerId string זיהוי שיחה יוצאת entriesCount int כמות המספרים שברשימת התפוצה פעילים וחסומים blockedEntriesCount int כמות המספרים החסומים incomingPolicy enum מדיניות שיחות נכנסות. ישנם 4 מצבים OPEN BLACKLIST WHITELIST BLOCKED רלוונטי לקמפיין ברירת המחדל בלבד customerDefault boolean האם מדובר בקמפיין ברירת המחדל במידה וכן, יופיע הערך true (-נכון). במידה ולא, יופיע הערך false (-שקר ) maxActiveChannels int הגבלת קווים מחייגים מספר מקסימלי של שיחות פעילות בו זמנית בקמפיין maxBridgedChannels int הגבלת קווים מנותבים מספר מקסימלי של שיחות מנותבות בו זמנית למספר המוגדר בערך bridgeTo. אם מספר הקווים המנותבים מגיע למספר המוגדר כאן, החיוגים בקמפיין ייעצרו עד שמספר הקווים המנותבים ירד. ערך 0 בשדה זה פירושו שאין הגבלת מספר קוים מנותבים originateTimeout double זמן חיוג מקסימלי - בשניות זמן מקסימלי מתחילת החיוג למספר עד למענה השיחה. שיחה שלא נענתה עד זמן זה תירשם בדו"ח כשיחה שנכשלה מסיבת "אין מענה". במידה ומוגדר במערכת מדיניות חיוגים חוזרים באין מענה, המערכת תנסה לחייג שוב למספר שלא נענה בהתאם להגדרה הרלוונטית vmDetect boolean האם האפשרות של זיהוי תא קולי מופעלת במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false filterEnabled boolean האם האפשרות של קמפיין ממספרים אישיים מופעלת במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false maxDialAttempts int ניסיונות חיוג מספר מקסימלי של נסיונות חיוג שיבוצעו לאותו מספר בהתאם למדיניות חיוגים חוזרים המוגדרת לקמפיין redialWait int המתנה בין נסיונות חיוג - בשניות זמן המתנה מינימלי בשניות בין נסיונות חיוג לאותו מספר redialPolicy enum מדיניות חיוגים חוזרים. ישנם 3 מצבים - NONE CONGESTIONS FAILED NONE - ללא חיוג חוזר. CONGESTIONS - במידה ולא זמין. FAILED במידה ואין מענה yemotContext enum סוג הקמפיין. ישנם 6 מצבים - SIMPLE REPEAT MESSAGE VOICEMAIL BRIDGE OTHER SIMPLE - השמעת הודעה בלבד. REPEAT - השמעה חוזרת של ההודעה בהקשה על 1 ואישור קבלת ההודעה בהקשה על 7. MESSAGE - שליחת הודעה בדוא"ל בהקשה על 1. VOICEMAIL - השארת הודעה בתא קולי בהקשה על 1 שימו לב! באופן זמני התא הקולי בוטל. BRIDGE - ניתוב שיחה למענה אנושי. OTHER - הגדרה מיוחדת bridgeTo string מספר הטלפון לניתוב במידה והקמפיין מוגדר כניתוב שיחה למענה אנושי playPrivateMsg boolean האם האפשרות של מצב הודעה פרטית מופעלת במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false messageExists boolean האם קיימת הודעת קמפיין במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false messageDuration double אורך הודעת הקמפיין - בשניות unitsPerMessage double עלות משוערת ביחידות עבור כל הודעה שמשוגרת moreinfoExists boolean האם קיימת הודעה לפני ניתוב (הודעה המושמעת אחרי שמקבל השיחה לחץ 1) במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false moreinfoDuration double אורך הודעת הניתוב - בשניות removeRequest enum אפשרויות הסרה. קיימים 2 מצבים - SILENT WITH_MESSAGE SILENT - הסרה בלחיצה על 9 ללא הודעה. WITH_MESSAGE - הסרה בלחיצה על 9 + הודעה סטנדרטית עדכון תבנית קמפיין הערה: רק ההגדרות שסופקו יעודכנו, ההגדרות שהושמטו לא ישתנו. הפקודה היא UpdateTemplate הפרמטרים הנדרשים פרמטר סוג תיאור הערות token string טוקן פרמטר חובה templateId int מזהה תבנית פרמטר חובה description string תיאור התבנית callerId string זיהוי שיחה יוצאת incomingPolicy enum (string) מדיניות שיחות נכנסות - רלוונטי לקמפיין ברירת המחדל בלבד. ישנם 4 מצבים OPEN BLACKLIST WHITELIST BLOCKED OPEN - כל אחד יכול להתקשר. BLACKLIST - מספרים שחסומים ברשימת התפוצה לא יוכלו לחייג. WHITELIST - רק מספרים שפעילים ברשימת התפוצה יוכלו לחייג. BLOCKED - אף אחד לא יוכל לחייג customerDefault boolean (1/0) האם להגדיר כקמפיין ברירת המחדל אם כן, יש להגדיר 1. אם לא, יש להגדיר קמפיין אחר maxActiveChannels int הגבלת קווים מחייגים כאן ניתן להגדיר את המספר המקסימלי של שיחות פעילות בו זמנית בקמפיין maxBridgedChannels int הגבלת קווים מנותבים כאן ניתן להגדיר את המספר המקסימלי של שיחות מנותבות בו זמנית למספר המוגדר בערך bridgeTo. אם מספר הקווים המנותבים מגיע למספר המוגדר כאן, החיוגים בקמפיין ייעצרו עד שמספר הקווים המנותבים ירד. ערך 0 בשדה זה פירושו שאין הגבלת מספר קוים מנותבים originateTimeout double זמן חיוג מקסימלי - בשניות זמן מקסימלי מתחילת החיוג למספר עד למענה השיחה. שיחה שלא נענתה עד זמן זה תירשם בדו"ח כשיחה שנכשלה מסיבת "אין מענה" vmDetect boolean (1/0) האם להפעיל את האפשרות של זיהוי תא קולי במידה וכן, יש להגדיר 1. במידה ולא, יש להגדיר 0 filterEnabled boolean (1/0) האם להפעיל את האפשרות של קמפיין ממספרים אישיים במידה וכן, יש להגדיר 1. במידה ולא, יש להגדיר 0 maxDialAttempts int ניסיונות חיוג מספר מקסימלי של נסיונות חיוג שיבוצעו לאותו מספר בהתאם למדיניות חיוגים חוזרים המוגדרת לקמפיין redialWait double המתנה בין נסיונות חיוג - בשניות זמן המתנה מינימלי בשניות בין נסיונות חיוג לאותו מספר redialPolicy enum (string) מדיניות חיוגים חוזרים. ישנם 3 מצבים - NONE CONGESTIONS FAILED NONE - ללא חיוג חוזר. CONGESTIONS - חיוג חוזר במידה ולא זמין. FAILED חיוג חוזר במידה ואין מענה yemotContext enum (string) סוג הקמפיין. ישנם 5 מצבים - SIMPLE REPEAT MESSAGE VOICEMAIL BRIDGE SIMPLE - השמעת הודעה בלבד. REPEAT - השמעה חוזרת של ההודעה בהקשה על 1 ואישור קבלת ההודעה בהקשה על 7. MESSAGE - שליחת הודעה בדוא"ל בהקשה על 1. VOICEMAIL - השארת הודעה בתא קולי בהקשה על 1 שימו לב! באופן זמני התא הקולי בוטל. BRIDGE - ניתוב שיחה למענה אנושי bridgeTo string מספר הטלפון לניתוב במידה והקמפיין מוגדר כניתוב שיחה למענה אנושי playPrivateMsg boolean (1/0) האם להפעיל את האפשרות של מצב הודעה פרטית במידה וכן, יש להגדיר 1. במידה ולא, יש להגדיר 0 removeRequest enum (string) אפשרויות הסרה. קיימים 2 מצבים - SILENT WITH_MESSAGE SILENT - הסרה בלחיצה על 9 ללא הודעה. WITH_MESSAGE - הסרה בלחיצה על 9 + הודעה סטנדרטית מאפייני תגובת השרת מאפיין סוג הסבר templates array נתוני התבנית המעודכנים - זהה לתיאור התבנית בפקודה GetTemplates העלאת והורדת קבצי שמע לקמפיין ראה ערך העלאת קובץ כיצד יש להעלות קבצים. ראה ערך הורדת קובץ כיצד יש להוריד קבצים. כדי להעלות ולהוריד קבצי שמע יש לציין את הנתיבים הבאים: הודעת קמפיין קולי ${templateId}.wav הודעת קמפיין sms ${templateId}.tts הודעה לפני ניתוב ${templateId}-MoreInfo.wav כאשר האפשרות של מצב הודעה פרטית מופעלת, ישנם קבצים נוספים המשמשים להפעלת הקמפיין: ההודעה שמושמעת לכולם לפני ההודעה הפרטית ${templateId}-First.wav הודעה פרטית שמושמעת לטלפון ספציפי PrivateMsg/${phone}.wav הודעה ברירת מחדל שמושמעת במידה ואין הודעה ספציפית עבור הטלפון PrivateMsg/Default.wav ניהול קבצי קמפיין ראה ערכים ניהול קבצים, הצגת תוכן קובץ טקסט, העלאת טקסט לקובץ למידע אודות הפרמטרים הדרושים. כדי לנהל את קבצי הקמפיין יש לציין את הנתיבים הבאים בפרמטרים what ו-target הודעת קמפיין קולי tpl:${templateId} הודעת קמפיין sms tpl:${templateId}:tts הודעה לפני ניתוב tpl:${templateId}:MoreInfo יצירת תבנית קמפיין חדשה הערה: ההגדרות של הקמפיין החדש יועתקו מקמפיין ברירת המחדל הפקודה היא - CreateTemplate הפרמטרים הנדרשים פרמטר תיאור token טוקן description שם הקמפיין מאפייני תגובת השרת מאפיין סוג ערך templateId int מזהה התבנית החדשה שנוצרה מחיקת תבנית קמפיין הפקודה היא - DeleteTemplate הפרמטרים הנדרשים פרמטר תיאור token טוקן templateId מזהה תבנית אין מאפיינים מיוחדים בתגובת השרת הצגת המספרים שברשימת התפוצה הפקודה היא - GetTemplateEntries הפרמטרים הנדרשים פרמטר תיאור token טוקן templateId מזהה תבנית מאפייני תגובת השרת מאפיין סוג הסבר templateId int מזהה תבנית entries array מערך אובייקטים (ראה "תבנית אובייקט מספר" להלן) תבנית אובייקט מספר מאפיין סוג ערך הערות rowid int מזהה ייחודי של המספר ברשימת התפוצה index מיקום המספר ברשימת התפוצה phone string מספר טלפון blocked boolean האם המספר מוגדר כחסום במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false name string שם משוייך במידה ולא מוגדר, יתקבל הערך null moreinfo string מידע נוסף במידה ולא מוגדר, יתקבל הערך null עדכון מספר בודד ברשימת תפוצה הפקודה היא - UpdateTemplateEntry הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן פרמטר חובה templateId מזהה תבנית פרמטר חובה rowid מזהה ייחודי של המספר ברשימת התפוצה אם הפרמטר מושמט והמספר לא קיים, תיווצר שורה חדשה phone מספר טלפון אם המספר קיים ברשימת התפוצה והפרמטר rowid הושמט, המספר יעודכן מחדש והערכים name ו-moreinfo שהיו קיימים יימחקו name שם moreinfo מידע נוסף blocked האם לעדכן כחסום במידה וכן, יש להגדיר 1. במידה ולא, יש להגדיר 0 אין מאפיינים מיוחדים בתגובת השרת עדכון סטטוס או מחיקה של מספרים מרשימת התפוצה הפקודה היא - UpdateTemplateEntries הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן פרמטר חובה templateId מזהה תבנית פרמטר חובה rowids מזהה ייחודי של המספרים ברשימת התפוצה יש להפריד בין המספרים עם מקף - action איזה פעולה לעשות ישנם 3 אפשרויות. block - חסימה. unblock - ביטול חסימה. delete - מחיקה אין מאפיינים מיוחדים בתגובת השרת מחיקת כל המספרים מרשימת התפוצה הפקודה היא - ClearTemplateEntries הפרמטרים הנדרשים פרמטר תיאור token טוקן templateId מזהה תבנית אין מאפיינים מיוחדים בתגובת השרת העלאת קובץ טקסט והפיכתו לרשימת טלפונים לתבנית קמפיין הפקודה היא - UploadPhoneList הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן חובה templateId מזהה תבנית חובה data קובץ רשימת הטלפונים כמחרוזת חובה nameColumns מספר העמודות של 'שם'. כל עמודות הטקסט האחרות עוברות ל'מידע נוסף ' ברירת מחדל 1 defaultPrefix קידומת מספר ברירת מחדל למספרים בני 7 ספרות.הערכים המותרים הם: 02,03,04,08,09,077,072,073. רשות delimiter תו המפריד בין עמודות (עבור עמודות המופרדים ב טאב כיתבו "TAB" ברירת מחדל "," updateType מגדיר את סוג העדכון: UPDATE = עדכן רשומות קיימות והוסף חדשות, NEW = הסר את כל הרשומות הקיימות והוסף חדש, REMOVE = הסר רשומות ברירת מחדל UPDATE blocked 1 = יקבע את סטטוס הרשומות שהועלה ל'חסום '. ברירת מחדל 0 כלומר לא מגדיר כחסום אם ניתוח הקבצים נכשל בגלל פורמט לא מזוהה, יחזיר תגובה עם הודעה = "bad_format". מאפייני תגובת השרת מאפיין סוג הסבר message string "ok" - פירושו שההעלאה עובדה כהלכה templateId int מזהה התבנית שעודכן totalParsed int המספר הכולל של מספרים שהתקבלו rejectedRecords Array מערך המתאר את הרשומות שנדחו (ראה להלן פירוט) totalInserted int המספר הכולל של מספרים שהוכנסו בהצלחה totalUpdated int המספר הכולל של המספרים שעודכנו totalRemoved int המספר הכולל של המספרים שהוסרו אם מספרים מסוימים נדחו משום מה, rejectedRecords יכיל מערך של אובייקטים בפורמט הבא: מאפיין סוג הסבר phone string מספר הטלפון name string עמודת שם moreinfo string עמודת מידע נוסף blocked bool סטטוס חסום errorState enum DUPLICATE = המספר כפול, INVALID = המספר לא חוקי (אסור בקמפיינים) originalRowNumber int מספר השורה בו זוהתה השגיאה הפעלת קמפיין מאפשר להפעיל קמפיין על בסיס תבנית קיימת במערכת הפקודה היא RunCampaign הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן חובה templateId מזהה תבנית כפי שהתקבל בקריאות GetTemplates CreateTemplate רשות; אם לא צוין, המערכת תשתמש בתבנית ברירת המחדל callerId זיהוי יוצא, מתקבל בקריאת GetApprovedCallerIDs רשות; אם לא צוין, המערכת תשתמש בזיהוי שמוגדר בתבנית phones טלפונים לחיוג רשות; ראה להלן פורמט מספרים לשליחה; אם לא צוין, המערכת תשתמש במספרים שנמצאים בתבנית. ttsMode השמעת הודעות אישיות בהקראה ממוחשבת - TTS ראה הסבר להלן withSMS קמפיין משולב sms ראה הסבר להלן פורמט מספרים לשליחה ניתן לשלוח את רשימת המספרים בפורמט פשוט כאשר המפריד בין מספר למספר הוא נקודותיים. לדוגמה: phones=0772222770:0773137770 בדוגמה, המערכת תחייג למספרים 0772222770 0773137770. לחילופין, ניתן לשלוח בפורמט JSON ולצרף מידע על כל מספר (בדומה למידע שמופיע בתבנית על המספרים) לדוגמה { "0773137770":{ "name":"שם", "moreinfo":"מידע נוסף", "blocked":true }, "0772222770":{ "name":"ימות המשיח", "text":"עתיד התקשורת כבר כאן" } } הסבר על הדוגמה רשימת המספרים היא אובייקט כאשר לכל מספר ניתן להוסיף אובייקט עם מידע על המספר; כדלהלן: שדה name משמש עבור השם. שדה moreinfo משמש עבור מידע נוסף. שדה text משמש עבור טקסט להודעה אישית (sms או tts; ראה להלן). שדה blocked מציין אם המספר חסום או לא (true=חסום, false=פעיל; ברירת מחדל היא פעיל). השמעת הודעות אישיות בהקראה ממוחשבת - TTS ניתן להגדיר שהקמפיין יכיל הודעה אישית אשר תושמע לנמען בהקראה ממוחשבת (TTS - Text To Speech). לצורך כך יש לשלוח את הפרמטר ttsMode=1, במקרה כזה, המערכת תשמיע תחילה את הודעת הקמפיין הכללית ולאחר מכן את הטקסט האישי. שימו לב! במידה והקמפיין נשלח למספרי הטלפון שבתבנית (קרי, לא שלחתם פרמטר phones) אזי הטקסט להשמעה יהיה מה שמופיע על המספר בשדה moreinfo. במידה והקמפיין נשלח למספרי טלפון ספציפיים (שציינתם בפרמטר phones) אזי הטקסט להשמעה יהיה מה שמופיע בשדה text וכמו שצוין למעלה. קמפיין משולב sms ניתן להגדיר שהקמפיין יהיה משולב sms, כך שלמספר נייד רגיל תישלח הודעת sms ולמספר נייד כשר תישלח הודעה קולית. לצורך כך יש לשלוח את הפרמטר withSMS=1, במקרה כזה, המערכת תשלח קמפיין משולב. מאפייני תגובת השרת מאפיינים עיקריים מאפיין משמעות סוג דוגמה templateId מזהה תבנית עליה מתבסס הקמפיין int 1117319 campaignId מזהה הקמפיין (משמש עבור מעקב אחר הקמפיין ועוד) string 0772222770-1117319-2025-01-21-15-11-18-347-API entriesCount סך הכל ערכים (מספרים) ברשימה int 333 pending סך הכל מספרים לחיוג int 300 blocked סך הכל מספרים חסומים int 33 estimatedPrice עלות משוערת ביחידות double 333.0 customerUnits כמות יחידות במערכת double 10000.12121212 smsCount כמות sms double 0.0 smsPrice עלות sms double 0.0 שגיאות אפשריות קוד הודעה הודעה הסבר 100 תבנית לא חוקית ערך templateId אינו חוקי (התבנית אינה קיימת במערכת). 101 הקמפיין לא מוגדר כראוי הקמפיין לא הוגדר נכון (רשימת הטלפונים ריקה, אין הודעה תקינה וכו'). 102 אין טלפונים תקינים כל המספרים שסופקו בפרמטר phones אינם תקינים. 103 יחידות לא מספיקות יתרת היחידות במערכת אינה מספיקה עבור הקמפיין הנדרש. 104 isKodesh is true ניסיון להפעיל קמפיין בשבת או ביום טוב. 105 שגיאה כללית אירעה שגיאת מערכת והקמפיין לא יכול להתחיל. 120 CallerId אינו מורשה המספר המבוקש ב-callerId אינו מורשה לשימוש עבור הלקוח. קבלת מצב קמפיין מאפשר לבדוק את הסטטוס הנוכחי של קמפיין כפי שהתקבל בקריאת RunCampaign הפקודה היא GetCampaignStatus פרמטרים בבקשה פרמטר חובה/אופציונלי תיאור token חובה טוקן campaignId חובה מזהה הקמפיין, כפי שהתקבל בקריאת RunCampaign entries אופציונלי הצגת רשומות בקמפיין (מספרי טלפון) ראו להלן "הצגת רשומות בקמפיין". במידה ולא צוין, ברירת המחדל היא שלא מציג את מצב הרשומות בקמפיין אלא רק את המצב הכללי של הקמפיין. range אופציונלי טווח ערכים להצגה (מקסימום/מינימום) ראו להלן "הגדרת טווח להצגה" הצגת רשומות בקמפיין סוגי הערכים האפשריים בפרמטר entries ערך הסבר all הכל pending בהמתנה לחיוג blocked חסומים done בוצע accepted אישרו מסירה failed נכשלו no_answer אין מענה busy תפוס amd מענה תא קולי ringing בחיוג up בשיחה bridged מנותבים remove_request בקשה להסרה redial ממתינים לחיוג חוזר canceled בוטל error שגיאה כללית הגדרת טווח להצגה בפרמטר range יש להגדיר את טווח הרשומות להצגה. הפורמט הוא [min]:[max]. לדוגמה 1:100 עבור 100 הרשומות הראשונות, או : עבור כל הרשומות. ברירת מחדל מחזיר 10,000 ערכים ראשונים. פרמטרים בתשובה במצב הצלחה מבנה התגובה { "responseStatus": "OK", "campaign": { "campaignId": "0772222770-1117319-2025-01-22-10-07-54-414-API", "campaignStatus": "RUNNING", "templateId": 1117319, "who": "0.0.0.0", "callerId": "0772222770", "blockedEntries": 0, "pendingEntries": 0, "activeEntries": 1, "bridgedEntries": 0, "redialEntries": 0, "doneEntries": 0, "failedEntries": 0, "totalEntries": 1, "totalDialed": 3, "totalSuccessful": 1, "totalBridged": 0, "totalFailed": 2, "totalIncoming": 0, "totalIncomingBridged": 0, "maxActiveChannels": 100, "maxBridgedChannels": 0, "maxDialAttempts": 3, "redialWait": 10.0, "redialPolicy": "FAILED", "vmDetect": false, "filterEnabled": false, "playPrivateMsg": false, "runTime": 150.306, "currentPrice": 1.0, "paused": false, "entries": [ { "phone": "0773137770", "name": null, "moreinfo": "זוהי הודעת בדיקה", "entryStatus": "up", "duration": 3680, "bridgedDuration": null, "bridged": false, "startTime": "2025-01-22 10:10:14", "currentPrice": 1.0, "redials": [ { "entryStatus": "no_answer", "duration": null, "bridgedDuration": null, "bridged": false, "startTime": "2025-01-22 10:07:54" }, { "entryStatus": "no_answer", "duration": null, "bridgedDuration": null, "bridged": false, "startTime": "2025-01-22 10:09:04" } ] } ] }, "yemotAPIVersion": 6 } מבנה תגובת הקמפיין מאפיין סוג תיאור campaignId מחרוזת מזהה הקמפיין. campaignStatus enum סטטוס הקמפיין: אחד מ-STOPPED, RUNNING, PAUSED, STOPPING FINISHED. templateId מספר מזהה התבנית שעל בסיסה פועל הקמפיין. who מחרוזת כתובת IP או מספר הטלפון שהפעיל את הקמפיין. callerId מחרוזת מספר טלפון היוצא עבור הקמפיין. blockedEntries מספר מספר הרשומות החסומות. pendingEntries מספר מספר הרשומות הממתינות. activeEntries מספר מספר הרשומות הפעילות כעת. bridgedEntries מספר מספר הרשומות שחוברו בהצלחה. redialEntries מספר מספר הרשומות המחכות לחיוג חוזר. doneEntries מספר מספר הרשומות שהושלמו בהצלחה. failedEntries מספר מספר הרשומות שנכשלו. totalEntries מספר סך כל הרשומות בקמפיין. totalDialed מספר סך כל החיוגים (כולל חיוגים חוזרים). totalSuccessful מספר סך השיחות המוצלחות. totalBridged מספר סך כל השיחות שחוברו. totalFailed מספר סך כל השיחות שנכשלו. totalIncoming מספר סך השיחות הנכנסות במהלך הקמפיין. totalIncomingBridged מספר סך השיחות הנכנסות שחוברו. maxActiveChannels מספר המספר המרבי של שיחות פעילות מותרות בקמפיין. maxBridgedChannels מספר המספר המרבי של שיחות מחוברות מותרות בקמפיין. maxDialAttempts מספר מספר הניסיונות המרבי לחיוג חוזר. redialWait מספר זמן ההמתנה המינימלי בין ניסיונות חיוג חוזר (בשניות). redialPolicy enum מדיניות החיוג החוזר: NONE, CONGESTIONS, או FAILED. vmDetect בוליאני האם זיהוי תא קולי מופעל. playPrivateMsg בוליאני האם מצב הודעה פרטית מופעל. runTime מספר זמן הריצה הכולל של הקמפיין (בשניות). currentPrice מספר המחיר הנוכחי שנגבה עבור הקמפיין (ביחידות). paused בוליאני האם הקמפיין במצב מושהה. שגיאות אפשריות קוד הודעה הודעה הסבר 106 קמפיין לא נמצא campaignId לא נמצא עבור המשתמש. הערות כאשר נכלל פרמטר entries, התגובה תכיל את שדה entries עם מידע מפורט על הרשומות (ראו מבנה JSON בתיאור המפורט). "entries": [ { "phone": string, "name": string|null, "moreinfo": string|null, "entryStatus": entry_status_enum, "duration": time_ms|null, "bridgedDuration": time_ms|null, "bridged": true|false, "startTime": sql_time|null, "redials": [ { "entryStatus": entry_status_enum, "duration": null, "bridgedDuration": null, "bridged": true|false, "startTime": sql_time|null }, { "phone": "0501234567", // מספר הטלפון של הנמען "name": "Yosef", // שם (אם קיים) "moreinfo": "Jerusalem", // מידע נוסף (אם קיים) "entryStatus": "bridged", // סטטוס נוכחי של הרשומה (למשל: bridged, done, no_answer) "duration": 5200, // משך השיחה הכולל במילישניות "bridgedDuration": 4100, // משך זמן ניתוב שיחה "bridged": true, // האם השיחה מנותבת "startTime": "2025-05-25 10:32:00", // מתי התחילה השיחה (זמן החיוג) "redials": [ // ניסיונות חוזרים (אם היו) { "entryStatus": "busy", // סטטוס ניסיון חוזר זה "duration": null, // משך שיחה בניסיון זה (null כי לא נענתה) "bridgedDuration": null, // משך זמן ניתוב שיחה "bridged": false, // האם בוצע ניתוב שיחה "startTime": "2025-05-25 10:29:00" // זמן תחילת ניסיון החיוג הזה }, { "entryStatus": "no_answer", // ניסיון חוזר נוסף - לא נענה "duration": null, // "bridgedDuration": 0, // "bridged": false, // "startTime": "2025-05-25 10:30:30" // } ] }, { "phone": "0521234567", // מספר טלפון נוסף "name": null, // לא סופק שם "moreinfo": null, // לא סופק "entryStatus": "done", // הסתיים בהצלחה "duration": 8000, // משך שיחה "bridgedDuration": 0, // "bridged": false, // "startTime": "2025-05-25 10:35:00", // מתי בוצעה השיחה "redials": [] // לא היו ניסיונות חוזרים } ] הורדת דו"ח קמפיין-DownloadCampaignReport קבלת קמפיינים פעילים-GetActiveCampaigns ביצוע פעולות בקמפיין בזמן אמת הפקודה היא CampaignAction תיאור שירות זה מאפשר לבצע פעולות ניהול בזמן אמת על קמפיין פעיל. המערכת תומכת בשני סוגי פעולות: פעולות כלליות על הקמפיין כולו (כגון עצירה, השהייה, הגבלת ערוצים). פעולות ממוקדות על מספרים ספציפיים (כגון חסימה, הוספה, ניתוק). חלק א' – פעולות כלליות בקמפיין פרמטרים בבקשה פרמטר חובה תיאור token כן טוקן campaignId כן מזהה הקמפיין, כפי שהוחזר מ־RunCampaign. action כן הפעולה שיש לבצע (ראו טבלה להלן). value תלוי ערך נלווה לפעולה (למשל 0, 1 או מספר ערוצים). פעולות כלליות נתמכות (action) ערך (action) תיאור ערך value נדרש stop עצירת הקמפיין באופן מיידי. לא נדרש setPaused הפעלת/ביטול מצב מושהה – 1 להשהיה, 0 לביטול. 0 או 1 setMaxActiveChannels שינוי כמות מקסימלית של שיחות פעילות בו־זמנית במהלך הקמפיין. מספר setMaxBridgedChannels שינוי כמות מקסימלית של שיחות מנותבות בו־זמנית במהלך הקמפיין. מספר מבנה תגובה { "responseStatus": "OK", "campaign": { ... }, /// סטטוס מעודכן של הקמפיין (ראו פירוט בהמשך) "action": "setPaused", /// הפעולה שבוצעה "value": "1" /// הערך שנשלח לביצוע הפעולה } חלק ב' – פעולות על מספרים ספציפיים פרמטרים בבקשה פרמטר חובה תיאור token כן טוקן campaignId כן מזהה הקמפיין action כן אחת מהפעולות: add, block, hangup. value כן רשימת מספרים לביצוע הפעולה – בפורמט : או JSON (ראו להלן). פעולות נתמכות במספרים (action) ערך (action) תיאור פעולה add הוספת מספרים לרשימת החיוג של הקמפיין (גם תוך כדי ריצה). block חסימת מספרים – לא יבוצעו אליהם חיוגים נוספים. hangup ניתוק מיידי של שיחות פעילות למספרים שצוינו. פורמט value – רשימת מספרים אפשרות 1: מחרוזת מופרדת ב־: 0501234567:0527654321 אפשרות 2: JSON מלא כמו ב־RunCampaign { "0501234567": "הודעה מותאמת אישית", "0527654321": { "name": "חיים", "moreinfo": "מזכרת בתיה", "text": "שלום! זו הודעת תזכורת" } } מבנה תגובה { "responseStatus": "OK", "campaign": { ... }, /// סטטוס מעודכן של הקמפיין "action": "add", /// הפעולה שבוצעה "value": null, /// ערך שנשלח (אם רלוונטי) "data": [ { "phone": "0501234567", "action": "add" /// הפעולה שבוצעה בפועל על המספר (ראה טבלה בהמשך) }, { "phone": "0527654321", "action": "blocked" } ], "yemotAPIVersion": 6 } אפשרויות ערך ב־data[].action ערך (action) תיאור הפעולה שבוצעה בפועל על המספר add המספר נוסף לקמפיין addblocked המספר נוסף אך מיד סומן כחסום block המספר נחסם ולא יחוייג שוב בקמפיין unblock בוטלה החסימה מהמספר hangup השיחה למספר זה נותקה (אם הייתה פעילה) failed המספר סומן כ"שיחה נכשלה" ולא יחוייג שוב campaign – אובייקט סטטוס הקמפיין האובייקט campaign המוחזר בתגובה מכיל את הסטטוס הנוכחי של הקמפיין, והוא תואם בדיוק למבנה שמוחזר מהשירות GetCampaignStatus. כולל נתונים כגון: campaignId, campaignStatus, templateId, callerId ספירות של pendingEntries, activeEntries, doneEntries, failedEntries, redialEntries ועוד הגדרות כמו maxActiveChannels, vmDetect, paused עלות מצטברת (currentPrice) זמן ריצה כולל (runTime) יצירת קמפיין מתוזמן הפקודה היא - ScheduleCampaign הפרמטרים הנדרשים פרמטר אפשרויות תיאור/הערות/פירוט token טוקן templateId מספר מזהה של הקמפיין time הגדרת זמן הפעלה באחד מהצורות הבאות (תאריך לועזי בלבד) אופציה 1 yyyy-MM-dd-HH:mm:ss שנה -חודש - יום-שעה:דקה:שניה אופציה 2 yyyy-MM-dd-HH:mm שנה -חודש - יום-שעה:דקה אופציה 3 yyyy-MM-dd HH:mm:ss שנה -חודש - יום שעה:דקה:שניה(בין היום לשעה רווח במקום -) אופציה 4 yyyy-MM-dd שנה -חודש-יום אופציה 5 HH:mm:ss שעה:דקה:שניה אופציה 6 HH:mm שעה:דקה קבלת קמפיינים מתוזמנים- הפקודה היא - GetScheduledCampaigns הפרמטרים הנדרשים: פרמטר תיאור/הערות token טוקן type סוג הקמפיינים להחזרה. האפשרויות הם PENDING קמפיינים המיועדים לביצוע. SUCCESSFUL קמפיינים שבוצעו בהצלחה. FAILED קמפיינים שנכשלו. order סדר המיון. האפשרויות הם: asc (ברירת מחדל) - סדר עולה. desc- סדר יורד from אופציונלי - maximum number of records to include limit אופציונלי - מקסימום של קמפיינים להחזרה מחיקת קמפיין מתוזמן הפקודה היא DeleteScheduledCampaign הפקודה מבטלת (מוחקת) קמפיין שתוזמן מראש ועדיין לא בוצע. ניתן למחוק אך ורק קמפיין שנמצא במצב "ממתין לביצוע" (pending). קמפיין שכבר בוצע (בהצלחה או בכשלון) לא ניתן למחיקה. הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן חובה schedId מזהה הקמפיין המתוזמן חובה. מספר מזהה (int) של הקמפיין המתוזמן, כפי שמתקבל בתגובת הפקודה GetScheduledCampaigns (תחת המאפיין schedId) מאפייני תגובת השרת מאפיין סוג הסבר responseStatus string סטטוס התגובה. OK בהצלחה, ERROR בשגיאה message string הודעת המערכת. בהצלחה יוחזר הערך ok messageCode int קוד שגיאה. מוחזר רק במקרה של שגיאה (ראה להלן "קודי שגיאה אפשריים") דוגמת תגובה בהצלחה { "responseStatus": "OK", "message": "ok" } קודי שגיאה אפשריים קוד הודעה תיאור 105 invalid schedId מזהה הקמפיין אינו קיים 106 schedId is not pending הקמפיין אינו במצב "ממתין לביצוע" (כבר בוצע) ולכן לא ניתן למחיקה שימו לב: אם הפרמטר schedId חסר או אינו מספר תקין, תוחזר שגיאה כללית. הצגת תוכן שלוחה (תיקייה) הפקודה היא GetIVR2Dir הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן חובה path נתיב תיקייה חובה. לדוגמה: / עבור שלוחה ראשית. 1 עבור שלוחה 1 ext/1 עבור שלוחה ext/1 filesFrom הצג קבצים מ רשות. 0 יציג מהקובץ הראשון 1 יציג מהקובץ השני וכן הלאה. ברירת מחדל מציג מהקובץ הראשון. filesLimit הצג קבצים עד רשות. לדוגמה, 5 יציג את הקובץ החמישי (כולל). ברירת מחדל מציג עד הקובץ האחרון orderBy מיין קבצים לפי ראה להלן "ערכים אפשריים לפרמטר orderBy" orderDir סדר קבצים asc - סדר עולה. desc - סדר יורד. ערכים אפשריים לפרמטר orderBy ערך תיאור name שם קובץ (ברירת מחדל) date תאריך יצירה mtime תאריך שינוי אחרון customerdid מספר מערכת uploader מעלה הקובץ size גודל source מקור מאפייני תגובת השרת מאפיין סוג הסבר extIni object אובייקט הכולל את הגדרות השלוחה thisPath string נתיב תיקייה נוכחית parentPath string נתיב תיקיית אב dirs Array מערך הכולל את התיקיות והשלוחות שבתיקייה הנוכחית files Array מערך הכולל את הקבצים שבתיקייה הנוכחית (מלבד קבצי ini ו-html שנמצאים במערך נפרד) ini Array מערך הכולל את קבצי ההגדרות (ini) שבשלוחה messages Array מערך הכולל את הודעות המערכת הקשורות לשלוחה html Array מערך הכולל את קבצי הדוחות (html) שבשלוחה msgDescriptions object אובייקט הכולל את התיאור של כל הודעות המערכת בשלוחה (למשל M0000=הודעת ברוכים הבאים) מאפיינים משותפים לאובייקטים במערכים "dirs" "files" "ini" "messages" "html" מאפיין סוג הסבר exists boolean האם התיקייה/קובץ קיימים name string שם התיקייה/קובץ uniqueId string מזהה ייחודי לתיקייה/קובץ what string נתיב תיקייה/קובץ fileType string סוג תיקייה/קובץ מאפיינים משותפים לאובייקטים במערכים "files" "ini" "messages" "html" מאפיין סוג הסבר size int גודל קובץ (בבתים) mtime string תאריך שינוי אחרון מאפיינים משותפים לאובייקטים במערכים "files" "messages" הערה: המאפיינים הבאים הינם עבור קבצי שמע בלבד מאפיין סוג הסבר duration אורך (בדקות) durationStr string אורך בפורמט mm:ss customerDid string מספר מערכת בה נוצר הקובץ meta string אובייקט המכיל מידע נוסף על הקובץ date string זמן יצירת קובץ dd/mm/yyyy hh:mm source string מקור הקובץ phone string טלפון יוצר הקובץ ip string כתובת IP של מעלה הקובץ מאפייני אובייקטים במערך dirs הערה: המאפיינים הבאים הינם עבור תיקיות המוגדרות כשלוחה ולא עבור תיקיות רגילות מאפיין סוג הסבר extType string סוג שלוחה extTitle string תיאור שלוחה קבלת מידע על קובץ בודד הפקודה היא - GetFile הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string what נתיב במערכת string (דוגמה למטה) דוגמה לנתיב what=ivr2:2/000.wav /// מידע על קובץ 000 בשלוחה 2 תגובה (במידה והקובץ קיים) דומה למאפיינים של קובץ כפי שמופיע בGetIVR2Dir במידה וקובץ לא קיים יחזור שגיאה { "responseStatus": "ERROR", "message": "file does not exist", "messageCode": null, "yemotAPIVersion": 6 } במידה ונתיב לא חוקי יחזור { "responseStatus": "EXCEPTION", "exceptionClass": "IllegalArgumentException", "exceptionMessage": "bad descriptor format. don't know what is xyz", "nestedException": null, "yemotAPIVersion": 6 } ניהול תיקיות וקבצים הפקודה היא FileAction הפרמטרים הנדרשים פרמטר תיאור הערה token טוקן action סוג הפעולה לביצוע ראה להלן what נתיב ראה להלן target יעד ראה להלן בפרמטר action האפשרויות הקיימות הן: copy - העתקה move - העברה (לשינוי שם של שלוחה או קובץ יש להשתמש בהעברה) delete - מחיקה בפרמטר what האפשרויות הקיימות הן: ניהול קובץ בודד או שלוחה בודדת. ניהול קבצים מרובים כאשר בפרמטר what יש לציין כל קובץ או שלוחה בנפרד. לדוגמה: ניהול קובץ בתבנית קמפיין. ראה כאן ${url}FileAction?token=${token}&action=${action}&what0=ivr2:1&what1=ivr2:2/ext.ini בדוגמה: ניהול שלוחה 1 וניהול קובץ ext.ini שבשלוחה 2. בפעולה מסוג העברה או העתקה חובה לציין פרמטר target. האפשרויות הקיימות הן: בניהול קבצים מרובים או שלוחות מרובות יש לציין את נתיב היעד הרצוי. לדוגמה, במידה והיעד הוא שלוחה 1 יש לציין את הנתיב כך target=ivr2:1. הערה: שימו לב! השם המקורי נשמר. במידה ומדובר בהעברת או העתקת קבצים עם שם בעל מספר סידורי שמות הקבצים ישתנו בהתאם לשמות הקבצים בשלוחת היעד. (לדוגמה, אם בוצעה העתקה של קובץ 001 משלוחה 2 לשלוחה 1 ששם קיים קובץ בשם 050 אז השם של הקובץ שהועתק ישתנה ל-051). בניהול קובץ בודד או שלוחה בודדת ניתן גם לציין נתיב מלא כולל השם הרצוי ביעד. מאפייני תגובת השרת: מאפיין סוג הסבר הערה reports array מערך אובייקטים ראה להלן success boolean האם הפעולה בוצעה במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false action סוג הפעולה שבוצעה תבנית אובייקט מאפיין ערך what נתיב מקור target נתיב יעד success האם בוצע (זהה לתיאור לעיל) קבלת תוכן קובץ טקסט הפקודה היא - GetTextFile הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן what נתיב מלא כולל שם הקובץ והסיומת לדוגמה ivr2:1/ext.ini מאפייני תגובת השרת: מאפיין סוג ערך contents string התוכן הכתוב בקובץ file array מערך אובייקטים (ראה להלן) תבנית אובייקט: מאפיין סוג ערך exists boolean האם הפעולה בוצעה (במידה וכן, יופיע הערך true. במידה ולא, יופיע הערך false) name string שם הקובץ uniqueId string מזהה תנועה ייחודי fileType string סוג קובץ (למשל: INI) size int גודל קובץ mtime string תאריך ושעה שהקובץ השתנה (פורמט: dd/MM/yyyy HH:mm) what string נתיב מלא העלאת טקסט לקובץ הערה: במידה והקובץ לא קיים בשלוחה, ייווצר קובץ חדש. הפקודה היא - UploadTextFile הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן what שם הקובץ והסיומת יש לציין את הנתיב המלא. לדוגמה ivr2:1/ext.ini contents תוכן הקובץ להעלאה במידה וקיים כבר טקסט בקובץ הוא יימחק אין מאפיינים מיוחדים בתגובת השרת עדכון הגדרות שלוחה שימו לב! בשונה מהפקודה UploadTextFile כאן המערכת לא מוחקת את הקיים בקובץ ext.ini והדבר היחיד שמשתנה הוא מה שאתם שולחים לשרת הפקודה היא - UpdateExtension הפרמטרים הנדרשים: פרמטר תיאור / הערות token טוקן path נתיב בפרמטרים הנוספים תוכלו לצרף ערכים לעדכון בקובץ ext.ini לדוגמה: ${url}UpdateExtension?token=${token}&path=ivr2:1&type=menu&title=בדיקה&enter_id=yes בדוגמה, עדכון הגדרות לשלוחה 1, סוג השלוחה - תפריט, כינוי השלוחה - בדיקה, תתבצע כניסה לפי מספר אישי. אין מאפיינים מיוחדים בתגובת השרת הערה: במידה והשלוחה לא קיימת במערכת, תיווצר שלוחה חדשה. הכוונת שיחה - העברת מאזין ב**אפשרות הראשונה לשלוחה אחרת או לניתוק ** לא בכל שלב ניתן להעביר את המאזין לשלוחה אחרת באופן מיידי, ולכן הפעולה נשמרת למקום הראשון בו ניתן לעשות את הפעולה הפקודה היא - CallAction הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action set:GOasap=XXXX יש להחליף את "XXX" בלאן להעביר את המאזין, נתיב העברה, או "hangup" לניתוק מאפייני תגובת השרת: מאפיין סוג הסבר calls array פירוט השיחות שבוצעה בהן פעולה - זהה לתיאור המופיע בפקודה GetIncomingCalls action סוג הפעולה שבוצעה callsCount int מספר כולל של שיחות שבוצעה בהן פעולה ניהול חדרי ועידה: הפקודה היא - CallAction בקריאה ל GetIncomingCalls יש מערך של שיחות של חדרי ועידה, כל הפעולות המפורטות כאן צריכות להיות מבוצעות על הid של המאזין של חדר הועידה - ולא על הID הראשי. טיפה הסבר על מערך של שיחות הוועידה: דוגמא: נעבור על החלקים החשובים. פרמטר תיאור הערות confCalls מכיל את מספר המערכת הראשי, ואז - ואז את השלוחה של חדר הועידה mute האם הערוץ מושתק hand האם יש הרמת אצבע admin האם מנהל data['survey'] מכיל את נתוני הצבעה, במהלך החדר המאזין יכול להקיש על כל הספרות בטלפון שלו וזה משוקף מייד. באם אין הקשה הערך לא יופיע הוספה או הסרה של רכיבים מה path וממערך data. השימוש למשל, כדי לבטל את ההצבעות של המשתשים כדי לאפס את נתוני הסקר. הוספה של ערך: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid path:add:XXX הוספה של נתון בpath, זה גם יופיע במערך data שהובא לעיל יש להחליף את XXX בערך, למשל: path:add:survey=7. הסרה של ערך: פה ניתן לשלוח רק את ההתחלה של הערך, והוא ירד. פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid path:remove:XXX הסרה של נתון בpath, זה גם ירד במערך data שהובא לעיל יש להחליף את XXX בתחילת ערך, למשל: path:remove:survey=. זה יגרום למחיקה של ערך survey ממערך הdata בכלל - למשל, כדי לאפס נתוני הצבעה. יש לשים לב, זה לא משפיע על סוג וצורת החדר, למשל, שליחה של path:add:admin לא תגרום למאזין להיות מנהל של החדר. הוצאה מחדר ועידה. הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action kick המאזין הולך ביציאה בדיוק לאן שהיה הולך אם המנהל היה מנתק את החדר או שהוא יהיה יוצר מהחדר אלא אם כן מוגדר בשלוחה, התבאר פה. ניתן גם להוציא את המאזין לשלוחה ספציפית גם ללא שום הגדרה בשלוחה, ניתן לראות בפוסט זה תחת "כיוון הוצאה מחדר ועידה". השתקת הערוץ: הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action mute ביטול השתקה של הערוץ: הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action unmute סימון הורדת יד: בדומה להורדת אצבע על ידי המאזין בטלפון. הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action lowerhand סימון הרמת יד: בדומה להרמת אצבע על ידי המאזין בטלפון. הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action raisehand כיוון הוצאה מחדר ועידה: יש לפנות לפה לפני שעושים kick על מנת לכוון את המאזין ללכת לשלוחה ספציפית בהוצאה מהחדר. באפשרות זו לא צריך שום הגדרה בשלוחה שתאפשר את היציאה מהחדר, ואם פונים לכאן לפני kick המאזין ילך לאן שהתבקש. הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid set:ConfbridgeNewGoto=/XX מסמן לאן להעביר את המאזין בביצוע kick מהאתר יש לכתוב נתיב להעברה או hangup לניתוק. מאפייני תגובת השרת בכל הפעולות: מאפיין סוג הסבר calls array פירוט השיחות שבוצעה בהן פעולה - זהה לתיאור המופיע בפקודה GetIncomingCalls action סוג הפעולה שבוצעה callsCount int מספר כולל של שיחות שבוצעה בהן פעולה שינוי השפה בערוץ: גובר על ערך language בשלוחה ובivr.ini. הפרמטרים הנדרשים: פרמטר תיאור הערות token טוקן ids מזהה ייחודי של השיחה כפי שהתקבל בקריאה GetIncomingCalls ניתן לשרשר כמה שיחות לביצוע על ידי כתיבה : בין id לid action=set:Clanguage=XX מסמן את השפה החדשה בערוץ כולו יש להחליף את XX בשפה המבוקשת - כל קודי השפה שיש כמו במערכת עצמה השינוי יכנס לתוקף במעבר שלוחה הבא של המאזין. דוגמה CallAction?token=xxxxxxxx&ids=fgdhfszfzvxbdgsxf&action=set:Clanguage=en מאפייני תגובת השרת: מאפיין סוג הסבר calls array פירוט השיחות שבוצעה בהן פעולה - זהה לתיאור המופיע בפקודה GetIncomingCalls action סוג הפעולה שבוצעה callsCount int מספר כולל של שיחות שבוצעה בהן פעולה קבלת סיכום דקות נכנסות למערכת לפי טווח תאריכים הפקודה היא - GetIncomingSum הפרמטרים הנדרשים פרמטר תיאור דוגמא token טוקן from מאיזה תאריך YYYY-mm-dd to עד איזה תאריך YYYY-mm-dd בחירת מחדל - אם לא צויין טווח תאריכים - יביא מתחילת החודש הלועזי מאפייני תגובת השרת מאפיין סוג הסבר fromDate string מאיזה תאריך מוצגים הנתונים toDate string עד איזה תאריך מוצגים הנתונים direct int דקות בחיוג ישיר למערכת transferIn int דקות ממערכות אחרות transferOut int דקות שיצאו למערכות אחרות קבלת לוג סמסים יוצאים הפקודה היא - GetSmsOutLog הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן limit הגבלת תוצאות int בחירת מחדל מביא את כל הסמסים. סדר קבלת הסמסים הם מהחדש לישן מאפייני תגובת השרת מאפיין סוג הסבר rows array מערך של הסמסים היוצאים להלן תוכן מערך הסמסים: מאפיין סוג הסבר CallerId string זיהוי יוצא To string יעד Message string תוכן ההודעה Billing int עלות ביחידות RunBy string פרטי מבצע הפעולה Time string זמן השליחה DeliveryReport string דוח מסירה להלן סוגי סטטוס דוחות מסירה נפוצים לפי תקן SMPP: # הסבר null לא התקבל מידע על מסירת ההודעה DELIVRD נמסר ESME_ROK הועבר לשליחה בהצלחה EXPIRED פג תוקף מעקב המסירה ESME_RINVDSTADR יעד לא נגיש ESME_RINVMSGLEN אורך לא חוקי ESME_RINVCMDLEN אורך פקודה שגוי ESME_RMSGQFUL תור ההודעות מלא ESME_RINVNUMDESTS מספר יעדים לא חוקי ממשק אירועי אבטחה. תיעוד API לגישה לאירועי האבטחה של המערכת של המערכת. ה Web Services היבוארו כאן: ValidationToken // מידע על הטוקן DoubleAuth // ביצוע אימות דו שלבי בטוקן GetLoginLog // קבלת לוג ניסיונות התחברות GetAllSessions // קבלת סשנים פעילים KillSession // סגירת סשן ספציפי KillAllSessions // סגירת כל הסשנים הפעילים הערה חשובה: שימוש בטוקן שהוא שם משתמש וסיסמה של המערכת (077777:1234) לא ממולץ לעבודה עם מתודות שדורשים אימות דו שלבי מכיוון שהאימות הדו שלבי זה ברמת טוקן והתחברות בצורה כזו יוצרת טוקן משתנה. מתודה - ValidationToken קבלת מידע על טוקן. הפרמטרים הנדרשים פרמטר תיאור token טוקן בתגובת השרת במידה שהטוקן תקין יתקבל מערך בשם tokenData המכיל את המידע הבא: מאפיין סוג הסבר דוגמא remoteIP string כתובת IP של יוצר הטוקן 172.18.0.1 sessionType string סוג החיבור API createTime string זמן יצירה 2021-07-30 14:38:30 lastRequest string שימוש אחרון 2021-07-30 14:42:31 doubleAuthStatus boolean האם החיבור עבר אימות דו-שלבי false validationCalls int כמות שיחות אימות שיצאו ולא אומתו (ערך כללי, לא קשור לחיבור הספציפי) 3 token string רמז של הטוקן hwe***5J76TM mfaStatus boolean סטטוס מעבר אימות דו שלבי גלובלי true mfaRealValid boolean האם עבר אימות דו שלבי גלובלי באותו הסשן false mfaRequestId int מזהה בקשת אימות דו שלבי גלובלי של אותו החיבור 1 mfaValidReason string סיבת מעבר אימות דו-שלבי גלובלי MFA_PASSED בעיקרון, מה שחשוב לנו לזכור מכאן זה doubleAuthStatus - שמסמן לנו אם הטוקן עבר אימות דו שלבי, ו validationCalls שצריך לשים לב אליו, כי הוא מוגבל - זה יוסבר יותר בהמשך. מתודה - DoubleAuth ביצוע אימות דו שלבי בטוקן. הפרמטרים הנדרשים פרמטר תיאור token טוקן action פעולה: שליחת שיחת אימות או אימות בפועל. אימות כפול מתבצע ב2 שלבים, מבקשים שיחת אימות, ואז פונים שוב עם קוד האימות לסיים את האימות. קבלת שיחה: שולחים פרמטר SendCode בערך action. תגובה תקינה של השרת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK message string הודעת הצלחה Call successfully sent LastNumberToSend string 4 הספרות האחרונות של המספר שאליו נשלחה השיחה 7770 שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 EXCEPTION message Missing parameters חסרים פרמטרים, או ש action ריק או שהוא מצפה לערך נוסף 2 EXCEPTION message createPhone is Not Valid. verification is disabled מספר יוצר המערכת לא מעודכן או לא מספר תקין, לא ניתן לבצע אימות 3 ERROR message Token has already been verified כבר בוצע אימות דו שלבי בטוקן זה. 4 ERROR message Too many validation Calls. Try for a few more hours יותר מידי שליחת שיחות במערכת ללא אימות בטווח קצר. הסבר חשוב בנוגע לשגיאה 4: על מנת למנוע ניצול לרעה שליחת שיחות אימות מוגבלות, כל שליחה של שיחת אימות נספרת, וכל אימות מוצלח מוריד ספירה. זה אומר, שאם תבצעו אימות מוצלח ושיחה אחד בלבד זה לא יחשב בתור שיחה, אבל אם תשלחו 4 שיחות אימות ורק אז יתבצע אימות אז יספר 3 שיחות שיצאו ללא צורך. ניתן לראות את המונה שיחות של המערכת בפניה ל ValidationToken. המונה מתאפס כל כ6 שעות. ביצוע אימות בפועל: שולחים פרמטר VerifyCode בערך action ואת 4 הספרות של המספר שקיבלתם ממנו את השיחה בערך code. תגובה תקינה של השרת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK message string הודעת הצלחה VerifiedOK אחרי ביצוע אימות לטוקן ניתן להשתמש איתו למתודות שיבוארו מייד לאחר הסבר השגיאות. שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 ERROR message Please SendCode before לא ניתן לבצע אימות לפני שליחת שיחה. יש לשלוח שיחה קודם. 2 ERROR message Authentication failed הקוד לא תקין. 3 ERROR message Missing parameters חסרים פרמטרים, או ש action ריק או שהוא מצפה לערך נוסף 4 ERROR message Token has already been verified כבר בוצע אימות דו שלבי בטוקן זה. מתודה - GetLoginLog קבל לוג התחברויות הפרמטרים הנדרשים פרמטר תיאור token טוקן שעבר אימות דו שלבי limit ניתן להגביל את כמות התוצאות שיתקבלו username חיפוש לוג לפי שם משתמש לגבי ערך username: בעצם LoginLog לא מחייב שמדובר במערכת אמיתית ולכן זה נשמר לפי שם משתמש, בעת פניה ללא הערך יחזרו הלוגים של המספר הראשי של המערכת, אם ברצונכם להביא לוגים של מספר משנה למשל, יש לצרף ערך זה עם המספר משנה. בתגובת השרת במידה שהטוקן תקין יתקבל array בשם data המכיל את כל התוצאות, כל תוצאה היא גם מערך המכיל את השדות הבאים: מאפיין סוג הסבר דוגמא remoteIP string כתובת IP 172.18.0.1 sessionType string סוג החיבור REGULAR actionTimestamp string זמן 2021-07-30 14:13:00 username string שם המשתמש 0773137770 successful boolean האם מדובר בחיבור מוצלח או לא false שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 EXCEPTION message Unverified session טוקן לא עבר אימות דו שלבי. 2 EXCEPTION message Unknown username ערך שם משתמש שגוי. מתודה - GetAllSessions קבל סשנים פעילים הפרמטרים הנדרשים פרמטר תיאור token טוקן שעבר אימות דו שלבי limit ניתן להגביל את כמות התוצאות שיתקבלו בתגובת השרת במידה שהטוקן תקין יתקבל array בשם sessions המכיל את כל החיבורים וערך int בשם sessionsCount המכיל את כמות הסשנים הפעילים. כל ערך בתוך sessions יכיל: מאפיין סוג הסבר דוגמא id int מזהה טוקן, לצורך הריגה שלו 16598 token string רמז של הטוקן hwe***5J76TM active boolean האם הטוקן פעיל true selectedDID string שם משתמש (בחיבור של API זה null 0773137770 remoteIP string כתובת IP של יוצר הטוקן 172.18.0.1 sessionType string סוג החיבור API createTime string זמן יצירה 2021-07-30 14:38:30 lastRequest string שימוש אחרון 2021-07-30 14:42:31 doubleAuthStatus boolean האם החיבור עבר אימות דו-שלבי false mfaStatus boolean סטטוס מעבר אימות דו שלבי גלובלי true mfaRealValid boolean האם עבר אימות דו שלבי גלובלי באותו הסשן false mfaRequestId int מזהה בקשת אימות דו שלבי גלובלי של אותו החיבור 1 mfaValidReason string סיבת מעבר אימות דו-שלבי גלובלי MFA_PASSED שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 EXCEPTION message Unverified session טוקן לא עבר אימות דו שלבי. מתודה - KillSession סגירת סשן הפרמטרים הנדרשים פרמטר תיאור token טוקן שעבר אימות דו שלבי SessionId מזהה סשן להריגה תגובה תקינה של השרת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK SessionId string מזהה הסשן שנסגר 35 שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 EXCEPTION message Unverified session טוקן לא עבר אימות דו שלבי. 2 EXCEPTION message SessionId Can only be a number ערך מזהה סשן ריק או לא תקין. 3 ERROR message SSessionId is broken מזהה סשן לא פעיל או לא נמצא. מתודה - KillAllSessions סגירת כל הסשנים הפעילים של המערכת הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן שעבר אימות דו שלבי תגובה תקינה של השרת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK KillSessions string כמות הסשנים שנסגרו 10 שגיאות אפשרויות: סוג השגיאה מופיע ב responseStatus # סוג שגיאה ערך הסברה תוכן הסבר 1 EXCEPTION message Unverified session טוקן לא עבר אימות דו שלבי. הפעלת צינתוק הפקודה היא - RunTzintuk שליחת צינתוק במתודה זו היא בעלות של 0.1 יחידה למספר מלבד הפעלה של צינתוק מרשימת צינתוקים חינמים שהיא ללא עלות. יתכן שתעריף השימוש במודול זה ישתנה בהמשך לפי שיקול דעת ההנהלה. הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן callerId זיהוי יוצא, בחירת מחדל זיהוי ראשי של המערכת, ניתן לכתוב זיהוי ספיישל או מספר משנה. ניתן להשתמש עם זיהוי רנדומלי על ידי ציון RAND, זיהוי רנדומלי יבואר מתחת לטבלא int TzintukTimeOut זמן צינתוק. בחירת מחדל 9 שניות. מקסימום זמן צינתוק 16 שניות Float phones מספרים לחיוג. יבוארו האפשרויות למטה. הסבר על זיהוי רנדומלי: השירות מיועד למשל כדי לבצע אימות מספר טלפון באתרים וכד, בעת ציון של ערך זה לא ניתן לשלוח לרשימה של מספרים והמספר הראשון ברשימה כפי שנבחרה יקבל את השיחה. בתגובה מהשרת יתמלא גם ערך verifyCode שמכיל את 4 הספרות האחרונות של הזיהוי ממנו יצא השיחה, ובערך callerId בתגובה מהשרת יהיה כתוב RAND. תוכלו לבצע אימות של הלקוח בצורה שאתם מבקשים ממנו להקיש את ה4 ספרות האחרונות של המספר ממנו הוא קיבל את השיחה ואתם משווים את זה עם verifyCode. במקרה שהשיחה לא מזיהוי רנדומלי ערך verifyCode יהיה ריק. צורות אפשרויות להגשת רשימת המספרים לחיוג: כאשר הפניה היא בGET או בPOST שהוא לא jsos (Content-Type: application/json) יש 3 אפשריות: רשימה מפורשת עם הפרדה של : בין מספר למספר מספרים מתוך רשימת תפוצה קיימת על ידי ציון tpl:XX כשאשר במקום הXX יש לכתוב את מזהה רשימת התפוצה. צינתוק לרשימת צינתוק חינמי (שימו לב הערה למטה בנוגע לאפשרויות שליחה לכמה רשימות צינתוקים חינמיים) על ידי ציון tzl:XX כאשר במקום XX יש לכתוב את מספר הרשימה במערכת. כאשר הפניה היא json - ניתן גם לשלוח את רשימת המספרים כמערך: { "phones": [ "0510000", "0510001", "0510002", "0510003" ] } או כמערך עם אובייקטים לצורך ציון זיהוי יוצא ספציפי לכל מספר: { "phones": [ { "phone": "0511111", "callerId": "077313" }, { "phone": "05111333", "callerId": "07731344" } ] } או על אותו הדרך עם קבוצות: "phones": [ { "phones": [ "0511111", "051111221" ], "callerId": "077313" }, { "phones": [ "0511111999" ], "callerId": "077414" } ] ואז ניתן להוציא צינתוק לרשימת מספרים עם ״זיהוי שיחה מתחלף״. שליחת צינתוקים לכמה רשימות צינתוקים חינמיים יחד: השירות מוגבל ל50 רשימות בקריאה. בעת שליחת צינתוק לרשימת צינתוקים חינמיים ניתן להפעיל קמפיין אחד לכמה רשימות יחד. מספרים הנמצאים בכמה מהרשימות יקבלו צינתוק אחד בלבד. על מנת לציין כמה רשימות ניתן או לחלק את הרשימות על ידי , אחרי ציון tzl:. למשל, כדי לשלוח לרשימה 100 ולרשימה 200 ו 300 יש לציין: tzl:100,200,300. במידה ששמות הרשימות מכילות את התו , זה ייצור בעיות, ולכן אפשר גם לציין את זה כמערך, זאת במידה שהשליחה היא בPOST - json באופן שבphones מציינים רק tzl: ואת הרשימות בפרמטר tzintukLists. כמו בדוגמא הבאה: { "phones": "tzl:", "tzintukLists": [ "100", "200", "בית ספר, כיתה ג", "משרד, מזכירות" ] } מאפייני תגובת השרת בתגובה מוצלחת: מאפיין סוג הסבר דוגמא responseStatus sting סטטוס הפעולה OK verifyCode sting 4 ספרות אחרונות של הזיהוי היוצא לצורכי אימות. יהיה מלא רק במידה שהשיחה מזיהוי רנדומלי. 9835 callerId sting זיהוי השיחה היוצא 0773137770 callsCount int כמות שיחות יוצאות 3 bilingPerCall int תשלום לכל שיחה 0.1 biling int כמות תשלום כולל 0.3 errors array מערך של מספרי טלפון שלא נשלח אילהם השיחה כולל הסיבה. מתחת לטבלא דוגמא לפירוט שגיאות במערך "errors": { 05832XXXXX: "blocked", // חסום 0773137770: "double", // מספר כפול *8080: "notValid" // מספר לא תקין } ניהול רשימות צינתוקים במודול צינתוקים חינמיים הפקודה היא - TzintukimListManagement הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string action פעולה לביצוע, ערך חובה. יוסברו הפעולות מטה string TzintukimList מספר הרשימה. לא חובה כאשר מבקשים לקבל את רשימת הצינתוקים string פעולה: getlists מחזיר את כל רשימות הצינתוקים בתוך מערך "lists" מאפייני תגובת השרת בתגובה מוצלחת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK lists array מערך של הרשימות, ראה טבלא למטה כל אובייקט במערך lists מכיל 2 ערכים: מאפיין סוג הסבר דוגמא listName string שם הרשימה 120 subscribers int כמות רשומים 7 פעולה: getlistEnteres. חובה לצרף ערך TzintukimList מחזיר את רשימת המספרים המנויים לרשימה מאפייני תגובת השרת בתגובה מוצלחת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK listName string שם הרשימה 1844 countSubscribers int כמות הרשומים 7 enteres array מערך של המספרים ושמות שלהם. השמות נטענים מקובץ 'PhonesName.ini' מהשלוחה הראשית, תבנית הקובץ צריכה להכיל "טלפון=שם" כל אובייקט במערך enteres מכיל: מאפיין סוג הסבר דוגמא phone string מספר הטלפון הרשום name string השם של מספר הטלפון הרשום כפי שנטען מקובץ PhonesName.ini פעולה: getLogList חובה לצרף ערך TzintukimList מחזיר את לוג הפעולות שבוצעו על הרשימה מאפייני תגובת השרת בתגובה מוצלחת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK events array מערך של האירועים, ראה טבלה כל אובייקט במערך events מכיל: מאפיין סוג הסבר דוגמא Folder string שלוחה במערכת 1/2 CustomerDID string מספר המערכת 0773137770 Phone string מבצע הפעולה 0533137770 Date string תאריך 19/01/2021 Time string שעת ביצוע 00:39:10 TypeOperation string סוג הפעולה מצורף למטה הסוגים PhoneAction string פעולה על טלפון (הערך יהיה מלא במידה שמדובר בפעולה על טלפון מסויים ברשימה) הסוגים האפשריים בTypeOperation: AddToListTzintuk // הוספה לרשימה RunTzintuk // הפעלת צינתוק RemovingToListTzintuk // הסרה מהרשימה AdminRemovingToListTzintuk // מנהל הסיר מספר מהרשימה ResetToListTzintuk // הרשימה אופסה פעולה: resetList חובה לצרף ערך TzintukimList מאפס רשימת צינתוקים מאפייני תגובת השרת בתגובה מוצלחת: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK list string הרשימה שאופסה באם תיהיה שגיאה יחזיר שגיאה שליחת פקס הפקודה היא - SendFax הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string pdfFile קובץ לשליחה. יבואר 2 אפשרויות string phone לאן לשלוח string callerId זיהוי שיחה יוצאת. בחירת מחדל הזיהוי של המערכת הראשי string deliveryUrl כתובת לקבלת דוח מסירה string pdfFile ניתן לציין נתיב של קובץ מתוך המערכת, למשל: ivr2://FaxTest.pdf וישלח את קובץ "FaxTest.pdf" שתחת השלוחה הראשית. אפשר גם לציין את זה: /FaxTest.pdf, רק חשוב ה/ בהתחלה. בנוסף, ניתן להעלות קובץ ספציפי, לצורך כך יש לציין בערך UPLOAD ואז יש להעלות את הקובץ בערך "fileToUpload, כמובן בעת שימוש באפשרות זו הפניה חייבת להיות בPOST מסוג multipart/form-data deliveryUrl יש לציין URL מלא לקבלת דוח מסירה. למשל: http://127.0.0.6:18358/FaxDel, הפניות ישלחו בPOST בלבד ויכילו את הערכים הבאים: לכל הפניות יצורף ערך CampaignId שתוכלו להשוות אותו עם ערך CampaignId שמתקבל בהצלחה. לכל הפניות יצורף ערך Delivery המכיל את סטטוס המסירה. במידה שDelivery הוא NoAnswer יצורף ערך DIALSTATUS המכיל את התשובה של החיוג ללקוח. במידה שDelivery הוא End יצורף ערך status המכיל את התשובה מצד מנוע הפקס. תשובה של מסירה מוצלחת תיהיה SUCCESS בערך status. במידה שDelivery הוא Answer זה אומר שהשיחה נענת, מציין שהעברת הפקס התחילה. על כל שליחה של פקס יש חיוב של 0.1 יחידות על עצם השליחה ובנוסף חיוב יחסי לפי הזמן של השיחה הפעילה - בחישוב של יחידה לדקה. אם זמן השליחה לקח 3 דקות תחוייבו בנוסף 3 יחידות, בנוסף, לא ניתן להפעיל שיחת פקס אם אין ספייר במערכת של יותר מ5 יחידות מהחיוב על השיחה עצמה. מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK callerId string זיהוי השיחה היוצאת 0773137770 CampaignId string מזהה הקמפיין WSOC-LC-2021-08-28-21-40-49-083 deliveryUrl string מציין את הכתובת למסירה באם צויינה http://127.0.0.6:18358/FaxDel fileNameSend string שם הקובץ שנשלח ivr2://FaxTest.pdf callsCount int כמות שיחות יוצאות 1 bilingPerCall float חיוב לכל שיחה 0.1 biling float כמות חיוב בפועל 0.1 בעת שגיאה תפורט השגיאה והבעיה. בדיקה האם קובץ קיים הפקודה היא - CheckIfFileExists הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string path נתיב במערכת. דוגמאות למטה string אפשרויות ציון קבצים ניתן לציין בכל אחד מהצורות מטה: לצורך הדוגמא כדי לחפש את קובץ ext.ini בשלוחה 4. path=ivr2:/4/ext.ini path=ivr2:4/ext.ini path=ivr/4/ext.ini מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK fileExists bool האם הקובץ קיים path string המיקום שלו ivr/1/ext.ini שליחת סמסים הפקודה היא - SendSms הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string from זיהוי שולח, בחירת מחדל זיהוי המערכת הראשי. ניתן לכתוב מספר מאושר במערכת או מספר משני. ניתן גם לבצע שליחה משולח טקסטואלי (זיהוי טקסט), באם יש לכם צורך בזה יש לפנות לשירות הלקוחות עם סיבה. string message תוכן ההודעה string sendFlashMessage הודעת פלאש? מסרון פלאש (הודעת הבזק) ישלח ללקוח ויקפוץ בטלפון במסך מלא. האפשרות יכולה לא לעבוד בטלפונים מסויימים/במפעילים מסויימים ויתכן שנמענים מסויימים יזהו את המסרון כמסרון רגיל. Boolean (0/1) phones נמענים בהפרדה של : בין כל מספר, או tpl:X על מנת לשלוח לרשימת תפוצה במערכת שבמקום הX יש לכתוב את מזהה הקמפיין string החיוב על שליחת סמס הוא 0.1 יחידה לכל 70 תוים בחיוב לכל מספר טלפון. מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK message string תוכן ההודעה ששלחתם from string הזיהוי ממנו יצאה ההודעה sendCount int כמה הודעות נשלחו Billing float תשלום oks array מערך של מספרים אילהם נשלחה ההודעה errors object אובייקט המכיל את המספרים שאילהם לא נשלחה ההודעה כולל הסיבה במקרה של שגיאה השגיאה תפורט. הקמת שיחת גישור הפקודה היא - CreateBridgeCall הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string callerId זיהוי השיחה היוצאת שתופיע על הצג לאורך הדרך string Phones מספר טלפון לחיוג string BridgePhones מספר טלפון לניתוב string DialSip האם להפעיל מנגנון חיוג ל SIP (הסבר למטה) 0/1 DialSipExtension האם להפעיל מנגנון חיוג לשלוחת SIP (הסבר למטה) 0/1 AccountNumber מספר חשבון SIP במערכת (בחירת מחדל המספר הראשי) int SipExtension במידה שזה שלוחת sip, יש לציין את השלוחה. int RecordCall האם להקליט את השיחה Boolean (0/1) SendMailInCall האם לשלוח הקלטה למייל Boolean (0/1) SendMailInCallTo מייל ספציפי לשליחת ההקלטה. בחירת מחדל המייל המופיע במערכת string ערכים שיש להם בחירת מחדל: callerId=מספר מערכת ראשי RecordCall=0 SendMailInCall=0 הסבר אודות הפעלת שירות חיוג לחשבון SIP (DialSip): השירות מאפשר לחייג לחשבון SIP קיים במערכת וממנו לגשר את השיחה באופן שלא יהיה עלות ניתוב כפול אלא רק עלות של הניתוב החיצוני - אחרי המענה בשלוחת SIP. בעת הפעלת השירות ערך Phones לא משנה (עדיין חובה לשלוח אותו) והמספר שיקבע הוא המספר של חשבון הSIP/השלוחה של חשבון ה sip לפי הפרמטרים. לא ניתן לחייג לשלוחת SIP שלא קיימת באותה המערכת. בכל מקרה יש עלות של 0.1 יחידות על עצם הפעלת הקמפיין החיוב על שליחת שיחה הוא 0.1 יחידה על עצם הקמת שיחת הגישור ואז לפי החישוב הבא: יש כאן 2 מסלולי חיוב. 1: מהרגע שאני מוציא שיחה לנציג. 2: מהרגע שהלקוח המגושר ענה. למשל, אם אני חייגתי לנציג 60 שניות, הוא חייג ללקוח - שהוא הלקוח המגושר. זמן החיוג היה 10 שניות ועוד 50 שניות הוא דיבר איתו, אז החיוב יחידות יהיה על 110 שניות: 60 שזה זמן השיחה הכללי, + 50 שניות של דיבור עם הלקוח המגושר. על זמן החיוג ללקוח המגושר הוא לא משלם. מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK CampaignId string מזהה קמפיין WSOC-LC-2021-11-23-15-10-15-276 callerId string זיהוי השיחה callsCount int כמות שיחות 1 bilingPerCall float עלות של כל שיחה biling string סך הכל חיוב SendMailInCall Boolean RecordCall Boolean SendMailInCallTo string כמובן, הערכים הקשורים לחיוב שמתקבלים בתגובה מציינים את החיוג על הפעלה הקמפיין ולא על החיוב הסופי שמחושב בנפרד. במקרה של שגיאה השגיאה תפורט. קבלת מידע בזמן אמת על שלוחת תור הפקודה היא - GetQueueRealTime הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string queuePath נתיב שלוחת התור במערכת. לשלוחה ראשית: . או לשלוחות פניומיות: /1/2 string מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK queueData Object מידע כללי על התור דוגמא בטבלא למטה members array מידע על הנציגים דוגמא בטבלא למטה entries array מידע על הממתינים דוגמא בטבלא למטה שימו לב! כל הסטטיסטיקות של הנציגים בזמן אמת מתאפסת בעת שינוי קובץ queue.ini שבשלוחה. פירוט של "queueData": ערך סוג הסבר Abandoned int שיחות שננטשו Calls int לקוחות ממתינים Completed int שיחות שהושלמו TalkTime int זמן שיחות Holdtime int זמן המתנה Max int מקסימום שיחות בתור Strategy string סוג התור פירוט של כל אובייקט במערך "members": ערך סוג הסבר agent string מספר הנציג Status string סטטוס נציג. 1 פנוי 2 תפוס CallsTaken int שיחות שהנציג לקח LastCallUnitTime string זמן השיחה האחרונה שהוא לקח ב unit time LastCall string זמן של השיחה האחרונה שלקח LastCallAgo string לפני כמה זמן לקח שיחה אחרונה, למשל: 4 דקות, 33 שניות Paused Boolean האם הנציג בהפסקה Penalty string עדיפות הנציג בתור פירוט של כל אובייקט במערך "entries": ערך סוג הסבר phone string מספר הלקוח Wait string זמן המתנה בשניות WaitAgo string כמה זמן הלקוח ממתין, למשל: 7 דקות, 23 שניות Position string מיקום בתור CallId string מזהה שיחת תור לצורך ביצוע פעולות במקרה של שגיאה השגיאה תפורט. קבלת מידע על המערכת הפקודה היא - GetCustomerData הפרמטרים הנדרשים: פרמטר תיאור / הערות token טוקן מאפייני תגובת השרת: מאפיין סוג ערך mainDid string מספר המערכת הראשי secondary_dids array מערך של מספרים משניים (ראה להלן) callerIds array מערך של מספרי ספיישל לשיחות יוצאות (ראה להלן) name string שם לקוח expiredUnits boolean האם יחידות פגו תוקף unitsExpireDate string תאריך תפוגה של היחידות email string כתובת אימייל organization string שם ארגון contactName string שם איש קשר phones string טלפון invoiceName string חשבונית על שם invoiceAddress string כתובת למשלוח חשבונית fax string פקס accessPassword string סיסמת גישה למערכת units string כמות היחידות שבמערכת recordPassword string סיסמת הקלטות resellerCreditFile string שם משווק systemSite string אתר מערכת (לדוגמה: yemot ymt ymta ymtb) pirsumPhoneStatus Boolean האם המערכת פעילה ב"פרסומפון" ivrType string סוג המערכת (יפורט הסוגים) בתוך מערך secondary_dids (מספרים משניים) יופיעו האובייקטים הבאים אובייקט תיאור דוגמה id מזהה מספר משנה 100 did מספר משנה 0773137770 usage שימוש goto:/1 בתוך מערך callerIds (מספרי ספיישל) יופיעו האובייקטים הבאים אובייקט תיאור דוגמה callerId מספר מאושר לזיהוי יוצא 0773137770 expiryDate פג תוקף של האישור לזיהוי 2025-04-18+01:39:27 (במקום + יופיע רווח) הסוגים שאפשריים ב ivrType סוג תיאור הערה CAMPAIGN חייגן - מערכת קמפיינים EMERGENCY חייגן חירום IVR1 מערכת IVR1 מערכת שיצאה מתמיכה IVR2 מערכת תוכן - IVR2 SPECIAL מערכת מיוחדת לא נפוץ WHATSAPP_PHONE וואצפון למערכות וואצפון אין גישה בAPI QUEUE תור לא נפוץ VIRTUAL_PLUS וירטואל פלוס WHATSAPP_PHONE_ADMIN וואצפון מנהלים DIAL_TO_SIP חיוג למשתמש SIP NEW_WHATSAPP_PHONE וואצפון החדש קבלת דוח קמפיין הפקודה היא - ViewCampaignReports הדוחות המתקבלים בממשק זה הם דוחות על קמפיינים שפירוט החיוב שלהם מתחיל ב Start-YA- בלבד. למשל: הפרמטרים הנדרשים: פרמטר סוג ערך דוגמא token string טוקן CampaignId string מזהה הקמפיין המבוקש. מזהה הקמפיין הוא כפי המופיע בדוח היחידות עם הסרה של Start-YA- מההתחלה. SMS-3-0773137770-Yemot-1641217161871 json Boolean יש לשלוח ערך 1 על מנת לקבל מידע ב JSON 1 מאפייני תגובת השרת: במידה שהבקשה תקינה, ערך "report" יכיל את הדוח של הקמפיין. שימו לב, מבנה התגובה של הדוחות יוכל להשתנות בהתאם לסוג הקמפיין, ההסבר כרגע הוא על דוח של קמפיין סמס: מאפיין סוג ערך CampaignData Object מידע כללי על הקמפיין report Object כל איבר באובייקט הוא מספר טלפון שאליו נשלח הקמפיין ומכיל את המידע עליו. דוגמא למבנה מלא של דוח סמס: הוספה ואימות של זיהוי ספיישל אימות תקף לשנה אחת. לאחר שנה מהאימות המספר יוסר ויהיה צורך לאמת אותו בשנית. אימות של מספר קיים יאריך את תוקף האימות של המספר בשנה מזמן האימות. הפקודה היא - ValidationCallerId הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string action פעולה - (send/valid) להלן יפורטו הפעולות והפרמטרים string פעולה: send - שליחת בקשת אימות: הפרמטרים לפעולה send : פרמטר תיאור סוג callerId המספר להוספה string validType סוג האימות. SMS / CALL string שליחת סמס/שיחת אימות הינה בעלות יחידות לפי התעריף הרגיל. בתגובה תקינה יחזור: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK reqId string מזהה בקשת אימות. איתה יש לפנות על מנת לבצע אימות בפועל פעולה: valid - אימות: הפרמטרים לפעולה valid: פרמטר תיאור סוג reId מזהה בקשת אימות שהתקבל בפעולת send string code קוד האימות string בתגובה תקינה יחזור: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK status Boolean סטטוס הוספת זיהוי הספשייל. true בהצלחה מערכת תזמון משימות שימו לב, לע"ע לא יכול להיות מעל 10 משימות פעילות בכל לקוח. הפקודה היא - GetTasks קבלת רשימת המשימות במערכת. הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string limit הגבלה לתוצאות (בחירת מחדל 100) int בתגובה תקינה יחזור מערך tasks המכיל בכל אובייקט משימה עם הפרטים הבאים: מאפיין סוג הסבר דוגמא id int מזהה משימה (נדרש לביצוע פעולות, מחיקת משימה, עידכון משימה או קבלת לוגים) 1 description string תיאור חופשי של המשימה type string סוג המשימה createTs string זמן יצירה status string סטטוס המשימה active Boolean(0/1) האם פעילה sendMailInEnd Boolean(0/1) האם מוגדר לקבל מייל בעת סיום מוצלח sendMailInError Boolean(0/1) האם מוגדר לקבל מייל בעת סיום בשגיאה nextRun string זמן ריצה הבא הפקודה היא - GetTasksData קבלת מידע מפורט על משימה מסויימת הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string TaskId מזהה משימה int בתגובה תקינה יחזור: ערכים מוגדשים הם ערכים שנוספו על המידע המתקבל בתוך המערך של רשימת המשימות הכללית מאפיין סוג הסבר דוגמא id int מזהה משימה (נדרש לביצוע פעולות, מחיקת משימה, עידכון משימה או קבלת לוגים) 1 description string תיאור חופשי של המשימה type string סוג המשימה createTs string זמן יצירה status string סטטוס המשימה active Boolean(0/1) האם פעילה sendMailInEnd Boolean(0/1) האם מוגדר לקבל מייל בעת סיום מוצלח sendMailInError Boolean(0/1) האם מוגדר לקבל מייל בעת סיום בשגיאה nextRun string זמן ריצה הבא updateTs string זמן עדכון lastRun string זמן ריצה אחרון minute int הגדרת זמן ריצה: דקה hour int הגדרת זמן ריצה: שעה year int הגדרת זמן ריצה: שנה day int הגדרת זמן ריצה: יום בחודש month int הגדרת זמן ריצה: חודש days_of_week string הגדרת זמן ריצה: ימים בשבוע (ימים מופרדים בפסיקים 0=יום ראשון - 6=יום שבת) action_data JSON מידע למנוע המשימות על הפעולות לביצוע במשימה הפקודה היא - GetTasksLogs קבלת לוג הפעלות על משימה מסויימת הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string TaskId מזהה משימה int בתגובה תקינה יחזור ערך logs המכיל מערך שכל אובייקט מכיל את הפרטים הבאים: ערכים מוגדשים הם ערכים שנוספו על המידע המתקבל בתוך המערך של רשימת המשימות הכללית מאפיין סוג הסבר דוגמא id int מזהה הפעלת המשימה 1 succeeded Boolean(0/1) האם הסטטוס הוא מוצלח error_message string פירוט שגיאה Campaign Id does Not found in customer ts string זמן ההפעלה הפקודה היא - CreateTask יצירת משימה חדשה הפרמטרים הנדרשים פרמטרי זמן ריצה שלא נשלחים נחשבים כ null - ללא התחשבות פרמטר סוג תיאור מידע נוסף token string טוקן description string תיאור חופשי של המשימה minute int הגדרת זמן ריצה: דקה hour int הגדרת זמן ריצה: שעה year int הגדרת זמן ריצה: שנה day int הגדרת זמן ריצה: יום בחודש month int הגדרת זמן ריצה: חודש active Boolean(0/1) האם משימה פעילה checkIsKodesh Boolean(0/1) האם למנוע מהמשימה לרוץ בשבתות וחגים mailInEnd Boolean(0/1) האם לשלוח מייל בסיום מוצלח mailInError Boolean(0/1) האם לשלוח מייל בסיום בכישלון ifAnyDay Boolean(0/1) אם זה 1 אז כל לא בודק התחשבנות ב days days (string(JSON סטרינג המכיל JSON לפי הדוגמא מטה, כל איבר באובייקט המפתח שלו הוא יום. במידה שערך זה לא יהיה תקין יכנס null - כל הימים בשבוע taskType string סוג משימה כרגע יכול להיות: SendSMS / RunTzintuk/MoveOnFile callerId string זיהוי יוצא רלוונטי לסוגי משימות SendSMS / RunTzintuk toList string מזהה / שם רשימה רלוונטי לסוגי משימותRunTzintuk smsList string מזהה רשימת תפוצה רלוונטי לסוגי משימותSendSMS typeList string סוג רשימה רלוונטי לסוגי משימותRunTzintuk. יכול להיות tpl / tzl smsMessage string טקסט להודעת סמס רלוונטי לסוגי משימותSendSMS folder string תיקיית מקור רלוונטי לסוגי משימותMoveOnFile target string תיקיית יעד רלוונטי לסוגי משימותMoveOnFile moveFileType string סוג קובץ, maxFile/minFile רלוונטי לסוגי משימותMoveOnFile blockMoveIfNewFileInMinutes int חסימת העברת הקובץ במידה שבשלוחת היעד קיים קובץ שהוקלט בטווח הדקות שמצויין רלוונטי לסוגי משימותMoveOnFile דוגמא לסטרינג JSON המכיל מידע על ימי הפעילות: {"0":1,"1":0,"2":1,"3":1,"4":0,"5":0,"6":0} כלומר - כל key הוא יום. כל valus אומר ב 0 / 1 האם היום פעיל או לא. בדוגמא למעלה רק ימים ראשון ושלישי מאופשרים. להזכירכם: 0-זה יום ראשון ו6-זה יום שבת בתגובה תקינה יחזור: מאפיין סוג הסבר דוגמא id int מזהה הפעלת המשימה 1 jobId int מזהה משימה שנוצרה ActionData object אובייקט עם מידע על המשימה נכון לאיך שהיא נקלטה הפקודה היא - UpdateTask עידכון זמני ריצה של משימה קיימת. לא ניתן לשנות את סוג המשימה או את הדברים שהמשימה עושה הפרמטרים הנדרשים פרמטרי זמן ריצה שלא נשלחים נחשבים כ null - ללא התחשבות פרמטר סוג תיאור מידע נוסף token string טוקן TaskId int מזהה משימה לעריכה חובה description string תיאור חופשי של המשימה minute int הגדרת זמן ריצה: דקה hour int הגדרת זמן ריצה: שעה year int הגדרת זמן ריצה: שנה day int הגדרת זמן ריצה: יום בחודש month int הגדרת זמן ריצה: חודש active Boolean(0/1) האם משימה פעילה mailInEnd Boolean(0/1) האם לשלוח מייל בסיום מוצלח mailInError Boolean(0/1) האם לשלוח מייל בסיום בכישלון ifAnyDay Boolean(0/1) אם זה 1 אז כל לא בודק התחשבנות ב days days (string(JSON סטרינג המכיל JSON לפי הדוגמא מטה, כל איבר באובייקט המפתח שלו הוא יום. במידה שערך זה לא יהיה תקין יכנס null - כל הימים בשבוע דוגמא לסטרינג JSON המכיל מידע על ימי הפעילות: {"0":1,"1":0,"2":1,"3":1,"4":0,"5":0,"6":0} כלומר - כל key הוא יום. כל valus אומר ב 0 / 1 האם היום פעיל או לא. בדוגמא למעלה רק ימים ראשון ושלישי מאופשרים. להזכירכם: 0-זה יום ראשון ו6-זה יום שבת בתגובה תקינה יחזור: מאפיין סוג הסבר דוגמא status Boolean יהיה true הפקודה היא - DeleteTask מחיקת משימה הפרמטרים הנדרשים פרמטר סוג תיאור מידע נוסף token string טוקן TaskId int מזהה משימה למחיקה בתגובה תקינה יחזור: מאפיין סוג הסבר דוגמא status int מספר המשימות שנמחקו שליחת קמפיין הודעת TTS הפקודה היא - SendTTS הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string callerId זיהוי שולח, בחירת מחדל זיהוי המערכת הראשי. ניתן לכתוב מספר מאושר במערכת או מספר משני. string ttsMessage תוכן הטקסט string callbackUrl קישור לקבלת hooks בזמן אמת על סטטוס הקמפיין (הסבר למטה) string repeatFile כמה פעמים לחזור על ההשמעה. בחירת מחדל 2 פעמים. int ttsRate מהירות השמעה כאשר 10 זה הכי מהיר ו 10- זה הכי לאט (בחירת מחדל רגיל) int ttsVoice הקול של ההשמעה (מידע על הקולות כאן) string SendMail האם לקבל דוח קמפיין 0/1 phones נמענים בהפרדה של : בין כל מספר, או tpl:X על מנת לשלוח לרשימת תפוצה במערכת שבמקום הX יש לכתוב את מזהה הקמפיין. ניתן גם לקחת את המספרים מרשימת צינתוקים חינמית (בעלות יחידות מלאה!) על ידי ציון tzl:XX ובמקום XX את שם הרשימה. string החיוב על שליחת שיחה TTS הוא יחידה לדקה ראשונה ואחריה חיוב יחסי של יחידה לדקה. מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK CampaignId string מזהה קמפיין OKCalls int ספירת שיחות מוצלחות ErrorCalls object שיחות שגויות וסיבה billing float עלות units string יחידות בלקוח במקרה של שגיאה השגיאה תפורט. הסבר ודוגמא בנוגע לקבלת hooks בזמן אמת על סטטוס הקמפיין: באם מציינים פרמטר callbackUrl המערכת תשלח בזמן אמת בעת פעילות הקמפיין לשרת שלכם את סטטוס השיחות. הדבר אפשרי בעת הפעלה לרשימה של עד 500 מספרים לע״ע. הפניות יגיעו לכתובת שלכם בPOST באופן הבא: בעת שיחה שנענתה: { "CampaignId": "YA-3-xxxxx-Yemot-1672066954231731", "Number": "077xxxxx", "Status": "UP", "Time": 1672066959116 } בעת שיחה שנכשלה: { "CampaignId": "YA-3-xxxxx-Yemot-1672066954231731", "Number": "077xxxxx", "Status": "FAILD", "Time": 1672066959865, "FailReason": "5" } בעת שיחה שהסתיימה: { "CampaignId": "YA-3-xxxxx-Yemot-1672067627514828", "Number": "077xxxxx", "Status": "DOWN", "Time": 1672067636731, "CallTimeMS": 4969, "BridgeCallStart": null, "BridgeCallStop": null } בעת סיום הקמפיין: { "CampaignId": "YA-3-xxxxx-Yemot-1672068098471003", "Number": null, "Status": "END", "Time": 1672068114027, "moreData": { "CampaignBilling": 3, "notEnteris": 0, "enteris": 3, "done": 2, "fail": 1, "createTS": "2022-12-26 17:21:38", "runTS": "2022-12-26 17:21:38", "endTS": "2022-12-26 17:21:53" } } הפקת דוח מקובץ ymgr הפקודה היא - RenderYMGRFile הפרמטרים הנדרשים פרמטר תיאור סוג הערות / דוגמא token טוקן string wath מיקום הקובץ במערכת string ivr2:/ymgtTest.ymgr convertType סוג הקובץ להנפקה. סוגים אפשריים: html / csv / json string רק במקרה של בקשת json תיהיה תגובה של json ממש. בשאר המקרים התגובה תיהיה הקובץ עצמו (Blob) notLoadLang האם לא להשתמש בקבצי שפה/תרגום לעמודות/ערכים 0/1 באם ערך זה הוא 1 התרגום יהיה נקי ומדוייק של הymgr ללא תוספות/הסתרות עמודות/שינויי שמות לעמודות. כבחירת מחדל מבצע תרגום גם שמבקשים json. renderLanguage שפת חיפוש תרגומים [A-Z] ניתן לבקש תרגום לפי שפה. בחירת מחדל HE. חישוב סדר המרת ותרגום עמודות: כל שלב דורס תרגום קודם באופן שהוא לא מוחק אותו אלא דורס תרגומים שיש עליהם הגדרה ספציפית. קובץ ראשי - יש תרגום כללי (בשרת של ימות המשיח). קובץ ספציפי (למשל, קובץ ל ApprovalAll) קובץ ברמת מערכת לפי השפה שנבחרה.. למשל מחפש קובץ: YMGRLangs\EN\ApprovalAll.ini קובץ ברמת מערכת - מחפש את שם הקובץ בסיומת ini בתוך תיקייה YMGRLangs שצריכה להיות תחת התיקיה הראשית של המערכת שבתוכה קובץ הini. קובץ ברמת שלוחה לפי השפה שנבחרה.. למשל מחפש קובץ: main\1\2\EN\ApprovalAll.ini קובץ בשלוחה - קובץ באותה השלוחה של קובץ הymgr עם סיומת ini. שימו לב! רמת שפה היא רמת מתחת קובץ ללא שפה. למשל, אם אני בוחר שפה EN אבל בקובץ בשלוחה לא בתיקיה של השפה יש לי ערכים המערכת תתחשב בתרגום שלהם. המענה בעת ההצלחה הוא הקובץ, כמו שנאמר, או במקרה של json: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK yALogsVersion string גירסת מערכת data array מערך שמכיל את תוכן הקובץ במקרה של שגיאה השגיאה תפורט כתגובה בjson. קבלת תנועות יחידות סמסים הפקודה היא - GetCustomerSmsTransactions הפרמטרים הנדרשים פרמטר תיאור סוג הערות / דוגמא token טוקן string מביא 2000 תנועות אחרונות מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK yAfastVersion string גירסת מערכת rows array מערך תנועות פירוט איבר במערך: שם תיאור transactionTime זמן תנועה amount סכום תנועה ביחידות description תיאור החיוב newBalance יתרת יחידות עדכנית בביצוע הפעולה expireDate תאריך תפוגה עדכני בביצוע הפעולה who מבצע הפעולה בדיקה האם תיקייה קיימת הפקודה היא - CheckIfFolderExists הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string path נתיב במערכת. דוגמאות למטה string מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK folderExists bool האם התיקייה קיימת path string המיקום שלה ivr/10 חשבונות SIP תיעוד api הנוגע לחשבונות SIP מאפיינים לכל חשבון SIP במערכת יש מספר מאפיינים מספר החשבון במערכת (למשל 1 2 וכן הלאה) שם המשתמש להתחברות בדרך כלל שם המשתמש מורכב ממספר המערכת ומספר החשבון. למשל 0772222770=2 זהו שם המשתמש של חשבון 2 במערכת 0772222770 מספר שלוחה - כל מספר שנמצא בטווח מ-200 ועד 10,000 מספר שלוחה הינו מאפיין הנתון לבחירה של מנהל המערכת וניתן לשנות אותו בכל עת. הדבר משמש עבור חיוגים פנימיים בין החשבונות. (למשל כדי לחייג משלוחה 200 לשלוחה 201 יש לחייג למספר "201" במקרה כזה מה שיופיע על הצג אצל מקבל השיחה זה "200") סיסמת התחברות פרוטוקול SIP להתקשרות (נכון לעכשיו התמיכה היא בפרוטוקולים UDP WSS) איזור שלוחה (extensionClass) - קוד לקיבוץ שלוחות לאיזורים (למשל floor1, jerusalem). הקוד מכיל אותיות באנגלית, ספרות, מקף (-) וקו תחתון (_) בלבד - ללא רווחים או תווים אחרים. ניתן להגדיר לקוד שם תצוגה חופשי (עברית/רווחים) דרך שירות ההגדרות SipAccountsSettings. האיזור מוצג במערכת הזמן-אמת ובלוגים - לפי ה extensionClass בלבד. התיאורים שמוגדרים ב SipAccountsSettings ניתנים למימוש בצד לקוח, ואצלנו הם רק נשמרים. תיאור שלוחה (extensionNote) - טקסט חופשי לזיהוי נוח של השלוחה במערכת. ייחודיות מספר שלוחה: מספר השלוחה ייחודי ביחד עם האיזור - אותו מספר שלוחה מותר במספר איזורים שונים, ובלבד שהצמד (מספר שלוחה + איזור) ייחודי. שלוחות ללא איזור נחשבות לאותו "איזור ריק". חיוג בין איזורים / נעילת שלוחות: ברירת המחדל - חיוג למספר שלוחה מחפש קודם באיזור של החשבון המחייג, ואם לא נמצא - בכל המערכת (החשבון הראשון שנוצר יקבל את השיחה). ניתן להפעיל "נעילה" (גלובלית או לפי איזור) דרך SipAccountsSettings, ואז חיוג מחוץ לאיזור של המחייג לא יגיע לאף אחד - גם בחיוג לפי מספר שלוחה וגם בחיוג ישיר לפי מספר חשבון מלא. יצירת חשבון הפקודה היא - CreateSipAccount הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string extNumber אפשר לציין מספר שלוחה. לא חובה. מספר שלוחה יכול להיות בין 200 ל10000. int extensionClass איזור שלוחה. לא חובה. קוד באותיות אנגלית/ספרות/-/_ בלבד (ראה מאפיינים למעלה). string extensionNote תיאור שלוחה חופשי. לא חובה. string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK accountID string שם המשתמש שם החשבון שנוצר. accountNumber int מספר החשבון במערכת (לא מספר שלוחה) PASS string הסיסמה של החשבון להתחברות אם צוין extNumber יחד עם extensionClass, הייחודיות נבדקת על הצמד - אם המספר כבר תפוס באותו אזור תוחזר שגיאה. אם extensionClass מכיל תווים לא חוקיים תוחזר שגיאה. קבלת רשימת החשבונות במערכת הפקודה היא - GetSipAccountsInCustomer הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK accounts array מערך חשבונות accountLimit int כמות החשבונות שהלקוח יכול ליצור במערכת 6 מערך החשבונות מאפיין סוג הסבר דוגמא id string שם המשתמש של החשבון accountNumber int מספר חשבון במערכת customerExtension int מספר שלוחה, אם מוגדר extensionClass string|null איזור שלוחה (קוד), אם מוגדר "floor1" extensionNote string|null תיאור שלוחה חופשי, אם מוגדר transport string סוג התקשורת המותרת בחשבון. transport-udp \ transport-wss callerid string מערכת לחיוב יחידות specialCallerID string זיהוי מיוחד להוצאת שיחות password string סיסמה להתחברות בsip created_date string תאריך יצירה של החשבון שם התצוגה של האיזור (התרגום) אינו מוחזר כאן - הוא נשמר בהגדרות (SipAccountsSettings). הערך extensionClass הוא תמיד הקוד הגולמי, ניתן לעשות את החיבור בינהם בצורה נפרדת, כמו שהוסבר. שינוי התעבורה המותרת בחשבון - UDP \ WSS מאפשר לשנות את סוג התעבורה המותרת. תיתן להתחבר לחשבונות הsip עם תקשורת של UDP או עם חיבור לwebsocet של שרת הסיפ, למשל כדי להטמיע את השירות בדפדפן על ידי פרוטוקול webRTC למשל בשימוש עם ספריית jssip. הכתובת של שרת הsip להתחברות עם websocket היא wss://sip.yemot.co.il:8089/ws, החיבור הוא על בחיבור מאובטח בלבד (wss://). הפקודה היא - SipToWss | SipToUdp הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string accountNumber מספר החשבון, אם לא צוין מוגדר על החשבון הראשון int מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK הגדרת זיהוי יוצא קבוע מאפשר להגדיר את הזיהוי היוצא של החשבון מיותר לציין, שזה יעבוד רק אם המספר מאושר במערכת או שהוא מספר משנה + מספר ישראלי תקין. הפקודה היא - EditCallerIdInSipAccount הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string accountNumber מספר חשבון int callerId זיהוי יוצא string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK ניתן לבקש זיהוי יוצא מיוחד גם בעת השיחה עצמה ללא שינוי בהגדרות החשבון על ידי צירוף של header בשם X-YemotCallerId ל INTIVE של השיחה היוצאת. במקרה של סתירה בין המופיע בהגדרות החשבון להגדרות השיחה הנוכחית, הגדרות השיחה יגברו. מחיקת חשבון הפקודה היא - DeleteSipAccount הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string accountNumber מספר החשבון למחיקה כמספר, או מערך של מספרי חשבונות sip למחיקה. int / array מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK affected_rows int מספר חשבונות הsip שנמחקו ניהול פרטי שלוחה (מספר / איזור / תיאור) הפקודה היא - SipExtensionManagement מספר השלוחה, האיזור והתיאור נשמרים יחד בפעולה אחת (הייחודיות של מספר השלוחה תלויה באיזור, ולכן הם נשמרים כיחידה אחת). הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string action פעולה לביצוע. Get לקבלת הפרטים ללא שינוי. Set לשמירה/עדכון. string accountNumber מספר חשבון. ברירת מחדל: החשבון הראשון. int extNumber מספר שלוחה. לא חובה בפעולת Get. בפעולת Set - אם לא צוין, מספר השלוחה יימחק (האיזור והתיאור יישמרו). int extensionClass איזור שלוחה (קוד). רלוונטי רק ל-Set. שליחת ערך ריק מוחקת את האיזור. string extensionNote תיאור שלוחה חופשי. רלוונטי רק ל-Set. שליחת ערך ריק מוחקת את התיאור. string מענה בעת הצלחה (זהה ל-Get ול-Set) מאפיין סוג הסבר responseStatus string סטטוס הפעולה (OK) extNumber int|null מספר השלוחה (הערך המעודכן בפעולת Set) extensionClass string|null קוד האיזור extensionNote string|null תיאור השלוחה אכיפת ייחודיות: אם צוין extNumber והצמד (מספר שלוחה + איזור) כבר תפוס - תוחזר שגיאה. אם extensionClass מכיל תווים לא חוקיים (משהו מלבד אותיות אנגלית/ספרות/-/_) - תוחזר שגיאה. הגדרות כלליות לחשבונות ה-SIP הפקודה היא - SipAccountsSettings ניהול הגדרות כלליות למערכת, הנשמרות כאובייקט JSON יחיד. כרגע יש שתי הגדרות: טבלת תרגומי איזורים (שם תצוגה חופשי לכל קוד extensionClass), ומדיניות חיוג בין איזורים ("נעילת שלוחות"). ההגדרות הן ברמת המערכת (default) עם אפשרות לעקיפה לפי איזור (byClass). הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string action Get לקבלת ההגדרות, Set לשמירה. string settings רק ב-Set. אובייקט ההגדרות (או מחרוזת JSON שלו). object / string(JSON) מענה בעת הצלחה (זהה ל-Get ול-Set) - מחזיר את ההגדרות לאחר ניקוי ואימות: מאפיין סוג הסבר responseStatus string סטטוס הפעולה (OK) settings object אובייקט ההגדרות (ראה מבנה למטה) מבנה אובייקט settings מומלץ תמיד לפנות ל Get ולשנות את המערך הקיים - כדי לא למחוק בטעות הגדרות שיתכן שלא מתועדות. מאפיין סוג הסבר version number גרסת מבנה (כרגע 1) extensionClassLabels object מפה { "<קוד איזור>": "<שם תצוגה חופשי>" }. קוד האיזור חייב להיות אותיות אנגלית/ספרות/-/_ בלבד. שם התצוגה מיושם בצד הלקוח בכל מקום שבו מוצג האיזור. crossZoneDialing.default boolean ברירת מחדל גלובלית. true = מותרת זליגה בין איזורים (ברירת המחדל). false = נעול - חיוג רק בתוך האיזור של המחייג. crossZoneDialing.byClass object עקיפה לפי איזור: { "<קוד איזור>": true/false } (true = מותר, false = נעול). גובר על ה-default עבור אותו איזור בלבד. משמעות הנעילה false: חשבון באיזור נעול יכול לחייג (במספר שלוחה או במספר חשבון מלא) רק לחשבונות באותו איזור - כאילו האיזור הוא מערכת נפרדת; חיוג לאיזור אחר לא יגיע לאף אחד. בכל מקרה חיוג פנימי מוגבל תמיד לחשבונות של אותו לקוח. כאשר זליגה מותרת true: חיוג למספר שלוחה מחפש קודם באיזור של המחייג, ואם לא נמצא - בכל המערכת (החשבון הראשון שנוצר עם אותו מספר שלוחה זוכה). ערכים לא חוקיים (קוד איזור עם תווים אסורים, טיפוס שגוי, שם תרגום ריק וכו') מסוננים בעת השמירה ואינם נשמרים, ולא יגרמו לשגיאה בכל הקריאה. דוגמה לתגובה: { "responseStatus": "OK", "settings": { "version": 1, "extensionClassLabels": { "floor1": "קומה 1", "jerusalem": "שירות לקוחות ירושלים" }, "crossZoneDialing": { "default": true, "byClass": { "jerusalem": false } } } } בדוגמה: זליגה מותרת בכלל המערכת, פרט לאיזור jerusalem שנעול. לאיזורים הוגדרו שמות תצוגה בעברית. מידע טכני נוסף על קבלת שיחות לחשבון SIP בINVITE שמגיע מימות המשיח ללקוח בכל שיחה יש 2 header שנוספים בכל שיחה. X-Yemot-Path = מספר השלוחה שממנה הגיע השיחה. X-Yemot-CallID = מזהה השיחה. ניתן להשוות את זה עם מודול תור בשימוש עם queue_api_send=yes, שם זה מגיע לשרת בערך YemotCallID. שינוי שימוש (usage) של מספר משנה הפקודה היא - SetSecondaryDidUsageDescription הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string secondaryDidId מזהה המספר משנה. מתקבל במערך המספרים המשניים ב GetCustomerData int newUsage שימוש חדש, כפי המוסבר מטה. string ניתן לשנות שימוש של מספר משנה לאחד משתי הקידומות האלה: sip:[0-9] goto:/[A-Za-z0-9א-ת/] בנוסף, עם השימוש הישן הוא לא משהוא שאפשר לבחור אותו לא יתאפשר בכלל לשנות את השימוש. הסבר על שימוש sip:X: מאפשר לשייך מספר משנה למספר חשבון sip במערכת, כך שבחיוג ישיר למספר המשנה יגיעו לחשבון הsip. למשל, כדי לשייך לחשבון מספר 5 של המערכת יש לכתוב sip:5. גם ציון מספר שלוחה אפשרי ויחייג למספר השלוחה. האפשרות תעבור רק בשרתים תומכי sip. הסבר על שימוש goto:/: מאפשר לשייך מספר משנה לשלוחה ספציפית במערכת - למשל, כדי לשייך לשלוחה 1/20/11 יש לכתוב goto:/1/20/11. מענה בעת הצלחה: מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK status bool הצלחה ture קבלת מידע כללי על תיקיה (שלוחה) הפקודה היא GetIVR2DirStats הפרמטרים הנדרשים פרמטר תיאור הערות token טוקן חובה path נתיב תיקייה חובה. לדוגמה: / עבור שלוחה ראשית. 1 עבור שלוחה 1 ext/1 עבור שלוחה ext/1 מאפייני תגובת השרת מאפיין סוג הסבר type string סוג השלוחה thisPath string נתיב תיקייה נוכחית parentPath string נתיב תיקיית אב dirsCount int כמות תיקיות בשלוחה filesCount int כמות קבצים בשלוחה contentFilesCount int כמות קבצי שמע בשלוחה minFile object מידע על קובץ השמע הנמוך בשלוחה maxFile object מידע על קובץ השמע הגבוה בשלוחה מאפייני קובץ שמגיעים באובייקטים minFile/maxFile מאפיין סוג הסבר exists boolean האם התיקייה/קובץ קיימים name string שם התיקייה/קובץ uniqueId string מזהה ייחודי לתיקייה/קובץ what string נתיב תיקייה/קובץ fileType string סוג תיקייה/קובץ size int גודל קובץ (בבתים) mtime string תאריך שינוי אחרון duration אורך (בדקות) durationStr string אורך בפורמט mm:ss customerDid string מספר מערכת בה נוצר הקובץ meta string אובייקט המכיל מיגע נוסף על הקובץ date string זמן יצירת קובץ dd/mm/yyyy hh:mm source string מקור הקובץ phone string טלפון יוצר הקובץ ip string כתובת IP של מעלה הקובץ ניהול תור אונליין שימו לב, ניהול התור אונליין אפשרי לשיחות ממתינות בתור בלבד. את הממתינים בתור מקבלים בשירות GetQueueRealTime - לכל ממתין יש מזהה שיחה. הפקודה היא - QueueManagement שימו לב, שירות זה מקבל מערך. לצורך זה ניתן לפנות אליו רק בPOST עם json בbody. בכל פניה יש לצרף: פרמטר תיאור סוג token טוקן string queuePath מיקום התור. זהה לצורה שבה שולחים שם תור ב GetQueueRealTime string callIds מערך מזהי שיחות תור (מתקבל גם ב GetQueueRealTime במערך הממתינים array action פעולה לביצוע string moreData הוראות נוספות - רשות string פעולות: הוצאה מהתור - kick הפעולה היא - kick הפרמטרים הנדרשים בנוסף פרמטר תיאור סוג moreData ניתן לציין בפרמטר זה שלוחה להעברת המשתמש היוצא. הפרמטר רשות. כדי להעביר למשל לשלוחה 1 יש לציין: GOTO:/1 string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK status object סטטוס פעולות, באופן שהkey הוא מזהה השיחה והvalue הוא הסטטוס. דוגמא לתגובה מלאה: { "responseStatus": "OK", "yAfastVersion": "6.6.20", "status": { "805c3b221d4b76bb53769aac9e2c57c1": "Call not found", "f6657b78a2f35d6d04dd203400828362": "OK" } } השהיית נציג / החזרת נציג לפעילות בפעולת אלה לא צריך לשלוח callIds, אלא רק queuePath הפעולה היא - pause - השהיית נציג הפעולה היא - unpause - ביטול נציג מהשהייה הפרמטרים הנדרשים בנוסף פרמטר תיאור סוג agent שם הנציג. זהה לשם שמגיע ב GetQueueRealTime['members'][?]['agent'] string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK [[topic:post-is-deleted]] הפעלת קמפיין הנכנס לשלוחה במערכת השירות מאפשר להפעיל קמפיין לרשימת מספרים - שבעת המענה לשיחה השיחה תיכנס למערכת לשלוחה מסויימת. הפקודה היא - CallExtensionBridging הפרמטרים הנדרשים פרמטר תיאור סוג token טוקן string phones רשימת מספרים. ראה להלן צורות תמיכה ברשימת מספרים string / json ivrPath שלוחה במערכת, למשל: ivr2:/1/100 - יכניס לשלוחה 1/100 string callerId זיהוי שיחה יוצא, ברירת מחדל זיהוי של המערכת/רשימת התפוצה שנבחרה string callsTimeOut זמן חיוג מקסימלי - בשניות, ברירת מחדל 30 שניות, מקסימום 35 שניות. number תמיכה בצורת רשימת מספרים: פרמטר phones יכול להכיל רשימת מספרים בדומה לשירות RunTzintuk: כאשר הפניה היא בGET או בPOST שהוא לא (Content-Type: application/json) יש 3 אפשריות: רשימה מפורשת עם הפרדה של : בין מספר למספר מספרים מתוך רשימת תפוצה קיימת על ידי ציון tpl:XX כשאשר במקום הXX יש לכתוב את מזהה רשימת התפוצה. צינתוק לרשימת צינתוק חינמי (שימו לב הערה למטה בנוגע לאפשרויות שליחה לכמה רשימות צינתוקים חינמיים) על ידי ציון tzl:XX כאשר במקום XX יש לכתוב את מספר הרשימה במערכת. כאשר הפניה היא json - ניתן גם לשלוח את רשימת המספרים כמערך: { "phones": [ "0510000", "0510001", "0510002", "0510003" ] } או כמערך עם אובייקטים לצורך ציון זיהוי יוצא ספציפי לכל מספר: { "phones": [ { "phone": "0511111", "callerId": "077313" }, { "phone": "05111333", "callerId": "07731344" } ] } או על אותו הדרך עם קבוצות: "phones": [ { "phones": [ "0511111", "051111221" ], "callerId": "077313" }, { "phones": [ "0511111999" ], "callerId": "077414" } ] חיוב יחידות: על כל מספר שנכנס לחיוג יש חיוב של 0.1 יחידות, על כל שיחה שנענת, יש חיוב של יחידה לדקה, עם מינמום חיוב של 0.5 יחידות. שימו לב, ניתן להפעיל בשירות זה קמפיין עם עד 500 מספרים. מענה בעת הצלחה: פרמטר סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK module string המודול של השלוחה שהשיחות יגיעו אילה menu callerId string זיהוי השיחה היוצאת 0770770770 callsCount int כמות מספרים שנכנסו לקמפיין 6 bilingPerCall int חיוב לכל שיחה (משוער) 1 errors object מערך של מספרים שלא נכנסות לחיוג ושגיאה { "0510001": "not Vaild", "0510002": "not Vaild", "0510003": "not Vaild" } callsTimeout int זמן שיחה יוצאת כפי שנקלט 30 campaignId string מזהה קמפיין במערכת הקמפיינים YA-1-0770770770-Yemot-1695290243349441 קבלת רישומים לחשבון SIP - SipGetContexts הפקודה היא - SipGetContexts בכל פניה יש לצרף: פרמטר תיאור סוג token טוקן string accountNumber ניתן לציין מספר חשבון sip, באם ריק, זה החשבון הראשון string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK contexts array טבלאת רישומים מערך, יבואר מטה מבנה האובייקט אובייקט במערך contexts בעיקרון, לא אמור להיות יותר מרישום אחד פעיל. מאפיין סוג הסבר דוגמא expiration_time string זמן התפוגה של הרישום, באם השלוחה שולח keep_alive - הזמן מתארך 2024-06-04 15:43:38 uri string הURI לחיוג בפועל לשיחה נכנסת sip:0773137770@192.168.1.99:5060 user_agent string הפלטפורה שמחוברת Yealink SIP-T29G via_addr string ניתוב דרך. זה יכול להיות גם כתובת פנימית של השלוחה 192.168.1.110 via_port string ניתוב בפורט 5060 קבלת חשבונות הSIP במערכת בדגש על בדיקה אם הם רשומים - GetSipAccountsRegisteredStatus הפקודה היא - GetSipAccountsRegisteredStatus בכל פניה יש לצרף: פרמטר תיאור סוג token טוקן string מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK accounts array טבלאת חשבונות מערך, יבואר מטה מבנה האובייקט אובייקט במערך accounts מאפיין סוג הסבר דוגמא userName string שם המשתמש של החשבון 0773137770 createdDate string זמן יצירת החשבון 2021-06-26 23:00:00 registered bool האם רשום? true קבלת זיהויים מאושרים במערכת להוצאת שיחות/סמסים הפקודה היא - GetApprovedCallerIDs כל המספרים הם במבנה e164 בכל פניה יש לצרף: פרמטר תיאור הערות token טוקן מענה בעת הצלחה מאפיין סוג תיאור דוגמה responseStatus string סטטוס הפעולה OK call object זיהויים לשיחות יבואר מטה מבנה האובייקט sms object זיהויים לשיחות יבואר מטה מבנה האובייקט אובייקט call מאפיין סוג תיאור mainDid string המספר הראשי של המערכת secondaryDids array מערך מספרי משני callerIds array מערך זיהויים מאושרים חיצוניים אובייקט sms מאפיין סוג תיאור smsId string זיהוי הסמסים (אם יש זיהוי סמסים, זה אומר שסמסים יוצאים רק איתו, אם לא, ניתן לבחור בכל זיהוי שיחה גם לסמס) allowText bool האם מאושר זיהויים טקסט בדיקת זיהוי האם הוא מאושר לשימוש בשיחה/סמס הפקודה היא - IsCallerIDApproved בכל פניה יש לצרף: פרמטר תיאור הערות token טוקן callerId זיהוי לבדיקה serviceType סוג שירות לבדיקה. ברירת מחדל שיחות sms אוcall מענה בעת הצלחה מאפיין סוג תיאור דוגמה responseStatus string סטטוס הפעולה OK parsedCallerId string המספר כE164 +972773137770 isApproved bool האם מאושר reason string סיבה INVALID_CALLER = זיהוי לא תקין / SMS_ID = נעילת זיהוי סמסים / INCLUDE = רשימת מספרים מורשים ניהול בקשות לשיחה חוזרת (מודול תור) הפקודה היא - QueueCallBack בכל פנייה יש לצרף: פרמטר תיאור סוג token טוקן string action פעולה לביצוע string פעולות: קבלת רשימת התורים הפעולה היא - getQueues מענה בעת הצלחה: מאפיין סוג הסבר דוגמה responseStatus string סטטוס הפעולה OK callbackList array רשימת התורים [{...}] דוגמת אובייקט של תור: מאפיין סוג הסבר דוגמה id integer מזהה התור 110 path string השלוחה שבו הלקוח נרשם "/1" queue_path string שלוחת התור "/1" caller_id string זיהוי לשיחה היוצאת 0773137770 callback_times string זמני התור weekDay=1-5&monthDay=&month=&year=*&time=09:15-16:30&open=true max_waiting_time integer זמן מקסימלי לחכות בתור (בדקות) 120 max_waiting_customers integer מספר הלקוחות המרבי בתור 1 waiting_customers integer מספר הלקוחות הממתינים כעת בתור 0 open boolean אם התור פתוח או לא 1 קבלת רשימת השיחות הממתינות לשיחה חוזרת הפעולה היא - getList פרמטרים נדרשים: פרמטר תיאור סוג id מזהה התור integer מענה בעת הצלחה: מאפיין סוג הסבר דוגמה responseStatus string סטטוס הפעולה OK callbackList array רשימת השיחות הממתינות [{...}] דוגמת אובייקט של שיחה: מאפיין סוג הסבר דוגמה id integer מזהה השיחה 84299 calling_number string מספר המתקשר "0533137770" status string סטטוס השיחה "waiting" date_time string תאריך ושעת השיחה "2025-05-14T14:37:11.000Z" attempts integer מספר הניסיונות לבצע שיחה חוזרת 0 last_attempt string מועד הניסיון האחרון null מחיקת שיחה הפעולה היא - removeNumber פרמטרים נדרשים: פרמטר תיאור סוג id מזהה השיחה integer מענה בעת הצלחה: מאפיין סוג הסבר דוגמה responseStatus string סטטוס הפעולה OK callbackList string הודעת הצלחה OK קבלת הסמסים שהתקבלו למערכת הפקודה היא - GetIncomingSms בכל פניה יש לצרף: פרמטר תיאור הערות token טוקן limit הגבלת תוצאות ברירת מחדל 100 תוצאות. מקסימום 3000. startDate מתאריך למשל: 2025-06-01 19:48:01 endDate עד תאריך למשל: 2025-06-03 00:00:00 מענה בעת הצלחה מאפיין סוג תיאור דוגמה responseStatus string סטטוס הפעולה OK rows array מערך סמסים שהתקבלו יבואר מטה מבנה סמס במערך rows מאפיין סוג תיאור דוגמה source string מקור 972773137770 destination string יעד 972773137770 message string תוכן ההודעה הודעת בדיקה receive_date string תאריך קבלת ההודעה 2025-06-03 19:58:03 ניהול/ביצוע אימות דו-שלבי הפקודה היא - MFASession השירות מאפשר לנהל כמה חלקים שקשורים לאימות הדו-שלבי, לבצע אימות דו שלבי בחיבור הנוכחי, לנהל שיטות התחברות, ועוד. בכל פניה יש לצרף: פרמטר תיאור סוג token טוקן string action פעולה לביצוע string שימו לב: לא כל הפעולות אפשריות בכל שלב. יבואר בכל פעולה השלב שניתן לפנות אליה. פעולות: בדיקת האם הסשן עבר אימות דו-שלבי - isPass הפעולה היא - isPass כל סשן חייב להיות במצב ״pass״ של מנגנון האימות הדו-שלבי, אחרת עליו לבצע אימות דו-שלבי בפועל - לפני היכולת להשתמש עם כל שירות אחר בAPI. כאשר סשן לא עבר אימות דו שלבי - הוא יכול לגשת רק לשירות MFASession - וגם בו - לחלקים מסויימים. הדברים יבוארו בהמשך. דרישה מקדימה לשימוש בשירות זה: אין. מצב שבו השירות לא זמין: אין. פירוט מענה: מאפיין סוג הסבר דוגמא הערה responseStatus string סטטוס הפעולה OK isAvailable boolean האם יש יכולת לבצע אימות דו-שלבי - מבחינת שיש שיטות אימות זמינות. true כאשר סשן לא עבר אימות - ואין אפשרות טכנית לאמת אותו - לא ניתן לבצע שום פעולות. isPass boolean האם הסשן עבר אימות בהצלחה true לאחר שהסשן אומת - ישנם פעולות שלא ניתן לבצע בגלל זה, אבל ניתן להשתמש בסשן לטובת גישה לכל השירותים (שלא דורשים אימות קשיח - יבואר בהמשך). passReason string סיבת מעבר מנגנון האימות הדו שלבי. MFA_PASSED ישנם הרבה סיבות למה הסשן עבר את מנגנון האימות הדו שלבי - ניתן לראות בטבלא את הסיבות האפשריות. isPassInThisSession boolean האם הסשן עבר אימות בפועל בחיבור הנוכחי (אימות קשיח) true בהמשך לפרמטר מעלה - ישנם מצבים שבו הסשן ״עבר״ את מנגנון האימות הדו-שלבי - בגלל סיבות ש״פוטרות״ אותו מהצורך לבצע אימות דו שלבי בפועל - אבל לא בוצע ממש באותו הסשן אימות דו-שלבי. ישנם פעולות שדורשות ״אימות קשיח״ = רמה חזקה יותר של אימות - וזה דורש שיבוצע אימות דו-שלבי ממש באותו החיבור ממנו רוצים לגשת לשירותים האלה. פירוט סיבות מעבר אימות: כאמור, יש הבדל בין ״מעבר במנגון האימות הדו-שלבי״ לבין ״ביצוע אימות דו שלבי בפועל״. בטבלא זו ניתן לראות פירוט של סוגי הסיבות שניתן לעבור בגינם במנגנון האימות - את הפירוט שלהם. סיבת מעבר הסבר הערה INACTIVE_SYSTEM מנוע האימות הדו שלבי לא פעיל או לא זמין WAIT_TO_BLOCK_DATE תאריך אכיפת השירות לא הגיע במצב שבו מגדירים זמן מסויים ממנו חובה לעבור אימות דו שלבי - כל עוד הזמן לא הגיע - כל הסשנים עוברים ״בהצלחה״ במנגנון - כי תאריך אכיפת השירות לא הגיע. INIT_WHITELIST_IPS כתובת IP ברשימה לבנה כתובת הIP שממנה בוצעה הבקשה למעבר - קיבלה אישור כי היא נמצאת ברשימה הלבנה. INIT_MASTER_LOGIN_WHITELIST_IPS כתובת IP ברשימה לבנה בהתחברות מאסטר כתובת הIP שממנה בוצעה הבקשה למעבר - קיבלה אישור כי היא נמצאת ברשימה הלבנה כאשר מתבצע התחברות עם סיסמת מאסטר של ריסיילר. HAVE_ACTIVE_TRUST_TOKEN בוצע מעבר על ידי אסימון ״זכור אותי״ INHERITED_FROM_ORIGINAL_SESSION ירושה מסשן קודם כל שהוא למשל, בעת מעבר מהאתר ניהול הרגיל לממשק חיצוני - נוצר טוקן API שסיבת המעבר שלו היא שכבר בוצע מעבר בסשן קודם. MFA_PASSED בוצע אימות בפועל בחיבור הנוכחי אין להסתמך על הסיבה בלבד בנושא ״אימות קשיח״ - אלא להסתמך על isPassInThisSession SPECIAL_VALID_TOKEN טוקן שנוצר עם פטור מאימות מסיבה מיוחדת ניסיון ביצוע אימות - try הפעולה היא - try הפעולה של מעבר אימות דו-שלבי בסשן מתבצעת פעם אחת - עד לסימון הסשן כסשן שעבר את המנגנון. כאשר סשן לא עבר אימות - ניתן לפנות לשירות זה על מנת לנסות להעביר אותו. למשל, אם הפניה תגיע מכתובת IP מאושרת, או עם אסימון ״זכור אותי״ - הסשן יעבור אימות. דרישה מקדימה לשימוש בשירות זה: אין. מצב שבו השירות לא זמין: לאחר מעבר שקיבל החלטת ״עבר״ (isPass: true). פירוט מענה (מענה זהה ל isPass - רק שהנתונים יהיו לאחר ביצוע ניסיון אימות): ניסיונות מרובים לבצע מעבר ב try שלא יצליחו - כלומר שלא יהיה מעבר בהם - יובילו לחסימת המערכת כולה לעבור אימות דו שלבי. כל מערכת זכאית למספר מסויים של מעברים בדקה/שעה/יום וכו. מערכת שצריכה לעבור יותר מידי הרבה פעמים במנגנון - כלומר - מערכת שיוצרת יותר מידיי הרבה סשנים בפרק זמן קצר מידיי - תחסם מלעבור במנגנון ולא תוכל להשתמש בסשנים חדשים שנוצרים. קבלת שיטות אימות זמינות - getMFAMethods הפעולה היא - getMFAMethods פעולה זו יכולה להחזיר נתונים שונים לפני ואחרי ביצוע אימות קשיח. דרישה מקדימה לשימוש בשירות זה: אין. מצב שבו השירות לא זמין: אין. פירוט מענה: מענה זהה ל isPass - בתוספת מערךmfaMethods עם שיטות האימות הזמינות. להלן פירוט של אובייקט מתוך המערך: מאפיין סוג הסבר דוגמא הערה ID int מזהה שיטה 1 מזהה השיטה אינו קבוע - ונבנה בצורה דינמית בעת הבקשה. צריך לפנות איתו בשביל לבצע אימות - אבל אי אפשר להתסמך לאורך זמן שהוא יהיה אותו הדבר. STATUS string סטטוס שיטת האימות ACTIVE שיטה יכולה להיות ACTIVE = פעילה, או PENDING = ממתינה. שיטה ממתינה לאימות לא יכולה לשמש לטובת ביצוע אימות קשיח. יש לאמת אותה קודם. MFA_METHOD_ID int מזהה שיטה קבוע 6598 בניגוד לשדה ID - מזהה השיטה שפה הוא קבוע, אבל זה אומר שהוא נוסף בצורה יזומה - ולא מוצע בצורה אוטמאטית, ויתכן שיהיה ריק. NIKE string תיאור מקור שיטת האימות RESET_MAIL יכול להיות: CREATE_PHONE = המספר שיצר את המערכת. RESET_MAIL המייל לשחזור. PROFILE הגיע מהפרופיל הקבוע. MASTER_LOGIN הגיע מהתחברות מאסטר של ריסיילר. BY_CUSTOMER נוסף על ידי הלקוח. NOTE string תיאור חופשי שנכתב בעת הוספת השיטה הטלפון בבית SEND_TYPE סוגי שליחות אפשריות מערך של שיטות שליחת אימות אפשריות ["CALL","SMS"] יכול להיות: CALL = בשיחה. SMS בהודעת סמס. EMAIL בהודעה למייל. ישנם שיטות שלא יהיה אפשרי לשלוח עבורם בצורה יזומה אימות, והמערך עבורם יהיה ריק. VALUE string היעד של השיטה +972773137770 כאשר לא בוצע אימות קשיח - היעד לא יוצג במלואו ויראה למשל: shmu•••@•••.co.il כאשר מספר ה• אינם משקפות את האורך האמיתי של הערך. EXPIRED_DATE string זמן תפוגת השיטה 2025-09-28 12:11:38 שיטות שפגו תוקף - לא יוצגו אחרי זה בכלל, ויש להוסיף ולאמת אותם מחדש. LAST_USED string הזמן האחרון שהשיטה אומתה בהצלחה 2025-09-28 12:11:38 שיטות שלא יבצעו אימות הרבה זמן - יתכן ולא יהיה זמינות בפועל או יוסרו. שליחת אימות לטובת אימות קשיח/מעבר - sendMFA הפעולה היא - sendMFA שליחת אימות יכולה להיות רלוונטית כאשר רוצים לבצע אימות קשיח בסשן שעבר את המנגנון - או במקרה שהסשן לא עבר try וחייב לבצע אימות. דרישה מקדימה לשימוש בשירות זה: אין. מצב שבו השירות לא זמין: לאחר ביצוע אימות קשיח (isPassInThisSession: true). בכל פניה יש לצרף: פרמטר תיאור סוג הסבר mfaId מזהה שיטת האימות אליה רוצים לשלוח אימות int mfaSendType סוג האימות הרצוי - מתוך SEND_TYPE string lang שפת שליחת האימות. string HE או EN. ברירת מחדל ישלח בעברית. autoOtpHostname כתובת ה HOST_NAME שנמצאים בו לטובת הוספה שלו בסמס string מאפשר להשתמש עם OTPCredential בצד לקוח. רשות. פירוט מענה: כאשר responseStatus הוא OK השיחה/סמס/מייל - נשלחו. כל שליחה חוזרת - תיצור קוד חדש - ותבטל את הקוד הקודם. לכל סשן יש בקשת אימות ממתינה אחד בלבד. שליחות רבות עלולות לחסום את המערכת ו/או את כתובת הIP מלשלוח לזמנים ארוכים מאד. בעת חסימה יופיע בפירוט הזמן שיש להמתין: { responseStatus: "Exception", message: "exception send by customer. wait 55s", file: "CustomerMFA.class.ym", Line: "590:19", yAfastVersion: "6.7.30" } כאשר בדוגמא מופיע wait 55s - 55 שניות. כאמור, הזמן יכול לעלות למספרים גבוהים מאד באם מתבצעים נסיונות רבים. ביצוע אימות בפועל לאחר שליחת אימות - validMFA הפעולה היא - validMFA דרישה מקדימה לשימוש בשירות זה: אין. מצב שבו השירות לא זמין: לאחר ביצוע אימות קשיח (isPassInThisSession: true). בכל פניה יש לצרף: פרמטר תיאור סוג הערה mfaCode קוד האימות שהתקבל string mfaRememberMe יצירת אסימון ״זכור אותי״ בעת הצלחה boolean אסימון ״זכור אותי״ שנוצר ב API ייצור רק אסימון מסוג IP. mfaRememberNote תיאור לאסימון ״זכור אותי״ החדש. string פירוט מענה: מאפיין סוג הסבר דוגמא הערה responseStatus string סטטוס הפעולה OK mfa_valid_status string האם בוצע אימות. VALID יכול להיות UNVALIDאו VALID , או OVERTRY - שאומר שיש צורך לשלוח אימות חדש- כי עברו מספר הנסיונות האפשריים. mfa_valid_trys int כמות הפעמים שבוצע ניסיון אימות קוד 1 mfa_valid_left int כמות הפעמים שנשארו לבצע ניסיון אימות לפני שהקוד לא רלוונטי 4 mfa_valid_message string הסבר מיוחד מדוע הקוד לא אומת. validMFA not allow. over trys attempt הוספת שיטת אימות חדשה - addMethod הפעולה היא - addMethod דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין בכל פניה יש לצרף: פרמטר תיאור סוג אופציות mfaNewType סוג שיטה string מייל - EMAIL או טלפון - PHONE mtaNewValue הערך של השיטה החדשה string המייל או הטלפון. mtaNewValidNote תיאור של השיטה החדשה string למטרות נוחות בלבד. לא חובה. newExpiredDate זמן תפוגה של השיטה string תאריך תפוגה בתבנית YYYY-MM-DD HH:mm:ss. שימו לב: ניתן להוסיף עד 20 שיטות אימות ניתן להוסיף מספרי טלפון של המדינות הבאות: ישראל, ארה״ב, קנדה. פירוט מענה: כאשר responseStatus הוא OK השיטה נוספה כממתינה לאימות, כאשר בפרמטר methodId מצויין מזהה השיטה לטובת האימות שלה/מחיקה שלה בעתיד. אימות או שליחת אימות חוזר של שיטת אימות חדשה - reValidMethod הפעולה היא - reValidMethod דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין בכל פניה יש לצרף: פרמטר תיאור סוג הסבר נוסף mfaId מזהה שיטת האימות string מתקבל כתגובה אחרי היצירה בפרמטר methodId, או בפרמטר MFA_METHOD_ID בפעולה getMFAMethods בתוך מערך mfaMethods כמו שהוסבר למעלה. mfaSendType סוג האימות הרצוי - מתוך SEND_TYPE string lang שפת שליחת האימות. string HE או EN. ברירת מחדל ישלח בעברית. autoOtpHostname כתובת ה HOST_NAME שנמצאים בו לטובת הוספה שלו בסמס string מאפשר להשתמש עם OTPCredential בצד לקוח. רשות. פירוט מענה: כאשר responseStatus הוא OK הקוד לאימות נשלח. ביצוע אימות של שיטה חדשה לאחר שליחת אימות - validMethod הפעולה היא - validMethod דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין בכל פניה יש לצרף: פרמטר תיאור סוג הסבר נוסף mfaId מזהה שיטת האימות string מתקבל כתגובה אחרי היצירה בפרמטר methodId, או בפרמטר MFA_METHOD_ID בפעולה getMFAMethods בתוך מערך mfaMethods כמו שהוסבר למעלה. mfaCode קוד האימות שהתקבל string פירוט מענה: זהה לתגובת בקשה אימות בפועל - validMFA. מחיקת שיטת אימות - deleteMethod הפעולה היא - deleteMethod דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין ניתן למחוק שיטות פעילות או ממתינות לאימות, אך לא ניתן למחוק שיטות שמגיעות מהפרופיל/רייסילר/מספר שפתח וכו. בכל פניה יש לצרף: פרמטר תיאור סוג הסבר נוסף mfaId מזהה שיטת האימות string מתקבל כתגובה אחרי היצירה בפרמטר methodId, או בפרמטר MFA_METHOD_ID בפעולה getMFAMethods בתוך מערך mfaMethods כמו שהוסבר למעלה. פירוט מענה: כאשר responseStatus הוא OK השיטה נמחקה. קבלת אסימוני ״זכור אותי״ פעילים - getMFATrustTokens הפעולה היא - getMFATrustTokens דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין פירוט מענה: בפרמטר trustTokens יש מערך אסימונים, להלן המבנה: מאפיין סוג הסבר דוגמא הערה id int מזהה אסימון 1 משמש לטובת מחיקתו trust_key_type string סוג אסימון YM_CALL2ALL_WEBSITE יכול להיות או YM_CALL2ALL_WEBSITE אסימון אימות של אתר הניהול. או CUSTOMER_IP אסימון כתובת IP. create_by string נוצר על ידי 192.168.1.1 create_date string זמן יצירה 2025-09-28 21:56:52 update_by string עודכן על ידי 192.168.1.1 עדכון אסימון מתבצע כאשר מסמנים ״זכור אותי״ עם אסימון שכבר שמור. update_date string זמן עדכון null last_use string זמן שימוש בפועל null כאשר מתבצע שימוש באסימון - ומעבר של המנוע בגללו - הזמן מתעדכן. trust_note string הערת האסימון מזמן היצירה המחשב שלי פרמטר mfaRememberNote בבקשת validMFA. מחיקת אסימון ״זכור אותי״ - deleteTrustToken הפעולה היא - deleteTrustToken דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין בכל פניה יש לצרף: פרמטר תיאור סוג הסבר נוסף trustTokenId מזהה האסימון string מתקבל בid בבקשת getMFATrustTokens. פירוט מענה: כאשר responseStatus הוא OK האסימון נמחקה. קבלת כתובות IP לבנות - getMFATrustIps הפעולה היא - getMFATrustIps דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין פירוט מענה: בערך trustIps מערך כתובות IP לבנות. שמירת כתובות IP לבנות - setMFATrustIps הפעולה היא - setMFATrustIps דרישה מקדימה לשימוש בשירות זה: לאחר ביצוע אימות קשיח (isPassInThisSession: true). מצב שבו השירות לא זמין: אין שימו לב: ניתן להוסיף עד 50 כתובות. כתובת IP לבנה תעבור MFA עם סיבה INIT_WHITELIST_IPS כפי שהוסבר למעלה. כתובת IP לבנה עדיין תצטרך לבצע אימות קשיח בשביל לקבל isPassInThisSession: true לטובת ביצוע פעולות רגישות. ניתן להוסיף כתובות IPv4 או IPv6. בכל פניה יש לצרף: פרמטר תיאור סוג הסבר נוסף trustIps רשימת כתובות IP string/array כאשר שולחים string ההפרדה תיהיה בין שורה לשורה. בשליחה מערך כל איבר זה כתובת. פירוט מענה: מאפיין סוג הסבר דוגמא הערה responseStatus string סטטוס הפעולה OK okCount int מספר הכתובות שנוספו בהצלחה 1 save boolean האם בוצע שינוי בפועל true יהיה false אם הרשימה לא השתנתה. valid_new_list array מערך הכתובות החדש errors array מערך שגיאות [ "ip: 0.192.66.2222 is not valid" ] מוניטור SIP בזמן אמת - מערכת SiP_panel שימו לב, שירות זה דורש רישיון פעיל (חבילה בתשלום מול שירות הלקוחות, או התנסות). ניתן לבדוק את מצב הרישיון גם ללא רישיון באמצעות getLicenseInfo. הפקודה היא - SipRealtimeMonitor ניתן לקרוא לשירות ב-GET (פרמטרים ב-query string) או ב-POST עם JSON ב-body. מתי חובה להשתמש ב-POST: כשמועבר פרמטר accounts (מערך) כשמועבר אחד מהפרמטרים: startDateTime, endDateTime, afterCallId בכל פניה יש לצרף: פרמטר תיאור סוג token טוקן string action הפעולה לביצוע - יבואר string פעולות: קבלת מצב הרישיון - getLicenseInfo הפעולה היא - getLicenseInfo מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK license.allowed boolean האם יש גישה לשירות true license.trial boolean האם זהו רישיון ניסיון true license.trialStart number Unix timestamp של תחילת הניסיון 1779705344 license.trialEnd number Unix timestamp של סיום הניסיון 1780310144 license.trialAvailable boolean האם ניסיון זמין להפעלה false דוגמא לתגובה כאשר השירות בניסון פעיל: { "responseStatus": "OK", "license": { "allowed": true, "trial": true, "trialStart": 1779705344, "trialEnd": 1780310144 } } דוגמא לתגובה - אין רישיון, ניסיון זמין: { "responseStatus": "OK", "license": { "allowed": false, "reason": "no_license", "trialAvailable": true } } הפעלת ניסיון חינם - startTrial הפעולה היא - startTrial מפעיל ניסיון חינם של 7 ימים. ניתן לבצע את הפעולה בכל מערכת פעם אחת בלבד!. מענה בעת הצלחה מאפיין סוג הסבר דוגמא responseStatus string סטטוס הפעולה OK trialStarted boolean האם הניסיון הופעל כעת true alreadyLicensed boolean האם כבר היה רישיון פעיל true license object פרטי הרישיון לאחר הפעלה { "responseStatus": "OK", "trialStarted": true, "license": { "allowed": true, "trial": true, "trialStart": 1779705344, "trialEnd": 1780310144 } } קבלת שיחות - getCalls הפעולה היא - getCalls שירות זה דורש רישיון פעיל. הפרמטרים הנדרשים בנוסף (אופציונליים): פרמטר תיאור סוג ברירת מחדל includeEnded כלול שיחות שהסתיימו (ended[]) בתגובה לצד הפעילות 0 או 1 0 onlyEnded החזר רק שיחות שהסתיימו, ללא שיחות פעילות 0 או 1 0 endedLimit מגבלת מספר שיחות שהסתיימו להחזיר (החדשות ביותר לפי זמן ניתוק) number 30 accounts מערך חשבונות לסינון - רק חשבונות אלו יוחזרו. מצריך POST string[] ללא סינון startDateTime סינון שיחות שהסתיימו - החזר רק שיחות שניתקו אחרי תאריך/שעה זה. מצריך POST string / number ללא סינון endDateTime סינון שיחות שהסתיימו - החזר רק שיחות שניתקו לפני תאריך/שעה זה. מצריך POST string / number ללא סינון afterCallId החזר רק שיחות שניתקו אחרי שיחה זו (לפי זמן ניתוקה). שימושי לspolling יעיל - ראה הרחבה למטה. מצריך POST string ללא פרמטר startDateTime / endDateTime - פורמטים תקינים: פורמט דוגמא תאריך ושעה (רווח) "2026-06-21 08:00:00" ISO 8601 "2026-06-21T08:00:00" ISO 8601 עם UTC "2026-06-21T08:00:00Z" Unix timestamp (שניות) 1750489200 Unix timestamp (מילישניות) 1750489200000 פרמטר afterCallId: מיועד לשימוש בסקריפטים שמבצעים שליפה כל הזמן, ואז במקום לשלוף בכל פעם את כל הרשימה, מעבירים את ה-id של השיחה האחרונה שקיבלתם - והשרת מחזיר רק שיחות שניתקו אחריה. אם ה-id כבר פג תוקף (20 דקות) - אין לי דרך לדעת מאיזה שיחה אתם רוצים ותקבלו את כל הרשימה עד endedLimit. מענה בעת הצלחה מאפיין סוג הסבר responseStatus string סטטוס הפעולה summary object סיכום מצטבר מכלל החשבונות שנבחרו accounts object המפתח הוא שם החשבון, הערך הוא נתוני החשבון license object מצורף רק כשהרישיון הוא רישיון התנסות מבנה summary: מאפיין סוג הסבר totalActive number סה"כ שיחות פעילות כרגע dialing number שיחות במצב חיוג inCall number שיחות בשיחה ממש totalCalls number סה"כ שיחות (סטטיסטיקה שבועית) totalIncoming number סה"כ נכנסות totalOutgoing number סה"כ יוצאות totalAnswered number סה"כ נענו totalMissed number סה"כ לא נענו totalAnsweredIncoming number נענו נכנסות totalAnsweredOutgoing number נענו יוצאות totalMissedIncoming number לא נענו נכנסות totalMissedOutgoing number לא נענו יוצאות totalTalkTimeSeconds number סה"כ זמן שיחה בשניות totalRecorded number סה"כ שיחות שהוקלטו מבנה כל חשבון ב-accounts: מאפיין סוג הסבר summary object סטטיסטיקות החשבון (אותם שדות כמו summary הכללי) calls array שיחות פעילות כרגע ended array שיחות שהסתיימו (רק אם includeEnded=1 או onlyEnded=1) extensionClass string|null קוד איזור השלוחה של החשבון (נכון לזמן הקריאה). null אם אין, או אם החשבון כבר נמחק. extensionNote string|null תיאור השלוחה של החשבון (נכון לזמן הקריאה). null אם אין. extensionClass הוא הקוד הגולמי. שם התצוגה (התרגום) נשמר בהגדרות (SipAccountsSettings) וצריך להיות מיושם, ככל שתרצו, בצד הלקוח / היישום שלכם. מבנה שיחה (calls / ended): מאפיין סוג הסבר דוגמא id string מזהה שיחה ייעודי "xSP-3f2a1b4c-..." account string שם חשבון ה-SIP "06558877=2" callType string סוג שיחה "IN" / "OUT" source string מספר מקור "050000000" destination string מספר יעד "0773133333=2" startTime number Unix timestamp - תחילת השיחה 1779710278 answeredTime number|null Unix timestamp - מענה (null אם לא נענה) 1779710282 endTime number|null Unix timestamp - ניתוק (null אם עדיין פעיל) null status string מצב השיחה "dialing" / "in_call" / "ended" hasRecord boolean האם יש הקלטה true recordPath string|null נתיב ההקלטה "ivr2://Trash/SIPRecord/DID-..." history array רצף אירועי השיחה מבנה history event: מאפיין סוג הסבר דוגמא event string סוג האירוע "start" / "answer" / "transfer" / "end" time number Unix timestamp 1779710278 to string יעד ההעברה (רק באירוע transfer) "05200000" דוגמא לתגובה מלאה: { "responseStatus": "OK", "summary": { "totalActive": 2, "dialing": 1, "inCall": 1, "totalCalls": 4395, "totalAnswered": 219, "totalMissed": 4176, "totalIncoming": 4380, "totalOutgoing": 15, "totalAnsweredIncoming": 211, "totalAnsweredOutgoing": 8, "totalMissedIncoming": 4169, "totalMissedOutgoing": 7, "totalTalkTimeSeconds": 13515, "totalRecorded": 16 }, "accounts": { "0888888888=2": { "summary": { "totalActive": 1, "dialing": 0, "inCall": 1, "totalCalls": 250, "totalAnswered": 8, "totalMissed": 242, "totalAnsweredIncoming": 7, "totalAnsweredOutgoing": 1, "totalMissedIncoming": 240, "totalMissedOutgoing": 2, "totalTalkTimeSeconds": 480, "totalRecorded": 1 }, "calls": [ { "id": "xSP-3f2a1b4c-5d6e-7f8a-9b0c-1d2e3f4a5b6c", "account": "0888888888=2", "callType": "IN", "source": "050000000", "destination": "0888888888=2", "startTime": 1779710278, "answeredTime": 1779710282, "endTime": null, "status": "in_call", "hasRecord": true, "recordPath": "ivr2://Trash/SIPRecord/DID-xxxx-Phone-xxxx-routing-0888888888=2-Date-2026-05-25-19-00-00.wav", "history": [ { "event": "start", "time": 1779710278 }, { "event": "answer", "time": 1779710282 }, { "event": "transfer", "time": 1779710290, "to": "079999999" } ] } ], "ended": [ { "id": "xSP-7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d", "account": "0888888888=2", "callType": "IN", "source": "052111111", "destination": "0888888888=2", "startTime": 1779709000, "answeredTime": null, "endTime": 1779709045, "status": "ended", "hasRecord": false, "recordPath": null, "history": [ { "event": "start", "time": 1779709000 }, { "event": "end", "time": 1779709045 } ] } ] } } } קבלת שיחות לחשבון ספציפי - getCallsByAccount הפעולה היא - getCallsByAccount שירות זה דורש רישיון פעיל. הפרמטרים: פרמטר תיאור סוג חובה account שם חשבון ה-SIP string כן includeEnded כלול שיחות שהסתיימו (ended[]) 0 או 1 לא (ברירת מחדל: 0) startDateTime סינון שיחות שהסתיימו - החזר רק שיחות שניתקו אחרי תאריך/שעה זה. מצריך POST string / number לא endDateTime סינון שיחות שהסתיימו - החזר רק שיחות שניתקו לפני תאריך/שעה זה. מצריך POST string / number לא afterCallId החזר רק שיחות שניתקו אחרי שיחה זו. מצריך POST string לא ראה הסבר מפורט על הפרמטרים startDateTime, endDateTime, afterCallId בסעיף getCalls למעלה - ההתנהגות זהה. מענה בעת הצלחה מאפיין סוג הסבר responseStatus string סטטוס הפעולה account string שם החשבון שנשאל summary object סטטיסטיקות החשבון calls array שיחות פעילות ended array שיחות שהסתיימו (רק אם includeEnded=1) extensionClass string|null קוד איזור השלוחה של החשבון (נכון לזמן הקריאה). null אם אין, או אם החשבון כבר נמחק. extensionNote string|null תיאור השלוחה של החשבון (נכון לזמן הקריאה). null אם אין. { "responseStatus": "OK", "account": "09948949494=2", "summary": { "totalActive": 1, "dialing": 0, "inCall": 1, "totalCalls": 250, "totalAnswered": 8, "totalMissed": 242, "totalAnsweredIncoming": 7, "totalAnsweredOutgoing": 1, "totalMissedIncoming": 240, "totalMissedOutgoing": 2, "totalTalkTimeSeconds": 480, "totalRecorded": 1 }, "calls": [], "ended": [] } שימו לב: השירות מיועד לקבל מידע בזמן אמת על מצב חשבונות ה-SIP במערכת - ועל כן כל הנתונים לא נשמרים לטווח ארוך. נכון לכתיבת שורות אלה - אלה פחות או יותר הזמנים שנשמרים הנתונים לאחר שהם כבר לא ״זמן אמת״: נתון זמן שמירה שיחה בחיוג (dialing) 5 דקות - פג תוקף אוטומטית אם לא נענתה שיחה פעילה (in_call) עד 2.5 שעות מרגע המענה שיחה שהסתיימה 20 דקות סטטיסטיקות 7 ימים שיחות שמועברות: כל העברה מתועדת כ-event מסוג transfer ב-history עם שדה to המכיל את מספר היעד, אבל לא יוצרת שיחה חדשה או מזהה שיחה ייחודי. מזהי שיחה - id: המזהה נוצר בעת תחילת השיחה ונשמר, כולל אחרי ניתוק, עד פקיעת התוקף של 20 דקות. קיימים שני סוגים: xSP-{uuid} - מזהה שנוצר על ידי השרת xCP-{uuid} - מזהה שסופק על ידי הלקוח בכותרת X-YemotSiPanel-NewCallID בINVITE של השיחת SIP.