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

Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 07:33
Alex_DAS
Здравствуйте!

Asterisk 1.8.15.0
Возникла такая проблемка.. Хочу вставить функцию проверки CallerID, однако не получается вызвать функцию sub-callidset, код ниже.

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

[sub-callidset]
exten => s,1,GotoIf($[ ${LEN(${CALLERID(num)})} = 6 ]?add74212)
exten => s,n(add74212),Set(CALLERID(num)=74212${CALLERID(num)})
exten => s,n,Goto(end)
exten => s,n(end),Set(CALLERID(name)=${CALLERID(num)})
exten => s,n,Return


[local]
exten => _941356,1,NoOP(1. name= ${CALLERID(name)} num= ${CALLERID(num)} )
exten => _941356,n,GoSubIf(${CALLERID(num)}?sub-callidset,s,1)
exten => _941356,n,NoOP(2. name= ${CALLERID(name)} num= ${CALLERID(num)} )
exten => _941356,n,Dial(SIP/____________@_______, 90)
exten => _941356,n,Hangup()
В логах следующее

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

 -- Executing [941356@default:1] NoOp("SIP/10.1.0.5-00219af0", "1. name=  num= 941355 ") in new stack
  == Spawn extension (default, 941356, 2) exited non-zero on 'SIP/10.1.0.5-00219af0'
    -- Got SIP response 603 "Decline" back from 10.1.0.5:506
Судя по всему он даже не входит в контекст sub-callidset. Не подскажете, что я делаю не так?

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 07:51
Vlad1983

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

exten => _941356,n,GoSubIf($["foo${CALLERID(num)}" != "foo"]?sub-callidset,s,1)

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 08:09
Alex_DAS
Поменял, но ничего не изменилось... В принципе я не вижу здесь необходимости использовать GoSubIf, мне кажется можно обойтись и GoSub, просто я делал по примеру и решил не менять функцию.

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 08:11
Vlad1983

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

*cli> dialplan show local
*cli> dialplan show default

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 08:15
Alex_DAS

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

 '941356' =>       1. NoOP(1. name= ${CALLERID(name)} num= ${CALLERID(num)} ) [pbx_config]
                    2. GoSubIf($["foo${CALLERID(num)}" != "foo"]?sub-callidset,s,1) [pbx_config]
                    3. NoOP(2. name= ${CALLERID(name)} num= ${CALLERID(num)} ) [pbx_config]
                    4. Dial(SIP/__________@_________, 90)    [pbx_config]
                    5. Hangup()                                   [pbx_config]


dialplan show default
[ Context 'default' created by 'pbx_config' ]
  Include =>        'Incoming-Calls'                              [pbx_config]


Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 08:20
Vlad1983

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

*CLI> core show application GoSubIf
*CLI> dialplan show Incoming-Calls

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 10:52
Alex_DAS

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

core show application GoSubIf
Your application(s) is (are) not registered
Command 'core show application GoSubIf' failed.
Видимо в этом и проблема.. Как это можно вылечить?

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 11:01
Vlad1983
соберите модуль app_stack

Re: Не получается использовать GoSubIf

Добавлено: 16 янв 2014, 11:13
Alex_DAS
Ок, спасибо!