דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אסטריסק מתקשר עם שרת AGI

אסטריסק מתקשר עם שרת AGI

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 4 כותבים 206 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    כתב ב נערך לאחרונה על ידי
    #1

    מכונת דוקר 1 - מרכזיה של אסטריסק שמקבלת שיחות, ומעבירה את הניהול של השיחות לשרת AGI שיושב במכונת דוקר 2.
    השרת AGI זו בעצם אפליקצית ווב גדולה, עם שרת API של נוד, ובנוסף הוא מחזיק גם שרת AGI לנהל את השיחות, לקבל את ההקשות של המשתמש, לתשאל את המסד, ולעדכן על בחירות של המתקשר ועל שעת סיום שיחה, כל הנתונים נשלפים ונשמרים מול המסד המרכזי של האפליקציה.
    מטבע הדברים השרת דורש עדכונים מפעם לפעם, וזה דורש הפעלה מחדש של האפליקצית נוד.
    דא עקא, שהפעלה מחדש מפילה את ה AGI, והשיחות הפעילות נופלות.
    עד עכשיו לפני שהייתי עושה עדכון הייתי נכנס לאסטריסק, ומבקש core show channels ורק כשאני רואה שהרשימה ריקה ואין שיחות פעילות אני מרסטרט את השרת
    אבל זו דרך מסורבלת מידי, אני מאמין שיש דרך לעשות איזה סקריפט חיצוני שיבדוק אם יש שיחות פעילות, ואם לא שיתן הוראה לשרת להפעיל את עצמו מחדש
    האם אכן יש דרך כזו?

    S תגובה 1 תגובה אחרונה
    0
    • clickoneC מנותק
      clickoneC מנותק
      clickone
      כתב ב נערך לאחרונה על ידי
      #2

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

      בנוסף, יש מצב שאתה יכול לעבוד עם 2 פורטים או 2 כתובות, ואת העידכון לשים בפורט השני, ואז כשכל השיחות בפורט הראשון נגמרות, אתה מעלה לשם את העידכון הבא.
      ואז כל מה שתצטרך הוא לשנות בצד האסטריסק לאיזה פורט לגשת. ואת זה אתה מן הסתם יכול לעשות גם עם קוד מקומי שבודק בAPI מיהו הפורט המעודכן.

      כי המצב הזה שאתה לא מעלה עידכון בגלל שיש שיחות פעילות לא כ"כ הגיוני. לפעמים העידכון ממש חשוב וקריטי

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

      dovidD תגובה 1 תגובה אחרונה
      3
      • S מנותק
        S מנותק
        Shmuel754
        השיב ליוסף בן שמעון ב נערך לאחרונה על ידי Shmuel754
        #3

        @יוסף-בן-שמעון כתב באסטריסק מתקשר עם שרת AGI:

        מכונת דוקר 1 - מרכזיה של אסטריסק שמקבלת שיחות, ומעבירה את הניהול של השיחות לשרת AGI שיושב במכונת דוקר 2.
        השרת AGI זו בעצם אפליקצית ווב גדולה, עם שרת API של נוד, ובנוסף הוא מחזיק גם שרת AGI לנהל את השיחות, לקבל את ההקשות של המשתמש, לתשאל את המסד, ולעדכן על בחירות של המתקשר ועל שעת סיום שיחה, כל הנתונים נשלפים ונשמרים מול המסד המרכזי של האפליקציה.
        מטבע הדברים השרת דורש עדכונים מפעם לפעם, וזה דורש הפעלה מחדש של האפליקצית נוד.
        דא עקא, שהפעלה מחדש מפילה את ה AGI, והשיחות הפעילות נופלות.
        עד עכשיו לפני שהייתי עושה עדכון הייתי נכנס לאסטריסק, ומבקש core show channels ורק כשאני רואה שהרשימה ריקה ואין שיחות פעילות אני מרסטרט את השרת
        אבל זו דרך מסורבלת מידי, אני מאמין שיש דרך לעשות איזה סקריפט חיצוני שיבדוק אם יש שיחות פעילות, ואם לא שיתן הוראה לשרת להפעיל את עצמו מחדש
        האם אכן יש דרך כזו?

        תעשה סקריפט המריץ פקודה

        asterisk -rx"core show channels concise"
        

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

        תגובה 1 תגובה אחרונה
        2
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לclickone ב נערך לאחרונה על ידי
          #4

          @clickone כתב באסטריסק מתקשר עם שרת AGI:

          בנוסף, יש מצב שאתה יכול לעבוד עם 2 פורטים או 2 כתובות, ואת העידכון לשים בפורט השני, ואז כשכל השיחות בפורט הראשון נגמרות, אתה מעלה לשם את העידכון הבא.

          זו לדעתי הדרך הנכונה לעבוד עם נוד.
          צריך להגדיר בשרת שני פורטים או יותר,
          מתי שעושים ריסטרט מעלים את המופע השני לפורט השני,
          השאלה איך לנטרל את הראשון מבקשות חדשות.
          דרך אחת שאני חושב זה לשלוח Kill רך, אולי במקרה כזה נוד מתחשב גם בחיבור יוצא (כמו הAGI בה הנוד הוא קליינט ולא סרבר כמו התפקיד הראשי שלו)
          אם זה לא עובד אז צריך שיהיה לנוד פקודה שמורידה את הserver שלו (ולא את היישום כולו, server.close או משהו כזה) ואז שרת האינטרנט יבחר בפורט השני.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          2

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום