Страница 2 из 3

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

Добавлено: 17 июл 2013, 09:12
Zver
to Vlad1983
Т.е. я не смогу прервать входящий звонок? Насколько я понимаю это не правильно. Так как мне это исправить? В чем проблема?

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

Добавлено: 17 июл 2013, 09:35
Vlad1983
измерить напряжения вызова, в отвеченном состоянии и сразу после размыкания шлейфа и сверить со стандартными для РФ.
вручную мультиметром проблемно (он инерцию большую имеет), но возможно.
осциллограф или регистратор напряжения приобрести, конечно, финансы не позволят.
где-то видел статьи по перепаиванию мезонов на платах столкнувшимися с подобной проблемой.
может ещё есть способы изменить пороги реагирования.

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

Добавлено: 17 июл 2013, 11:24
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
Но вижу там другая проблема?

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

Добавлено: 17 июл 2013, 11:33
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), то * отвечает на звонок а после прерывает. Собственно почти то что надо. Еще немного поищу решение и если не найду остановлюсь на этом.

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

Добавлено: 17 июл 2013, 12:27
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)
и это описано в книге про будущуее телефонии.

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

Добавлено: 17 июл 2013, 12:36
Vlad1983
сейчас припоминаю
как-то с GSM-шлюза тоже нужно было сделать сброс.
пока Answer(1) не поставил шел как ещё один вызов.
кстати говоря, не фиксировался как отвеченный на сотовом.

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

Добавлено: 17 июл 2013, 12:38
Zver
Т.е. это все таки не нубский вопрос? ;-)

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

Добавлено: 17 июл 2013, 12:40
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-эектене.

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

Добавлено: 17 июл 2013, 12:46
Vlad1983
Zver писал(а):Т.е. это все таки не нубский вопрос?
это частный случай при использовании аналоговых линий.

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

Добавлено: 17 июл 2013, 12:56
Zver
to Wapo
Не понял ход ваших мыслей... Последовательность этих действий я знаю, но как это поможет решить проблему с зацикливанием в контексте?