מודול ניתוב שיחות לפי תור (בטא)
-
הגדרות והודעות בזמן ההמתנה

יש להגדיר בקובץ
queue.iniברירת המחדל אין הגבלה על כמות האנשים שממתינים בתור (0 = ללא הגבלה)
באם אתם רוצים שבמידה ויש מעל כמות מסוימת התור יכשל והמתקשר יעבור לאיפה שמוגדר בערךqueue_end_full_gotoיש להגדירmaxlen=3בדוגמא רק 3 ממתינים יכולים להמתין והרביעי כבר לא יכנס לתור
החישוב הוא נציגים + ממתינים
שימו לב גם שיחות פעילות עם הנציגים נחשבות, כלומר במידה ויש לכם 2 נציגים וכתבתם מקסימום 3 אז רק אחד יכול להמתין בתור פלוס 2 שמדברים עם הנציגים.
תוכלו להגדיר לאן לעבור במצב שאין מקום בתורqueue_end_full_goto=את ההגדרה יש לכתוב בקובץext.iniלתשומת ליבכם! את הגדרת ההגבלה יש לכתוב בקובץ
queue.ini, את ההגדרת היעד להעברת המתקשר (שמעבר למגבלה שהגדרתם) יש לכתוב בקובץext.ini.ניתן להגביל בנפרד את כמות הממתינים וכמות השיחות הפעילות:
הגבלת כמות שיחות פעילות עם נציג:
maxOnConversation=XXכל שיחה מעבר למגבלה שהוגדרה תועבר ליעד המוגדר ב:
queue_max_on_conversation_goto=XXאת ההגדרה הזו, יש לכתוב בקובץ
ext.ini.הגבלת כמות השיחות במצב המתנה בתור:
maxWaitingCalls=XXהגבלה זו, לא כוללת שיחות שכבר במענה מול נציגים.
כל שיחה מעבר למגבלה שהוגדרה תועבר ליעד המוגדר ב:queue_max_waiting_calls_goto=XXאת ההגדרה הזו, יש לכתוב בקובץ
ext.ini.
האם להודיע על מיקומך בתור
ברירת מחדל משמיע, אם ברצונכם להגדיר שלא ישמיע יש להגדיר
announce-position=noאם רוצים שישמיע רק למי שנמצא עד מיקום מסויים או ממיקום מסויים יש להגדיר קודם כל את הגבול
announce-position-limit=5לאחמ"כ יש להגדיר האם להשמיע רק למי שהמיקום שלו יותר מהגבול, לדוגמא אם הגבול הוא 5 אז תודיע החל מהשישי את ההודעות של המיקום
announce-position=moreאם רוצים שרק מי שהמיקום שלו נמוך מהגבול אם ההגבלה היא 5 אז תודיע רק ל5 הראשונים בתור את המיקום שלהם וכל אלו שממתינים ומיקומם גבוה לא ישמעו את המיקום
announce-position=limitכל כמה זמן להשמיע על מיקומך בתור ברירת מחדל משמיע כל 60 שניות ניתן לשנות
announce-frequency=90בדוגמא כאן משמיע כל 90 שניות אם מוגדר 0 אז לא משמיע בכלל.
הערה: אם הגדרתם זמן בערך
=min-announce-frequencyאז הוא לא יתחשב בערך הנוכחי
השמעת זמן ההמתנה המשוער
ברירת מחדל לא משמיע (לפעמים הזמן לא מדוייק כדאי לשקול האם לשים או לא) אם רוצים שישמיע בכל פעם שמשמיע את המיקום בתור יש להגדיר
announce-holdtime=yesבכל פעם שמשמיע "מיקומך בתור" משמיע גם "זמן ההמתנה המשוער"
אם רוצים שישמיע רק בפעם הראשונה שנכנס לתור יש להגדיר
announce-holdtime=onceבאם זמן ההמתנה נמוך מ1 דקה המערכת בכל מקרה לא תשמיע את זמן ההמתנה המשוער
אם ברצונכם להגדיר זמן מינימלי שצריך לעבור עבור בין הודעות של מיקום / זמן ההמתנה
min-announce-frequency=50זה גורם שהמתקשר לא ישמע הודעה אחת אחרי השניה ללא הפסקה, במידה ויש הודעות ארוכות
הערך הזה מבטל את ערךannounce-frequency
הודעות מיוחדות בזמן ההמתנה בתור
ברירת מחדל משמיע את ההודעה הבאה כל 60 שניות
M2780נציגנו עוסקים כרגע בפניות קודמות אנא המתן ותענה לפי התור. (ניתן כמובן להחליף את ההקלטה)
ניתן להגדיר שישמיע אחרי זמן אחר לדוגמאperiodic-announce-frequency=90בדוגמא ישמיע את ההודעה - כל 90 שניות (כל דקה וחצי) אם ברצונכם לבטל את השמעת ההודעה לגמרי הגדירו
periodic-announce-frequency=0כלומר להשמיע כל 0 שניות - דהיינו לא להשמיע
-
הנציגים בתור

יש להגדיר בקובץ
queue.iniיש לרשום את מספרי הנציגים כאשר כל מספר בשורה חדשה
לדוגמה0773137770 0772222770
חיוג ישיר לשלוחת SIP
יש אפשרות לחייג ישר לחשבון SIP
על מנת לחייג לחשבון SIP - בשרת תומך (כיום זה נתמך רק ב-ymta) - יש להוסיף את שם המשתמש של חשבון הסיפ תוך כדי ציון שלSIP-(אותיות גדולות) בהתחלה והחלפה של=לחשבון משנה במערכת ב-להלן כמה דוגמאות:הכוונה בהחלפה של
=ל-היא שהרי חשבון SIP משנה של מערכת מקבל את המספר של המערכת בתוספת=ומספר החשבון, למשל:
הכוונה היא להחליף את=כאשר מכניסים לחיוג ב-.;לחיוג לחשבון סיפ מספר 3 של מערכת 0773137770 SIP-0773137770-3 ;לחיוג לחשבון סיפ הראשי של מערכת 0773137770 SIP-0773137770 ;לחיוג לחשבון סיפ מספר 4 של מערכת 0773137770 SIP-0773137770-4
שימו לב! על מנת למנוע ניצול לרעה, כמות הנציגים המקסימלית המותרת היא 40 נציגים, במידת הצורך ניתן לפנות לשירות לקוחות על מנת להגדיל את מספר הנציגים המותר.
-
אסטרטגיות חיוג

יש להגדיר בקובץ
queue.ini
אסטרטגיות החיוג הן הליבה של מודול תור וההגדרות הקשורות להן משפיעות באופן ישיר על כל הצורה שבה התור מנוהל.
ברירת המחדל של ההגדרות הותאמו ל90% מהמקרים, ולכן מי שצריך תור פשוט - מומלץ בחום שלא לשנות את ההגדרות שקשורות לאסטרטגיה אלא להשתמש במה שמגיע כברירת מחדל
באיזה סדר לחייג לנציגים ברשימה
כברירת מחדל, המערכת מחייגת לכל הנציגים בו זמנית והשיחה מנותבת למי שעונה ראשון מביניהם.
אסטרטגייה זו נקראת "ringall" והיא כאמור ברירת המחדל (strategy=ringall).ניתן להגדיר שהמערכת תחייג רק לנציג אחד בכל פעם לפי סדר מסוים, ואם הוא לא עונה המערכת תעבור לנציג הבא ברשימה ותחייג אליו, ואם הוא לא עונה המערכת עוברת לנציג הבא, וכך הלאה עד שמסתיימת כל הרשימה של הנציגים ואז הסבב מתחיל מחדש.
הסדר של החיוג אל הנציגים מושפע מ-2 הגדרות
- סדר הנציגים שהוכנסו לקובץ
queue.ini - האסטרטגייה שנבחרה
לצורך ההסבר, ניקח את הדוגמה הבאה
0772222770 /// פלוני 0773137770 /// אלמוני 0533137770 /// ישראלכפי שניתן לראות, פלוני הוא הנציג הראשון, אלמוני הוא השני וישראל הוא השלישי.
חיוג לפי סדר הרשימה באופן קבוע
כדי שהמערכת תחייג לפי סדר הרשימה באופן קבוע יש להגדירstrategy=linearאסטרטגיות נוספות
כהמשך לסוג הקודם, ניתן להגדיר שהמערכת "תזכור" משיחות קודמות לאיזה נציג הכי כדאי להעביר את השיחות ותבחר להתחיל ממנו את סבב החיוג (ולהמשיך הלאה לפי הסדר ברשימה)
אסטרטגיית מעגל התחלות
ההגדרה היאstrategy=roundrobinאסטרטגייה זו בוחרת כל פעם להתחיל את החיוג מהנציג שבפעם הקודמת היה מקום שני.
בדוגמה שלנו- בפעם הראשונה הסדר יהיה: פלוני, אלמוני, ישראל.
- בפעם השניה הסדר יהיה: אלמוני, ישראל, פלוני.
- בפעם השלישית הסדר יהיה: ישראל, פלוני, אלמוני.
אסטרטגיה מעגל שיחות נענות
ההגדרה היאstrategy=rrmemoryלדוגמא אם השיחה הראשונה צלצלה לפלוני ולא נענתה ואז צלצלה לאלמוני וכן נענתה
אז בפעם הבאה המערכת תצלצל לנציג הבא מהנענות כלומר תתחיל עם ישראלשיתחיל דווקא את הנציגים שחייגו אליהם הכי פחות שיחות לאחרונה
ההגדרה היאstrategy=leastrecentשיתחיל דווקא עם הנציגים שענו הכי פחות שיחות לאחרונה
ההגדרה היאstrategy=fewestcallsרנדומלי כך שכל פעם יחייג למשהו שונה מהרשימה
ההגדרה היאstrategy=random - סדר הנציגים שהוכנסו לקובץ
-
מוזיקה בהמתנה

יש להגדיר בקובץ
queue.iniברירת מחדל:
musicclass=defaultניתן להגדיר מוזיקה שונה.
ההגדרה היאmusicclass=שם המוזיקה שלכםלמידע נוסף אודות מוזיקה בהמתנה ראה כאן
-
ניתן להגדיר שההגדרות שמגדירים בקובץ
queueילקחו משלוחה אחרת
יש להגדיר בקובץ
ext.iniניתן להגדיר שכל ההגדרת ששייכות לקובץ
queue.iniיילקחו משלוחת היעד
המטרה של הגדרה תור לשלוחה אחרת היא לצורך הגדרות שונות בכניסה ויציאה, הגדרות שונות למעבר בסיום תור וכדומה, וכן להגדרת "עדיפות" שונה בכניסה לתור.
להגדרת העלה על שלוחה אחרת הגדירוqueue_folder_play=5/8 -
פירוט שיחות ודוחות

יש להגדיר בקובץ
ext.iniהדוחות נשמרים בקבצים יומיים בפורמט דוחות סטנדרטי - כאן ניתן למצוא מידע נוסף על הדוחות במערכת.
מיקום הדוחות במערכת
- בשלוחה של התור - רק על השיחות שבשלוחה זו.
- בתיקיית Log הכללית במערכת - על כל השיחות במערכת.
סוגי הדוחות
- דוח כללי על כלל השיחות שנכנסו לתור
שם הקובץ (לדוגמה)LogQueueAll.2024-05-19 - דוח ספציפי רק על השיחות שנענו בתור
שם הקובץ (לדוגמה)LogQueueOK.2024-05-19
שליחה למייל
ניתן להגדיר שליחה למייל של הדוחות
כדי שיישלח דוח למייל בסיום כל שיחה (בטבלה יהיה דוח כל השיחות מהיום ועד לשיחה האחרונה) יש להגדיר:
queue_log_send_mail=yesכדי לקבל מייל על שיחות שלא נענו ע"י נציג, אם לקוח ניתק או יצא מהתור או על כל שיחה שנכשלה יש להגדיר:
queue_no_continue_send_mail=yesברירת מחדל, כאשר מוגדר אפשרות שליחה למייל, זה נשלח לכתובות ועם השם המופיעים בהגדרות המשתמש שלכם. ניתן להגדיר שבשלוחה זו האימייל ישלח למייל אחר, וכן ניתן להוסיף בשם של הנשלח בנוסף על מה שכתוב במשתמש:
queue_email_address=aa@a.co.il queue_email_name=משה מחלקת ניהול נציגים
שליחת SMS כששיחה לא נענתה ע"י נציג
שימו לב! על כל שליחת SMS המערכת גובה יחידות לפי תעריף סמסים.
כדי לקבל SMS על כל שיחה שלא נענתה ע"י נציג - אם הלקוח ניתק / יצא מהתור / או על כל שיחה שנכשלה, יש להגדיר:queue_no_continue_send_sms=yesכדי לקבל SMS על שיחה שלא נענתה ע"י נציג רק אם הלקוח ניתק (בכל מצבי לא נענה האחרים כגון 'יציאה מהתור' וכד' לא ישלח), יש להגדיר:
queue_status_hangup_send_sms=yesחובה להגדיר לאיזה מספר לשלוח את ההודעה.
ניתן לשלוח עד 3 מספרים במקביל, לדוגמה:queue_no_continue_send_sms_to=050XXXXXXX,052XXXXXXX,054XXXXXXXהטקסט שישלח הוא:
{מספר טלפון שחייג}נטש את התור{שלוחה}אחרי המתנה של{זמן המתנה בתור}שניות. סטטוס:{סטטוס שיחה}
עריכת הנתונים בדוח
ניתן לערוך את לערוך את הנתונים שמופיעים בדוח (הסבר כאן)
הגדרות ברירת מחדל לקובץLogQueueAll.iniLogQueueAll=דו"ח כללי שיחות בתור Folder=שלוחה DID=מערכת IdType=סוג זיהוי teudat_zehut=תעודת זהות digits=הקשת ספרות list=רשימה phone=טלפון enter_phone_list=רשימת טלפונים phone_or_enter_phone=בחירת טלפון list_all_information=קובץ מידע phone_from_list_all_information=טלפון מקובץ מידע EnterId=מספר זיהוי ValName=שם School=תאור מוסד Phone=טלפון Date=תאריך Time=שעה HebrewDate=תאריך עברי Module=סוג שלוחה queue=תור QueueStatus=מצב התור CONTINUE=הצלחה TIMEOUT=נגמר הזמן ללא מענה FULL=תור מלא JOINEMPTY=תור ללא מספרים LEAVEEMPTY=עזב ;JOINUNAVAIL ;LEAVEUNAVAIL Hangup=ניתוק DialTime=אורך כלל השיחה QueueTotalSeconds=אורך שהייה בתורים בשניות QueueTotalTime=אורך שהייה בתורים QueueWaitingSeconds=אורך המתנה למענה בשניות QueueWaitingTime=אורך המתנה למענה AnswerNumber=מספר שענה AnswerSeconds=אורך מענה בשניות AnswerTime=אורך מענה שיחה ApiSandAnswer=תשובת שרתהגדרות ברירת מחדל לקובץ
LogQueueOK.iniLogQueueOK=דו"ח שיחות נענות בהצלחה בתור Folder=שלוחה DID=מערכת IdType=סוג זיהוי teudat_zehut=תעודת זהות digits=הקשת ספרות list=רשימה phone=טלפון enter_phone_list=רשימת טלפונים phone_or_enter_phone=בחירת טלפון list_all_information=קובץ מידע phone_from_list_all_information=טלפון מקובץ מידע EnterId=מספר זיהוי ValName=שם School=תאור מוסד Phone=טלפון Date=תאריך Time=שעה HebrewDate=תאריך עברי Module=סוג שלוחה queue=תור DialStatus=מצב השיחה CONGESTION=שגיאה NOANSWER=אין תשובה BUSY=עסוק ANSWER=נענה CANCEL=ביטול Hangup=ניתוק NotActive=תור לא פעיל DialTime=אורך כלל השיחה AnswerTime=אורך מענה AnswerSeconds=אורך מענה בשניות AnswerNumber=מספר שענה ApiSandAnswer=תשובת שרתלתשומת לב במקרה שרוצים שבמקום מספר הטלפון של הנציג שענה יהיה כתוב משהו אחר יש להגדיר כך
AnswerNumber+054840000=הנציג משהתצוגת דוחות


-
הודעות מערכת קשורות

M1460אין מספרים לחיוג אנא הוסיפו מספרים לחיוג ונסו שנית
M2780נציגנו עסוקים כרגע בפניות קודמות אנא המתן ותענה לפי התור
M2781תודה על סבלותכם
M2782הנך ראשון בתור
M2783מיקומך בתור הוא
M2784מחכה לשיחה עם נציג
M2785זמן ההמתנה הממוצע הוא כ..
M2786דקות
M2787שניות
M2788פחות מ...
M2789זמן ההמתנה
M3790התור סגור כעת, אנא נסה שנית בשעות הפעילות -
דירוג חווית השירות לאחר שיחה עם נציג - קובץ ext.iniלהפעלת הדירוג יש להגדיר בקובץ
ext.ini:queue_call_rating=yesהגדרה זו היא חובה, כדי שאפשרות הדירוג תופעל.
להגדרת זמן ההמתנה רצוי להקשת הדירוג (אופציונלי) יש להגדיר בקובץ
ext.ini:queue_call_rating_timeout=10ברירת מחדל 7 שניות, בדוגמה כאן המערכת תמתין 10 שניות להקשת הדירוג.
במידה ואין הקשה במשך הזמן שהוגדר, המערכת תנתב את המחייג בהתאם להגדרתqueue_end_continue_goto.
לקביעת תדירות הדוח (אופציונלי) יש להגדיר בקובץ
ext.ini:queue_call_rating_log_file_type=dayבדוגמה זו, הדוח הוא יומי.
ברירת מחדל, הדוח הוא כללי, כלומר החל מיום הפעלת הדירוג במערכת ועד לזמן הנוכחי.להלן פירוט ערכי תדירות דוח אפשריים:
דוחות יומיים:
day- דוח יומי (ברירת מחדל)day.15:23- דוח יומי שמתחדש מדי יום בשעה 15:23
דוחות שבועיים:
week- דוח שבועי (מתחדש כל יום ראשון)week.5- דוח שבועי שמתחדש כל יום חמישיweek.5.19:59- דוח שבועי שמתחדש כל יום חמישי בשעה 19:59
דוחות חודשיים:
month- דוח חודשי (מתחדש בראשון לחודש)month.25- דוח חודשי שמתחדש ב-25 לכל חודשmonth.25.19:59- דוח חודשי שמתחדש ב-25 לכל חודש בשעה 19:59
דוחות שנתיים:
year- דוח שנתי (מתחדש בראשון בינואר)year.31/11- דוח שנתי שמתחדש ב-31 בנובמברyear.31/11.19:59- דוח שנתי שמתחדש ב-31 בנובמבר בשעה 19:59
דוחות דירוגים
דוח מפורט של נתוני הדירוג נוצר אוטומטית בתוך תקיית Queue שבתוך תקיית Log (תקיית הדוחות) במערכת.
שם הדו"ח:
QueueCallRatingLog.ymgr.
ניתן להוריד את הדו"ח, בדומה לכל דוחות המערכת כמפורט כאן.במידה והגדרתם דו"ח יומי / חודשי / שנתי, התאריך יתווסף אוטומטית בשם הדו"ח שנוצר, לדוגמה:
QueueCallRatingLog[.תאריך].ymgr
הערות חשובות:
- הדירוג מתבצע רק לאחר סיום שיחה שנענתה על ידי נציג.
- כל דירוג חדש מעדכן את הממוצע הכללי של הנציג.
- הדירוג הוא פר מערכת, כך שגם אם ישנם כמה שלוחות תור באותה מערכת, כל הנתונים ירוכזו בדו"ח כללי אחד.
הודעות מערכת קשורות
M4117לקוח יקר כחלק משיפור השירות, נשמח לקבל משוב על חווית השירות. אנא דרג את רמת השירות מ 1 עד 5 כאשר 1 הוא הדירוג הנמוך ביותר ו-5 הוא הדירוג הגבוה ביותר
M4118הדירוג התקבל בהצלחה. תודה וּלהתראות -
טעינת הגדרות תור ומספרים לחיוג ב-API
הגדרות בקובץ
ext
כללי
כברירת מחדל המערכת טוענת את הגדרות התור ואת רשימת המספרים לחיוג מקובץ
queue.ini.ניתן להגדיר כי נתוני התור ייטענו באמצעות API.
ההגדרה היא:
queue_url_link=https://example.com/queue.phpכמובן שאחרי ה
=יש לרשום את כתובת ה-URL של השרת שלכם- במקרה כזה, בכל כניסה של משתמש לשלוחה תתבצע פנייה בAPI לקבלת נתוני התור.
את תגובת השרת יש להחזיר בהתאם לפורמט המובא להלן. - במידה ואין התייחסות בתגובת השרת להגדרות התור, המערכת תטען את ההגדרות מקובץ queue.ini.
- במקרה של סתירה בהגדרות התור בין המופיע בתגובת השרת למופיע בקובץ queue.ini, ההגדרות המופיעות בתגובת השרת גוברות.
- את רשימת המספרים לחיוג המערכת טוענת אך ורק מתגובת השרת. ולא מקובץ queue.ini.
הערה: מדובר בהחלפת ערכים מלאה של הגדרות התור כולה, ולא רק של הגדרות שיחה ספציפית.
פרמטרים המצורפים לשליחה
פרמטרים ברירת מחדל
כברירת מחדל המערכת מצרפת לכל פנייה פרמטרים הכוללים מידע על השיחה
הפרמטרים המצורפים הםApiCallId=מזהה ייחודי לאורך הפנייה לשרתYemotCallID=מזהה ייחודי לאורך השיחהApiPhone=מספר הטלפון של המשתמשApiDID= מספר טלפון הראשי של המערכת שלכםApiRealDID=המספר אליו חייג המשתמש.
(במידה ויש כמה מספרים למערכת שלכם, והמשתמש חייג למספר משנה, הערך הזה יהיה שונה מהערך הקודם)ApiExtension=שם התיקייה/שלוחה בה נמצא המשתמשApiEnterID=במידה ובוצעה התחברות לפי זיהוי אישי, יצורף ערך זה המכיל את סוג ההתחברות וה-ID של המשתמש (מידע נוסף כאן)ApiEnterIDName= שם משויך לזיהוי האישי (כפי שמוסבר כאן)ApiTime= זמן בשניות מ1970, Epoch, i.e., since 1970-01-01 00:00:00 UTC.
כדי לבטל את שליחת הפרמטרים הנ"ל או את חלקם יש להגדיר (בהתאמה)
queue_api_did_send=no /// Deleting a parameters "ApiDID" "ApiRealDID" queue_api_phone_send=no /// Deleting a parameter "ApiPhone" queue_api_extension_send=no /// Deleting a parameter "ApiExtension" queue_api_enter_id_send=no /// Deleting a parameter "ApiEnterID" queue_api_enter_id_name_send=no /// Deleting a parameter "ApiEnterIDName" queue_api_time_send=no /// Deleting a parameter "ApiTime" queue_api_call_id_send=no /// Deleting a parameter "ApiCallId" queue_api_yemot_call_id_send=no /// Deleting a parameter "YemotCallID"פרמטרים קבועים
ניתן להגדיר שבכל פנייה, המערכת תצרף פרמטרים קבועים שיישלחו לשרת.
(הערה: לא ניתן לצרף פרמטרים הנשלחים כברירת מחדל)
לדוגמה אם ברצונכם שבכל פנייה לשרת המערכת תצרף את הפרמטרים
p1=v1p2=v2יש להגדיר בהגדרות השלוחהqueue_api_add_0=p1=v1 queue_api_add_1=p2=v2במקרה כזה הבקשה ב-GET תראה כך
https://example.com/queue.php?p1=v1&p2=v2כמובן שניתן לצרף פרמטרים נוספים (
queue_api_add_X=), כשבמקום X יש לרשום את מספר הפרמטר.
שימו לב שחשוב לשמור על רצף סידורי החל מהספרה 0.
מתודת שליחה
כברירת מחדל הפנייה נשלחת בHTTP GET
אם ברצונכם שהפנייה תישלח בHTTP POST יש להגדירqueue_api_url_post=yes
תגובת שרת
את תגובת השרת יש להחזיר בתבנית JSON.
הנתונים שניתן להחזיר הם בדומה להגדרות האפשריות בקובץqueue.ini
דוגמה{ "description" : x, "queueactive" : x, "autofill" : x, "context" : x, "monitor-type" : x, "monitor-format" : x, "servicelevel" : x, "keepstats" : x, "maxlen" : x, "autopause" : x, "announce-position" : x, "announce-position-limit" : x, "announce-holdtime" : x, "announce-frequency" : x, "relative-periodic-announce" : x, "random-periodic-announce" : x, "min-announce-frequency" : x, "announce-round-seconds" : x, "periodic-announce" : x, "periodic-announce-frequency" : x, "reportholdtime" : x, "strategy" : x, "joinempty" : x, "leavewhenempty" : x, "retry" : x, "wrapuptime" : x, "timeout" : x, "timeoutrestart" : x, "musicclass" : x, "ringinuse" : x, "queue-thankyou" : x, "queue-youarenext" : x, "queue-thereare" : x, "queue-callswaiting" : x, "queue-holdtime" : x, "queue-minutes" : x, "queue-seconds" : x, "queue-less-than" : x, "queue-reporthold" : x, "members" : [ "0507707701", "SIP-0773137770" ] }- בפרמטר
membersיש להחזיר את רשימת המספרים לחיוג.
שימו לב!
המערכת טוענת את כל הגדרות התור מתוך תגובת השרת בלבד!
אין כל הסתמכות על קובץ queue.ini!!
אין מיזוג בין תגובת השרת לבין queue.ini.
אין fallback לקובץ queue.ini במקרה שחסר פרמטר בתגובה.
חסימת שיחה באמצעות API
כדי לחסום שיחה באופן יזום דרך ה-API יש להחזיר JSON במבנה הבא:
{ "status": "error", "action": "API_MODULE", "action_data": "id_list_message=t-שלום עולם.g-/1" }בדוגמה, השיחה לא תיכנס לתור.
המשתמש ישמע 'שלום עולם' בהקראה רובוטית ויעבור לשלוחה אחת תחת השלוחה הראשית.כאשר מתקבלת תגובה זו:
- המערכת אינה ממשיכה לתהליך התור.
- אין ניסיון לחייג למספרים.
- אין טעינה של הגדרות תור.
- התגובה מטופלת בהתאם למנגנון מודול API.
כלומר, במקום כניסה לתור, המערכת מתייחסת לתגובה כאילו הופעל מודול API רגיל, ומבצעת את הפעולה בהתאם לערך
action_data.המשמעות המעשית
באמצעות
action_dataניתן:- להעביר לשלוחה אחרת
- להשמיע הודעה
- להפעיל מוזיקה בהמתנה
- לבצע ניתוק
- או כל פעולה אחרת הנתמכת במודול API
כך ניתן לשלוט באופן מלא בזרימת השיחה במקרה שהחלטתם לא להכניס את המתקשר לתור (לדוגמה: חסימה לפי זיהוי, שעות פעילות, בדיקת הרשאות וכד').
הפירוט המלא של מבנה ואפשרויות
action_dataמופיע בתיעוד מודול API:
https://f2.freeivr.co.il/post/77904
טיפול במצב שגיאה בתגובת ה-API
מצב שגיאה כולל בין היתר:
actionאינוAPI_MODULEaction_dataריק- JSON לא תקין
- תגובה ריקה
- שגיאת כל שהיא בשרת
ההתנהגות תיקבע לפי
queue_error_api_statusכמובא בהמשך.
יש 3 מצבים שאפשר להגדיר במצב שגיאה:
1. יציאה מהשלוחה (ברירת מחדל)
queue_error_api_status=exitהמעבר יתבצע לפי:
queue_error_api_goto=/1/1בדוגמה זו המערכת תעבור לשלוחה
/1/1מהתפריט הראשי.
אם לא הוגדרqueue_error_api_goto, המערכת תפעל לפי:queue_error_goto=/2/2אם גם זה אינו מוגדר, תתבצע חזרה של שלוחה אחת אחורה (exit רגיל).
2. קריאה מקובץ queue.ini
queue_error_api_status=read_ini_fileבמצב זה המערכת תטען את הגדרות התור מקובץ
queue.ini.
3. שימוש בנתונים מהשיחה הקודמת
queue_error_api_status=read_cashבמצב זה המערכת תשתמש בהגדרות התור המעודכנות מהשיחה הקודמת, ללא רענון חדש מה-API.
- במקרה כזה, בכל כניסה של משתמש לשלוחה תתבצע פנייה בAPI לקבלת נתוני התור.
-
B BEN ZION התייחס לנושא זה
-
הגדרות מקשי נציג בתור (DialKey)
מערכת מקשי הנציג מאפשרת להגדיר פעולות שהנציג יכול לבצע תוך כדי שיחה עם לקוח.
את ההגדרות יש לשים בקובץext.iniשל שלוחת התור.
טבלת הגדרות
הגדרה ברירת מחדל תיאור dial_key_direct_pressריק (=no) yes= מקש ישיר ללא קידומת. ללא הגדרה — חייב קידומת לפני.dial_key_prefix#תו הקידומת — הנציג מקיש קודם את הקידומת ואז את הרצף. dial_key_seqריק רצפי מקשים מותאמים. פורמט: ACTION=KEYS.ACTION=KEYS— מפריד נקודה (.).dial_key_seq_max_digits2מספר ספרות מקסימלי לקרוא אחרי המקש הראשון / קידומת. dial_key_return_to_call**רצף מקשים לחזרה לשיחה מהמתנה. none= מבטל.dial_key_spy_and_talk#*רצף מקשים להאזנה + דיבור עם הלקוח. none= מבטל.dial_key_0עדdial_key_9ריק פעולה ישירה לספרה בודדת. dial_key_starריק פעולה ישירה למקש *.dial_key_hashריק פעולה ישירה למקש #.
פעולות אפשריות
פעולה תיאור דוגמה בהגדרה holdהעברת הלקוח להמתנה — הנציג עובר למצב המתנה ויכול לחזור עם dial_key_return_to_call.dial_key_5=holdreturn_to_callחזרה לשיחה עם הלקוח מהמתנה. dial_key_**=return_to_callspy_and_talkהאזנה לשיחת הלקוח (ערוץ 3) + אפשרות דיבור (whisper/barge). dial_key_spy_and_talk=99menu_move_clientפתיחת תפריט אינטראקטיבי — הנציג בוחר שלוחה/תיקייה להעביר אליה את הלקוח. dial_key_3=menu_move_clientmove_client_to_folder-/FOLDERהזזת הלקוח לשלוחה/תיקייה מוגדרת מראש ללא תפריט. המערכת בודקת שהשלוחה קיימת. dial_key_seq=33=move_client_to_folder-/6menu_routing_clientפתיחת תפריט אינטראקטיבי — הנציג מקליד מספר טלפון לחייג עבור הלקוח. dial_key_4=menu_routing_clientrouting_client_to_number-XXXXXחיוג למספר מוגדר מראש עבור הלקוח ללא תפריט. תומך מספרים מקוצרים מקובץ DialKeyAbbreviatedDialing.ini.dial_key_seq=55=routing_client_to_number-0501234567
כיצד זה עובד
מצב קידומת (ברירת מחדל)
הנציג מקיש קידומת (ברירת מחדל
#) ואז את הרצף:#1= קידומת#+ מקש1#22= קידומת#+ רצף22
מצב ישיר (
dial_key_direct_press=yes)הנציג מקיש ישירות את הרצף בלי קידומת:
22= הנציג מקיש2,2— המערכת מזהה את הרצף*1= הנציג מקיש*,1
סדר עדיפויות
- מקש בודד —
dial_key_5=hold - רצף מותאם —
dial_key_seq=22=hold - Fallback — במידה ולא מוגדר, יתעלם מההקשה הנוספת ויתחשב במקש הראשון בלבד (כלומר מתעלם מהמקש השני וכו').
- מקשים מובנים ברירת מחדל —
return_to_call/spy_and_talk
אחרי שנייה ללא הקשה (TIMEOUT) המערכת מסיימת לקרוא ומעבדת את מה שנאסף.
אם הנציג מקיש פחות ספרות מהמקסימום — ה-TIMEOUT מסיים את הקלט.
דוגמאות
דוגמה 1 — מצב בסיסי: מקש בודד עם קידומת
dial_key_5=hold dial_key_star=return_to_call- נציג מקיש
#5← השהיה - נציג מקיש
#*← חזרה לשיחה - נציג מקיש
**← חזרה לשיחה (ברירת מחדל)
דוגמה 2 — מצב ישיר + מקשים בודדים
dial_key_direct_press=yes dial_key_5=hold dial_key_star=return_to_call- נציג מקיש
5← השהיה - נציג מקיש
*← חזרה לשיחה - נציג מקיש
**← חזרה לשיחה (ברירת מחדל)
דוגמה 3 — רצפים קצרים עם קידומת
dial_key_prefix=# dial_key_seq_max_digits=2 dial_key_seq=11=hold.22=return_to_call dial_key_return_to_call=none dial_key_spy_and_talk=none- נציג מקיש
#11← השהיה - נציג מקיש
#22← חזרה לשיחה - נציג מקיש
**← לא עובד (בוטל עםnone)
דוגמה 4 — רצפים ישירים עם תיקיות + חיוג
dial_key_direct_press=yes dial_key_seq_max_digits=3 dial_key_seq=11=hold.22=return_to_call.33=move_client_to_folder-/6.44=menu_move_client.55=routing_client_to_number-0501234567.66=menu_routing_client dial_key_return_to_call=none dial_key_spy_and_talk=99- נציג מקיש
11← השהיה - נציג מקיש
22← חזרה לשיחה - נציג מקיש
33← הזזה לתיקייה 6 - נציג מקיש
44← תפריט בחירת שלוחה - נציג מקיש
55← חיוג ל-0501234567 - נציג מקיש
66← תפריט הקלדת מספר - נציג מקיש
99← האזנה + דיבור
דוגמה 5 — רצף ארוך עם
#באמצעdial_key_direct_press=yes dial_key_seq_max_digits=11 dial_key_seq=234*1*45#57=hold dial_key_return_to_call=## dial_key_spy_and_talk=none- נציג מקיש
234*1*45#57← השהיה - נציג מקיש
##← חזרה לשיחה
דוגמה 6 — קידומת
*במקום#dial_key_prefix=* dial_key_seq_max_digits=2 dial_key_seq=1=hold.2=return_to_call dial_key_return_to_call=none dial_key_spy_and_talk=none- נציג מקיש
*1← השהיה - נציג מקיש
*2← חזרה לשיחה
דוגמה 7 — שילוב מקשים בודדים + רצפים
dial_key_direct_press=yes dial_key_5=hold dial_key_3=menu_move_client dial_key_4=menu_routing_client dial_key_seq_max_digits=3 dial_key_seq=123=move_client_to_folder-/6.456=routing_client_to_number-0501234567 dial_key_spy_and_talk=none- נציג מקיש
5← השהיה (מקש בודד, עדיפות גבוהה) - נציג מקיש
3← תפריט בחירת שלוחה - נציג מקיש
4← תפריט הקלדת מספר - נציג מקיש
123← הזזה לתיקייה 6 - נציג מקיש
456← חיוג ל-0501234567 - נציג מקיש
**← חזרה לשיחה (ברירת מחדל)
הערות חשובות
- מפריד בין רצפים ב-
dial_key_seq— הוא נקודה (.) noneמבטל ברירת מחדל —dial_key_return_to_call=noneמבטל את**, ו-dial_key_spy_and_talk=noneמבטל את#*dial_key_seq_max_digits— חובה להגדיר כשהרצף ארוך מ-2 תווים (למשל רצף123דורש לפחות3)- אפשר להשתמש בפחות מהמקסימום — אם מוגדר מקסימום
11, הנציג יכול להקיש 2 ספרות ולחכות שנייה; ה-TIMEOUT מסיים את הקלט - מספרים מקוצרים — בפעולת
routing_client_to_numberאפשר להשתמש במספר מקוצר מתוך קובץDialKeyAbbreviatedDialing.iniבתיקיית השלוחה או בשורש