הפניית שיחה לתוך שלוחה במערכת אחרת מבית דוד מלך ישראל (פיתוח פרטי)
-
@דוד_מלך_ישראל הבעה שהAPI הזה עובד בצורה מאד איטית.
-
@isi נכון, לכן ביקשתי בהתחלה אם מישהו יכול להכניס את זה לשרת שלו, היו כמה שהתנדבו, אבל הייתי מאד עמוס ולא הספקתי לטפל בזה, בעז"ה בימים הקרובים.
-
@דוד_מלך_ישראל כעת זה לא עובד בכלל, אלא עונה: אין מענה בשרת API
-
@דוד_מלך_ישראל
שלום תודה על הלב הגדול והפיתוחים השימושיים
עשיתי את מה שכתוב וב"ה זה עבד טוב
אבל נהיה לי באג שבשיחה הבאה שחייגתי לקו היעד ישירות זה מפנה את המספר המחייג לתוך השלוחה הפנימית (אותה הגדרתי בהפנייה מהמערכת מקור) במקום לתפריט הראשי.
מקווה שהובנתי
אשמח לעזרתך
תודה -
אני מעלה כאן את שני הקודים שמפעילים את המודול, כל מי שיכול להעלות לשרת שלו ולשתף לתועלת כולם, יבורך:
הסבר קצר: הקוד הראשון מבצע שתי פעולות: מגדיר במערכת היעד בדיקת הרשאה, ומעלה קובץ לתיקיית סל המיחזור עם תיקיית היעד.
הקובץ השני מקבל את תוכן הקובץ מסל המיחזור, מגדיר בשלוחה api_goto לשלוחת היעד, ואז מדפיס out.
(בנוסף, צריך שבמידה שבפעם הבאה המשתמש יתקשר ישירות למערכת היעד, לא יופנה לשלוחה, לכן בניתוק השיחה, כשהקוד השני מקבל פרמטר ניתוק, הוא מוחק את תוכן הקובץ ע"י העלאת רווח לקובץ, ובכניסה לקוד מוגדר תנאי שבמידה והקובץ לא קיים (אם הוא מעולם לא התקשר דרך מערכת המקור) או שהוא מכיל רווח, מדפיס ok כדי שייכנס לשלוחה רגיל.)קוד 1:
הערה חשובה: כמובן שיש צורך לשנות את הכתובת שהקוד מגדיר בשלוחה את הפניה אליה לפי השרת שלכם.<?php $did = $_GET['did']; $password = $_GET['password']; $folder = $_GET['folder']; $ApiPhone = $_GET['ApiPhone']; $url = json_decode(file_get_contents("https://www.call2all.co.il/ym/api/UpdateExtension?token=$did:$password&path=ivr2:/&check_api=yes&api_link=http://65786876867.000webhostapp.com/gtfis2.php&check_api_every_entry=yes&api_add_0=password=$password&"), true); $url = json_decode(file_get_contents("https://www.call2all.co.il/ym/api/UploadTextFile?token=$did:$password&what=ivr2:Trash/$ApiPhone.ini&contents=/$folder"), true); $status = $url['responseStatus']; if($status == "OK"){print "routing_yemot=$did"; exit();} else {print "תקלה";}
קוד 2:
<?php $did = $_GET['did']; $password = $_GET['password']; $folder = $_GET['folder']; $ApiPhone = $_GET['ApiPhone']; $ApiDID = $_GET['ApiDID']; if (isset($_REQUEST['hangup'])) { $url = json_decode(file_get_contents("https://www.call2all.co.il/ym/api/UploadTextFile?token=$ApiDID:$password&what=ivr2:Trash/$ApiPhone.ini&contents=%20"), true); exit(); } else{ $url = json_decode(file_get_contents("https://www.call2all.co.il/ym/api/GetTextFile?token=$ApiDID:$password&what=ivr2:Trash/$ApiPhone.ini"), true); $textContent = $url['contents']; if ($textContent == null || $textContent == " "){print "OK"; exit();} else { $url = json_decode(file_get_contents("https://www.call2all.co.il/ym/api/UpdateExtension?token=$ApiDID:$password&path=ivr2:/&api_goto=$textContent&"), true); $status = $url['responseStatus']; if($status == "OK"){print "Out"; exit();} } }
-
-
@דוד_מלך_ישראל תודה רבה.
אפשר הסבר באופן המתאים גם למי שלא מבין בזה, איך מתקדמים עם זה?להבנתי יש כאן 4 שלבים, שעל כל אחד מהם אודה להסבר/תשובה.
שלב ראשון אני מבין שאני צריך לשמור את שני הקודים הנ"ל כל אחד בקובץ נפרד.
אבל תחת איזה שם לשמור כל קובץ?שלב שני אני מעלה את זה לשרת שלי.
אבל האם משנה באיזו תיקיה במנהל הקבצים אני שם את זה?שלב שלישי, אחרי שזה ממוקם בשרת שלי, מה אני בדיוק צריך לשנות בקודים הנ"ל?
שלב רביעי אני עושה שלוחה עם מה שהבאת בהודעה הראשונה, כאשר אני מחליף את:
65786876867.000webhostapp.com
לכתובת של האתר שלי.
הבנתי נכון? -
@isi צריך לשמור כל אחד בקובץ נפרד, בכל שם שאתה רוצה ועם סיומת php.
אתה יכול לשים את הקבצים בכל מקום בשרת שלך, שם הקבץ והמיקום שלו אינם משנים, אבל צריך בלינק לקובץ לציין אותם, כך למשל בפוסט הראשון שהבאתי, הלינק הוא
http://65786876867.000webhostapp.com/gtfis1.php
כאשר
http://65786876867.000webhostapp.com
זו כתובת השרת, ו
gtfis1.php
הוא שם הקובץ, הקובץ נמצא אצלי תחת התיקיה הראשית ולכן צריך רק את כתובת השרת ושם הקובץ, אפשר לשים אותו, לשם הדוג', תחת תיקיית "system", ואז, לאחר כתובת השרת יהיה צריך לכתוב
/system/gtfis1.php
לסיכום, לא משנה איך תקרא לקבצים ואיפה תשים אותם, רק תציין את זה בצורה מדויקת בלינק שאותו אתה שם בשלוחה.
בנוסף, הקוד הראשון מגדיר במערכת היעד בדיקת הרשאת כניסה מול הקוד השני, דהיינו שהוא מוסיף בשלוחה את הלינק לקובץ השני, ולכן צריך שיהיה כתוב בו את הלינק לקובץ כפי שהוא מתאים לשרת שלך.
בהצלחה
-
@דוד_מלך_ישראל זה יפה
נראה לי פיתרון פשוט מאוד לשייך למערכת היעד איזה מספר של 079 חינמי ואת המספר הזה לשייך לשלוחה המסוימת
ואז ממערכת המקור להפנות לשם אני משחק עם הרעיון הזה המון ואפשר להגיד שזה פיתרון טוב לממשק בין מערכות -
@העץ-של-עטין אין אפשרות לשייך מספר משנה חינם.
-
@דוד_מלך_ישראל המודול הפסיק לעבוד הוא עבד לי הרבה זמן ופתאום לא מזמן הפסיק לעבוד כך שמי שהתקשר דרך המערכת שמפנה לשלוחה במערכת השניה הגיע לתפריט הראשי של המערכת השניה ולא לשלוחה 700 שאליה היה אמור להגיע
כבר מחקתי את ההגדרות בשלוחה וסדרתי כך שהמאזין לא יגיע לשום מקום אז לא אוכל לתת את ההגדרות של השלוחה
מה שרציתי לשאול האם היה שינויים בהגדרות השלוחה? -
@ivrפון אני לא שיניתי כלום, כאמור, אני מעדיף שמישהו ייקח את הקודים וישים אותם אצלו לטובת הציבור כדי שאוכל להסיר אותם מהשרת שלי, אבל בינתיים לא היה שינוי מבחינתי.
האמת שזה שרת שאני פחות מתעסק איתו, אני אבדוק בעז"ה בהמשך היום מה קורה שם. -
@דוד_מלך_ישראל תודה רבה!!
-
@ivrפון בדקתי, עבד לי תקין, אולי היתה תקלה נקודתית.
-
@דוד_מלך_ישראל תודה!
-
-
-
@דוד_מלך_ישראל אני מנסה להגדיר כפי ההוראות שלך
הוא פשוט לא מפנה לשום מקום
זה מה שהכנסתיtype=api api_link=https://davidm-yemot.ivr2.tel/gtfis1.php api_add_0=did=077XXXXXXX api_add_1=password=XXXXX api_add_2=folder=/2/1
-
@פרויקט כנ"ל גם אני, מה עושים?
-
@דוד-כ תראה את ההערה שלי בתחילת הפוסט הראשון.
-
הארה יפה אבל מה תכל'ס????????
-
@דוד_מלך_ישראל עלה 2 רעיונות לצורה אחרת לעשות הפניה הרעיון הראשון מתאים גם למערכת שאין לך את הסיסמה שלה (ובגלל זה אני לא חושב שכדאי לפרסם אותו {כי הוא מועד לפריצות וכו'} וגם כי הוא רק אם שתיהם באותו שרת) הרעיון הסטנדרטי הוא כזה:
שלוחת API שמפנה למערכת השנייה ומגדירה שם בתיקיית dvd (לדוג')type=go_to_folder go_to_folder(2024-06-17-00-00-00)=השלוחה להפניה
ומגדיר בתפריט הראשי הפניה לפי מחייג ומחויג פעם אחת בשיחה לשלוחה dvd
בהצלחה למפתחים!ולכולם? ? ! -
@דוד_מלך_ישראל למה זה לא עובד לי?
זה שניה שקט ואז חוזר לתפריט ראשי.
אני עשיתי שמעביר לשלוחה פנימית של מערכת אחרת ושם בשלוחה ההיא מופנית בחזרה למקור.
{כמובן שעשיתי זאת ע"י שנכנסים לפי מספר מחוייג לשלוחה 11 ששם מופנים למערכת השניה עם הפיתוח המופלא,
ובמקור מוגדר העברה לשלוחה 11 פעם אחת.}
אני עושה מכיון שיש לי קו שמתזכר על ענין מסוים, ועושה רק צינתוקים אוטומטי במשימות ואף כמעט לא מתקשר לשם, לכן אני עושה בקו אחר שלי שמאוד שימושי את הדבר הזה.