לימוד Asterisk
-
@clickone
זהו שהמטרה שלו היא לא לעשות שלוחות (הוא ישתמש בזה,אבל זה לא המטרה)
במיוחד כשרוצים ללמוד מערכת מהשורש
לטעמי צריך סך הכל מדריך פשוט איך לקחת קובץ extensions.conf ריק וליצור בו שלוחות מאפס
ואיך להגדיר בsip.conf את המחלקה הברירת מחדל
וזהו אפשר כבר לעבור לתכנות הAGI בשלוחה הרצויה
לא צריך את כל שאר הירקות שfreepbx מציע
(אני אישית כמעט התייאשתי מללמוד אסטריסק כי לא הבנתי מה הולך שם עם כל ההגדרות של freepbx)
כשעשיתי התקנה נקיה (קימפול לא התקנה מהחבילה)
ואז קיבלתי מערכת מינימאלית בלי אלפי שלוחות "דוגמה"
ואז קראתי מדריך פשוט איך להגדיר את הקובץ sip.conf
תפסתי את עצמי ואמרתי וואו זה כל כל פשוט
איפה הייתי עד היום? -
@clickone
אני חושב שיהיה טוב לעשות מדריך ממוקד, שנוגע בדברים הבסיסים איך בונים מערכת על גבי AGI
דהיינו:- מה זה סיפ (בקצרה על מבנה הפרוטוקול + RTP)
- מה ההגדרות המינימאליות שצריך בשביל להפעיל שלוחה(sip.conf+extensions.conf)
- איך מפעילים פונקציה בסיסית (סתם להפעיל קובץ)
- מה זה AGI
- איך בונים שלוחה בAGI
- איך מטפלים בתשובה שחזרה מהפונקצית AGI
- איך משתמשים בCLI
- אולי נגיעה קטנה בAMI (מה זה ולמה זה משמש)
- מה זה CDR? (כי אחר כך לא מבינים למה נגמר המקום במערכת כי הCDR שוקל 2 גיגה)
- למה כדאי להמיר את הקבצים לפורמט שתואם אסטריסק
- לינקים לכל הפונקציות של הDialplan
- בעתיד אפשר להוסיף מילון קצר (שיתופי) לכל הפונקציות
נראה לי שאחרי מרדיך כזה
יהיה יותר קל להיכנס לתחום (ואז יהיו לנו הרבה מתחרים)
אני אולי יתחיל לכתוב מדריך כזה (כשירד קצת הלחץ)
בתקווה שהשאר יתרמו (יש הרבה דברים שאני לא יודע עדיין) -
@nigun אמר בלימוד Asterisk:
נראה לי שאחרי מרדיך כזה
יהיה יותר קל להיכנ לתחום (ואז יהיו לנו הרבה מתחרים)
בהחלט אני מוכן לעזור (ע"פ ידיעתי הדלה)
מי מאיתנו מכיר שיש אירגונים גדולים שצריכים מערכות מעיין אלו עם פונקציות מותאמות ספציפית ללקוח ואני לא חושב שיש כאן מתחרים או משהו כזה.
אדרבה אני חושב שיש לפעמים פונקציות קטנות שהיה עוזר לכל אחד כאן לדוגמה פונקציות השמעת קבצים, שידור חי/ועידה ובהחלט ניתן לשתף אותם לטובת הכלל -
@nigun מצויין
רק לדעתי שים את זה במקום הנכון. בפורום אסטריסק.
ממילא מי שמתעניין נמצא שם, ואם הוא לא מתכנת הוא לא נמצא כאן (הורדתי את הדרישה להיות חבר באקסלוסיבי - מצד שני אני עומד על הדרישה שתהיה זיקה לאסטריסק)אני אשתדל בעז"ה לתרום במה שאוכל לפי הזמן
-
@ליבל
העניין זה שבשונה בשאר תחומי ההייטק
שבהם אי אפשר לשחוט את הלקוח
באסטריסק מצאתי כמה וכמה אנשים שפשוט זורקים מחירים מופקעים,
כי אין הרבה מתכנתים בתחום(דווקא כאן בפורום המחירים הוגנים)
והרבה מהמתכנתים המוכשרים כבר עברו לדברים יותר מעניינים
כך שאין הרבה טאלנט בתחום והרבה מקשקשים
אם יהיה הרבה מתכנתים בתחום זה
מי שיפסיד מזה זה אולי ימות
אבל זה יוכל להביא פתרונות מחוץ לקופסה
נ.ב. אגב אני חושב כבר תקופה מסויימת לבנות פלטפורמה מעל AGI
שיתן אפשרות לתכנת מודולים של AGI עם סקריפטים ולא עם קבצי INI
הבעיה בזה כמובן זה אבטחה ,אם לקוח יכניס את המערכת ללופ אז הכל יקרוס
אבל זה לכאורה אפשרי
יש רק בעיקר בעיה שאני מרגיש קצת רע להתחרות בימות ,כי אם לא המודול API שלהם לא הייתי נכנס לתחום בכלל
(וגם להתחרות בשואף שבלעדיו לא הייתי יודע איך להסתכל על אסטריסק) -
@nigun אמר בלימוד Asterisk:
אני אולי יתחיל לכתוב מדריך כזה (כשירד קצת הלחץ)
בתקווה שהשאר יתרמו (יש הרבה דברים שאני לא יודע עדיין)מעודד אותך מאוד! ואשמח לתרום את ידיעותיי הדלות.
האמת שפיתחתי סט פונקציות שעושות את כל העבודה מול הAGI, כך שאפשר לפתח ברצף ולא להתעסק בכלל עם הAGI.
הפונקציות עושות את ההשמעות, את הקליטת נתונים לפי מודולים, מחברות בין מספרים וטקסטים וכו', כמובן מטפלות בכל TTS וSST, ועוד המון המון דברים
כבר מזמן רוצה לשתף את הפונקציות האלה, שלא כל אחד יצטרך לקחת את החודשים הארוכים שלקח לי לפתח את זה, רק שאני לא בטוח שיהיה תועלת, ובשבילי זה טרחה גדולה לסדר את הכל. אם באמת יהיה ביקוש ויהיה משהו מסודר, אשתדל לקחת את הזמן לסדר ולהעלות.@clickone אמר בלימוד Asterisk:
הורדתי את הדרישה להיות חבר באקסלוסיבי
למה? אני מטיל ווטו. לדעתי תיקח מחיר כפול (20% בשבילי על הרעיון
)
@nigun אמר בלימוד Asterisk:
גם להתחרות בשואף שבלעדיו לא הייתי יודע איך להסתכל על אסטריסק
בזכותי?? איזה פירגון!! ואיזה זכות בשבילי.
אבל אתה לא מתחרה בי, אדרבה כל מי שמפתח מערכת טלפונית, עוזר להטמיע את המושג בציבור, ובסופו של דבר זה משרת את כולם. הרי אם רק אחד או שנים היו עוסקים בזה, זה היה נשאר מוצר שרק בודדים משתמשים בו. אבל ככל שיש יותר מתכנתים מוכשרים שעושים דברים איכותיים, כך יש יותר ביקוש בשוק, וזה מביא עבודה לאחרים, ועבודה ברמה גבוהה.ובחזרה לנושא של האשכול.
לפני כ13 שנה התחלתי לעבוד עם שפת תיכנות מסוימת, והתחברתי לפורום של קהילה קטנה די מגובשת, שעזרו לי מאוד (למרות שאני לא עזרתי להם בכלל...), ואחד הדברים שאהבתי שמה היה שהם דיברו לא רק על פתרון בעיות, אלא גם על כללי תיכנות נכונים, והם היו מלמדים כללים (יחודיים לשפה הזאת), שהשתמשתי בהם לאורך שנים רבות. כמו איפה בקוד לשים את הפונקציות, איך לנהל את הקבצים מצורפים וכל מיני כללים וחוקים שימושיים.לגבי ASTERISK, ובפרט במערכות טלפוניות שאנחנו רגילים לפתח, יש המון דברים שכל אחד עושה בצורה אחרת, ואני בטוח שיש מה לתרום בניסוח כללים שעוזרים לנהל את הפרויקטים
אין לי הרבה זמן עכשיו לנסח, אבל יש כמה דברים שחשבתי הרבה באיזה צורה לעשות אותם נכון, ואני רוצה לשתף עכשיו דבר אחד.
אקדים את הבעייה, לפני הפיתרון.
מסתמא כולם כמוני, מחזיקים שרת אסטריסק (או כמה שרתים, עם ניהול עומסים), ויש עליו כמה פרויקטים שונים.
לכל פרויקט יש שלש סוגי קבצים.
קבצי תיכנות, קבצי קול סטטיים (קריינות של המערכת), וקבצי קול דינמיים (תוכן שמוכנס על ידי הלקוח, כמו שיעורי תורה וכו')
נניח יש לי כמה מכונות עם ניהול עומסים, על איזה מכונה אני כותב את הקבצי תיכנות? איפה להקליט?
הפיתרון שמצאתי הוא כזה.
יש מכונה מרכזית שמשמשת כשרת קבצים וSQL. על המכונה הזו יש תיקייה שנקראת /mnt/remoteAsterisk.
בתיקייה יש שלש תיקיות משנה
AGI - קבצי תיכנות.
USER - קבצי קול סטטיים.
DATA - קבצי קול דינמיים.
בכל אחת מהתיקיות משנה יש תיקיות, כל תיקייה זה פרויקט. דוגמא יש פרויקט ABC, יש לו תיקייה בתיקיית AGI עם הקבצי תיכנות, בתיקיית USER עם קבצי קריינות, ובDATA עם קבצים שהמשתמשים מקליטים.המחשב שלי מסתנכרן מול המכונה הזו, ושמה מועלים הקבצי AGI.
תיקיית AGI ותיקיית USER מסתנכרנות עם המכונות אסטריסק, ומועתקות על כל מכונה. אבל התיקייה השלישית נשארת על השרת המרכזי, ויש קישור בכל שרת שמפנה לשםמקווה שהיה ברור, בהזדמנות אכתוב איך אני יוצר את קבצי הקריינות בצורה נוחה בלי להתעסק עם שמות קבצים, ולבקש מקריין להקריא ולהקליט, ואז להקשיב ולתת שם לכל קובץ
בהצלחה -
@שואף אמר בלימוד Asterisk:
מקווה שהיה ברור, בהזדמנות אכתוב איך אני יוצר את קבצי הקריינות בצורה נוחה בלי להתעסק עם שמות קבצים, ולבקש מקריין להקריא ולהקליט, ואז להקשיב ולתת שם לכל קובץ
כן, בהחלט מעניין
ראיתי גם שעשית פי'צר נחמד הקראת ספרות וכדו' בקול אישי של קריין הקו