שפה שונה לפי מתקשר
-
@963
ניסית שוב אחרי מה ש @אביי-ורבא כתב לך כאן? -
@אביי-ורבא
ניסית וגם לא עובד לי כתוב בivr
language=wap
שזה קול ממוחשב ולא כתוב באיזה שפה זה -
@amram בדרך כלל בכל מערכת שנפתחת מיד בפעם הראשונה כשבוחרים שפה זה מוגדר בקובץ ivr שבשלוחה הראשית וזה בעצם קובץ שהוא משליך על כל השוחות במערכת אלא אם כן יש באותה שלוחה הגדרה שגוברת על זה אז לכן אני אומר שיכול להיות שבמקרה כזה שלוחה שלא מוגדר בה שפה אז היא תלך לפי מה שמוגדר בקובץ ivr לכן אמרתי שאת ההגדרה של השפה הרגילה של המערכת במקום לשים בקובץ ivr תשימו בקובץ ext של השלוחה הראשית ואז בעצם כיוון שכל משתמש עובר בשלוחה הראשית זה ישליך על השפה של כל השלוחות במערכת אלא אם כן הוא לא עבר בשלוחה הראשית כי הוא הגיע מהמספר האמריקאי והוא עבר בשלוחה אחרת שהגדיר לו את השפה לאנגלית..
-
@אביי-ורבא
ניסיתי עכשיו בכל הדרכים וזה פשוט לא מחליף בכלל את המערכת לאנגלית רק באותה השלוחה עצמה הופך חלק לאנגלית -
@6422615 @אביי-ורבא
קודם שניסיתי מחקתי את ההגדרה מקובץ IVR. -
@amram
מהנסיון שלי עם דרישה כזו, האופציה היחידה היא הכפלת השלוחות (לא מחייב הכפלת הקבצים)
אדרבה אם יש למישהו רעיון אחר נשמח לשמוע.הפתרון של @אביי-ורבא לא עוזר, ההגדרות תקפות לשלוחה שבה המשתמש נמצא, הם לא מחלחלות למטה, וכל שכן לא ישפיעו על המשך השיחה (במידה ויוגדר מעבר משלוחה זו לשלוחה אחרת)
מה שכן אפשר לעשות זה לשדר את זה באמצעות קריאת API של שינוי שפת הערוץ, שגוברת על הגדרת ivr.ini
(לא שימושי בלי שרת שמתווך באמצע)
כאן ההגדרות -
@amp-Software-0 כתב בשפה שונה לפי מתקשר:
הפתרון של @אביי-ורבא לא עוזר, ההגדרות תקפות לשלוחה שבה המשתמש נמצא, הם לא מחלחלות למטה, וכל שכן לא ישפיעו על המשך השיחה (במידה ויוגדר מעבר משלוחה זו לשלוחה אחרת)
אז צריך לעדכן את זה בתיעוד
-
@אביי-ורבא ניסית פעם ועבד לך?
-
@amram
זה כתוב במפורש בהגדרות, זה או באג או טעות. -
@6422615 אני לא יודע אבל תכלס לא עובד לי אשמח לשמוע שמשהו אחר עובד ואז אגלה אולי הבעיה אצלי
-
@אביי-ורבא
התיעוד הנ"ל הוא שרשור ישן
בתיעוד המעודכן זה לא מופיע@amram
אם לא איכפת לך לשלוח שם משתמש וסיסמה
אתה יכול לעשות את זה עם שרת שמתווך באמצע -
כתבתי את קוד הphp הבא לשינוי השפה בערוץ של השיחה הנוכחית,
אבל התגובה מימות היא שפעולת שינוי השפה לא חוקית,ייתכן ומבנה הפקודה לא תקין,ככה זה נראה:https://www.call2all.co.il/ym/api/CallAction?token=0799999999:12345&ids=9496565701b711&action=set:Clanguage=en
<?php $user = isset($_GET['ApiDID']) ? htmlspecialchars($_GET['ApiDID']) : ''; $pass = isset($_GET['password']) ? htmlspecialchars($_GET['password']) : ''; $realDID = isset($_GET['ApiRealDID']) ? htmlspecialchars($_GET['ApiRealDID']) : ''; $callId = isset($_GET['ApiCallId']) ? htmlspecialchars($_GET['ApiCallId']) : ''; $lang = isset($_GET['lang']) ? htmlspecialchars($_GET['lang']) : ''; $number = isset($_GET['number']) ? htmlspecialchars($_GET['number']) : ''; $goto = isset($_GET['goto']) ? htmlspecialchars($_GET['goto']) : ''; $callingPhone = isset($_GET['ApiPhone']) ? htmlspecialchars($_GET['ApiPhone']) : ''; if (empty($user) || empty($pass) || empty($realDID) || empty($callId) || empty($lang) || empty($number)) { die("id_list_message=t-חלק מהפרמטרים חסרים או לא תקינים"); } if ($realDID == $number) { $idValue = ""; $linkCalls = "https://www.call2all.co.il/ym/api/GetIncomingCalls?token={$user}:{$pass}"; $responseCalls = file_get_contents($linkCalls); $httpStatusCalls = $http_response_header[0]; if (strpos($httpStatusCalls, '200 OK') !== false) { $responseCallsData = json_decode($responseCalls, true); if ($responseCallsData !== null) { if (isset($responseCallsData['responseStatus']) && $responseCallsData['responseStatus'] === 'OK') { if (isset($responseCallsData['calls']) && is_array($responseCallsData['calls'])) { foreach ($responseCallsData['calls'] as $call) { if (isset($call['callerIdNum']) && $call['callerIdNum'] === $callingPhone) { $idValue = isset($call['id']) ? $call['id'] : null; break; } } } else { die("id_list_message=t-שגיאה 1&id_list_message=g-/{$goto}"); } } else { die("id_list_message=t-שגיאה 2&id_list_message=g-/{$goto}"); } } else { die("id_list_message=t-שגיאה 3&id_list_message=g-/{$goto}"); } } else { die("id_list_message=t-שגיאה 4&id_list_message=g-/{$goto}"); } $link = "https://www.call2all.co.il/ym/api/CallAction?token={$user}:{$pass}&ids={$idValue}&action=set:Clanguage={$lang}"; $response = file_get_contents($link); $httpStatus = $http_response_header[0]; if (strpos($httpStatus, '200 OK') !== false) { $responseData = json_decode($response, true); if ($responseData !== null) { if (isset($responseData['responseStatus']) && $responseData['responseStatus'] === 'OK') { echo "id_list_message=g-/{$goto}"; } else { echo "id_list_message=t-שגיאה&id_list_message=g-/{$goto}"; } } else { echo "id_list_message=t-שגיאה בשינוי השפה הסטטוס ריק&id_list_message=g-/{$goto}"; } } else { echo "id_list_message=t-שגיאה בגישה לשרת השפה&id_list_message=g-/{$goto}"; } } ?>
ההגדרות בשלוחה:
type=api api_link=https://yemot.abaye.co/ api_hangup_send=no api_add_0=lang=en api_add_1=number=0795777777 api_add_2=goto=6 api_add_3=password=12345
עריכה: הקוד תוקן לפעולה הנכונה, וכעת זה עובד היטב.
-
@אביי-ורבא @amp-Software-0
אז בסוף אין שום אפשרות? -
@amram יש, להשתמש בAPI עם מה שהבאתי, רק צריך לראות היכן השגיאה, אני ייפתח על זה נושא חדש עוד מעט כשאני יתפנה מעט
-
@אביי-ורבא
אחלה תודה רבה!
אולי נחכה לתשובה של @amp-Software-0
אולי הוא יודע איפה השגיאה -
@amram תיקנתי כעת את הקוד אצלי בשרת, בדקתי וזה עובד
type=api api_link=https://yemot.abaye.co/ChangeLanguage.php api_hangup_send=no api_add_0=lang=en api_add_1=number=0795777777 api_add_2=goto=6 api_add_3=password=12345
רק שים לב ל2 דברים, קודם כל תבדוק שהסיסמה תקינה שלא ייחסם לי השרת הזה,
דבר שני, אני אוריד את זה בעוד מספר ימים מהטעם הנ"ל, לכן אם אתה רוצה את זה קבוע, תפנה אלי בפרטי ואתן לך את הקוד לשים בשרת משלך או שנארגן משהו אחר.. -
להכניס את השם משתמש וסיסמא במקום מה שרשמת?
ומה לעשות עם ה6 הזה לשאיר אותו? -
הרעיון הוא, שאתה מפנה לשלוחה הזו את כולם, ומי שחייג למספר של המערכת האמריקאי, שתגדיר אותו בשורה 5, ישתנה לו השפה לאנגלית,
הקוד php המלא כאן
-
@amram @אביי-ורבא הבאג סודר וכעת זה עובד כמו שכתוב בתיעוד הישן כאן
תודה רבה ל @eliyahu על תיקון הבאג
ציטוט מהתיעוד:הגדרת ושינוי שפה
כברירת מחדל כל הודעות המערכת שהמשתמש שומע במהלך השיחה הן בעברית.
כדי לשנות את שפת המערכת יש להגדיר בשלוחה
language=שפה רצויה (ראה להלן)
במקרה כזה, השפה שתוגדר עבור השיחה של המשתמש (מהשלוחה הנוכחית והלאה) היא השפה שהגדרתם.
אין צורך להגדיר את ההגדרה בכל שלוחה במערכת, המערכת זוכרת את ההגדרה גם עבור שלוחות הבאות. (כמובן שבכל שלב תוכלו להגדיר שפה שונה וזו השפה שתהיה מאותו שלב והלאה)
-
בדקתי עכשיו ואכן עובד!!
כל כניסה לשלוחה שיש בה הגדרת שפה - ממשיך לעבוד בכל השלוחות הבאות עם שפה זו,
אם יש הגדרת שפה בקובץ IVR אז זה כמובן גובר, ואז אם יש הגדרת שפה בשלוחה מסויימת זה ישפיע רק לשלוחה הזאת,
תודה רבה על התיקון.