@שמחה-זו-הסיסמא אמר באקסס פילטר לקיחת הנתונים משלוחה אחרת:
@א-גוטן
תעשה בשלוחה 1 שההגדרה שלא יתן להיכנס שוב לשניה
ובשלוחה 2 שלא יתן להיכנס שוב ביכלל יותר
כל הכבוד עובד מאוד יפה .
ומכיון שלקח לי זמן להבין איך לפתור את הבעיה, לכן החלטתי לכתוב באריכות הסבר בכדי שיהיה לתועלת הכלל, בהצלחה לכולם.
אני קצת אתן הסבר גם על הבעיה, וגם על הפיתרון המבריק שהציע שמחה.
הצורך הוא: יש כמה שלוחות שמנהל מערכת רוצה שמאזין יוכל להגיע פעם אחת בלבד,
א"א להכניס הגדרות סינון של פילטר אקסס בשלוחה הראשונה כי אם המאזין ינתק את השיחה, הוא לא ישמע את כל השלוחות
ואם נכניס את סינון הפילטר לשלוחה השניה, אז גם אם המאזין שמע את כל השלוחות, הוא יוכל להכנס בשלוחה הראשונה שוב כיון שההגבלה היא על השלוחה השניה
הפיתרון שיכל לעזור הוא access_filter_log_time_folder=/1/1
שזה לקיחת הגדרת סינון משלוחה אחרת
הבעיה היא: מכיון שההגדרה access_filter_log_time_folder=/1/1 היא גם רושמת את הנתונים, וגם לוקחת את הנתונים מהשלוחה שכתוב שם , יוצא שכאשר הלקוח נכנס שוב לשלוחה גם אם הוא לא הגיע לשלוחה הפנימית המערכת לא מאפשרת לו להכנס יותר, כיון שהמערכת בודקת מה רשום בשלוחה פנימית, ושם מופיע שנכנס פעם אחת כיון שהשלוחה הראשונה כתבה בשלוחה השניה שנכנס פעם אחת.
הרעיון הגאון של שמחה:
בשלוחה הראשונה לכתוב:
access_filter_1=g......1s.1.1s.
שהתרגום של הנ"ל שאפשר לעבור פעם אחת בלבד וזה מתאפס אחרי שניה ממילא בד"וח שנמצא בשלוחה פנימית ההגבלה יורדת מיד אחרי שניה, לכן אם המאזין ניתק לפני שהגיע לשלוחה השניה המערכת תיתן לו שוב להכנס לשלוחה.
ואילו בשלוחה הפנימית לכתוב:
access_filter_1=g.......1.none.*
שהתרגום של הנ"ל שיתן לעבור רק פעם אחת ושההגדרה לא תימחק לעולם (כמובן שאפשר לשנות את זמן המחיקה עיין בהגדרות של השלוחה)
הסבר לפיתרון: כיון שהשלוחה הראשונה לוקחת נתונים מהשלוחה השניה, ובשלוחה השניה הוגדר בה שהמאזין לא חוזר לשלוחה לעולם, לכן אפילו שבהגדרה של השלוחה הראשונה מופיע שיכול לעבור רק פעם אחת, וכתוב שאחרי שניה זה ימחק, מכיון שהמערכת לוקחת את הנתונים מהשלוחה הפנימית ושם זה לא נמחק המאזין לא יוכל להתקדם הלאה.