Skip to content

MusiCode1/yemot-router

Repository files navigation

yemot-router

Because I do not know English, the documents are now in Hebrew. With the help of God in teaching English, I'll translate that.

לתכנת מערכות מתקדמות ב'ימות-המשיח' בקלות באמצעות מודול API.

התקנה (NodeJS)

npm i yemot-router

שימוש

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

Change log

4.0.0 בגרסה 4.0.0 שינוי משמעותי:

במקום לבדוק בכל פעם את המאפיין hangup,

כעת בעת ניתוק, פשוט תיזרק שגיאה.

ניתן לתפוס אותה להתנהגות מותאמת אישית (ראה דוגמה בקובץ exemple.js/.),

או להתעלם, לעצירה של הסקריפט.

דוגמא בסיסית

./exemple.js

מתודות אובייקט הCall

read(massage : [], mode : string, options : {}) : Promise

מתודה לשאילת שאלה את המשתמש, וקבלת התשובה מתי שתגיע, ע"י הבטחה (Promise).

הפרמטר massage

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

טקסט שיוקרא למשתמש:

let massage = [{ type: "text", data: "היי, תקיש 10" }];
let massage = [{ type: "text", data: "היי, תקיש 10" }];
השמעת קובץ במערכת:
let massage = [{ type: "file", data: "000" }];
השמעת מספר:
let massage = [{ type: "number", data: "512" }];
השמעת ספרות:
let massage = [{ type: "digits", data: "077313770" }];
הקראת קובץ טקסט הנמצא במערכת:
let massage = [{ type: "speech", data: "000" }];
הקראת אותיות באנגלית:
let massage = [{ type: "alpha", data: "[email protected]" }];

הפרמטר mode

הפרמטר הזה קובע, האם לקבל תשובה, ע"י הקשה, זיהוי דיבור, או הקלטה.

האפשרויות:

tap = הקשה

stt = זיהוי דיבור

record = הקלטה

הפרמטר options

בפרמטר הזה, ניתן להעביר אפשרויות נוספות, כגון סך הקשות מינימלי, מקסימלי, וכו'.

ערכי ברירת מחדל - הקשה
let options = {

	/* שם הערך בימות
	 ברירת מחדל, נקבע אוטומטית,
	 val_1, val_2 ... */
	val_name: "val_x",

	/* האם לבקש את הערך שוב אם קיים. */
	re_enter_if_exists: false,

	/* כמות ההקשות המקסימלית */
	max: "*",

	/* כמות ההקשות המינימלית */
	min: 1,

	/* שניות להמתנה */
	sec_wait: 7,

	/* צורת ההשמעה למשתמש את הקשותיו */
	/* באם מעוניינים במקלדת שונה ממקלדת ספרות, כגון EmailKeyboard או HebrewKeyboard, יש להכניס כאן את סוג המקלדת
	[ראו exemple.js]
	האופציות הקיימות:
	"Number" | "Digits" | "File" | "TTS" | "Alpha" | "No" | "HebrewKeyboard" |
	"EmailKeyboard" | "EnglishKeyboard" | "DigitsKeyboard" | "TeudatZehut" |
	 "Price" | "Time" | "Phone" | "No"
	פירוט על כל אופציה ניתן למצוא בתיעוד מודול API של ימות המשיח, תחת"הערך השישי (הקשה)".
	*/
	play_ok_mode: "No",

	/* האם לחסום הקשה על כוכבית */
	block_asterisk: false,

	/* האם לחסום הקשה על אפס */
	block_zero: false,

	/* החלפת תווים*/
	replace_char: "",

	/* ספרות מותרות להקשה - מערך
	[1, 2, 3 ...]
	*/
	digits_allowed: [],

	/* אחרי כמה שניות להשמיע שוב את השאלה */
	amount_attempts: "",

	/* אם המשתמש לא ענה, האם לשלוח ערך*/
	read_none: false,

	/* הערך שיישלח באין תשובה */
	read_none_var: "",

	/* האם לחסום שינוי שפת מקלדת */
	block_change_type_lang: false,
}
ערכי ברירת מחדל - זיהוי דיבור:
let options = {
  lang: "",

  allow_typing: false,
};
ערכי ברירת מחדל - הקלטה
let options = {
  path: "",

  file_name: "",

  record_ok: true,

  record_hangup: false,

  record_attach: false,

  lenght_min: "",

  lenght_max: "",
};

go_to_folder(folder: string): void

מתודה להעברת השיחה לשלוחה מסוימת במערכת הנוכחית. ניתן לכתוב נתיב יחסי לשלוחה הנוכחית או לשלוחה הראשית. פירוט על האופציות ניתן לקרוא כאן. ניתן להעביר בפרמטר folder את הסטרינג hangup, וכך לנתק את השיחה.

restart_ext()

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

go_to_folder(`/${call.ApiExtension}`);

id_list_message(massages: array, wait_to_more_action: Boolean)

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


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

הפונקציה מקבלת כארגומנט ראשון מערך של אובייקטי הודעה. כל אובייקט במערך צריך להיות במבנה הבא:
{ type: string, data: string }

ואם הtype הוא zmanim:

{  type: string, data: object }

ראה פירוט נוסף להלן.

הפרמטר type

הערך type מקבל סטרינג של סוג ההשמעה. האפשרויות הקיימות עבור type הן:

  • file - השמעת קובץ מתוך המערכת או מהמאגר הגלובלי
  • digits - השמעת ספרות (לדוגמה 111 המערכת תשמיע "אחת אחת אחת")
  • number - השמעת מספר (לדוגמה 111 המערכת תשמיע "מאה ואחת עשרה")
  • alpha - השמעת אותיות (לדוגמה abc המערכת תשמיע "איי בי סי")
  • text - הקראת טקסט
  • speech - הקראת טקסט מתוך קובץ במערכת
  • zmanim - השמעה שעה לפי משתנה
  • go_to_folder - מעבר לשלוחה אחרת (לא ניתן לשרשר הודעות/פקודות נוספות לאחר פקודה זו)
  • system_message - השמעת הודעת מערכת (מקבל בdata את מספר ההודעה, עם או בלי M בהתחלה.)
  • music_on_hold - מוזיקה בהמתנה
  • date - השמעת תאריך לועזי (יש לכתוב את התאריך בפורמט dd/mm/yyyy)
  • dateH - השמעת תאריך עברי (יש לכתוב את התאריך הלועזי בפורמט dd/mm/yyyy)

הפרמטר data

הערך data מקבל את תוכן ההודעה להשמעה - עבור השמעת ספרות/אותיות/טקסט, או את נתיב הקובץ/התקיה עבור file/go_to_folder (בהתאמה).

חריג הוא הטייפ zmanim:

עבור השמעת זמנים (כלומר אם הערך של type הוא zmanim), הערך השני (data) יהיה אובייקט, ולא סטרינג, במבנה הבא:

{
 time: string, // optional, default: "T" (current time)
 zone: string,
 difference: string // optional, default: "IL/Jerusalem"
}

הערך time:

סוג הזמן שרוצים להשמיע.

ברירת מחדל: "T" = השעה הנוכחית.

הערך zone:

אזור הזמן שעבורו יש לחשב את הזמנים.

ברירת מחדל: IL/Jerusalem.

ניתן לראות כאן את רשימת אזורי הזמן הקיימים במערכת.

ניתן לראות כאן את רשימת הזמנים האפשריים.

הערך difference:

ערך זה משמש להוספה/הסרה מלאכותית של זמן על הזמן שמשמיעים. באם לא יועבר פרמטר זה, יושמע הזמן ללא שינוי.

הערך difference מכיל קודם את סוג הפעולה - פלוס (+) להוספת זמן, או מינוס (-) להפחתת זמן, ואז את הזמן על פי הצורה הבאה: Y - שנה M - חודש D - יום H - שעה m - דקה S - שניה s - אלפית שניה למשל, עבור 20 דקות אחורה יש להגדיר m20-, עבור 3 שעות קדימה יש לרשום H3+. עבור יומיים אחורה יש לרשום D1-.

לדוגמה, עבור השמעת זמן שקיעת החמה מחר בעיר בני ברק:

let massage = [
  {
    type: "zmanim",
    data: {
      time: "sunset",
      zone: "IL/Bney_Brak",
      difference: "+1D",
    },
  },
];

routing_yemot(phone: string)

מתודה להעברת השיחה למערכת אחרת בימות המשיח ללא עלות יחידות, באמצעות "ראוטינג ימות".

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

send(data: string)

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published