Я пытаюсь создать своего рода телефонный шлюз для домашнего использования, в случае, если я звоню на свой номер, я могу набрать список номеров, которые я уже определил. Я сделал аутентификацию для него, вот пример моего extentions.conf:
exten => s,n,Background(${sdir}/dial-exten-tone)
exten => s,n,WaitExten()
exten => *8,1,Authenticate(5)
exten => *8,2,Goto(private-gateway,s,1)
[private-gateway]
exten => s,1,Background(${sdir}/ent-target-attendant)
exten => s,2,WaitExten()
exten => s,n,NoOp(${EXT})
exten => 100XXX,n,Goto(local-users,${EXTEN},1)
Идея состоит в том, чтобы позвонить на мой личный номер, нажать 8, затем пройти аутентификацию с помощью прохода 5, а затем перейти к контексту частного шлюза с возможностью вызова локальных пользователей.
К сожалению, как только я нажимаю любое число в контексте private-gateway, у меня появляется следующее предупреждение:
-- Executing [*8@netlife-ivr:1] Authenticate("Datacard/life6464-b4b9", "5") in new stack
-- <Datacard/life6464-b4b9> Playing 'agent-pass.gsm' (language 'en')
-- <Datacard/life6464-b4b9> Playing 'auth-incorrect.gsm' (language 'en')
-- <Datacard/life6464-b4b9> Playing 'auth-thankyou.gsm' (language 'en')
-- Executing [*8@netlife-ivr:2] Goto("Datacard/life6464-b4b9", "private-gateway,s,1") in new stack
-- Goto (private-gateway,s,1)
-- Executing [s@private-gateway:1] BackGround("Datacard/life6464-b4b9", ""/var/lib/asterisk/sounds/ru/"/ent-target-attendant") in new stack
-- <Datacard/life6464-b4b9> Playing '/var/lib/asterisk/sounds/ru//ent-target-attendant.slin' (language 'en')
-- Executing [s@private-gateway:2] WaitExten("Datacard/life6464-b4b9", "") in new stack
[Aug 14 12:37:55] WARNING[27531]: pbx.c:4902 __ast_pbx_run: Invalid extension '1', but no rule 'i' or 'e' in context 'private-gateway'
Что означает - он не ждет всего числа, а ждет первого. Что я делаю неправильно?