Страница 1 из 1

conf to ael

СообщениеДобавлено: 08 ноя 2022, 14:18
yakushkin kirill
День добрый, подскажите как кашернее переписать кусок диал плана c conf на ael:
same => n,GotoIf($["${DIAL_STATUS}"="ANSWER"||"${DIAL_STATUS}"="BUSY"||"${ERR_SIP_CAUSE}"="SIP 486 Busy"||"${ERR_SIP_CAUSE}"="SIP 486 Busy Here"]?hangup:defaultCaller)
same => n(defaultCaller),Set(CALLERID(all)="XXXXXXXXXX"<XXXXXXXXXX>)
same => n,wait(1)
same => n,Dial(SIP/MTT/7${EXTEN:1},120,TRr)
same => n(hangup),HangUp

if ("" ="" ||""="") {
}; //Логическое или в ифе вроде как не работает

switch (${prm}){
case "SIP 486 Busy": //Выдаст ошибку пробелов, pattern не понял можно ли как то исхитриться применить
};

Решил задачу через несколько if(){} и в каждом if goto label, но может как то оптимальнее можно?

Re: conf to ael

СообщениеДобавлено: 09 ноя 2022, 00:45
ded
Базу данных номеров для обзвона автоматизируете?
Попробуйте использовать ExecIf вместо GotoIf, без goto label, возможно будет проще упорядочить.
Код: выделить все
same => n,ExecIf($["${DIAL_STATUS}"="ANSWER")]?Hangup(31))
same => n,ExecIf($["${ERR_SIP_CAUSE}"="SIP 486 Busy")]?Hangup(17))
same => n,ExecIf($["${DIAL_STATUS}"="BUSY")]?Hangup(17))
same => n,ExecIf($["${ERR_SIP_CAUSE}"="SIP 486 Busy Here"]?Hangup(17))
same => n,Set(CALLERID(all)="XXXXXXXXXX"<XXXXXXXXXX>)
same => n,wait(1)
same => n,Dial(SIP/MTT/7${EXTEN:1},120,TRr)
same => n,HangUp

https://pbxbook.com/meridian/maint/ccodes.html

Re: conf to ael

СообщениеДобавлено: 09 ноя 2022, 08:48
yakushkin kirill
Нет, не совсем. На asterisk переписываю extensions.conf на extensions.ael. Точнее даже сперва пришлось изучить и переписать extensions.conf убрать костыли и всякие deprecated функции, теперь занялся переводом на ael. До этого с астериском не работал. Такой кусок диалплана, так как много филиалов и городских номеров 300-400, архитектура исходящих это подстановка номера и если не звонится то через другого провайдера та же подстановка и если не звонится то звонок без подстановки...
Вопрос снят, так как нашел тут в другой теме как люди используют if в ael: ( ("a"="3") ||("a"="4") ){...... Скобки упустил, а в доках не нашел такой подход, если есть где то хорошая книга с примерами или сайт посвященный ael буду рад.