• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    1. דף הבית
    2. amp Software 0
    A
    • פרופיל
    • עוקב אחרי 0
    • עוקבים 3
    • נושאים 13
    • פוסטים 441
    • הגבוה ביותר 193
    • שנוי במחלוקת 0
    • קבוצות 0

    amp Software 0

    @amp Software 0

    310
    מוניטין
    200
    צפיות בפרופיל
    441
    פוסטים
    3
    עוקבים
    0
    עוקב אחרי
    הצטרף ב- התחבר לאחרונה

    amp Software 0 הפסק לעקוב עקוב

    הפוסטים הטובים ביותר שנוצרו על ידי amp Software 0

    • RE: מה זה סשן ואיך משתמשים בו?

      @שמואל-ש
      האובייקט $_SESSION ב PHP הוא אובייקט שמקושר לסשן החיבור שמבצע משתמש כל שהוא לשרת, והוא מתנהג כאובייקט json לכל דבר, ניתן לאחסן בו נתונים, לקרוא ממנו, וגם להסיר נתונים.
      זה לא מאפשר לדעת 'איפה אני אוחז', כיון שPHP היא שפה אסינכורנית, אבל זה כן מקל על כל התהליך של התקשורת מול המאזין בשימוש בשפת PHP במודול API, ובעיקר, מאפשר גם להסיר את ההקשות הקודמות של המשתמש, כך שאפשר לבצע את אותה פעולה כמה פעמים והמערכת לא 'תזכור' את הבחירה הקודמת.

      להלן הסבר כללי על האובייקט, עם דגש על השימוש במודול API:
      בכל דף שרוצים להשתמש ולאחזר את נתוני הסשן צריך לקרוא תחילה לפוקנציה שנקראת session_start(), בנוסף, מכיון שהקריאות של ימות המשיח יוצרות כל פעם סשן חדש, יש להגדיר מזהה ייחודי לסשן באמצעות פונקציית session_id(), כדי שכל פעם תתייחס לסשן הספציפי הזה. כיון שאנחנו מקבלים בימות את ה CallId רצוי להגדיר את מזהה הסשן למזהה השיחה.
      אם כן, ההגדרות הראשוניות לשימוש בסשן הם כדלהלן.

      $CallId = $_GET['ApiCallId'];
      session_id($CallId);
      session_start();
      

      לאחר מכן ניתן להתחיל להשתמש באובייקט $_SESSION, כאמור, הוא אובייקט מסוג json ולכן הקריאה והכתיבה אליו היא כמו כל אובייקט json אחר
      כתיבה

      $_SESSION['amount'] = 300;
      

      קריאה

      $amount = $_SESSION['amount'];
      

      החידוש הגדול הוא, שבשונה מ $_GET הנפוץ, שאפשר להסיר ממנו פריטים על ידי פונקציית unset
      הסרה

      unset($_SESSION['amount']);
      

      כדי להשמיש את האובייקט במודול API של ימות יש צורך לקלוט את כל הפרמטרים שנשלחים על ידי ימות לתוך אובייקט הסשן. לאחר מכן עבור כל פרמטר יש לבדוק האם הפרמטר מופיע באובייקט הסשן, ואם לא - לקבל אותו.
      אני בניתי בשביל זה מיני מחלקה שמפשטת את כל העסק, כשאני משתמש בה אני מרגיש כמו שפה סינכורנית, להלן דוגמית:

      <?php
      
      // מאתחל את הסשן ומקבל את ערכי הפרמטרים
      initialization_session();
      
      // מקבל פרמטר כמות, אם לא קיים - מבקש, אם קיים - מחזיר את הערך 
      // מקבל כפרמטר את רוב האופציות של read
      $amount = read('t-אנא הקש כמות', 'amount');
      
      //  מבצע בדיקה של הפרמטר ובמידה ואינו מאושר מסיר את קליטת הפרמטר ומפעיל את השלוחה מחדש
      if ($amount > 100) reload_module('t-לא ניתן להקיש כמות מעל 100', 'amount');
      
      //בדיקת הפרמטר על ידי פרמטר נוסף
      $approval_amount = read("t-הכמות שהתקבלה היא.n-$amount.t-לאישור הקש 1 לביטול הקש 2", 'amount,approval_amount', '12');
      if ($approval_amount == 2) reload_module(null, 'amount,approval_amount');
      
      go_to_folder('/', 't-הנתונים התקבלו בהצלחה');
      
      ####################################################
      
      function read($voice, $param, $keys = '', $max_taps = 1, $min_taps = 1, $sulamit = null, $cochavit = true, $read_as = 'No')
      {
          if (!isset($_SESSION[$param])) {
              echo "read=$voice=$param,,$max_taps,$min_taps,,$read_as,,,,$keys";
              if ($cochavit && $keys != '') echo '*';
              if ($sulamit) echo ",,Ok,$sulamit";
              exit();
          }
          return $_SESSION[$param];
      }
      
      
      function initialization_session()
      {
          $CallId = $_GET['ApiCallId'];
          session_id($CallId);
          session_start();
      
          $QUERY_STRING = $_SERVER['QUERY_STRING'];
          $last_param = substr($QUERY_STRING, strrpos($QUERY_STRING, '&') + 1);
          $param = explode('=', $last_param);
          $_SESSION[$param[0]] = $_GET[$param[0]];
      }
      
      
      function unset_session_values($keys)
      {
          $keys = explode(',', $keys);
          foreach ($keys as $key) {
              $key = explode(":", $key);
              unset($_SESSION[$key[0]]);
          }
      }
      
      function reload_module($voice = null, $unset = null)
      {
          if ($voice) echo "id_list_message=$voice&";
          if ($unset) unset_session_values($unset);
          echo 'go_to_folder=/' . $_GET['ApiExtension'];
          exit();
      }
      
      function go_to_folder($folder = '/', $voice = null)
      {
          if ($voice) echo "id_list_message=$voice&";
          echo "go_to_folder=$folder";
          exit();
      }
      

      קרדיט ל @לעזור-לכולם שכיוון אותי לשימוש יעיל בזה

      פורסם בפורום PHP
      A
      amp Software 0
    • RE: חדש במודול API! מעבר להשמעת קובץ מנקודת יצירה מסוימת

      @HMJE22
      בשמחה רבה אני יכול להסביר אם יהיה מזה תועלת. כתבתי רק שכדאי שתצא מתוך נקודת הנחה שיש בזה תועלת, מסתבר, כך יהיה יותר קל התקשורת.

      קח לדוגמא מערכת של קול הלשון, יש בה אלפי תיקיות שמאחסנות קבצי שמע עם הקלטות של שיעורים.
      בנוסף יש לי דאטה בייס שרשום בו בצורה מסודרת עבור כל שיעור את פרטי הרב, קטגוריה וכן את שם הקובץ ואת התיקיה בה מאוחסן השיעור.

      כעת, מאזין מתקשר ורוצה לשמוע שיעורים, הוא נכנס לשלוחת API, אני שואל אותו איזה רב הוא רוצה לשמוע, הוא בוחר רב, ואז אני מציג לו את הקטגוריות שבהם הרב פעיל, הוא בוחר את הקטגוריה שהוא רוצה ואז אני מציג לו את אפשרויות השיעורים והוא בוחר את השיעור.
      [כמובן זה האפשרות הבסיסית, תוסיף לזה אופציות כמו סינון תאריכים \ סינון לפי אורך \ החרגת שיעור שכבר הושמע בעבר וכו' שאין שום אפשרות לבצע את זה באמצעות שלוחות תפריט ודומיו אלא רק באמצעות שלוחת API באמצעות תקשורת עם שרת ודאטה בייס, מה גם שהמערכת דינמית כל כך ואין שום אפשרות שהממשק הטלפוני ישתמש במודולים של ימות המשיח]

      סיימתי עם פעילות שלוחת ה API, כעת הגיע הזמן להשמיע לו את השיעור, אבל - אני רוצה שהוא יוכל לדלג אחורה וקדימה ושיהיה לו את שאר האפשרויות של השמעת קבצים.
      אך יש כאן בעיה - מצד אחד תחילת הדרך מתחילה בהכרח דרך שלוחת API, אבל כעת אנחנו זקוקים לשירות של שלוחת השמעת קבצים. אני לא יכול ליצור שלוחת השמעת קבצים עבור כל קובץ מתוך עשרות ומאות אלפי קבצים...

      לצורך כך נועד הפיתוח הנ"ל,
      אני יוצר במערכת שלוחת השמעת קבצים אחת ויחידה, עם כל ההגדרות שאני רוצה, לדוגמא אני קורא לה playfiles, ואחרי שהמשתמש בחר לדוגמא שיעור ממרצה מספר 1002, בקטגוריה 9800 ושם הקובץ הוא 1202938485 אני מדפיס לו go_to_folder_and_play=/playfiles,/tutorials/1002/9800/1202938485,0
      כך הוא עובר לשמוע את השיעור המבוקש - בשלוחת השמעת קבצים.
      כמובן שאפשר להוסיף הגדרה שבסיום השיעור יעבור חזרה לשלוחת API וימשיך הלאה..

      הפרמטר השלישי שנשלח יעיל למקרה שבו אנחנו רוצים להחזיר את המאזין לשיעור שאליו הוא האזין בפעם האחרונה, רשום לי בדאטה בייס את פרטי השיעור עם נקודת העצירה, ואז אני יכול להעביר אותו ישירות למיקום שבו הוא אחז.

      מקוה שזה מספיק ברור.
      לגבי האפשרות לציין נתיב מלא, אתה צודק שכרגע זה נראה שזה לא עובד, מה שכן, ההגדרה להשמיע מתוך השלוחה עצמה עובדת מצויין (כרגע הפכתי את זה לתפעולי במערכת שבה אין תתי תיקיות רבות אלא כ-10 תיקיות עם קבצים, פשוט הפכתי את כולם לשלוחות השמעת קבצים ואז אני מעביר את המשתמש לשלוחה שבה מאוחסן הקובץ תוך ציון הקובץ להשמעה)
      דוגמא: go_to_folder_and_play=/tutorials,1202938485,0 .

      פורסם בחדש במערכת
      A
      amp Software 0
    • קובץ אקסס להעלאת קבצים מהמחשב לימות

      מצורף בזה קובץ אקסס המאפשר להעלות רצף של קבצים מהמחשב לימות

      בטבלת token יש לציין את הטוקן (מספר מערכת:סיסמה)
      בטבלת voices להכניס את הנתיבים,
      נתיב קובץ מקומי - לציין נתיב מלא של הקובץ, בלי גרשיים בהתחלה ובסוף
      נתיב במערכת הטלפונית - לציין נתיב שלוחה. אפשר לציין שם קובץ, אם לא צויין - מקבל את המספר הגבוה בשלוחה, אפשר לציין נתיב שלוחה שלא קיימת והיא נוצרת בהעלאת הקובץ

      הפעלה על ידי טופס העלאת קבצים

      לשים לב שמיועד לקבצים קטנים-בינוניים, ועלול לקחת זמן בהתאם
      קבצים ענקיים לא כדאי לנסות

      בהצלחה!

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: איך מעלים קובץ שמע בAPI עם הפונקציה של שמואל?

      @mgm-ivr @מנסה
      ערכתי את הקוד של @שמואל לשימוש ציבורי
      זה הקוד

      function uploadFile($isPrivate, $token ,$path ,$file)
      {
          if ($isPrivate) {
              $YemotUrl = 'https://private.call2all.co.il/ym/api/';
          } else {
              $YemotUrl = 'https://www.call2all.co.il/ym/api/';
          }
          
           
          $headers = array(
           'Content-type: multipart/form-data'
          ); 
          $url = $YemotUrl . 'UploadFile'; 
          $target = new CURLFile($file,'media/wav');
      
          $parm['upload'] = $target;
          $parm['token'] = $token;
          $parm['path'] = $path . '/' . $target->getFilename();
          $curl = curl_init();
       
          curl_setopt_array(
              $curl,
              array(
                  CURLOPT_URL => $url,
                  CURLOPT_POST => true,
                  CURLOPT_POSTFIELDS => $parm,
                  CURLOPT_HTTPHEADER => $headers,
                  CURLOPT_RETURNTRANSFER => true,
              )
          );
          $response = curl_exec($curl);
          $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
          curl_close($curl); 
          $response = json_decode($response, true);
          return $response;
      }
      

      צריך לשלוח 4 פרמטרים isPrivate - ערך בוליאני אם המערכת בשרת פרייבט, token, path, ו- file - שם הקובץ להעלאה

      דוגמא

      uploadFile(false,'0773137770:2580','ivr2:/1','M1024.wav');
      

      בדוגמא הקובץ נמצא באותה תיקיה של קובץ ה php, במידה והקובץ להעלאה נמצא בתיקיה משנית (הנקראת לדגומא subFolder) יש להזין כך:

      uploadFile(false,'0773137770:2580','ivr2:/1','subFolder/M1024.wav');
      

      הפונקציה מחזירה אובייקט json עם נתוני הפעולה, ניתן לקבל אותו גם כסטרינג כמובן

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: הגדרת פעולת המקשים ב id_list_message

      @אאד
      לפי מה שידוע לי אין אפשרות לדילוג ב read או ב id_list_message
      לעצמי כיון שזה היה מאוד נצרך בניתי ב API שיעבור לשלוחת השמעת קבצים (שההגדרות שלה יעודכנו רגע לפני כן לאיזה קובץ להשמיע) ויחזור חזרה

      פורסם בבקשות לפיתוח
      A
      amp Software 0
    • RE: הורדת הרבה קבצים בAPI

      @לעזור-לכולם
      יש פונקציה מובנת של js להוספת 0 מוביל padStart

      for (let index = 0; index <520; index++) {
          window.open("https://www.call2all.co.il/ym/api/DownloadFile?token=077000000:1234&path=ivr2:/1/1/" + index.toString().padStart(3,'0') + ".wav")
          
      }
      
      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: מה השרת (בתשלום) הכי מהיר ואמין למודולים של API?

      @לעזור-לכולם כתב במה השרת (בתשלום) הכי מהיר ואמין למודולים של API?:

      אבל אחרי שעושים קריאה אחת אפשר לשמור אותה ב session

      אתה התנסית עם זה?
      אני לא הצלחתי להשתמש עם session זה נראה שכל פניה של ימות מאותחל כסשן חדש
      תראה קוד לדוגמא שיצרתי, המערכת מאחסנת את הזמן הנוכחי בתוך session אם עדיין לא שמור בו נתון ובכל כניסה לשלוחה היא מציגה מחדש את הזמן הנוכחי, מה שאומר שזה לא אותו session

      <?php
      if (!isset($_SESSION['a'])) $_SESSION['a'] = time();
      echo 'id_list_message=d-' . $_SESSION['a'];
      

      לגבי גוף הדיון,
      לדעתי לא אמור להיות שום הבדל ברמת מהירות בין חברות, בסופו של דבר כולם משתמשים עם אותו חומר, ועל כולם מותקן OS של לינוקס (בדרך כלל) וכשאתה שוכר VPS אתה מגדיר מראש כמה מעבד אתה רוצה וכמה זיכרון RAM וכו' אז אין שום סיבה שיהיה הבדל בין חברות
      אני אישית משתמש עם 2 שרתים של הוסטינגר (בשונה למה שכתב @חוקר יש להם גם שרת VPS עם ממשק ניהול מצויין, זה לא רק האחסון אתרים חינמי, ואפשר להתקין כמובן מה שרוצים) ואחד של קונטאבו ולא רואה הבדל בכלל בינהם
      מה שכן יש את הנושא של 'אמין', או שירות לקוחות, ממשק ניהול נח וכדו' וכמובן מחיר, שזה כמובן דבר שחלוק בין החברות

      לגבי איטיות בשימוש במודול API
      ברמת העיקרון אם תדפיס שורת קוד אחת, זה אמור להחליק בזמן מזערי ולא מורגש, התקשורת של ימות עם השרת היא יחסית מהירה, כי את הפניה מבצע השרת של ימות שהוא שרת חזק
      האיטיות יכולה להיגרם מחמת חוסר משאבים בצד השרת שלך, זה יכול להיות מעבד חלש או זיכרון ראם, וזה גם יכול להיות כתיבת קוד לא נכונה, או דאטה בייס לא מאונדקס כמו שכבר כתבו. הכי נכון זה לדבג את הקוד ולראות היכן מתרחשת האיטיות (אפשר באמצעות הדפסת הזמן בכל קטע קוד) ולראות כיצד ניתן לשפר
      במקרה שמבצעים פניה ל API של ימות מתוך הקוד, בזה ישנה באמת איטיות שמורגשת, אבל זה ודאי לא קשור למאשבים של השרת, כי לא מדובר פה באיזה פעולת חישוב מסובכת, אלא יותר ביכולת שלו לפתור DSN של שרת אחר

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: הפכתי את האתר למאובטח (https) אין ברירה אלא לשנות את כללל הלינקים?

      @דוד_מלך_ישראל
      הסיבה שזה קורה זה בגלל שהגדרת בשרת שלך ש http יחזיר 301 אל https, וימות מצפים לקבל 200
      אתה יכול להגדיר ש http לא יפנה ל https אלא יחזיר גם את מה ש https מחזיר (רק שאם תגש בדפדפן כ http הוא לא יעבור ל https)

      אם אתה לא יודע \ יכול להגדיר את ההגדרות האלו, אתה מקסימום יכול להריץ לולאה על כל השלוחות שלך ולעדכן כל מקום שכתוב http ל https
      אגב, בלי קשר, אם המערכת שלך בנויה כולה על API, מנסיון עדיף לא להשתמש עם הרבה שלוחות של ימות שפונות ל API אלא להרכיב על ימות רק שלוחה אחת ואת כל הלוגיקה של ה'שלוחות' לבצע בצד השרת (זה אמנם נשמע מורכב ולא מוכר, אבל זה פותר הרבה בעיות ונותן דינמיות לכל מבנה הפרוייקט)

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: בקשת עזרה | תקשור דרך אקסס

      @צבי-10
      תראה כאן

      פורסם בשאלות ועזרה הדדית
      A
      amp Software 0
    • RE: מדוע השרת מחזיר ERROR כאשר הפעולה הצליחה ?

      @חוויה-טלפונית אמר במדוע השרת מחזיר ERROR כאשר הפעולה הצליחה ?:

      CheckIfFileExists

      אם כבר, תיקון נוסף
      אם משמיטים את הפרמטר path
      הוא מחזיר שגיאה
      wath is required
      במקום path is required שמופיע ב WS מקבילים שדורשים את הפרמטר path

      פורסם בבאגים במערכת
      A
      amp Software 0

    פוסטים אחרונים שנוצרו על ידי amp Software 0

    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      זה קצת לא הגיוני ההתנהלות, אם אין לך שרת לבצע בדיקות, לא יהיה לדבר סוף,
      אתה חייב לבדוק את הקוד שלך היטב ואח"כ להעלות אותו. אני יכול להיות שרת פרודקשן אבל לא שרת טסט..

      @CUBASE כתב בקוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?:

      רוצה להקצות לי תיקייה בשרת שלך ואעדכן בעצמי כל פעם?

      אני מניח שלא התכוונת ברצינות..

      בכל אופן כרגע העלתי את הקוד המעודכן

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      עודכן

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      טוב..

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      טופל

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      כן,
      PHP Debug זה בעיקר בשביל דיבוג עם Xdebug, זה לא נצרך לפיתוח עצמו

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      PHP Intelephense
      ו PHP debug
      באמת לא מומלץ להתקין הרבה תוספים, זה רק מסבך

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      העלתי

      יש לך שם שגיאה, ככה"נ מחמת שימוש בתוסף בעורך הקוד
      b90f8f90-c2a7-4066-85e3-9b0b73e3d2bf-image.png
      תיקנתי את זה

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: קוד להודעה אישית במהלך האזנה - מישהו מוכן להעלות לשרת שלו?

      @CUBASE
      https://utilitiesphone.com/PlayfilePersonalMessage/PlayfilePersonalMessage.php
      בלי התחייבות לאחסון כלל!

      פורסם בפורום מפתחים API
      A
      amp Software 0
    • RE: ניהול מערכת טלפונית, האתר נסגר?

      @CUBASE @פישל
      תסתכל בקונסול אם מופיע לך באדום

             GET https://ysm.liy.ovh/assets/index-5bcefd4d.js net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
      

      והאם בגישה בחלון אנונימי זה כן מתחבר?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      A
      amp Software 0
    • RE: רוצים להשמיע הודעה גלובלית במודול API ללא הקמת מאגר? כאן נמצא הפתרון!!! 👇

      @CUBASE כתב ברוצים להשמיע הודעה גלובלית במודול API ללא הקמת מאגר? כאן נמצא הפתרון!!! 👇:

      וגם בזמן ההודעה המערכת לא קולטת את ההקשות

      בעיה די קריטית...

      פורסם בפורום מפתחים API
      A
      amp Software 0