API לימות המשיח
-
-
@MusiCode
ז"א כי הם נותנים לך פלטפורמה מוכנה
אז למה להמציא את הגלגל?ואני אומר למה להיתקע עוד עשור עדיין תחת המגבלות של ימות?
אם כל אחד יתרום מהידע שלו
נקים כאן פלטפורמה יציבה מעל אסטריסק (או יותר טוב מעל freeswitch).
ואז נהנה מכל העולמות.
זה אומנם לא בא ברגע, יש הרבה בעיות בדרך, אבל זה פתיר (עם ימות פתרו למה שאנחנו לא נפתור?) -
@nigun אמר בAPI לימות המשיח:
@MusiCode
ז"א כי הם נותנים לך פלטפורמה מוכנה
אז למה להמציא את הגלגל?ואני אומר למה להיתקע עוד עשור עדיין תחת המגבלות של ימות?
אם כל אחד יתרום מהידע שלו
נקים כאן פלטפורמה יציבה מעל אסטריסק (או יותר טוב מעל freeswitch).
ואז נהנה מכל העולמות.
זה אומנם לא בא ברגע, יש הרבה בעיות בדרך, אבל זה פתיר (עם ימות פתרו למה שאנחנו לא נפתור?)אני בעד, אבל קודם אני צריך שמישהו ישלם לי פה...
לכן, אם ימות יסכימו לעשות קווי SIP, או לתקן את הבאגים בהפנייה לIP, אני אבוא. -
@MusiCode
אני יודע שזה יותר מימות
אבל עד שאני לא מקבל את השקל הראשון אין מה לרוץ (זה לא בדיוק אני, אני יושב על מספרים של מישהו אחר
אני לבד לא מכניס כ"כ הרבה דקות).לגבי היציבות
טוענים שיש מגבלות חיוג מגולן ל015 (לא קיבלתי תלונות אבל כך אומרים).
ושיחות יוצאות הם לא אוהבים כ"כ את הצינתוקים והם מגבלים כרגע ל100-200 שיחות יוצאות בו זמנית
אולי אם נגיע להרבה דקות הם יתגמשו.
יש לו קומות שפתוחים בקומה הכשר, והוא לא מוכר עוד קומות לימות
אז כרגע לא אמור להיות בעיות, אא"כ לקחות אחרים של 015 יעשו בעיות והוועדה תחסום ל015 קומות שלמות.ממשק מסודר לצערי אין
ולכן רציתי להקים שרת קמיליו שינתב את כל השיחות לשרתים הרלוונטים.
אבל התייאשתי ואני כנראה יעבור ל @clickone (כאמור לא מעניין אותי הקש"ג).
אבל נראה לי שיש עוד חברות שנותנות מחירים דומים חוץ מ015
סלקום אמרו שבאופן עקרוני הם מוכנים למשהו, אבל המו"מ לא התקדם בכ"כ
בעיקר כי לא מקבלים קש"ג על שיחות מלקחות סלקום
כנ"ל אפשר לנסות בעוד חברות. -
@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()
-
בשביל תיעוד מלא,
תעשה קובץ בשם 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;
-
@יוסף-בן-שמעון אמר ב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;
תודה רבה!
בוצע.
-
@יעקב-ישראל
השיחה לא מחזיקה יותר מחצי שעה