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

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

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

API לימות המשיח

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

    @MusiCode אמר בהבעיה היא לא הgoto:

    אמ:לק

    @MusiCode אמר בהבעיה היא לא הgoto:

    אמ:לק

    אני פתרתי את הסיפור של מערכת בימות המשיח.
    יש לי עכשיו קוד רציף, קל, זורם.
    https://www.npmjs.com/package/yemot-router

    אה, בנוד.
    לא בPHP...

    const express = require("express");
    const yemot_router = require("yemot-router");
     
    const port = 3000;
    const app = express();
    const y = yemot_router();
     
    y.add_fn(async (call) => {
     
        let massage = [{ type: "text", data: "היי, תקיש 10" }];
        let r = await call.read(massage);
     
        console.log(r);
     
        massage = [{ type: "text", data: "הקשת " + r + " תקיש 1 ונסיים סיפור" }];
        call.id_list_message(massage);
    });
     
    app.use("/", y);
     
    app.listen(port, () => {
        console.log("lisen in port", port);
    });
    

    בבקשה הראשונה, הקוד מתחיל.
    הוא מושהה עד הבקשה השנייה.
    ואז לשלישית, וכו.

    שאפו על הקוד המושקע!
    אולי תעשה גם קבצי d.ts בשביל שעורך הקוד יכיר את הטיפוסים שלך, זה סטנדרט ב NPM
    ועוד משהו, המוסכמה של פונקציות ומשתנים בJS הם camelCase ולא קו תחתי מפריד, קו תחתון זה PHP...

    MusiCodeM תגובה 1 תגובה אחרונה
    4
    • MusiCodeM מנותק
      MusiCodeM מנותק
      MusiCode
      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
      #2

      @יוסף-בן-שמעון אמר בAPI לימות המשיח:

      שאפו על הקוד המושקע!

      תודה תודה!

      אולי תעשה גם קבצי d.ts בשביל שעורך הקוד יכיר את הטיפוסים שלך, זה סטנדרט ב NPM

      איך עושים?
      אני שברתי את הראש על זה!
      אפילו פתחתי כאן שרשור, אא"ט.

      י תגובה 1 תגובה אחרונה
      0
      • MusiCodeM מנותק
        MusiCodeM מנותק
        MusiCode
        כתב ב נערך לאחרונה על ידי MusiCode
        #3

        @nigun אני אשמח אם עוד מישהו יפתח את הקוד הזה.
        אני חושב שיש לו הרבה פונטיציאל, למי שרוצה להמשיך לעבוד ע"ג ימות, ולא על אסטריסק.

        ובאמת, לא רואה סיבה נכון לעכשיו, לעזוב את ימות.
        אם הם ייתנו קווי SIP בצורה נורמלית - אולי אעבור למרכזייה פרטית משלי.

        nigunN 2 תגובות תגובה אחרונה
        1
        • nigunN מנותק
          nigunN מנותק
          nigun
          השיב לMusiCode ב נערך לאחרונה על ידי
          #4

          @MusiCode
          אני לא מכיר את נוד, ולא משקיע בימות
          אז אין מה לבנות עלי כ"כ
          (אני חושב שעדיף כבר לבנות פלטפורמה נוחה לאסטריסק)

          מייל: nigun@duck.com

          תגובה 1 תגובה אחרונה
          0
          • MusiCodeM מנותק
            MusiCodeM מנותק
            MusiCode
            כתב ב נערך לאחרונה על ידי
            #5

            אוקיי.
            מתייג את @חוקר , שבעבר ניסיתי לעניין אותו בזה, ולא היה לו זמן.
            אולי עכשיו הוא ייתעניין...

            תגובה 1 תגובה אחרונה
            1
            • nigunN מנותק
              nigunN מנותק
              nigun
              השיב לMusiCode ב נערך לאחרונה על ידי
              #6

              @MusiCode אמר בAPI לימות המשיח:

              ובאמת, לא רואה סיבה נכון לעכשיו, לעזוב את ימות.
              אם הם ייתנו קווי SIP בצורה נורמלית - אולי אעבור למרכזייה פרטית משלי.

              למה באמת אתה לא רואה סיבה לעזוב את ימות?

              מייל: nigun@duck.com

              MusiCodeM תגובה 1 תגובה אחרונה
              0
              • MusiCodeM מנותק
                MusiCodeM מנותק
                MusiCode
                השיב לnigun ב נערך לאחרונה על ידי
                #7

                @nigun כי הם נותנים לי הכי הרבה.

                וההפנייה לSIP תקולה אצלם, כך שאי אפשר לבנות על הפנייה לIP.

                nigunN יעקב ישראלי 2 תגובות תגובה אחרונה
                0
                • nigunN מנותק
                  nigunN מנותק
                  nigun
                  השיב לMusiCode ב נערך לאחרונה על ידי
                  #8

                  @MusiCode
                  ז"א כי הם נותנים לך פלטפורמה מוכנה
                  אז למה להמציא את הגלגל?

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

                  מייל: nigun@duck.com

                  תגובה 1 תגובה אחרונה
                  1
                  • MusiCodeM מנותק
                    MusiCodeM מנותק
                    MusiCode
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @nigun אמר בAPI לימות המשיח:

                    @MusiCode
                    ז"א כי הם נותנים לך פלטפורמה מוכנה
                    אז למה להמציא את הגלגל?

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

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

                    nigunN תגובה 1 תגובה אחרונה
                    1
                    • nigunN מנותק
                      nigunN מנותק
                      nigun
                      השיב לMusiCode ב נערך לאחרונה על ידי
                      #10

                      @MusiCode
                      אתה מתכוון דמי קישורית?
                      יש לך גם מחוץ לימות

                      מייל: nigun@duck.com

                      תגובה 1 תגובה אחרונה
                      0
                      • MusiCodeM מנותק
                        MusiCodeM מנותק
                        MusiCode
                        כתב ב נערך לאחרונה על ידי
                        #11

                        לא ידוע לי על מישהו שישלם לי, כמותם.

                        nigunN תגובה 1 תגובה אחרונה
                        0
                        • nigunN מנותק
                          nigunN מנותק
                          nigun
                          השיב לMusiCode ב נערך לאחרונה על ידי
                          #12

                          @MusiCode
                          שאלת את @clickone ?

                          מייל: nigun@duck.com

                          תגובה 1 תגובה אחרונה
                          0
                          • MusiCodeM מנותק
                            MusiCodeM מנותק
                            MusiCode
                            כתב ב נערך לאחרונה על ידי
                            #13

                            כן...

                            מול מי אתה עובד?

                            nigunN תגובה 1 תגובה אחרונה
                            0
                            • nigunN מנותק
                              nigunN מנותק
                              nigun
                              השיב לMusiCode ב נערך לאחרונה על ידי nigun
                              #14

                              @MusiCode
                              מול 015
                              אמנם עדיין לא קיבלתי שקל כי עדיין לא הגעתי למינימום הדקות שהם רוצים
                              אבל הם אמרו שהם ישלמו 0.5 אג,
                              החל מחצי מליון דקות.
                              (אבל זה לא באמת משנה לי כי אני מרוויח מהפיתוח ולא בונה על דקות)

                              מייל: nigun@duck.com

                              MusiCodeM תגובה 1 תגובה אחרונה
                              0
                              • MusiCodeM מנותק
                                MusiCodeM מנותק
                                MusiCode
                                השיב לnigun ב נערך לאחרונה על ידי MusiCode
                                #15

                                @nigun וואו.
                                זה יותר ממה שיש לי.

                                יאללה, עוברים?...

                                וברצינות:
                                זה יציב, מסודר, נראה לך שישלמו בזמן?
                                אין בעיות חיוג מכשרים?

                                יש ממשק ניהול מסודר?

                                nigunN תגובה 1 תגובה אחרונה
                                0
                                • nigunN מנותק
                                  nigunN מנותק
                                  nigun
                                  השיב לMusiCode ב נערך לאחרונה על ידי nigun
                                  #16

                                  @MusiCode
                                  😅 אני יודע שזה יותר מימות
                                  אבל עד שאני לא מקבל את השקל הראשון אין מה לרוץ (זה לא בדיוק אני, אני יושב על מספרים של מישהו אחר
                                  אני לבד לא מכניס כ"כ הרבה דקות).

                                  לגבי היציבות
                                  טוענים שיש מגבלות חיוג מגולן ל015 (לא קיבלתי תלונות אבל כך אומרים).
                                  ושיחות יוצאות הם לא אוהבים כ"כ את הצינתוקים והם מגבלים כרגע ל100-200 שיחות יוצאות בו זמנית
                                  אולי אם נגיע להרבה דקות הם יתגמשו.
                                  יש לו קומות שפתוחים בקומה הכשר, והוא לא מוכר עוד קומות לימות
                                  אז כרגע לא אמור להיות בעיות, אא"כ לקחות אחרים של 015 יעשו בעיות והוועדה תחסום ל015 קומות שלמות.

                                  ממשק מסודר לצערי אין
                                  ולכן רציתי להקים שרת קמיליו שינתב את כל השיחות לשרתים הרלוונטים.
                                  אבל התייאשתי ואני כנראה יעבור ל @clickone (כאמור לא מעניין אותי הקש"ג).
                                  אבל נראה לי שיש עוד חברות שנותנות מחירים דומים חוץ מ015
                                  סלקום אמרו שבאופן עקרוני הם מוכנים למשהו, אבל המו"מ לא התקדם בכ"כ
                                  בעיקר כי לא מקבלים קש"ג על שיחות מלקחות סלקום
                                  כנ"ל אפשר לנסות בעוד חברות.

                                  מייל: nigun@duck.com

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • י מנותק
                                    י מנותק
                                    יוסף בן שמעון
                                    השיב לMusiCode ב נערך לאחרונה על ידי
                                    #17

                                    @MusiCode אמר בAPI לימות המשיח:

                                    איך עושים?

                                    עשיתי קצת שינויים בקוד שלך והמרתי אותו לקלאס של EMS6, יתכן שזה מספיק בלי TS, לא בדקתי עד הסוף

                                    
                                    const Call = require("./call");
                                    const Router = require("express").Router;
                                    const EventEmitter = require("this.events");
                                    
                                    class Call {
                                        read (massage) { }
                                        id_list_message (massage) { }
                                    }
                                    class Yemot_Router extends Router {
                                        constructor() {
                                            super()
                                            this.events = new EventEmitter();
                                            this.this.active_calls = {};
                                        }
                                    
                                        /**
                                         *
                                         * @param {string} path
                                         * @param {Call} fn
                                         */
                                        addFn (path, fn) {
                                    
                                    
                                            this.all(path, (req, res, next) => {
                                    
                                                req.query = check_query(req.query);
                                    
                                                const call_id = req.query.ApiCallId;
                                    
                                                const [current_call, is_new_req] = this.get_current_call(call_id);
                                    
                                                current_call.get_req_vals(req, res, next);
                                    
                                                if (is_new_req) {
                                    
                                                    fn(current_call).then((r) => {
                                    
                                                        delete this.this.active_calls[call_id];
                                                        console.log(call_id, "deleted", r);
                                                    });
                                    
                                                } else {
                                                    this.events.emit(call_id);
                                                }
                                            });
                                        };
                                    
                                        get_current_call (call_id) {
                                    
                                            let current_call = this.active_calls[call_id];
                                            let is_new_req = false;
                                    
                                            if (!current_call) {
                                                current_call = this.active_calls[call_id] = new Call(call_id, this.events);
                                    
                                                is_new_req = true;
                                                console.log(call_id + " is new");
                                            }
                                    
                                            return [current_call, is_new_req];
                                        };
                                    
                                        const check_query = function check_query (query) {
                                    
                                            if (typeof query == "object") {
                                                let iterator;
                                    
                                                for (const key of Object.keys(query)) {
                                    
                                                    iterator = query[key];
                                    
                                                    if (typeof iterator === "object") {
                                    
                                                        query[key] = iterator[(iterator.length - 1)];
                                                    }
                                                }
                                            }
                                    
                                            return query;
                                        };
                                    
                                    };
                                    
                                    module.exports = () => new Yemot_Router()
                                    
                                    
                                    י תגובה 1 תגובה אחרונה
                                    1
                                    • י מנותק
                                      י מנותק
                                      יוסף בן שמעון
                                      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי יוסף בן שמעון
                                      #18

                                      בשביל תיעוד מלא, תעשה קובץ בשם yemot_router.d.ts, וב require אל תציין סיומת קובץ צור קובץ בשם index.d.ts ותמקם אותו בתיקית השורש

                                      declare function Yemot(): YemotRouter;
                                      interface YemotRouter {
                                          addFn?(path: string, handler: Handler): void;
                                      }
                                      interface Call {
                                          read(massage: string): Promise<string>
                                      }
                                      type Handler = (p: Call) => void;
                                      
                                      export = Yemot;
                                      
                                      
                                      MusiCodeM תגובה 1 תגובה אחרונה
                                      4
                                      • MusiCodeM מנותק
                                        MusiCodeM מנותק
                                        MusiCode
                                        השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                                        #19

                                        @יוסף-בן-שמעון אמר בAPI לימות המשיח:

                                        בשביל תיעוד מלא, תעשה קובץ בשם yemot_router.d.ts, וב require אל תציין סיומת קובץ צור קובץ בשם index.d.ts ותמקם אותו בתיקית השורש

                                        declare function Yemot(): YemotRouter;
                                        interface YemotRouter {
                                            addFn?(path: string, handler: Handler): void;
                                        }
                                        interface Call {
                                            read(massage: string): Promise<string>
                                        }
                                        type Handler = (p: Call) => void;
                                        
                                        export = Yemot;
                                        
                                        

                                        תודה רבה!

                                        בוצע.

                                        תגובה 1 תגובה אחרונה
                                        1
                                        • יעקב ישראלי מנותק
                                          יעקב ישראלי מנותק
                                          יעקב ישראל
                                          השיב לMusiCode ב נערך לאחרונה על ידי
                                          #20

                                          @MusiCode לא מבין איפה הבעיה שולחים לשירות לקוחות את כתובת הIP והם פותחים לך זה כולה עניין של אבטחה

                                          nigunN תגובה 1 תגובה אחרונה
                                          0

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

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

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