• צורת זרימת קוד לIVR

    פורום מפתחים API
    4
    0 הצבעות
    4 פוסטים
    70 צפיות
    Y
    @עידו ככה עובדים, הקוד לא חייב להיות קוד אחד ארווך (כמו שAI אוהבים לעשות...) עושים לכל פונקציה קובץ בנפרד שמעבד אותה, או לכל סדרת פונקציות קבצים בתוך תיקייה, ואז בכל קובץ קוראים לפונקציה המתאימה, למשל הקובץ הראשי, משמיע בקשה מסויימת, ומעביר לפי ההקשה לפונקציות אחרות, ושם אפשר לשרשר את זה לעוד פונקציות אם זה מסודר בקבצים נפרדים זה לא כל כך מבולבל, ומבולגן... שוב אם לכל הקשה זה להעביר אותו לעוד עיבוד וכו' אם זה רק חזרה / מעבר / דברים קבועים, אפשר להכניס באותה פונקציה, לפי הפרמטר שמתקבל.
  • 1 הצבעות
    6 פוסטים
    70 צפיות
    א
    @תפארת-יעקבב כתב בתוכנה לניהול וניתוח כניסות ויציאות משלוחות והאזנות במערכת: המערכת קרסה מיידית על השניה הראשונה שהתחילה לסרוק ולייבא תנסה שוב כעת
  • מספרי 1700

    עזרה הדדית למשתמשים מתקדמים
    4
    0 הצבעות
    4 פוסטים
    50 צפיות
    B
    @R.E.T-מערכות כאן דיברו
  • דרוש: יחידה אחת

    עזרה הדדית למשתמשים מתקדמים
    7
    0 הצבעות
    7 פוסטים
    40 צפיות
    י
    @BEN-ZION שלחתי
  • הוספת שמות לדוחות - לא נקלט

    שאלות ועזרה הדדית
    10
    0 הצבעות
    10 פוסטים
    50 צפיות
    B
    @אa זה קוד תכניס נתיב כולל שם הקובץ טוקן אקסל שעמודה A שם עמודה B טלפון וזה אמור להעלות במנה תקין לי זה עובד זה מוחק את כל מה שיש בקובץ זהירות!! <!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>מעלה קבצי INI מעובדים לימות המשיח</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script> <style> body { font-family: Arial, sans-serif; margin: 20px; line-height: 1.6; text-align: right; } .container { max-width: 500px; margin: auto; border: 1px solid #ccc; padding: 20px; border-radius: 8px; box-shadow: 2px 2px 10px #eee; } input, button { width: 100%; padding: 10px; margin: 10px 0; border-radius: 4px; border: 1px solid #ddd; box-sizing: border-box; } button { background-color: #28a745; color: white; cursor: pointer; border: none; font-weight: bold; } button:hover { background-color: #218838; } .status { margin-top: 15px; font-weight: bold; text-align: center; } </style> </head> <body> <div class="container"> <h2>יצירת קובץ INI (ניקוי מספרים)</h2> <label>טוקן (Token):</label> <input type="text" id="token" placeholder="הכנס טוקן"> <label>נתיב להעלאה:</label> <input type="text" id="path" placeholder="ivr2:5/PhoneIndex.ini"> <label>בחירת קובץ אקסל:</label> <input type="file" id="excelFile" accept=".xlsx, .xls, .csv"> <button onclick="processAndUpload()">נקה מספרים והעלה</button> <div id="status" class="status"></div> </div> <script> // פונקציה לניקוי והכנת מספר הטלפון function formatPhoneNumber(phone) { if (!phone) return ""; // הפיכה למחרוזת והסרת מקפים, רווחים ותווים שאינם מספרים let cleaned = String(phone).replace(/\D/g, ''); // אם המספר מתחיל ב-5 (ללא 0) והוא באורך של מספר סלולרי ישראלי חסר if (cleaned.startsWith('5') && cleaned.length === 9) { cleaned = '0' + cleaned; } // אם המספר מתחיל בקידומת בינלאומית 972, נחליף ל-0 if (cleaned.startsWith('972')) { cleaned = '0' + cleaned.substring(3); } return cleaned; } async function processAndUpload() { const token = document.getElementById('token').value; const path = document.getElementById('path').value; const fileInput = document.getElementById('excelFile'); const statusDiv = document.getElementById('status'); if (!token || !path || !fileInput.files[0]) { alert("נא למלא את כל השדות"); return; } statusDiv.innerText = "מעבד נתונים ומנקה מספרים..."; statusDiv.style.color = "blue"; const file = fileInput.files[0]; const reader = new FileReader(); reader.onload = async function(e) { try { const data = new Uint8Array(e.target.result); const workbook = XLSX.read(data, { type: 'array' }); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const json = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); let iniContent = ""; // דילוג על שורת כותרת אם קיימת (אופציונלי - כאן הוא עובר על הכל) json.forEach(row => { let name = row[0]; let rawPhone = row[1]; if (name && rawPhone) { let cleanPhone = formatPhoneNumber(rawPhone); iniContent += `${cleanPhone}=${name}\n`; } }); if (!iniContent) { statusDiv.innerText = "לא נמצאו נתונים תקינים באקסל"; return; } uploadFile(iniContent, token, path); } catch (err) { statusDiv.innerText = "שגיאה בפענוח הקובץ"; console.error(err); } }; reader.readAsArrayBuffer(file); } async function uploadFile(content, token, path) { const statusDiv = document.getElementById('status'); const apiUrl = `https://www.call2all.co.il/ym/api/UploadFile?token=${token}&path=${path}`; const formData = new FormData(); const blob = new Blob([content], { type: 'text/plain; charset=utf-8' }); formData.append('file', blob, 'file.ini'); try { const response = await fetch(apiUrl, { method: 'POST', body: formData }); const result = await response.json(); if (result.responseStatus === "OK") { statusDiv.innerText = "הקובץ נוקה והועלה בהצלחה!"; statusDiv.style.color = "green"; } else { statusDiv.innerText = "שגיאה: " + result.message; statusDiv.style.color = "red"; } } catch (error) { statusDiv.innerText = "שגיאת תקשורת (וודא שאין חסימת CORS)"; statusDiv.style.color = "red"; } } </script> </body> </html>
  • 2 הצבעות
    1 פוסטים
    30 צפיות
    אין תגובות
  • 7 הצבעות
    200 פוסטים
    3k צפיות
    ה
    @שואל-שאלה בכל אופן תודה על המאמצים לטובת הציבור!!!
  • בעיה בקבלת צינתוקים

    באגים במערכת
    2
    0 הצבעות
    2 פוסטים
    57 צפיות
    ח
    @אברהם-צבי-0 תנסה אולי להאריך את אורך זמן הצינתוק, תגדיר בשלוחת הצינתוק שהצינתוק יהיה למשך 10 שניות . tzintuk_timeout=10
  • 0 הצבעות
    19 פוסטים
    111 צפיות
    1
    @CUBASE כתב בתגובות כל כלי הקריינות וה-AI (והטקסט לדיבור) במקום אחד: @1668 אני לא חושב שיש צורך לפתוח את אותו נושא בשני קטוגריות צודק היתה טעות שלי
  • 0 הצבעות
    3 פוסטים
    53 צפיות
    א
    @אA כן זה עבד
  • הפורום משתדרג?!

    על הפורום
    3
    1 הצבעות
    3 פוסטים
    69 צפיות
    ש
    @בוס כתב בהפורום משתדרג?!: לא ראיתי שום אופציה חדשה. [image: 1776579245852-d3929189-016e-4407-aeca-f346ee9677e4-image.png]
  • למה אין אפשרות לחתימה?

    על הפורום
    6
    0 הצבעות
    6 פוסטים
    42 צפיות
    ש
    @יעקב-יצחק בשביל לתייג את הניהול @שלוימי-770
  • מערכת וירטואל פלוס לא מקבלת SMS של גוגל

    באגים במערכת
    3
    0 הצבעות
    3 פוסטים
    38 צפיות
    R
    @אבטיח-מעוך תקרא פה https://f2.freeivr.co.il/topic/19673
  • 0 הצבעות
    3 פוסטים
    54 צפיות
    R
    @1668 יש שם שרתים שלא רלוונטים לימות כדוגמת InfinityFree ועוד Spoiler לפני שאתה נותן לבינה להמליץ על שרתים תשאל אותה גם אם הם תומכים בקריאות לימות
  • איך אני פותר את זה?

    שאלות ועזרה הדדית
    19
    1
    0 הצבעות
    19 פוסטים
    40 צפיות
    ל
    @אA שבת שלום!
  • לא שומעים את שמות הצוברים. למה?

    נפתר שאלות ועזרה הדדית
    31
    1 הצבעות
    31 פוסטים
    675 צפיות
    ל
    @BEN-ZION לילה טוב !
  • פתיחת שלוחה אישית למאזין

    שאלות ועזרה הדדית
    7
    0 הצבעות
    7 פוסטים
    24 צפיות
    א
    @אחד-מהציבור שלוחת API של עידכון שלוחה, ושיעבור לפני כן בהוספת ערך שיוסיף את הid שלו לנתיב. כדי שזה יעבוד תצטרך להשתמש בסקריפט של יהודה צ.כ. לחלופין יתכן וזה גם יעבוד בפתיחת שלוחות לפי זיהוי אישי וכדו'.
  • ווטסאפון

    שאלות ועזרה הדדית
    3
    0 הצבעות
    3 פוסטים
    23 צפיות
    B
    @sumone אני לא יודע איזה מערכת אבל תשלח מייל לשירות לקוחות אם מספר סיסמה פרטי יצירת קשר ובקשה להמיר לIVR אני עשיתי את זה על מערכת ישנה ונתנו לי
  • זיהוי ID למספרי חו"ל?

    עזרה הדדית למשתמשים מתקדמים
    2
    0 הצבעות
    2 פוסטים
    35 צפיות
    B
    @משה-יוסף-לערנער פעם כתבו על זה אני זוכר שההמלצה הייתה להוסיף אותו בהרשמה שקטה לרשימ"ת או רשימה לבנה ואז תראה איך הוא מזוהה במערכת
  • יש קריסה

    שאלות ועזרה הדדית
    20
    0 הצבעות
    20 פוסטים
    41 צפיות
    נ
    יש לי 30 מוניתין