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

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

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

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

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

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

Сообщение Zver »

to Vlad1983
Т.е. я не смогу прервать входящий звонок? Насколько я понимаю это не правильно. Так как мне это исправить? В чем проблема?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение Vlad1983 »

измерить напряжения вызова, в отвеченном состоянии и сразу после размыкания шлейфа и сверить со стандартными для РФ.
вручную мультиметром проблемно (он инерцию большую имеет), но возможно.
осциллограф или регистратор напряжения приобрести, конечно, финансы не позволят.
где-то видел статьи по перепаиванию мезонов на платах столкнувшимися с подобной проблемой.
может ещё есть способы изменить пороги реагирования.
ЛС: @rostel
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Zver писал(а): у меня есть вопрос, который я здесь и задал в надежде, что профессионалы или хотя бы специалисты помогут в изучении этого ПО. Кстати упоминание о "Spawn extension" в книге нет! Прошу Вас больше не играть в кошки-мышки и рассказать где я ошибся..
Знать и понимать!

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

== Spawn extension (incoming, s, 5) exited non-zero on 'DAHDI/13-1'
означает перейти на команду с приоритетом n+101, если все из вызываемых каналов заняты
http://asterisk.ru/knowledgebase/Asterisk+cmd+Dial
Но вижу там другая проблема?
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

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

Сообщение Zver »

Изменил несколько контекст:

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

[incoming]
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,n,GotoIf($[$["${CALLERID(num)}"="9<number>4"] | $["${CALLERID(num)}"=""]]?:next)
;exten=>s,n,Answer()
;exten=>s,n,Wait(1)
;exten=>s,n,Congestion()
exten=>s,n,Hangup()
exten=>s,n(next),Dial(DAHDI/2&LOCAL/other@incoming,,tm)
exten=>s,n,Hangup
Лог:

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

    -- Starting simple switch on 'DAHDI/13-1'
    -- Executing [s@incoming:1] NoOp("DAHDI/13-1", "Incoming number:-9<number>4-") in new stack
    -- Executing [s@incoming:2] GotoIf("DAHDI/13-1", "1?:next") in new stack
    -- Executing [s@incoming:3] Hangup("DAHDI/13-1", "") in new stack
  == Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/13-1'
    -- Hanging up on 'DAHDI/13-1'
    -- Hungup 'DAHDI/13-1'
    -- Starting simple switch on 'DAHDI/13-1'
[Jul 17 17:27:38] ERROR[25104]: callerid.c:562 callerid_feed: No start bit found in fsk data.
[Jul 17 17:27:38] WARNING[25104]: chan_dahdi.c:1725 my_get_callerid: Failed to decode CallerID
[Jul 17 17:27:38] ERROR[25104]: callerid.c:562 callerid_feed: No start bit found in fsk data.
[Jul 17 17:27:38] WARNING[25104]: chan_dahdi.c:1725 my_get_callerid: Failed to decode CallerID
    -- Executing [s@incoming:1] NoOp("DAHDI/13-1", "Incoming number:--") in new stack
    -- Executing [s@incoming:2] GotoIf("DAHDI/13-1", "1?:next") in new stack
    -- Executing [s@incoming:3] Hangup("DAHDI/13-1", "") in new stack
  == Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/13-1'
    -- Hanging up on 'DAHDI/13-1'
    -- Hungup 'DAHDI/13-1'
       > doing dnsmgr_lookup for 'sip.zadarma.com'
       > ast_get_srv: SRV lookup for '_sip._udp.sip.zadarma.com' mapped to host sip0.zadarma.com, port 5060
    -- Starting simple switch on 'DAHDI/13-1'
    -- Executing [s@incoming:1] NoOp("DAHDI/13-1", "Incoming number:--") in new stack
    -- Executing [s@incoming:2] GotoIf("DAHDI/13-1", "1?:next") in new stack
    -- Executing [s@incoming:3] Hangup("DAHDI/13-1", "") in new stack
  == Spawn extension (incoming, s, 3) 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] GotoIf("DAHDI/13-1", "1?:next") in new stack
    -- Executing [s@incoming:3] Hangup("DAHDI/13-1", "") in new stack
  == Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/13-1'
    -- Hanging up on 'DAHDI/13-1'
    -- Hungup 'DAHDI/13-1'
И так он ходит по кругу... Кстати если перед Hangup поставить Answer(1), то * отвечает на звонок а после прерывает. Собственно почти то что надо. Еще немного поищу решение и если не найду остановлюсь на этом.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

1) exten => s используется в макросах, а использовать это в [incoming] несколько странно.
2) Строка
exten=>s,n,GotoIf($[$["${CALLERID(num)}"="9<number>4"] | $["${CALLERID(num)}"=""]]?:next)
является вычурной и ненужной. Это решается проще:
exten=> 123456/9<number>4,1,Dial(DAHDI/2&LOCAL/other@incoming,,tm)
и это описано в книге про будущуее телефонии.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение Vlad1983 »

сейчас припоминаю
как-то с GSM-шлюза тоже нужно было сделать сброс.
пока Answer(1) не поставил шел как ещё один вызов.
кстати говоря, не фиксировался как отвеченный на сотовом.
ЛС: @rostel
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

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

Сообщение Zver »

Т.е. это все таки не нубский вопрос? ;-)
Последний раз редактировалось Zver 17 июл 2013, 12:43, всего редактировалось 1 раз.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

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

Сообщение Wapo »

Кстати, таки просмотрели самое важное:

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

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
в - если условие выполнилось - тогда кидать в другой контекст, где сначала Answer, потом Hangup и далее обработка в h-эектене.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение Vlad1983 »

Zver писал(а):Т.е. это все таки не нубский вопрос?
это частный случай при использовании аналоговых линий.
ЛС: @rostel
Zver
Сообщения: 9
Зарегистрирован: 16 июл 2013, 05:33

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

Сообщение Zver »

to Wapo
Не понял ход ваших мыслей... Последовательность этих действий я знаю, но как это поможет решить проблему с зацикливанием в контексте?
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH