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

    פוסטים

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

      @lavitoren-הטי-ל לא כתבת את המספר, זה צריך להיות כך

      admin_options_file=template
      control_play6=go_to_folder
      playfile_control_play_6_goto=/3
      control_play9=go_to_folder
      playfile_control_play_9_goto=/4
      

      אם אתה מגדיר ככה (ללא פירוט של המספר הספציפי)

      playfile_control_play_goto=/3
      

      זה מתייחס לברירת מחדל של השלוחה

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

      @yt2178 רשמית אי אפשר.

      הקלטות - הערך השמיני
      ...
      לא ניתן לדלג מהקלטות לתוך הנתונים וחזור להלקטות

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

      כמובן בAPI אפשרי הכל בשלוחה אחת

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

      @המנייעס ככה זה צריך להיות מוגדר בשלוחה

      type=api
      title=הפעלת קמפיין נכנס לשלוחה
      api_link=https://www.call2all.co.il/ym/api/CallExtensionBridging
      api_url_post=yes
      api_hangup_send=no
      api_end_goto=לאן זה יעבור אחרי הפעלת הקמפיין
      api_add_0=token=טוקן
      api_add_1=phones=tpl:מספר *מזהה* של רשי"ת (אם זה רשי"ת ולא רשי"צ)
      api_add_2=ivrPath=לאיזה שלוחה ייכנס מי שמקבל הקמפיין
      api_add_3=callerId=מספר זיהוי יוצא
      api_add_4=callsTimeOut=אורך זמן צינתוק
      

      כמו ש @זאביק כתב; גם אם תשמע אין תשובה זה עובד (כמובן תבדוק בפועל)

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

      @963 @מערכת זה יעזור?

      סריקה.html

      הקוד המלא

      <!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>
      

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יב
    • הוספה לשתי רשימות תפוצה | בקבלת נתונים

      האם ניתן בקבלת נתונים להוסיף ל2 רשי"ת ביחד, באמצעות הגדרה זו?

      recording_and_entering_data_end_template_to_add=2,3
      

      במקור לא כתוב במפורש, האם יש מישהו שהתנסה?

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

      @מתעניין כתב בשיתוף ממערכות אחרות בלבד | עזרה:

      אולי זה בגלל שזה שתי שרתים

      לא יודע איזה שרת זה הקו השני. - אבל לכאורה, אם זה 2 שרתים, הוא לא אמור לבקש קוד ושלוחה.

      שיתוף רגיל עובד?

      מה הכוונה?

      ואם אתה מוריד את מניעת העתקה זה עובד?

      לא עובד בשום צורה.

      פורסם בשאלות ועזרה הדדית
      י
      יב
    • שיתוף ממערכות אחרות בלבד | עזרה

      אני מנסה להגדיר שלא יוכלו לשתף קבצים ממערכת שלי. - אבל שיוכלו לשתף תכנים למערכת שלי, וללא סיסמת מנהל, ולשלוחה ייעודית.
      הגדרתי כך;

      ;מניעת העתקת תכנים למערכות אחרות
      copy_link=no
      ;כולם יכולים להעתיק ממערכת אחרת ללא צורך בסיסמה
      copy_link_no_password=all
      

      בנוסף לזה בקובץ CopyLinkShareToFolder.ini הגדרתי כך;

      077XXXXXXX=/1/2
      

      לצערי הרב

      ❌ לא ניתן לשתף תכנים ללא סיסמה.
      ❌ גם כאשר אני מקיש את הסיסמה, הוא מבקש ממני להקליד את השלוחה.
      ❌ גם כאשר אני כבר מקליד את השלוחה הייעודית, הוא אומר לי שהשלוחה איננה תיקיית השמעה, וזה לא נכון!
      🤧 אשמח לקבל עזרה בעניין.

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

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

      @מוטי-לוין אגב ההגדרות שלי בשלוחה הם;

      enter_foldar_end_time=2025-09-20-18-52-30
      white_list=yes
      
      פורסם בשאלות ועזרה הדדית
      י
      יב
    • RE: סגירת שלוחה לא כולל רשימת לבנה

      @מוטי-לוין כתב בסגירת שלוחה לא כולל רשימת לבנה:

      כמובן שפתרונות לאפשר כניסה לרשימה הלבנה אפילו שפג הזמן יש הרבה (פילטרים וכו'

      מכיון שזה דחוף לי.
      אשמח לשמוע כעת על פתרונות חילופיים.
      תודה!

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

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

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

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

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

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

      @שמואל כתב באבטחה - באימות דו שלבי / דעתכם... 🪪💂🏻:

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

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

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

      @אלי-דובדבן אתה יכול להעלות ישירות דרך API ראה כאן

      פורסם בשאלות ועזרה הדדית
      י
      יב
    • RE: הודעה חשובה על שינוי מתוכנן בצורת שליחת Webhook במודולים השונים (מעבר מסינכורני לאסינכורני)

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

      פורסם בחדש במערכת
      י
      יב
    • RE: כתיבת מייל ושליחתו לAPI

      מקפיץ שוב

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

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

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

      מישהו מכיר איך עושים שהמאזין יקיש כתובת מייל ויישלח לשרת?

      ניסיתי בעבר כך, ללא הצלחה😧
      ומחמת נחיצות העניין, אני מעלה את זה שוב...

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

      @נר-יצחק

      1. אתה מבקש HTTP, ולא HTTPS.
      2. לגבי טוקן, אתה מייצר משתנה token. והערך של הטוקן באמצעות שליחת login נכנס למשתנה.
        בהמשך (לדוגמא) אתה מנסה לקבל את פרטי המערכת GetSession באמצעות משתנה הטוקן, ובמידה ומחזיר לך תשובה חיובית, זה אומר שהטוקן בתוקף. - אחרת, שיגדיר את המשתנה token למערכת:סיסמה, ויבקש שוב לוגין, כדי להחזיר את הערך של המשתנה עם הטוקן החדש.
      פורסם בפורום מפתחים API
      י
      יב
    • RE: קבלת הבחירות בקבלת נתונים

      @נר-יצחק ניסית לעשות טוקן באמצעות login ?

      פורסם בפורום מפתחים API
      י
      יב
    • RE: קבלת הבחירות בקבלת נתונים

      @נר-יצחק אם אני מבין נכון (ואני לא...)
      זה בעיה באופן החיבור עם השרת של ימות.

      פורסם בפורום מפתחים API
      י
      יב