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

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 14:11
chardisdze
Заработало в таком виде:

exten => _.,1,Set(GROUP()=OUT_2)
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=10]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=11]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=12]?Set(CALEERID(all)=810${CALLERID(num)}))
exten => _.,n,Set(CALLERID(ANI-all)=${CALLERID(num)})
exten => _.,n,Goto(from-trunk,${EXTEN},1)

Огромное спасибо за подсказки!
DED, спасибо что не отказал!!! Если честно, ждал твоих издевок и шуточек!!! :lol: Но они в тему и заставляют мозги шевелиться!!! Всех благ :D

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 14:42
ded
Для точности:

Код: Выделить всё

exten => _.,1,Set(GROUP()=OUT_2)
exten => _.,n,ExecIf($[(${CALLERID(num):0:1})=+]?Set(CALEERID(all)=${CALLERID(num):1}))  ; отрезаем плюс если CID прибежал в формате е164 с плюсом, типа +79012345678
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=10]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=11]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[LEN(${CALLERID(num)})=12]?Set(CALEERID(all)=810${CALLERID(num)}))
exten => _.,n,Set(CALLERID(ANI-all)=${CALLERID(num)})
exten => _.,n,Goto(from-trunk,${EXTEN},1)

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 14:56
chardisdze
Блин, даже не задумался над плюсиком то...
Огромное спасибо!!!

P.S. а разве плюсик не будет отрезаться в случаях с 10 и 11тизначными номерами?

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 15:30
ded
А проверьте?

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 15:53
chardisdze
у меня не замечены случаи входящих CID с плюсиком =)
Попробую что-нибудь придумать!

Огромное спасибо!

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 15:55
ded
Придумать легко.
указать какому-то софтфону параметр
callerid=+123456789
и этот контекст в качестве родного, сделать звонок, насобачить по дороге
NoOp(CID is ${CALLERID(all)})

Это может появится у вас, если подключать некоторые GSM шлюзы и/или USB-модемы в качестве GSM шлюзов.
Гарантирую.
Если нет и не предполагается - можно забыть.

Re: Изменение CID при входящем звонке

Добавлено: 18 окт 2017, 16:17
chardisdze
Все возможно в этом мире!!! :D И для этого как раз отлично подойдет модуль Set CID.
Огромное спасибо за помощь и консультации!

Re: Изменение CID при входящем звонке

Добавлено: 14 фев 2018, 11:35
chardisdze
Коллеги, подскажите пожалуйста в чем косяк?
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:1] Set("SIP/WestCall-00000160", "GROUP()=OUT_1") in new stack
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '+', expecting '-' or '!' or '(' or '<token>'; Input:
(+)=+
^
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/ ... +Variables
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:2] ExecIf("SIP/WestCall-00000160", "0?Set(CALLERID(all)=77777777777)") in new stack
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '+', expecting '-' or '!' or '(' or '<token>'; Input:
LEN(+77777777777)=10
^
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/ ... +Variables
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:3] ExecIf("SIP/WestCall-00000160", "0?Set(CALLERID(all)=8+77777777777)") in new stack
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '+', expecting '-' or '!' or '(' or '<token>'; Input:
LEN(+77777777777)=11
^
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/ ... +Variables
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:4] ExecIf("SIP/WestCall-00000160", "0?Set(CALLERID(all)=87777777777)") in new stack
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '+', expecting '-' or '!' or '(' or '<token>'; Input:
LEN(+77777777777)=12
^
[2018-02-14 11:03:49] WARNING[11570][C-0000045b] ast_expr2.fl: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/ ... +Variables
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:5] ExecIf("SIP/WestCall-00000160", "0?Set(CALLERID(all)=810+77777777777)") in new stack
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:6] Set("SIP/WestCall-00000160", "CALLERID(ANI-all)=+77777777777") in new stack
[2018-02-14 11:03:49] VERBOSE[11570][C-0000045b] pbx.c: Executing [74955555555@from-trunk-sip-WestCall:7] Goto("SIP/WestCall-00000160", "from-trunk,74955555555,1") in new stack
Такой же контекст на другом * (сборки одинаковые) отрабатывает нормально.
Натолкните пожалуйста на мысль, где я нагрешил... Понимаю, что проблема в синтаксисе, но даже в родном контексте написано так же только без ExecIf (без трансформации).

Re: Изменение CID при входящем звонке

Добавлено: 14 фев 2018, 22:04
zzuz
Проблема к диалпланом. В вышеприведенном примера небольшая ошибка. LEN это функция и вызывать её надо ${LEN(sting)} , то есть

Код: Выделить всё

exten => _.,1,Set(GROUP()=OUT_2)
exten => _.,n,ExecIf($["${CALLERID(num):0:1}"="+"]?Set(CALEERID(all)=${CALLERID(num):1}))  ; отрезаем плюс если CID прибежал в формате е164 с плюсом, типа +79012345678
exten => _.,n,ExecIf($[${LEN(${CALLERID(num)})}=10]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[${LEN(${CALLERID(num)})}=11]?Set(CALEERID(all)=8${CALLERID(num):-10:10}))
exten => _.,n,ExecIf($[${LEN(${CALLERID(num)})}=12]?Set(CALEERID(all)=810${CALLERID(num)}))
exten => _.,n,Set(CALLERID(ANI-all)=${CALLERID(num)})
exten => _.,n,Goto(from-trunk,${EXTEN},1)

Re: Изменение CID при входящем звонке

Добавлено: 15 фев 2018, 08:44
chardisdze
Большое спасибо за разъяснение!!! Все заработало!!!
Остался единственный вопрос, ну это к себе: почему на двух одинаковых сборках работает по разному?

P.S. Копипаста действительно не работает... Спасибо за урок!!! ;)