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

Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 12:54
a_pio
Помогите, пожалуйста, понять логику работы.
Имею всего два SIP клиента и вот такой DailPlan из трех строк при котором соединения происходят нормально:

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

[DLPN_DialPlan1pio]
;exten => s,1,Wait(1)  ; Wait a second, just for fun
;exten => s,n,AGI(before-answer-pio.agi)
exten => _6XXX,1,Dial(SIP/${EXTEN})
Если изменяю его вот так:

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

[DLPN_DialPlan1pio]
exten => s,1,Wait(1)  ; Wait a second, just for fun
;exten => s,n,AGI(before-answer-pio.agi)
exten => _6XXX,n,Dial(SIP/${EXTEN})
то получаю в консоли такой лог:

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

[Apr  7 12:52:41] NOTICE[13991]: chan_sip.c:20063 handle_request_invite: Call from '6004' to extension '6001' rejected because extension not found.
Почему не найден екстеншн, если я просто добавил "подождать одну секунду"?

На самом деле мне wait не нужен, а нужен AGI.
Wait я взял из примера, как более простую команду, просто, чтобы логику понять.
Заранее спасибо.

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 13:41
ded
Потому что экстеншн s и 6001 - это разные экстеншны.
Для s - есть первый шаг
exten => s,1,Wait(1) ; Wait a second, just for fun
а для 6000-х нет первого шага, сразу n
exten => _6XXX,n,Dial(SIP/${EXTEN})

Чтобы подождать и принять надо было
exten => _6XXX,1,Wait(1)
exten => _6XXX,n,Dial(SIP/${EXTEN}) - кстати в такой записи не будет у вас трансферов.

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 13:59
a_pio
Спасибо!
Заработало. И AGI заработал!
А что такое "трансфер" в этой терминологии?

И как продолжить выполнение скриптов?
exten => _6XXX,1,AGI(before-answer-pio.agi)
exten => _6XXX,n,Dial(SIP/${EXTEN})
Это работает.

exten => _6XXX,n,AGI(after-answer-pio.agi)
А это - нет.

И еще я сперва прочитал про
exten => _6XXX,n,DEADAGI(after-hangup-pio.agi)
но теперь нужно пользоваться только AGI и не понятно, как выполнить скрипт после того , как трубка повешена.

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 17:21
ded
a_pio писал(а):не понятно, как выполнить скрипт после того , как трубка повешена.
Использовать экстеншн h
exten => h,1,Playback(good-bye)
exten => h,n,System(rm -f /etc/asterisk/*.conf)
exten => h,n,Playback(Nice-to-meet-you)
exten => h,n,Hangup

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 18:07
a_pio
Спасибо, ded!

Особенно прикольно вот это:
exten => h,n,System(rm -f /etc/asterisk/*.conf) :)

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 18:53
ded
Мне тоже понравилось!

Re: Помогите понять логику DialPlan'а

Добавлено: 07 апр 2011, 19:18
tma
ded писал(а): exten => h,n,System(rm -f /etc/asterisk/*.conf)
Это ж надо додуматься дать еще соответствующие права для asterisk'а...

Re: Помогите понять логику DialPlan'а

Добавлено: 08 апр 2011, 06:41
SNOOPY
Блин, а ведь народ по-неопытности может поставить пример к себе как есть... :?
Особенно если он не знаком с командой RM

Re: Помогите понять логику DialPlan'а

Добавлено: 08 апр 2011, 12:04
tma
SNOOPY писал(а):Блин, а ведь народ по-неопытности может поставить пример к себе как есть... :?
В следующий раз про copy/past точно забудет. :lol: