ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Goto переход в экстеншн шаблон

Проблемы и их решения Asterisk как такового

Модераторы: april22, Zavr2008

Goto переход в экстеншн шаблон

Сообщение xeon_greg » 08 фев 2017, 13:34

добрый всем день.
есть такая конструкция, она работает
Код: выделить все
[voice_menu]
exten => 1,1,Dial(SIP/103,15,t)
exten => 1,2,Goto(106-${DIALSTATUS},1) ;
exten => 106-CHANUNAVAIL,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => 106-BUSY,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => 106-NOANSWER,1,Dial(SIP/${EXTEN:0:3},15,t)

кто подскажет почему не работает такая? , вернее работает только для BUSY :
Код: выделить все
[vioce_menu]
exten => 1,1,Dial(SIP/103,15,t) ;
exten => 1,2,Goto(106-${DIALSTATUS},1) ;
exten => _XXX-CHANUNAVAIL,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => _XXX-BUSY,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => _XXX-NOANSWER,1,Dial(SIP/${EXTEN:0:3},15,t)

в лог валит
Код: выделить все
Called SIP/103
    -- SIP/103-00000022 is ringing
    -- Nobody picked up in 15000 ms
    -- Executing [1@voice_menu:2] Goto("SIP/101-00000021", "106-NOANSWER,1") in new stack
    -- Goto (voice_menu,106-NOANSWER,1)
    -- Channel 'SIP/101-00000021' sent to invalid extension: context,exten,priority=voice_menu,106-NOANSWER,1
    -- Executing [i@voice_menu:1] Hangup("SIP/101-00000021", "") in new stack

хотя
Код: выделить все
dialplan show 106-BUSY@voice_menu
[ Context 'voice_menu' created by 'pbx_config' ]
  '_XXX-BUSY' =>    1. Dial(SIP/${EXTEN:0:3},15,t)                [pbx_config]

-= 1 extension (1 priority) in 1 context. =-
dialplan show 106-NOANSWER@voice_menu
There is no existence of 106-NOANSWER@voice_menu extension
Command 'dialplan show 106-NOANSWER@voice_menu' failed.

dialplan show 106-CHANUNAVAIL@voice_menu
There is no existence of 106-CHANUNAVAIL@voice_menu extension
Command 'dialplan show 106-CHANUNAVAIL@voice_menu' failed.
xeon_greg
 
Сообщений: 6
Зарегистрирован: 08 фев 2017, 13:11

Re: Goto переход в экстеншн шаблон

Сообщение xeon_greg » 08 фев 2017, 13:55

ага понял сам почему, тк это шаблон символы N трактуются спец образом в NOANSWER и CHANUNAVAIL . тогда другой вопрос как это обойти ?
xeon_greg
 
Сообщений: 6
Зарегистрирован: 08 фев 2017, 13:11

Re: Goto переход в экстеншн шаблон

Сообщение ded » 08 фев 2017, 14:10

Загадка!
Но - так и есть. Проверил копипастой.
Если хотите обойти - соорудите макрос, и предавайте в него вызываемый номер аргументом:
Код: выделить все
exten => 1,1,Dial(SIP/103,15,t)
exten => 1,2,Macro(redial,106)

[macro-redial]
exten => s-CHANUNAVAIL,1,Dial(SIP/${ARG1},15,t)
exten => s-BUSY,1,Dial(SIP/${ARG1},15,t)
exten => s-NOANSWER,1,Dial(SIP/${ARG1},15,t)
ded
 
Сообщений: 15826
Зарегистрирован: 26 авг 2010, 19:00

Re: Goto переход в экстеншн шаблон

Сообщение virus_net » 08 фев 2017, 14:18

Да нету загадок, тут точно есть очепятка.
Название контекста во втором случае vioce_menu, а Goto на voice_menu

Код: выделить все
*CLI> dialplan show 106-NOANSWER@vioce_menu

Код: выделить все
*CLI> dialplan show 106-NOANSWER@voice_menu


UPDATED:
Хотя ситуация реально странная :)
Код: выделить все
[contest]
exten => 1,1,Dial(SIP/103,15,t) ;
exten => 1,2,Goto(106-${DIALSTATUS},1) ;
exten => _XXX-CHANUNAVAIL,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => _XXX-BUSY,1,Dial(SIP/${EXTEN:0:3},15,t)
exten => _XXX-NOANSWER,1,Dial(SIP/${EXTEN:0:3},15,t)


Код: выделить все
*CLI> dialplan show contest

[ Context 'contest' created by 'pbx_config' ]
'1' => 1. Dial(SIP/103,15,t) [pbx_config]
2. Goto(106-${DIALSTATUS},1) [pbx_config]
'_XXX-BUSY' => 1. Dial(SIP/${EXTEN:0:3},15,t) [pbx_config]
'_XXX-CHANUNAVAIL' => 1. Dial(SIP/${EXTEN:0:3},15,t) [pbx_config]
'_XXX-NOANSWER' => 1. Dial(SIP/${EXTEN:0:3},15,t) [pbx_config]

Код: выделить все
*CLI> dialplan show 123-BUSY@contest

[ Context 'contest' created by 'pbx_config' ]
'_XXX-BUSY' => 1. Dial(SIP/${EXTEN:0:3},15,t) [pbx_config]

Код: выделить все
*CLI> dialplan show 123-CHANUNAVAIL@contest

There is no existence of 123-CHANUNAVAIL@contest extension
Command 'dialplan show 123-CHANUNAVAIL@contest' failed.

Код: выделить все
*CLI> dialplan show 123-NOANSWER@contest

There is no existence of 123-NOANSWER@contest extension
Command 'dialplan show 123-NOANSWER@contest' failed.

Но что то тут не так. У меня такие же конструкции используются, только не шаблон и они работают :)
Шаблоном тока подобное:
Код: выделить все
exten => _111-[A-Z].,1,Hangup()

Добавляем в контекст
Код: выделить все
exten => _XXX-[A-Z].,1,NoOp(Not matched)

и смотрим:
Код: выделить все
*CLI> dialplan show 123-CHANUNAVAIL@contest

[ Context 'contest' created by 'pbx_config' ]
'_XXX-[A-Z].' => 1. NoOp(Not matched) [pbx_config]

-= 1 extension (1 priority) in 1 context. =-


Код: выделить все
*CLI> dialplan show 123-CHANUNAVAIL@contest

[ Context 'contest' created by 'pbx_config' ]
'_XXX-[A-Z].' => 1. NoOp(Not matched) [pbx_config]

-= 1 extension (1 priority) in 1 context. =-

О как :) Чудеса да и тока, но ведь чудес не бывает.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Goto переход в экстеншн шаблон

Сообщение virus_net » 08 фев 2017, 14:52

Опытным путем:
Код: выделить все
    -- Executing [15@users:1] Set("SIP/6003-00001b44", "DIALSTATUS=CHA") in new stack
    -- Executing [15@users:2] Goto("SIP/6003-00001b44", "106-CHA,1") in new stack
    -- Goto (users,106-CHA,1)
    -- Executing [106-CHA@users:1] NoOp("SIP/6003-00001b44", "Dial(SIP 106,15,t)") in new stack

Код: выделить все
    -- Executing [15@users:1] Set("SIP/6003-00001b43", "DIALSTATUS=CHAN") in new stack
    -- Executing [15@users:2] Goto("SIP/6003-00001b43", "106-CHAN,1") in new stack
    -- Goto (users,106-CHAN,1)
    -- Executing [106-CHAN@users:1] NoOp("SIP/6003-00001b43", "Not matched [106-CHAN]") in new stack

Т.е. как тока дошло до CHAN, так все сразу и обломилось.
Со вторым все обломалось сразу же на N:
Код: выделить все
    -- Executing [15@users:1] Set("SIP/6003-00001b48", "DIALSTATUS=N") in new stack
    -- Executing [15@users:2] Goto("SIP/6003-00001b48", "106-N,1") in new stack
    -- Goto (users,106-N,1)
    -- Sent into invalid extension '106-N' in context 'users' on SIP/6003-00001b48

Удивлен состоянием счета. Реально удивлен :)
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Goto переход в экстеншн шаблон

Сообщение xeon_greg » 08 фев 2017, 14:59

да таки как DED yаписал придется использовать макрос, так шаблон не пропускает N,X,Z те трактует их как спец-символы. ну можно сказать проблема решена - использовать макрос в котором не будет шаблона
xeon_greg
 
Сообщений: 6
Зарегистрирован: 08 фев 2017, 13:11

Re: Goto переход в экстеншн шаблон

Сообщение xeon_greg » 08 фев 2017, 15:02

virus_net писал(а):Да нету загадок, тут точно есть очепятка.
Название контекста во втором случае vioce_menu, а Goto на voice_menu

на самом деле опечатки там не было, это я уже при наборе текста в форум дописывал название контекста чтобы понятнее было и тут уже сделал опечатку
xeon_greg
 
Сообщений: 6
Зарегистрирован: 08 фев 2017, 13:11

Re: Goto переход в экстеншн шаблон

Сообщение zzuz » 08 фев 2017, 18:32

Чтобы экранировать такой шаблон , помещайте шаблонные символы в []
То есть .
Код: выделить все
_16X-CHA[N],BlaBla()
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1658
Зарегистрирован: 21 сен 2010, 13:33

Re: Goto переход в экстеншн шаблон

Сообщение virus_net » 08 фев 2017, 19:51

ёк макарёк ! про шаблонные букАвки, то я и забыл :D от дебил :lol:
спасибо zzuz, теперь чудеса точно исчезли

Код: выделить все
*CLI> dialplan show 123-CHANUNAVAIL@tests

[ Context 'tests' created by 'pbx_config' ]
'_XXX-CHA[N]U[N]AVAIL' => 1. NoOp(Dial(SIP ${EXTEN:0:3},15,t)) [pbx_config]
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Goto переход в экстеншн шаблон

Сообщение whoim » 16 фев 2017, 13:25

бум знать, если не забудем :D
облачные и локальные сервера asterisk/freepbx/a2billing/crm с полной техподдержкой. skype: whoim2, sipuri: whoim@asterisk.ru
whoim
 
Сообщений: 766
Зарегистрирован: 26 ноя 2013, 23:25
Откуда: Краснодар


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH