• 3 הצבעות
    62 פוסטים
    2k צפיות
    L
    @פיתה באיכות טלפון...?? איפה המקוריים?
  • 8 הצבעות
    46 פוסטים
    1k צפיות
    L
    @יהודה-צ.-כ. הבאת את זה לפני תקופה אך איני יודע להשתמש בזה בשפת הPHP אם איני טועה או שאולי תרחיב כיצד משץמשים תודה על הטירחה בכל אופן
  • חדש קו מכון תורת מרן

    טיפים עצות והדגמות מהמשתמשים
    15
    1
    2 הצבעות
    15 פוסטים
    234 צפיות
    L
    Spoiler > @מערכות-טלפוניות כתב: עולם המוזיקה כל המוזיקה החרדית מתעדכנת אונליין עולם הילדים סיפורים ומשחקים טלפונים לילדים זה גם קשור למרן??
  • איך שמים מנגינת המתנה אישית בחדר ועידה?

    לא נפתר שאלות ועזרה הדדית
    11
    0 הצבעות
    11 פוסטים
    46 צפיות
    L
    @שואל-שאלה לי עובד ועבד מדריך מתומצת כיצד מכניסים מוסיקת המתנה לשידור חי אישית משלכם 1. פותחים שלוחה רגילה אי שם בקו של השמעת קבצים בפנים 2. מכניסים את המנגינות/השיעורים/הקשקושים... הרצויים שאותם תרצו שישמעו בהמתנה 3. לוחצים אם הלחצן הימיני בעכבר על השלוחה ואחד מהאופציות זה מוזיקה בהמתנה 4. לאחר שאתם בוחרים שם לשלוחת המוסיקה (שם) שממש לא משנה ועדיף כמה שיותר קצר אתם מקבלים שם שכתבתם עם מקף תחתון ומספרים נוספים 5. תעתיקו במהירות את השם המלא (כולל המספרים) זה אמור להיראות כמו זה 39875_123 (כמובן זה סתם מספר לא קשור למה שיצא לכם כל פעם משהו אחר) 6. ואז בחדר ועידה עצמה מוסיפים הגדרה זו confbridge_music_on_hold= כאשר לאחר השווה שמים את השם ככה: confbridge_music_on_hold=398375_123 7. בודקים אם זה עובד וזהו!
  • 1 הצבעות
    154 פוסטים
    4k צפיות
    א
    @מסובך-מאוד כתב: ישמע הודעה ולא יחייג ל1700 כיון שלא יהיה לו כח לעבור מספר. אין בעיה, כנראה שהמאזין הזה אוהב לשמוע פרסומות. @מסובך-מאוד כתב: וחוץ מזה אם במספר הישן יהיה הודעה אז גם בחדש יהיה לא. אתה עושה הפנייה לפי מחייג ומחוייג שרק בחיוג למספר הישן של הקו שומעים הודעה לעבור ל1700, ו1700 יפנה למספר החדש של המערכת.
  • 3 הצבעות
    53 פוסטים
    852 צפיות
    L
    @הדיבל-המעופף מישהו יכול לפתח את הקוד הבא שזה יראה לי את השלוחות מסודר כמו איזה עץ לא יודע איך אבל לא מבולבל כמו שזה כעת Spoiler <!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>מנהל שלוחות ימות המשיח Pro</title> <script src="https://cdn.tailwindcss.com"></script> <style> @import url('https://fonts.googleapis.com/css2?family=Assistant:wght@300;400;600;700&display=swap'); body { font-family: 'Assistant', sans-serif; background-color: #f0f2f5; } .depth-line { border-right: 2px solid #e5e7eb; margin-right: 8px; padding-right: 8px; } @media print { .no-print { display: none; } body { background: white; } } </style> </head> <body class="p-4 md:p-8"> <div class="max-w-5xl mx-auto bg-white shadow-xl rounded-3xl overflow-hidden border border-gray-100"> <div class="bg-gradient-to-r from-blue-700 to-indigo-800 p-8 text-white no-print"> <h1 class="text-4xl font-black mb-2">מנהל שלוחות GetIVR2Dir</h1> <p class="opacity-90">סריקה, מיפוי וייצוא של מבנה המערכת הטלפונית</p> </div> <div id="statsBar" class="grid grid-cols-2 md:grid-cols-4 gap-4 p-6 bg-gray-50 border-b no-print"> <div class="bg-white p-4 rounded-xl shadow-sm border border-gray-200"> <div class="text-gray-500 text-sm">שלוחות שנסרקו</div> <div id="countStat" class="text-2xl font-bold text-blue-600">0</div> </div> <div class="bg-white p-4 rounded-xl shadow-sm border border-gray-200"> <div class="text-gray-500 text-sm">זמן ריצה</div> <div id="timerStat" class="text-2xl font-bold text-gray-700">00:00</div> </div> <div class="bg-white p-4 rounded-xl shadow-sm border border-gray-200 col-span-2"> <div class="text-gray-500 text-sm">סטטוס נוכחי</div> <div id="status" class="text-md font-medium text-green-600 truncate">מוכן להתחלה</div> </div> </div> <div class="p-8 space-y-6 no-print"> <div class="grid grid-cols-1 md:grid-cols-2 gap-8"> <div> <label class="block text-sm font-bold text-gray-700 mb-2">מפתח גישה (Token):</label> <input type="password" id="token" placeholder="הכנס טוקן כאן..." class="w-full p-4 bg-gray-50 border border-gray-300 rounded-xl focus:ring-4 focus:ring-blue-100 outline-none transition-all"> </div> <div> <label class="block text-sm font-bold text-gray-700 mb-2"> עומק סריקה מקסימלי: <span class="font-normal text-gray-400 mr-2">(99 = סריקה מלאה)</span> </label> <input type="number" id="maxDepth" value="99" class="w-full p-4 bg-gray-50 border border-gray-300 rounded-xl focus:ring-4 focus:ring-blue-100 outline-none transition-all"> <p class="text-xs text-gray-400 mt-2"> 💡 <b>מה זה עומק?</b> רמה 1 היא השלוחה הראשית. רמה 2 היא תת-שלוחה (למשל שלוחה 1/5). ככל שהמספר גבוה יותר, הסורק ייכנס עמוק יותר לתוך התיקיות. </p> </div> </div> <div class="flex flex-wrap gap-4 pt-4"> <button id="startBtn" onclick="startScan()" class="bg-blue-600 hover:bg-blue-700 text-white px-10 py-4 rounded-2xl font-bold text-lg shadow-lg shadow-blue-200 transition-all active:scale-95">התחל סריקה עכשיו</button> <button id="stopBtn" onclick="stopScan()" disabled class="bg-gray-200 text-gray-500 px-10 py-4 rounded-2xl font-bold text-lg transition-all cursor-not-allowed">עצור</button> <div id="downloadButtons" class="hidden flex gap-2"> <button onclick="downloadCSV()" class="bg-green-50 text-green-700 border border-green-200 px-4 py-4 rounded-2xl font-bold hover:bg-green-100 transition">אקסל (CSV)</button> <button onclick="downloadTXT()" class="bg-gray-50 text-gray-700 border border-gray-200 px-4 py-4 rounded-2xl font-bold hover:bg-gray-100 transition">קובץ טקסט</button> <button onclick="window.print()" class="bg-red-50 text-red-700 border border-red-200 px-4 py-4 rounded-2xl font-bold hover:bg-red-100 transition">שמור כ-PDF</button> </div> </div> </div> <div class="px-8 pb-8"> <div class="overflow-hidden border border-gray-200 rounded-2xl"> <table class="min-w-full divide-y divide-gray-200"> <thead class="bg-gray-50"> <tr> <th class="px-6 py-4 text-right text-xs font-bold text-gray-500 uppercase">נתיב</th> <th class="px-6 py-4 text-right text-xs font-bold text-gray-500 uppercase">שם השלוחה (עץ מבנה)</th> <th class="px-6 py-4 text-right text-xs font-bold text-gray-500 uppercase">סוג</th> </tr> </thead> <tbody id="resultsBody" class="bg-white divide-y divide-gray-200"> </tbody> </table> </div> </div> </div> <script> let isScanning = false; let scanResults = []; let startTime; let timerInterval; const apiBase = "https://www.call2all.co.il/ym/api/GetIVR2Dir"; function updateTimer() { const now = new Date(); const diff = Math.floor((now - startTime) / 1000); const mins = Math.floor(diff / 60).toString().padStart(2, '0'); const secs = (diff % 60).toString().padStart(2, '0'); document.getElementById('timerStat').innerText = `${mins}:${secs}`; } async function startScan() { const token = document.getElementById('token').value; const maxDepth = parseInt(document.getElementById('maxDepth').value); if (!token) return alert("חובה להזין טוקן!"); // UI Reset isScanning = true; scanResults = []; document.getElementById('resultsBody').innerHTML = ''; document.getElementById('countStat').innerText = '0'; document.getElementById('downloadButtons').classList.add('hidden'); document.getElementById('startBtn').disabled = true; document.getElementById('stopBtn').disabled = false; document.getElementById('stopBtn').classList.remove('bg-gray-200','text-gray-500','cursor-not-allowed'); document.getElementById('stopBtn').classList.add('bg-red-600','text-white'); startTime = new Date(); timerInterval = setInterval(updateTimer, 1000); try { await fetchDirectory('/', 1, maxDepth, token); document.getElementById('status').innerText = "סיום סריקה: המבנה מוכן לייצוא."; } catch (err) { document.getElementById('status').innerText = "שגיאה בחיבור לימות המשיח."; } finishScan(); } async function fetchDirectory(path, currentDepth, maxDepth, token) { if (!isScanning || currentDepth > maxDepth) return; document.getElementById('status').innerText = `סורק כעת: ${path}`; try { const response = await fetch(`${apiBase}?token=${token}&path=${path}`); const data = await response.json(); if (data.responseStatus !== "OK") return; if (data.dirs && data.dirs.length > 0) { for (const dir of data.dirs) { if (!isScanning) break; const item = { path: dir.what, name: dir.extTitle || dir.name || "ללא שם", type: dir.extType || "תיקייה", depth: currentDepth }; scanResults.push(item); addRowToTable(item); document.getElementById('countStat').innerText = scanResults.length; // רקורסיה לשלוחות פנימיות await fetchDirectory(dir.what + '/', currentDepth + 1, maxDepth, token); } } } catch (e) { console.error(e); } } function addRowToTable(item) { const row = document.createElement('tr'); let indent = ''; for(let i=1; i<item.depth; i++) { indent += '<span class="depth-line"></span>'; } row.innerHTML = ` <td class="px-6 py-4 text-sm font-mono text-gray-400">${item.path}</td> <td class="px-6 py-4 text-sm font-semibold text-gray-800 flex items-center">${indent}${item.name}</td> <td class="px-6 py-4 text-xs font-bold text-indigo-600 italic uppercase">${item.type}</td> `; document.getElementById('resultsBody').appendChild(row); } function stopScan() { isScanning = false; document.getElementById('status').innerText = "הסריקה הופסקה."; } function finishScan() { isScanning = false; clearInterval(timerInterval); document.getElementById('startBtn').disabled = false; document.getElementById('stopBtn').disabled = true; document.getElementById('downloadButtons').classList.remove('hidden'); } function downloadCSV() { let csvContent = "\uFEFFנתיב,שם שלוחה,סוג\n"; scanResults.forEach(r => { csvContent += `"${r.path}","${r.name}","${r.type}"\n`; }); const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); saveAs(blob, "ivr_menu.csv"); } function downloadTXT() { let txtContent = "=== תפריט שלוחות ימות המשיח ===\n\n"; scanResults.forEach(r => { const spaces = " ".repeat(r.depth - 1); txtContent += `${spaces}${r.depth}. ${r.name} [שלוחה: ${r.path}] (${r.type})\n`; }); const blob = new Blob([txtContent], { type: 'text/plain;charset=utf-8;' }); saveAs(blob, "ivr_menu.txt"); } function saveAs(blob, filename) { const link = document.createElement("a"); const url = URL.createObjectURL(blob); link.setAttribute("href", url); link.setAttribute("download", filename); document.body.appendChild(link); link.click(); document.body.removeChild(link); } </script> </body> </html>
  • 0 הצבעות
    1 פוסטים
    15 צפיות
    אין תגובות
  • 0 הצבעות
    3 פוסטים
    26 צפיות
    L
    @מוטי-קונשטט זה מתאים להקלטות ולא לחדר ועידה
  • קבלת סיבת כשלון

    עזרה הדדית למשתמשים מתקדמים
    28
    0 הצבעות
    28 פוסטים
    202 צפיות
    א
    @הדיבל-המעופף כתב: @שושנה67 מתי שלחת? - זמן התגובה תלוי באופי הבקשה בדיוק.
  • 0 הצבעות
    3 פוסטים
    33 צפיות
    פ
    @נועם-אלימלך כן אבל אז צריך להקיש מספר פלאפון אני רוצה שיהיה אפשר לשנות שם בלי להקיש מספר
  • 0 הצבעות
    1 פוסטים
    12 צפיות
    אין תגובות
  • דרמה!! מישהו שמע על זה????

    שאלות ועזרה הדדית
    125
    1 הצבעות
    125 פוסטים
    1k צפיות
    C
    @מסובך-מאוד למה? ככה! כי ככה זה מזוהה בשרת/בטלפון
  • 1 הצבעות
    15 פוסטים
    91 צפיות
    ש
    @הדיבל-המעופף וואי וואי אתה ממש מפציץ לנו את הפורום עם מודלים חדשים! מלך!
  • סיכום שבועי מהפורום

    הועבר עזרה הדדית למשתמשים מתקדמים
    63
    1
    3 הצבעות
    63 פוסטים
    541 צפיות
    ה
    @שואל-שאלה [image: 1791397549937-4487dd16-6585-4562-859f-2ebb9db01ce6-image.jpeg]
  • 0 הצבעות
    2 פוסטים
    19 צפיות
    ש
    @הדיבל-המעופף יפה מאוד! מרגישים את ההשקעה!
  • 4 הצבעות
    1 פוסטים
    17 צפיות
    אין תגובות
  • 15 הצבעות
    338 פוסטים
    11k צפיות
    מ
    @החסיד >@פתרון-ai @החסיד כתב: "עתיד הניהול כבר כאן" יש בזה משהו....
  • שמתי לב שהרבה משתמשים לא יודעים ש...

    על הפורום
    5
    2 הצבעות
    5 פוסטים
    39 צפיות
    מ
    @פתרון-AI תודה
  • 3 הצבעות
    5 פוסטים
    193 צפיות
    נ
    @לימוד-בתורת-מרן כתב: שלום לכל התותחים בפורום! הרבה פעמים אנחנו רוצים לתת למשתמשים (או לעצמנו) אפשרות להגדיר שלוחת ניתוב למערכת אחרת בצורה פשוטה, בלי להיכנס לאתר הניהול המורכב. ️ בניתי עבורכם קוד HTML מעוצב בסגנון Glassmorphism (זכוכית מודרנית) יוקרתי, שמאפשר להגדיר שלוחה ראשית כניתוב "מספר אישי" בצורה חלקה! מה הממשק יודע לעשות? 🧐 עיצוב מפואר ורספונסיבי (מתאים גם לנייד). הגדרה אוטומטית של השלוחה הראשית (/) כסוג routing_yemot. אימות מול ה-API של ימות המשיח. פידבק בעברית: במקום לקבל הודעת שגיאה באנגלית או JSON מפחיד, המשתמש מקבל הודעה ברורה: "הוגדר בהצלחה" או "סיסמה שגויה". איך משתמשים? מעתיקים את הקוד לפנקס רשימות. שומרים בשם יצירת מספר אישי.html. פותחים בדפדפן ונהנים! <!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <title>הגדרת מספר אישי</title> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(45deg, #0f2027, #203a43, #2c5364); height: 100vh; display: flex; justify-content: center; align-items: center; margin: 0; color: #fff; } .container { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(15px); padding: 40px; border-radius: 25px; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); width: 380px; border: 1px solid rgba(255, 255, 255, 0.1); text-align: center; } h2 { margin-bottom: 30px; font-weight: 300; letter-spacing: 1px; } input { width: 100%; padding: 14px; margin: 12px 0; border: none; border-radius: 12px; background: rgba(255, 255, 255, 0.05); color: #fff; font-size: 16px; border: 1px solid rgba(255, 255, 255, 0.2); transition: 0.3s; box-sizing: border-box; } input:focus { outline: none; background: rgba(255, 255, 255, 0.15); border-color: #00d2ff; } button { width: 100%; padding: 15px; margin-top: 25px; border: none; border-radius: 12px; background: linear-gradient(to right, #00d2ff, #3a7bd5); color: white; font-size: 18px; font-weight: bold; cursor: pointer; transition: transform 0.2s, box-shadow 0.3s; } button:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 210, 255, 0.4); } #status { margin-top: 25px; font-size: 14px; font-weight: bold; min-height: 20px; } .success { color: #00ffcc; } .error { color: #ff6666; } </style> </head> <body> <div class="container"> <h2>הגדרת מספר אישי</h2> <input type="text" id="systemNum" placeholder="מספר מערכת"> <input type="password" id="password" placeholder="סיסמת ניהול"> <button onclick="setupRouting()">הגדר על שלוחה ראשית</button> <div id="status"></div> </div> <script> async function setupRouting() { const num = document.getElementById('systemNum').value; const pass = document.getElementById('password').value; const statusDiv = document.getElementById('status'); if (!num || !pass) { alert('אנא הזן מספר מערכת וסיסמה'); return; } statusDiv.innerText = 'מבצע הגדרה, נא להמתין...'; statusDiv.className = ''; const url = `https://www.call2all.co.il/ym/api/UpdateExtension?token=${num}:${pass}&path=ivr2:/&type=routing_yemot&routing_yemot_number=${num}`; try { const response = await fetch(url); const data = await response.json(); if (data.responseStatus === 'OK') { statusDiv.className = 'success'; statusDiv.innerText = `הוגדר בהצלחה מספר אישי למערכת ומספר המערכת: ${num}`; } else { statusDiv.className = 'error'; // כאן מוגדר המלל בעברית במקרה של שגיאת התחברות (סיסמה שגויה וכד') statusDiv.innerText = `לא ניתן להגדיר מספר אישי למערכת ${num}: סיסמה או מספר שגויים`; } } catch (error) { statusDiv.className = 'error'; statusDiv.innerText = 'שגיאת תקשורת: ודא שיש חיבור אינטרנט תקין'; } } </script> </body> </html> Spoiler תענהההההההההההההה
  • ההודעה שנשלחת במענה ישיר לצינתוק היא ארוכה! ☎️📲

    לא נפתר בקשות לפיתוח
    26
    9 הצבעות
    26 פוסטים
    518 צפיות
    מ
    @יצחק-י. @יצחק-י. כתב: @אA כתב: @שואל-שאלה זה נועד כדי שלא יתבצע שימוש שאינו ראוי, אחרת זה יהיה כמו קמפיין רגיל... חוץ מזה שאפשר ללחוץ מיד 1 ולעבור. וכן שיוכלו להיחסם מהמערכת (במקש 9) וזה למקרה שהמנהל מחק את שלוחת הרישום הבעיה אח"כ זה להוריד את החסימה.... מסובך... אבל עדיין המנהל יכול לחסום את המענה לצינתוק