• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    1. דף הבית
    2. האדם החושב
    3. פוסטים
    ה
    • פרופיל
    • עוקב אחרי 0
    • עוקבים 1
    • נושאים 22
    • פוסטים 105
    • הגבוה ביותר 27
    • שנוי במחלוקת 0
    • קבוצות 0

    הודעות שפורסמו על ידי האדם החושב

    • RE: היכן ממוקמות כל מספרי הקו המשוייכים? 🔢

      @פלוס https://f2.freeivr.co.il/post/135629

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: היכן ממוקמות כל מספרי הקו המשוייכים? 🔢

      @פלוס
      https://www.call2all.co.il/ym/api/GetApprovedCallerIDs?token=0773137770:1234

      תחליף מספר מערכת וסיסמא.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: אבטחה - באימות דו שלבי / דעתכם... 🪪💂🏻

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

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: אבטחה - באימות דו שלבי / דעתכם... 🪪💂🏻

      לדעתי זה שבכל שינוי ip צריך לעשות אימות מחדש זה מאד מפריע, כל מי שמשתמש סטיק בכל חיבור שלו הip משתנה.
      הייתי מציע שהסשן ישמר בדפדפן, כמו שכל אתר אחר עושה (google, github וכו' וכו').

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: עזרה | הכנת לינק לפעולות דרך API במחשב

      @פלמנמוני בget יש הגבלה לאורך הבקשה, כך שאם הוא ישים מידי הרבה מספרים זה לא יעבוד.

      פורסם בפורום מפתחים API
      ה
      האדם החושב
    • RE: מודל API עם גוגל סקריפט | עזרה

      @יב לא אפשרי

      פורסם בפורום מפתחים API
      ה
      האדם החושב
    • RE: מודול API אני מקבל תגובה אין מענה בשרת API

      @sumone צודק.
      שים לב שבכתובת ההיא בheaders כתוב שהcontent-type הוא json, אולי זה מה שגורם לבעיה.
      מה רשום לך בapilog?
      אגב, שים לב שכתבת את השורה הזאת:

      api_hangup_send=noapi_hangup_send=no
      
      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: מודול API אני מקבל תגובה אין מענה בשרת API

      @אלי-דובדבן אתה צריך להחזיר תשובת שרת בפורמט טקסט רגיל, לא json.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: מיזוג שיעורים ממערכת ימות המשיח לקול הלשון או להיפך

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

      queue_record_duplicate_link=מיקום
      

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

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: בדיקת קוד פייתון

      @ישראללוי

      from uuid import uuid4
      
      import requests    
      
      class Yemot:
          BASE_URL = "https://www.call2all.co.il/ym/api/"
      
          def __init__(
                  self,
                  user_name: str,
                  password: str | int,
          ) -> None:
              self.token = f"{user_name}:{password}"
              self.params = {
                  "token": self.token
              }
      
          def upload_file(self, path: str, blob: bytes, file_name: str, base_path: str = "ivr2:/") -> bool:
              total_size = len(blob)
              chunk_size = 49 * 1024 * 1024
              chunks = [blob[offset:offset + chunk_size] for offset in range(0, total_size, chunk_size)]
              if len(chunks) == 1:
                  return self._upload_small_file(path, blob, file_name, base_path)
              else:
                  return self._upload_large_file(path, chunks, file_name, total_size, base_path)
      
          def _upload_small_file(self, path: str, blob: bytes, file_name: str, base_path: str) -> bool:
              data = {
                  "path": f"{base_path}{path}",
                  "convertAudio": "1",
                  "autoNumbering": "true",
              }
              data.update(self.params)
              files = {"file": (file_name, blob)}
              url = f"{self.BASE_URL}UploadFile"
              response = requests.post(url, files=files, data=data).json()
              return response["responseStatus"] == "OK"
      
          def _upload_large_file(self, path: str, chunks: list[bytes], file_name: str, content_size: int, base_path: str) -> bool:
              qquuid = str(uuid4())
              offset = 0
              for index, chunk in enumerate(chunks):
                  data = {
                      "path": f"{base_path}{path}",
                      "qquuid": qquuid,
                      "convertAudio": "1",
                      "autoNumbering": "true",
                      "uploader": "yemot-admin",
                      "qqfilename": file_name,
                      "qqtotalfilesize": content_size,
                      "qqtotalparts": len(chunks),
                      "qqchunksize": len(chunk),
                      "qqpartbyteoffset": offset,
                      "qqpartindex": index,
                  }
                  data.update(self.params)
                  files = {
                      "qqfile": chunk,
                  }
                  url = f"{self.BASE_URL}UploadFile"
                  response = requests.post(url, data=data, files=files).json()
                  if not response["success"]:
                      print(f"Error uploading chunk {index}: {response}")
                      return False
                  offset += len(chunk)
      
              data = {
                  "path": f"{base_path}{path}",
                  "uploader": "yemot-admin",
                  "convertAudio": "1",
                  "autoNumbering": "true",
                  "qquuid": qquuid,
                  "qqfilename": file_name,
                  "qqtotalfilesize": content_size,
                  "qqtotalparts": len(chunks),
              }
              data.update(self.params)
              response = requests.post(f"{self.BASE_URL}UploadFile?done", data=data).json()
              return response["responseStatus"] == "OK"
      
      
      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: בדיקת קוד פייתון

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

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: שליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט

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

      פורסם בפורום מפתחים API
      ה
      האדם החושב
    • RE: השארת הנציג על הקו בסיום שיחת תור

      @יהודה-צ-כ לא עובד.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: השארת הנציג על הקו בסיום שיחת תור

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

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: השארת הנציג על הקו בסיום שיחת תור

      @יהודה-צ-כ אני צריך שדווקא הנציג יגדיר.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: שליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט

      @הללוהו למיטב זכרוני השליחה מימות כpost לא שולחת את הנתונים במבנה json אלא כפרמטרים מופרדים ב& ו =
      אגב, למה אתה לא שולח בget?

      פורסם בפורום מפתחים API
      ה
      האדם החושב
    • השארת הנציג על הקו בסיום שיחת תור

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

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: שלוחות ללא תיעוד?

      @אופיר זה מספר וירטואלי

      type=private_did
      private_did_admin=מספר הטלפון שלך
      
      פורסם בעל הפורום
      ה
      האדם החושב
    • RE: נתיב יחסי במודלים add_id_to_list ו record_system_messages

      @CUBASE בשמירת קובץ הקלטה גם יש נתיב יחסי. (אם כי כתיבת הנתיב היחסי שם קצת שונה מהדרך הרגילה)

      פורסם בעזרה הדדית למשתמשים מתקדמים
      ה
      האדם החושב
    • RE: נתיב יחסי במודלים add_id_to_list ו record_system_messages

      @CUBASE
      נניח אני בנתיב

      ivr2:1/2/3
      

      ואני רוצה לשנות קובץ שנמצא בנתיב

      ivr2:1/1/2
      

      אם אני כותב כך:

      type=add_id_to_list
      add_id_to_list_location_list=/1/1/2
      add_id_to_list_key=001
      add_id_to_list_value_type=digits
      add_id_to_list_value_change=yes
      

      הכל עובד, אבל אם אני כותב כך:

      type=add_id_to_list
      add_id_to_list_location_list=../../1/2
      add_id_to_list_key=001
      add_id_to_list_value_type=digits
      add_id_to_list_value_change=yes
      

      זה לא עובד.

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