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

Помогите прочитать лог и понять его

Добавлено: 19 авг 2014, 17:51
ingfa
помогите прочитать лог
Пытаюсь изучать диалпланы написал такой:
asterisk*CLI> dialplan show zpupdaes
[ Context 'zpupdaes' created by 'pbx_config' ]
'123' => 1. Wait(5) [pbx_config]
2. Dial(sip/101) [pbx_config]
3. NoOp(${DIALSTATUS}) [pbx_config]
4. GotoIf($["${DIALSTATUS}"!="ANSWER"]?1:play) [pbx_config]
[play] 5. Playback(zpupdaes) [pbx_config]
6. Playback(zpupdaes) [pbx_config]
7. Playback(zpupdaes) [pbx_config]
8. Hangup() [pbx_config]

-= 1 extension (8 priorities) in 1 context. =-
asterisk*CLI>

При снятии трубки я не получаю проигрывания файла. Помогите понять почему. Вот лог.
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called sip/101
-- SIP/101-0000001c is ringing
-- Got SIP response 480 "Temporarily not available" back from 10.138.150.34:5060
-- SIP/101-0000001c is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [123@from-internal:3] NoOp("SIP/100-0000001b", "CONGESTION") in new stack
-- Executing [123@from-internal:4] GotoIf("SIP/100-0000001b", "1?1:play") in new stack
-- Goto (from-internal,123,1)
-- Executing [123@from-internal:1] Wait("SIP/100-0000001b", "5") in new stack
-- Executing [123@from-internal:2] Dial("SIP/100-0000001b", "sip/101") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called sip/101
-- SIP/101-0000001d is ringing
-- SIP/101-0000001d answered SIP/100-0000001b
-- Executing [h@from-internal:1] Hangup("SIP/100-0000001b", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/100-0000001b'
== Spawn extension (from-internal, 123, 2) exited non-zero on 'SIP/100-0000001b'
asterisk*CLI>

Re: Помогите прочитать лог и понять его

Добавлено: 19 авг 2014, 18:48
Vlad1983
после Dial если был ответ
-- SIP/101-0000001d answered SIP/100-0000001b
жизни нет

Re: Помогите прочитать лог и понять его

Добавлено: 19 авг 2014, 19:16
zzuz
Статус звонка проверяйте в h экстеншене.

Re: Помогите прочитать лог и понять его

Добавлено: 21 авг 2014, 19:51
ingfa
Пример можно про h экстейшн? Я не допонял, какие дальше экстейшены использовать после проверки.
Или где можно прочитать про h экстейшн?

Re: Помогите прочитать лог и понять его

Добавлено: 21 авг 2014, 20:00
virus_net
Скажите, вас забанили в гугле ? Или не искать информацию самостоятельно это жизненное кредо ?

let me google for you -> Asterisk standard extensions
P.S.
ingfa писал(а):экстейшн
extension = экстеНшн

Re: Помогите прочитать лог и понять его

Добавлено: 21 авг 2014, 21:55
ingfa
Спасибо, и что нибудь еще про написание диалпланов на русском подскажите, что б я не приставал больше, а включал мозк.

Re: Помогите прочитать лог и понять его

Добавлено: 21 авг 2014, 22:16
ingfa
virus_net писал(а):Скажите, вас забанили в гугле ? Или не искать информацию самостоятельно это жизненное кредо ?

let me google for you -> Asterisk standard extensions
P.S.
ingfa писал(а):экстейшн
extension = экстеНшн
Когда приходишь в гугл за помощью, обычно сталкиваешься с кучей ненужной инфы. Если бы все ходили в гугл за помощью то и форум был бы не нужен. Гугл не всезнающий гуру, которой знает ответы на все вопросы. обычно люди приходят на форумы за помощью вменяемой информацией которую можно осознать. Комуто нужно прочитать , кому то послушать, комуто нужен пример, все мы разные. Это мое сугубо личное мнение.

Re: Помогите прочитать лог и понять его

Добавлено: 21 авг 2014, 23:57
ded
Когда приходишь в гугл за помощью и сталкиваешься с кучей ненужной инфы, то налицо а) неумение построить правильный вопрос и б) неумение быстро отыскать правильный ответ в куче ненужной инфы.
Гугл - это всезнающий гуру, которой знает ответы на все вопросы. Ваш вопрос никогда не будет уникальным. Особенно если он банальный, типа "что такое экстеншн h и где про него можно почитать?"
Обычно все форумы разные, и люди приходят на них по разному. Перечитайте правила регистрации на этом форуме, чтобы уразуметь для чего именно ЭТОТ форум.

Re: Помогите прочитать лог и понять его

Добавлено: 24 авг 2014, 01:05
ingfa
zzuz писал(а):Статус звонка проверяйте в h экстеншене.
Ничего не понятно , тогда совсем
h: Hangup – Отбой. Используется при завершении вызова. Может использоваться для проигрыша прощального сообщения перед окончанием вызова. Также, по-видимому, используется в «карточных системах» для фиксации времени окончания вызова для биллинга. Не будет работать для запаркованных вызовов. More…?

Re: Помогите прочитать лог и понять его

Добавлено: 24 авг 2014, 10:23
virus_net
ingfa писал(а):я не получаю проигрывания файла. Помогите понять почему
Потому что у вас нет понимания того как работает и исполняется dialplan.
dialplan исполняется последовательно, сверху вниз, а Playback у вас идет после команды Dial, которая у вас вызывается без каких либо опций, поэтому до Playback дело и не доходит, т.к. исполняется Dial, а затем сразу будет выполнен Hangup.
Чтобы dialplan исполнялся далее и по завершению вызова есть специальная опция в команде Dial:
g: When the called party hangs up, continue to execute commands in the current context at the next priority.
Только в этом случае исполнение dialplan`а продолжится далее, со следующего пункта после Dial. В вашем случае это не поможет, т.к. Playback будет исполняться в "пустоту".

Вам либо надо использовать опцию M или U к команде Dial и писать отдельный контекст с Playback.
M(x): Executes the macro (x) upon connect of the call (i.e. when the called party answers).
U(x): Executes, via gosub, routine x on the called channel. This is similar to M above, but a gosub rather than a macro.
Аля:

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

[zpupdaes]
exten => 101,1,Wait(5)
exten => 101,n,Dial(SIP/101,U(play-my-msg))
exten => 101,n,Hangup()

[play-my-msg]
exten => s,1,Playback(zpupdaes)
Либо использовать call-файл или Originate, которые и будут выполнять Dial, а из вашего контекста Dial убрать вовсе.

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

Channel: SIP/101
Callerid: 0000
MaxRetries: 3
RetryTime: 10
WaitTime: 60
Context: zpupdaes
Extension: s
Priority: 1

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

[zpupdaes]
exten => s,1,Answer()
exten => s,n,Playback(zpupdaes)
exten => s,n,Hangup()
И в том и в другом варианте Playback будет исполнен и в том случае если поднимут трубку.