VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Повторная обработка входящего звонка после Hangup

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

Повторная обработка входящего звонка после Hangup

Сообщение Zver »

Здравствуйте.

Хочу реализовать CallBack для наших сотрудников. Но * не завершает звонок, а начинает повторно обрабатывать по диалплану. Но во второй раз не определяет CALLERID, и начинают звонить телефоны в офисе.
Логи:

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

    -- Starting simple switch on 'DAHDI/13-1'
    -- Executing [s@incoming:1] NoOp("DAHDI/13-1", "Incoming number:-9<Мой номер>4-") in new stack
    -- Executing [s@incoming:2] Set("DAHDI/13-1", "callnum=9<Мой номер>4") in new stack
    -- Executing [s@incoming:3] GotoIf("DAHDI/13-1", "1?:next") in new stack
    -- Executing [s@incoming:4] Answer("DAHDI/13-1", "") in new stack
    -- Executing [s@incoming:5] Hangup("DAHDI/13-1", "") in new stack
  == Spawn extension (incoming, s, 5) exited non-zero on 'DAHDI/13-1'
    -- Hanging up on 'DAHDI/13-1'
    -- Hungup 'DAHDI/13-1'
    -- Starting simple switch on 'DAHDI/13-1'
    -- Executing [s@incoming:1] NoOp("DAHDI/13-1", "Incoming number:--") in new stack
    -- Executing [s@incoming:2] Set("DAHDI/13-1", "callnum=") in new stack
    -- Executing [s@incoming:3] GotoIf("DAHDI/13-1", "0?:next") in new stack
    -- Goto (incoming,s,6)
    -- Executing [s@incoming:6] Dial("DAHDI/13-1", "DAHDI/2&LOCAL/other@incoming,,tm") in new stack
Диалплан:

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

exten=>other,1,Wait(20)
exten=>other,n,Dial(DAHDI/3&DAHDI/4&SIP/150)
exten=>s,1,NoOp(Incoming number:-${CALLERID(num)}-)
exten=>s,2,Set(callnum=${CALLERID(num)})
exten=>s,n,GotoIf($["${callnum}"="9<Мой номер>4"]?:next)
exten=>s,n,Answer
exten=>s,n,Hangup
exten=>s,n(next),Dial(DAHDI/2&LOCAL/other@incoming,,tm)
exten=>s,n,Hangup
На мобильном телефоне даже не заметно, что диалплан выполняется повторно. Постоянно идут гудки вызова. Ни как не могу понять почему * не может завершить входящий звонок. И уж тем более почему начинает отрабатывать диалплан повторно.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Повторная обработка входящего звонка после Hangup

Сообщение ded »

Почитайте теорию: что означает фраза
== Spawn extension (incoming, s, 5) exited non-zero on 'DAHDI/13-1'
при выполнении диал-плана.
А лучше бы не изобретали велосипед, он уже изобретён. Во всех дистрибутивах есть модуль Callback.
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

Re: Повторная обработка входящего звонка после Hangup

Сообщение Zver »

Мною прочитаны Asterisk: будущее телефонии и всевозможные форумы. Пока я не нашел при каких условиях в логах пишется "Spawn extension". Может подскажите, что это значит. А еще лучше посоветуйте литературу...

Использую Asterisk 1.8.13.1. Не нашел там штатного callback.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Повторная обработка входящего звонка после Hangup

Сообщение ded »

Используйте ДИСТРИБУТИВ а не голый Asterisk 1.8.13.1.
Дистрибутив: инсталляционный пакет, включающий в себя Linux, Apache, MySQL, PHP (LAMP) + Asterisk + FreePBX (or something else).
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Повторная обработка входящего звонка после Hangup

Сообщение Wapo »

После того как вызов завершен выполнение переходит на экстен h

Вот и пропишите:

exten => h,1,NoOp(My callback)
exten => h,n, ......
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

Re: Повторная обработка входящего звонка после Hangup

Сообщение Zver »

to ded

Спасибо за совет, но хочется понять как все работает. И все таки возвращаясь к нашему вопросу. При каких обстоятельствах в логах появляется сообщение "Spawn extension"?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Повторная обработка входящего звонка после Hangup

Сообщение ded »

Вы просите помощи клуба? Но это совсем не трудный вопрос. Ответ - в описании работы диал-плана, хотя бы в книге "Будущее телефонии"
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

Re: Повторная обработка входящего звонка после Hangup

Сообщение Zver »

to ded
Я уверен что это не трудный вопрос, иначе я не написал бы его в раздел "Вопросы новичков". В описании этого раздела написано "Новичком считается только что прочитавший «Астериск - будущее телефонии»". Я добросовестно прочитал эту книгу (кстати благодаря Вам вчера пересмотрел ее еще раз) и у меня есть вопрос, который я здесь и задал в надежде, что профессионалы или хотя бы специалисты помогут в изучении этого ПО. Кстати упоминание о "Spawn extension" в книге нет! Прошу Вас больше не играть в кошки-мышки и рассказать где я ошибся.

Для всех остальных.
Вопрос почему канал после выполнения программы Hangup не прерывается, а переходит в начало для меня остается открытым и непонятным. Если кто то знает ответ или знает где об этом можно почитать прошу помочь и рассказать где я ошибся или где об этом почитать.
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

Re: Повторная обработка входящего звонка после Hangup

Сообщение Zver »

to Wapo

Экстеншн h в данном контексте не определен. И как видно канал после Hangup переходит в начало этого же контекста этого же экстеншена, т.е. обрабатывается повторно.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Повторная обработка входящего звонка после Hangup

Сообщение Vlad1983 »

ни чего там никуда не переходит
вся проблема из-за аналоговой линии
порт платы не понимает что звонка там уже нет, т.к. на линии сохраняется повышенное напряжение
ЛС: @rostel
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH