שפה שונה לפי מתקשר
-
@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 אז זה כמובן גובר, ואז אם יש הגדרת שפה בשלוחה מסויימת זה ישפיע רק לשלוחה הזאת,
תודה רבה על התיקון. -
-
אבל זה לא משנה את השפה עד הסוף לדוגמא בשלוחת השמעת קבצים הוא אומר
בשלוחה זו סבן השמעות במקום שבע
אבל לא הופך את הכל לאנגלית
יש דרך להפוך הכל לאנגלית? -
@amram אתה צריך להקליט את זה בעצמך
ימות המשיח לא הקליטו את כל ההודעות מערכת בכל השפות -
@הרב
כן זה הבנתי אבל חשבתי שזה דבר בסיסי שבטוח הם עשו אנגלית ושלוחת השמעת קבצים
רק חשבתי שהיה טעות אצלי
והוראות הפעלה באנגלית יש? -
@amram תבדוק אין לי מושג