שפה שונה לפי מתקשר
-
שלום יש לי מערכת של שיעורים ויש גם מספר אמריקאי
אני רוצה לפתח דרך שיהיה את הוראות המערכת לאמריקאים יהיה באנגלית ולישראלים בעברית
יש דרך כלשהי? בלי להכפיל את כל המערכת. רק שיזהה אולי לפי מספר מתקשר או לפי המספר שהתקשרו אליו ויגדיר שיעבוד כל ההוראות הפעלה באנגלית -
@amram
אתה כנראה מתכוון ל"הודעות מערכת" ז"א -שפת המערכת-,
-לא שלוחה של הוראות הפעלה.
אין אפשרות כזאת. אולי api, אין לי מושג בזה.
אתה יכול להגדיר בכל שלוחה איזה שפה תהיה, אבל אי אפשר להגדיר 2 שפות לשלוחה אחת. -
@amram בתיעוד של הגדרות השפה מופיע
הגדרת ושינוי שפה
כברירת מחדל כל הודעות המערכת שהמשתמש שומע במהלך השיחה הן בעברית.
כדי לשנות את שפת המערכת יש להגדיר בשלוחה
language=שפה רצויה (ראה להלן)
במקרה כזה, השפה שתוגדר עבור השיחה של המשתמש (מהשלוחה הנוכחית והלאה) היא השפה שהגדרתם.
אין צורך להגדיר את ההגדרה בכל שלוחה במערכת, המערכת זוכרת את ההגדרה גם עבור שלוחות הבאות. (כמובן שבכל שלב תוכלו להגדיר שפה שונה וזו השפה שתהיה מאותו שלב והלאה)
לפי"ז נראה שתוכל לעשות שכל מי שמחייג למערכת מהמספר האמריקאי יופנה לשלוחה שתפנה אותו חזרה למערכת אבל שבאותה השלוחה יהיה גם ההגדרה של שינוי השפה לאנגלית..
-
@אביי-ורבא כתב בשפה שונה לפי מתקשר:
@amram בתיעוד של הגדרות השפה מופיע
הגדרת ושינוי שפה
כברירת מחדל כל הודעות המערכת שהמשתמש שומע במהלך השיחה הן בעברית.
כדי לשנות את שפת המערכת יש להגדיר בשלוחה
language=שפה רצויה (ראה להלן)
במקרה כזה, השפה שתוגדר עבור השיחה של המשתמש (מהשלוחה הנוכחית והלאה) היא השפה שהגדרתם.
אין צורך להגדיר את ההגדרה בכל שלוחה במערכת, המערכת זוכרת את ההגדרה גם עבור שלוחות הבאות. (כמובן שבכל שלב תוכלו להגדיר שפה שונה וזו השפה שתהיה מאותו שלב והלאה)
לפי"ז נראה שתוכל לעשות שכל מי שמחייג למערכת מהמספר האמריקאי יופנה לשלוחה שתפנה אותו חזרה למערכת אבל שבאותה השלוחה יהיה גם ההגדרה של שינוי השפה לאנגלית..
ניסיתי וזה לא עובד. [עכ"פ אצלי]
-
@963 אולי בגלל שזה מוגדר בivr.ini לעברית, נסה להזיז את ההגדרה הכללית לext של השלוחה הראשית...
-
פוסט זה נמחק! -
@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 עם מה שהבאתי, רק צריך לראות היכן השגיאה, אני ייפתח על זה נושא חדש עוד מעט כשאני יתפנה מעט