אחרי כל השרשורים אני לא מסתדר עם פתיחת תא קולי
-
השאלה גם אם יש אפשרות לעשות הכל בהגדרה אחת
-
האם האפשרות עדיין קיימת
-
@יוסלה-טראמפ
אפשר ליצור קובץ שיתקין לך כזה דבר. -
@אA נו אשמח מאוד אם תעשה לי את זה (אם יש כזה דבר) או שתיתן לי איזה קישור כי אני רק מסתבך עוד ועוד עם כל השרשורים שיש כאן
-
@יוסלה-טראמפ
יש פה כ"כ הרבה סוגים. אני אעשה לך על אחד מהם אם תרצה אחר תעדכן -
@יוסלה-טראמפ
עשיתי קובץ כזה והוא עובד, אבל אני לא בטוח שעד הסוף.
כלומר אני לא בטוח שהוא מתקין את כל השלוחות.
וכן הוא מעלה את הקבצים עם ההקלטות.הקוד הוא
<!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <title>מתקין מערכת - גרסה מתוקנת</title> <style> body { font-family: 'Segoe UI', Arial, sans-serif; background-color: #f4f7f9; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; padding: 20px; flex-direction: column; } .card { background: white; padding: 30px; border-radius: 15px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); width: 500px; text-align: center; } h2 { color: #2c3e50; margin-bottom: 20px; } input[type="text"], input[type="password"] { width: 100%; padding: 12px; margin: 10px 0; border: 1px solid #dcdfe6; border-radius: 8px; box-sizing: border-box; font-size: 16px; } .folder-input { background: #f9f9f9; padding: 20px; border: 2px dashed #409eff; border-radius: 8px; margin: 20px 0; cursor: pointer; transition: 0.3s; } .folder-input:hover { background: #ecf5ff; } button { background-color: #67c23a; color: white; border: none; padding: 15px; border-radius: 8px; cursor: pointer; width: 100%; font-size: 16px; font-weight: bold; transition: 0.3s; } button:hover { background-color: #85ce61; } #install-box { display: none; } .progress-container { background: #ebeef5; border-radius: 10px; height: 25px; width: 100%; margin: 20px 0; overflow: hidden; border: 1px solid #eee; } .progress-fill { background: linear-gradient(90deg, #409eff, #66b1ff); width: 0%; height: 100%; transition: width 0.3s ease; } #status { font-size: 15px; color: #2980b9; font-weight: bold; margin-top: 10px; min-height: 1.5em; } .success-text { color: #67c23a; font-weight: bold; font-size: 20px; margin-top: 15px; } .next-steps { text-align: right; background: #fffdf0; border-right: 5px solid #f1c40f; padding: 15px; margin-top: 20px; font-size: 14px; line-height: 1.6; color: #333; display: none; } .next-steps h4 { margin-top: 0; color: #d35400; } .credit { font-size: 11px; color: #bdc3c7; margin-top: 20px; } </style> </head> <body> <div class="card" id="login-box"> <h2>התקנת מערכת תא קולי</h2> <input type="text" id="sysId" placeholder="מספר מערכת"> <input type="password" id="pass" placeholder="סיסמה"> <div class="folder-input" onclick="document.getElementById('folder-select').click()"> <strong>לחץ כאן לבחירת תיקיית הגיבוי</strong> <input type="file" id="folder-select" webkitdirectory directory multiple style="display:none"> <div id="file-count" style="margin-top: 10px; font-size: 13px; color: #909399;">טרם נבחרה תיקייה</div> </div> <button onclick="runInstaller()">בצע התקנה ושחזור קבצים</button> </div> <div class="card" id="install-box"> <h2 id="title-main">ההתקנה בביצוע...</h2> <div class="progress-container"> <div id="fill" class="progress-fill"></div> </div> <div id="status">מתחבר למערכת...</div> <div id="final-msg" class="success-text"></div> <div id="sub-msg" style="font-weight: bold; color: #2c3e50; margin-top: 10px; display: none;"></div> <div id="instructions" class="next-steps"> <h4>כמה פעולות שיש עוד לעשות:</h4> 1. הרשמה לקבלת צינתוקים בשלוחה 6 בשלוחת ניהול התא.<br> 2. נבדוק את הקמפיינים במערכת (בלשונית 'שיגור הודעות' באתר הישן).<br> <strong>ההגדרות צריכות להיות כמו בברירת מחדל:</strong><br> • שיש רק קמפיין אחד.<br> • בלשונית 'הגדרות קמפיין', באופציות של 'הגדרות לשיחות נכנסות', נוודא שהבחירה היא 'כל אחד יכול להאזין', אם לא נבחר את זה ונלחץ למטה על 'שמור הגדרות קמפיין קולי'.<br> • בלשונית 'רשימת התפוצה' נוודא שיש רק מספר אחד, והוא המספר שלנו.<br> 3. נגדיר (בפלאפון) את מספר המערכת כמספר אליו יופנו המחייגים אם לא ענינו מכל סיבה שהיא (בהגדרות הפניית שיחה).<br><br> <strong>וזהו! הכל מוכן!! בהצלחה!!</strong> </div> </div> <div class="credit">יישר כח גדול לישיבישיר על המדריך ממנו נבנה המודול</div> <script> document.getElementById('folder-select').addEventListener('change', function(e) { document.getElementById('file-count').innerText = `נבחרו ${e.target.files.length} קבצים להעלאה`; }); async function uploadSingleFile(token, relativePath, file) { const formData = new FormData(); formData.append('token', token); formData.append('path', `ivr2:/${relativePath}`); formData.append('convertAudio', '1'); formData.append('file', file); try { await fetch("https://private.call2all.co.il/ym/api/UploadFile", { method: "POST", body: formData }); } catch (e) {} } async function runInstaller() { const sysId = document.getElementById('sysId').value; const pass = document.getElementById('pass').value; const folderFiles = document.getElementById('folder-select').files; if (!sysId || !pass) return alert("נא להזין מספר מערכת וסיסמה"); document.getElementById('login-box').style.display = 'none'; document.getElementById('install-box').style.display = 'block'; const token = `${sysId}:${pass}`; const base = "https://private.call2all.co.il/ym/api/"; const fill = document.getElementById('fill'); const status = document.getElementById('status'); const configSteps = [ { url: `UpdateExtension?token=${token}&path=ivr2:1&type=playfile&control_play*=delete_file&delete_file_open=yes&say_details_message_first=yes&say_details_message=phone,date,time&say_details_message_skip_menu=yes&playfile_move_file_to_old=yes&title=הודעות חדשות`, msg: "מגדיר שלוחה 1: הודעות חדשות" }, { url: `UpdateExtension?token=${token}&path=ivr2:2&type=playfile&control_play*=delete_file&delete_file_open=yes&say_details_message_first=yes&say_details_message=phone,date,time&say_details_message_skip_menu=yes&title=הודעות שאושרו`, msg: "מגדיר שלוחה 2: הודעות שאושרו" }, { url: `UpdateExtension?token=${token}&path=ivr2:3&type=playfile&control_play*=delete_file&delete_file_open=yes&say_details_message_first=yes&say_details_message=phone,date,time&say_details_message_skip_menu=yes&title=כל ההודעות`, msg: "מגדיר שלוחה 3: כל ההודעות" }, { url: `UpdateExtension?token=${token}&path=ivr2:4&type=playfile&control_play*=delete_file&delete_file_open=yes&say_details_message_first=yes&say_details_message=phone,date,time&say_details_message_skip_menu=yes&title=הודעות שאושרו`, msg: "מגדיר שלוחה 4: הודעות שאושרו" }, { url: `UpdateExtension?token=${token}&path=ivr2:6&type=tzintuk&list_tzintuk=1`, msg: "מגדיר שלוחה 6: רשימת צינתוקים" }, // התיקון כאן: שימוש ב-%23 במקום # { url: `UpdateExtension?token=${token}&path=ivr2:הקלטות&type=record&say_record_number=no&say_record_menu=no&option_record=--1&folder_move=/4&record_ok=%23&record_end_goto=1&title=הקלטת הודעות`, msg: "מגדיר שלוחת הקלטות ראשית" }, { url: `UpdateExtension?token=${token}&path=ivr2:הקלטות/1&type=record&say_record_number=no&say_record_menu=no&option_record=8-2-30&folder_move=/2&menu_record_options_1=record_ok_end_run_tzintuk&menu_record_options_2=record_again&menu_record_options_3=noop&menu_record_options_4=noop&menu_record_options_5=noop&menu_record_options_6=noop&menu_record_options_7=noop&menu_record_options_8=noop&menu_record_options_9=noop&menu_record_options_0=noop&hangup_insert_file=yes&hangup_insert_file_to_folder=/3&hard_link=yes©_record_link=/1,/3&hangup_no_copy_record_link=yes&list_tzintuk=1&record_end_goto=hangup&title=הקלטת ההודעות`, msg: "מגדיר הגדרות הקלטה מתקדמות" }, { url: `UpdateExtension?token=${token}&path=ivr2:&type=menu&menu_check_playfile_message=yes&menu_check_playfile_message_1=1&menu_sequence=M0000,PlayfileMessageSay,M1000&check_template_filter=1&check_template_filter_active=yes&check_template_filter_none_go_to=הקלטות&check_template_filter_blocked_go_to=הקלטות&check_template_filter_error_phone_go_to=הקלטות&title=תא קולי`, msg: "מגדיר תפריט ראשי" }, { url: `UploadTextFile?token=${token}&what=ivr2:/ivr.ini&contents=no_ringing=yes`, msg: "מעלה הגדרות למערכת (ivr.ini)" } ]; let total = configSteps.length + folderFiles.length; let count = 0; for (let step of configSteps) { status.innerText = step.msg; await fetch(base + step.url); count++; fill.style.width = (count / total * 100) + "%"; } for (let i = 0; i < folderFiles.length; i++) { const file = folderFiles[i]; const rel = file.webkitRelativePath.split('/').slice(1).join('/'); status.innerText = `מעלה קובץ: ${file.name}...`; await uploadSingleFile(token, rel, file); count++; fill.style.width = (count / total * 100) + "%"; } document.getElementById('title-main').innerText = "ההתקנה הסתיימה!"; status.style.display = 'none'; document.getElementById('final-msg').innerText = "ההתקנה הסתיימה בהצלחה!"; const subMsg = document.getElementById('sub-msg'); subMsg.innerText = "כעת יש לכם תא קולי מתקדם משלכם!"; subMsg.style.display = 'block'; document.getElementById('instructions').style.display = 'block'; } </script> </body> </html>התקייה שיש להעלות
קבצים-למערכת-תא-קולי.zip
שים לב שיש להעלות את התקיה של שלוחה ראשית והכל יעלה.אשמח שתבדוק ותעדכן.
-
@אA
1קודם כל תודה רבה רבה
2לא הבנתי איפה לשים את התיקייה בהגדרות המתקדמות (האתר הישן) -
@יוסלה-טראמפ נראה יל שעובד אני צריך לבדוק עוד כמה עניינים אעדכן אותך
ועוד פעם תודה תודה

-
@יוסלה-טראמפ
גיליתי באג ועדכנתי את הקוד.
הבאג היה בשלוחה בשם הקלטות שיש שם הגדרה עם = בלי המשך, אז ההמשך הוא #.
וכן שלא מוגדר שם המעבר בסיוםrecord_end_goto=1 -
ניסיתי (דרך מס' אחר כמובן) וזה אומר לי בזה''ל:''השלוחה אליה ביקשתם לעבור אינה ניתנת להפעלה עקב חוסר בהגדרות אנא פנה למנהל המערכת'' ואז מנתק
במספר שלי דהיינו המספר של בעל התא קולי זה נראה שהכל טוב ועובד כמו שצריך
יכול להיות שהבעיה זה הבאג שציינת שלא תיקנתי כי לא ידעתי מה ואיך
אשמח מאוד אם נוכל לדבר בפרטי שנוכל יותר להבין אחד את השני (אני לא כל הזמן על המחשב וגם אתה לא......)
0548417799 -
@יוסלה-טראמפ
זה לא קשור למה שהבאתי כי הבאג היה בעצם המעבר לשלוחה אחרת אבל לא שלא היו הגדרות.
לקחת את הקוד החדש שהבאתי?! -
אולי נדבר בטלפון הנ''ל