@CUBASE לכאורה זה יפה מאוד אבל גם אני עשיתי בדיוק כמוך וזה עבד לי בהמון מודלים ולכן לא חלמתי שזה הבעיה כשפתאום מודל תור הפסיק לעבוד לי ואחרי כמה שעות של בדיקות וחיפושים ע"י המתכנתים של ימות המשיח עלתה הבעיה הזאת.
כך שלא נראה לי כדי להסתמך על הלכאורה.
הודעות שפורסמו על ידי הרב
-
RE: קובץ סופר שקט, תקין והכי קצר שאפשר!!!!
-
RE: קובץ סופר שקט, תקין והכי קצר שאפשר!!!!
@CUBASE מנסיון קובץ קצר מדי עושה הרבה פעמים בעיות.
לי במודול תור זה תקע את כל השלוחה. -
RE: שם משתמש בדוחות והשיחות הנכנסות - באתר
@מישהו-נורמלי אין אפשרות.
אבל לדעתי אתה יכול די בקלות ע"י הורדה של כל הרשימת תפוצה ואז לעלות אותה לקובץ השמות. -
RE: מעלה הודעות מטלגרם
@נר-יצחק אתה מדבר על כאלה שפרסמו הגדרות למודל API שמחובר לשרת שלהם והם כנראה בסוף מחקו את זה מהשרת שלהם.
אבל כאן זה הקוד מקור ואותו קוד שעבד פעם אמור לעבוד בדיוק אותו דבר גם היום. -
RE: אתר לתצוגת התקדמות ההתרמה לתתים וישיבות ללא צורך בשרת!!!
@אA בשלוחה של ההוספת ניקוד בקובץ exe הגדרתי את ההגדרות הבאות:
הוספת והורדת נקודות type=points_edit סוג הזיהוי points_edit_type=list שלא יקליטו את השם record_name=no שלא ישמיע את השם שהוקלט say_name=no לאן יעברו בסיום לא מוצלח points_edit_no_data_goto=/ כדי שיעברו ישר להוספה ללא תפריט points_edit_tfr_add_and_remove_type=add שישמיע את סכום הנקודות רק לפני העדכון points_edit_say_total_points=before_update_points לאן יעברו לאחר סיום מוצלח points_edit_end_goto=/ שם השלוחה title=הוספת נקודות
-
אתר לתצוגת התקדמות ההתרמה לתתים וישיבות ללא צורך בשרת!!!
בהמשך לפוסט הזה.
מצאתי את הזמן לטפל בזה וכעת הקוד מוכן לכולם.
הבעיה היחידה שאין לי זמן לפרט איך עושים את זה מצד המערכת אני משוכנע שיהיה מי שידע להסביר לציבור.
זה עובד דרך הנקודות בימות המשיח שהוא בודק כמה נקודות יש לכל בחור ולפי זה הוא מציג במסך.
עשיתי זיהוי לפיlist
הסבר כללי על הנקודות בימות המשיח כאן.
כדי להוסיף נקודות צריך להשתמש במודל הזה.
צריך להתאים אישית לדרישות שלכם בשורות 266 -280.<!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>מצב ההתרמות</title> <style> body { margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(120deg, #FFDAB9, #FFA07A); min-height: 100vh; display: flex; flex-direction: column; align-items: stretch; } .header-and-additional-container { position: fixed; top: 0; left: 0; width: 100%; display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; background-color: rgba(255, 255, 255, 0.8); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); z-index: 999; padding: 5px 0; } .header-container { margin: 0; display: flex; align-items: center; justify-content: center; } #timer { border: 3px solid #ffac33; padding: 10px 15px; border-radius: 20px; display: flex; align-items: center; background-color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); margin: 0 10px; } #timer h2 { color: #5682a3; margin: 0 10px 0 0; font-weight: bold; } #timer-digits { display: flex; flex-wrap: nowrap; justify-content: space-between; margin-left: 10px; margin-right: 10px; } .timer-digit { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #ccc; border-radius: 5px; background-color: #f9f9f9; padding: 8px; width: 50px; margin: 0 5px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .timer-digit p { margin: 0; font-size: 14px; color: #333; font-weight: bold; } .timer-digit-label { font-size: 10px; margin-top: 2px; color: #5682a3; font-weight: normal; } #timer h2:last-child { margin-right: 10px; color: #5682a3; font-size: 14px; font-weight: normal; } .additional-container { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; border: 3px solid #ffac33; border-radius: 20px; padding: 10px 15px; background-color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); margin: 0 10px; } .total-info { text-align: center; margin: 5px 0; font-size: 16px; font-weight: bold; color: #333; width: 100%; } .total-info span { color: #ffac33; } .progress-bar { position: relative; width: 100%; height: 20px; background-color: #e0e0e0; border-radius: 10px; overflow: hidden; margin-top: 8px; } .progress-fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; background-color: #5682a3; transition: width 1s ease-in-out; } .progress-text { position: absolute; top: 0; left: 0; width: 100%; line-height: 20px; text-align: center; color: #fff; font-weight: bold; } .container2 { width: 100%; margin-top: 140px; padding: 0 10px; box-sizing: border-box; display: flex; justify-content: center; } .container { width: 100%; max-width: 1400px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; } .id-container { display: inline-block; width: 350px; border: 1px solid #ccc; border-radius: 10px; background-color: #fff; margin: 10px; padding: 15px; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; } .id-container:hover { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); } .additional-id-container { display: inline-block; width: 250px; border: 1px solid #ccc; margin: 10px; padding: 15px; border-radius: 10px; background-color: #5682a3; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); color: #fff; } .id-container h2, .additional-id-container h2 { margin: 0 0 10px 0; font-size: 18px; color: #333; } </style> </head> <body> <div class="header-and-additional-container"> <div class="header-container"> <div id="timer"> <h2>נותרו לנו עוד:</h2> <div id="timer-digits"> <div class="timer-digit"> <p id="days-left">0</p> <p class="timer-digit-label">ימים</p> </div> <div class="timer-digit"> <p id="hours-left">0</p> <p class="timer-digit-label">שעות</p> </div> <div class="timer-digit"> <p id="minutes-left">0</p> <p class="timer-digit-label">דקות</p> </div> <div class="timer-digit"> <p id="seconds-left">0</p> <p class="timer-digit-label">שניות</p> </div> <div class="timer-digit"> <p id="milliseconds-left">0</p> <p class="timer-digit-label">ח' שניה</p> </div> </div> <h2 id="timer-goal-text"></h2> </div> </div> <div class="additional-container"> <div class="total-info" id="total-points"></div> <div class="total-info" id="missing-points"></div> <div class="total-info" id="percentage-of-goal"></div> <div class="progress-bar" id="progress-total-bar"> <div class="progress-fill" id="progress-total-fill"></div> <div class="progress-text" id="progress-total-text"></div> </div> </div> </div> <div class="container2"> <div class="container"> <div id="points-container"></div> </div> </div> <script> /***************************************** * הגדרות מרכזיות לעריכה קלה * *****************************************/ // מספר מערכת var SYSTEM_NUMBER = "0773137777"; //סיסמה var SYSTEM_PASSWORD = "123456"; // יעד פרטי לכל בחור var INDIVIDUAL_GOAL = 2500; // יעד כללי var TOTAL_GOAL = 350000; // תאריך יעד לסיום ההתרמה (פורמט: YYYY-MM-DD HH:MM:SS) var END_DATE = "2025-03-16 23:59:59"; // מפת תעודות זהות לשמות (דוגמה) var idToNameMap = { "000": "אברהם אברהמי", "001": "ישראל ישראלי", "002": "ברוך ברוכי", // אפשר להוסיף כמה שתרצו... }; /***************************************** * פונקציות עדכון נתונים * *****************************************/ function getPointsTotal() { // יוצרים את ה-URL על בסיס המספר והסיסמה var url = "https://www.call2all.co.il/ym/api/RenderYMGRFile?token=" + SYSTEM_NUMBER + ":" + SYSTEM_PASSWORD + "&wath=ivr2:/Points/Split/points_total.ymgr&convertType=json¬LoadLang=1"; var xhr2 = new XMLHttpRequest(); xhr2.open("GET", url, true); xhr2.onreadystatechange = function () { if (xhr2.readyState === 4) { if (xhr2.status === 200) { var response = JSON.parse(xhr2.responseText); displayPointsTotal(response.data); } else { console.error('אירעה בעיה בבקשה. סטטוס:', xhr2.status); } } }; xhr2.send(); } function displayPointsTotal(data) { // מיון לפי מי שגייס יותר data.sort(function(a, b) { return parseFloat(b.PointsTotalAll) - parseFloat(a.PointsTotalAll); }); var pointsContainer = document.getElementById('points-container'); pointsContainer.innerHTML = ''; var totalPoints = 0; data.forEach(function(item) { var id = item.EnterId; var pointsTotalAll = parseFloat(item.PointsTotalAll); // חישוב מה חסר להגיע ליעד הפרטי var difference = pointsTotalAll <= INDIVIDUAL_GOAL ? INDIVIDUAL_GOAL - pointsTotalAll : 0; // חישוב אחוז התקדמות ליעד הפרטי var percentage = (pointsTotalAll / INDIVIDUAL_GOAL) * 100; var percentageWidth = Math.min(percentage, 100); // בדיקת שם לפי מפת ה-ID, אם לא קיים מציגים את ה-ID כמות שהוא var name = idToNameMap[id] || id; totalPoints += pointsTotalAll; // בניית כרטיס המידע למשתתף var idContainer = document.createElement('div'); idContainer.classList.add('id-container'); var idText = document.createElement('div'); var boldName = document.createElement('strong'); boldName.textContent = name; idText.appendChild(document.createTextNode('הבחור החשוב ')); idText.appendChild(boldName); idText.appendChild(document.createTextNode(' נ"י')); var pointsText = document.createElement('div'); var boldPointsTotalAll = document.createElement('strong'); boldPointsTotalAll.textContent = pointsTotalAll.toFixed(2); pointsText.appendChild(document.createTextNode('אסף עד כה: ')); pointsText.appendChild(boldPointsTotalAll); pointsText.appendChild(document.createTextNode(' שקלים')); var differenceText = document.createElement('div'); var boldDifference = document.createElement('strong'); boldDifference.textContent = difference.toFixed(2); differenceText.appendChild(document.createTextNode('נותרו לו עוד: ')); differenceText.appendChild(boldDifference); differenceText.appendChild(document.createTextNode(' שקלים כדי להגיע ליעד של ' + INDIVIDUAL_GOAL + ' שקלים')); // פס התקדמות אישי var progressBarContainer = document.createElement('div'); progressBarContainer.classList.add('progress-bar'); var progressBarFill = document.createElement('div'); progressBarFill.classList.add('progress-fill'); progressBarFill.style.width = percentageWidth.toFixed(2) + '%'; var progressText = document.createElement('div'); progressText.classList.add('progress-text'); progressText.textContent = percentage.toFixed(2) + '%'; progressBarContainer.appendChild(progressBarFill); progressBarContainer.appendChild(progressText); idContainer.appendChild(idText); idContainer.appendChild(pointsText); idContainer.appendChild(differenceText); idContainer.appendChild(progressBarContainer); pointsContainer.appendChild(idContainer); }); // סה"כ כל התרומות var totalPointsElement = document.getElementById('total-points'); totalPointsElement.textContent = 'סך כל התרומות: ' + totalPoints.toFixed(2) + ' שקלים'; // חסר ליעד הכללי var missing = TOTAL_GOAL - totalPoints; var percentageOfGoal = (totalPoints / TOTAL_GOAL) * 100; var missingText = document.getElementById('missing-points'); missingText.textContent = 'חסר ליעד: ' + (missing > 0 ? missing.toFixed(2) : 0) + ' שקלים'; // עדכון הפסים של היעד הכללי var progressTotalFill = document.getElementById('progress-total-fill'); var progressTotalText = document.getElementById('progress-total-text'); progressTotalFill.style.width = Math.min(percentageOfGoal, 100).toFixed(2) + '%'; progressTotalText.textContent = 'אחוז מתוך היעד: ' + percentageOfGoal.toFixed(2) + '%'; } /***************************************** * פונקציית טיימר לספירה * *****************************************/ function updateCountdown() { var now = new Date(); var targetDate = new Date(END_DATE); var millisecondsLeft = targetDate - now; // אם התאריך כבר עבר, מאפסים if (millisecondsLeft < 0) { document.getElementById("days-left").textContent = 0; document.getElementById("hours-left").textContent = 0; document.getElementById("minutes-left").textContent = 0; document.getElementById("seconds-left").textContent = 0; document.getElementById("milliseconds-left").textContent = 0; return; } var secondsLeft = Math.floor(millisecondsLeft / 1000); var minutesLeft = Math.floor(secondsLeft / 60); var hoursLeft = Math.floor(minutesLeft / 60); var daysLeft = Math.floor(hoursLeft / 24); document.getElementById("days-left").textContent = daysLeft; document.getElementById("hours-left").textContent = hoursLeft % 24; document.getElementById("minutes-left").textContent = minutesLeft % 60; document.getElementById("seconds-left").textContent = secondsLeft % 60; document.getElementById("milliseconds-left").textContent = millisecondsLeft % 1000; // מתזמנים קריאה חוזרת לעדכון setTimeout(updateCountdown, 100); } /***************************************** * גלילה אוטומטית (אופציונלי) * *****************************************/ var scrollInterval; function startScrollDown() { scrollInterval = setInterval(function() { window.scrollBy(0, 1); if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { clearInterval(scrollInterval); setTimeout(startScrollUp, 500); } }, 20); } function startScrollUp() { scrollInterval = setInterval(function() { window.scrollBy(0, -1); if (window.scrollY === 0) { clearInterval(scrollInterval); setTimeout(startScrollDown, 500); } }, 20); } /***************************************** * הפעלה ראשונית של הקוד * *****************************************/ window.onload = function() { // טקסט שמופיע אחרי "נותרו לנו עוד... להגעה ליעד" var timerGoalText = document.getElementById('timer-goal-text'); timerGoalText.textContent = 'להגעה ליעד של ' + TOTAL_GOAL.toLocaleString() + ' ש"ח בעזרת השם.'; // התחלת עדכוני API getPointsTotal(); // רענון אחת ל-100 שניות (אפשר לשנות) setInterval(getPointsTotal, 100000); // הפעלת הספירה לאחור updateCountdown(); // גלילה אוטומטית (אם רוצים) startScrollDown(); }; </script> </body> </html>
-
RE: המלצה אתר להצגת התקדמות התרמה לתתים עם עדכון נתונים דרך המערכת!
@מערכת-קמפיינים הנתונים נלקחים מהדו"ח נקודות.
לכל מתרים יש מזהה והאתר מתרגם אותו לשם שלו.
את התרגום מגדירים בתחילת הקוד בקובץjs.js
-
המלצה אתר להצגת התקדמות התרמה לתתים עם עדכון נתונים דרך המערכת!
הכנתי שנה שעברה עבור ת"ת מסוים מסך שיציג לבחורים כמה כל בחור אסף עד כה וכמה אספו בסך הכל וכמה נשאר כדי להגיע ליעד שמתעדכן באונלין מהמערכת.
רציתי לשתף אותו עם הציבור רק הבעיה שאין לי זמן וכח לערוך אותו עכשיו ולהסביר כיצד הוא פועל מה גם שאני לא כל כך זוכר.
לכן החלטתי שאולי יעזור למישהו שאני יעלה את הקודים ככה ואם יהיה למישהו כח שישדרג אותו וכן שיסביר לציבור איך משתמשים איתו.
מה שאני כן זוכר שהוא עובד על הניקוד האישי שיש לכל בחור כלומר כל שקל שבחור אסף מוסיפים לו נקודה וזה מציג את זה על המסך וכן זה בנוי שיש לכל בחור מספר אישי ובאתר הוא מתורגם לשם שלו.
הלואי וזה יביא תועלת לציבור.
מצו"ב תקיה שמכילה את הקודים.
index.html.zip -
RE: במודול תור עם SIP מופיע ביומן שיחות מספר המערכת במקום של המחייג אלי
@eliyahu באיזה קובץ מגדירים את זה?
-
RE: ממשק api שליחת הקלטה לשרת וקבלת שמע מהשרת אפשרי?
@כוספים-למשיח זה לא שולח את זה לשרת שלך.
השרת שלך אמור לשלוח בקשה לשרת של ימות המשיח לקבל את ההקלטה עם הפקודה הזאת. -
RE: פתיחת חייגן סיפ במיקרו SIP
@עושה-שלום המספר שלוחה שהגדרת לא קשור להגדרת החשבון בתוכנה.
תראה את התמונות:
-
RE: עזרה בהקמת מרכזיית IP ללא עלות חודשית
@גבאי בקיצור הבעיה שלך שאתה לא מצליח להתחבר לממשק ניהול של הטלפון דרך המחשב.
אני ממליץ לך לעבור גם על המדריך שלי כאן.
אני יתן לך תשובה של GPT כי לי לא היה כח לפרט.
רק שים לב שלפני הכתובת IP בדפדפן חייבים לשים http://
זה המדריך שהוא כתב עברתי עליו והוא תקין:-
מצא את כתובת ה-IP של הטלפון
גש לטלפון ה-Yealink.
לחץ על הכפתור Menu (תפריט) בטלפון.
נווט ל- Status או Network (סטטוס או רשת), ושם תוכל לראות את כתובת ה-IP של הטלפון. -
התחבר לרשת המקומית
ודא שהמחשב שלך מחובר לאותה רשת (LAN) שאליה מחובר הטלפון. זה יכול להיות חיבור Wi-Fi או חיבור קווי. -
גש לממשק הניהול
פתח דפדפן אינטרנט במחשב.
הזן את כתובת ה-IP של הטלפון בשורת הכתובת (למשל: http://192.168.1.100). -
הזדהות
תופיע בפניך דף התחברות.
ברוב המקרים, שם המשתמש והסיסמה כברירת מחדל הם:
Username: admin
Password: admin
אם פרטי ההתחברות שונו ולא ידועים לך, ייתכן שתצטרך לפנות למנהל הרשת או לאפס את הטלפון להגדרות היצרן. -
ניהול והגדרות
לאחר ההתחברות, תוכל:
להגדיר חשבון SIP.
לעדכן קושחה (Firmware).
לנהל תכונות מתקדמות כמו תזמון שיחות, תורים, ועוד.
6. אבטחה
מומלץ לשנות את פרטי ההתחברות המוגדרים כברירת מחדל כדי להגן על הטלפון מפני גישה לא מורשית.
אם נתקלת בבעיה או זקוק להסבר נוסף על הגדרות ספציפיות, אשמח לעזור! -
-
RE: במודול תור עם SIP מופיע ביומן שיחות מספר המערכת במקום של המחייג אלי
@שאק כתב בבמודול תור עם SIP מופיע ביומן שיחות מספר המערכת במקום של המחייג אלי:
@יאנג-בוי
שמתי כבר ולא עזרזה הגדרה למודול SIP לא לתור.
-
RE: במודול תור עם SIP מופיע ביומן שיחות מספר המערכת במקום של המחייג אלי
@שאק תמיד הפריע לי הבעיה הזאת אבל חשבתי שזה בעיה של הטלפון מעולם לא חשבתי שזה קשור לימות המשיח.
תודה רבה.
@eliyahu @שמואל יש מצב שההגדרה תיהיה גם במודול תור:reverse_caller_id=yes
תודה רבה.
-
RE: מענה אנושי למספרים שונים לפי שעות
@אזוב תעשה שתי שלוחות של מודול תור או ראוטינג לבחירתך שבאחד יש את המספר של היום ובאחד יש את המספר של הלילה.
ואז תעשה באחת מהם הפניה לפי שעות לדוגמה שבשעות הלילה יעברו לשלוחה השניה.