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

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 12:51
ded
Aven писал(а):что при завершении звонка со стороны FXO не происходит закрытие канала, он остается в рабочем состоянии и аппонент например слышит короткие гудки.
Можно ли сделать, чтоб сразу завершался?
1) Loadzone = ru ; чтобы dahdi понимал русский стандарт 425Герц@350мсек,350мсек
2) [channels]
language=ru
context=from-zaptel
signalling=fxs_ks
rxwink=300 ; Atlas seems to use long (250ms) winks
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes
busydetect=yes
busycount=3 ; сколько раз тутукнет. Можно и больше чем 3.
; Allow inband audio (progress) when a call is RELEASEd by the far end
;
;inbanddisconnect=yes
; In some countries, a polarity reversal is used to signal the disconnect of a
; phone line. If the hanguponpolarityswitch option is selected, the call will
; be considered "hung up" on a polarity reversal.
;
;hanguponpolarityswitch=yes ; по русски - переполюсовка. То есть хорошо, если она есть, потому что это точный сигнал об окончании разговора в аналоговых сетях, в отличии ; от disconnect tone detection
;
; polarityonanswerdelay: minimal time period (ms) between the answer
; polarity switch and hangup polarity switch.
; (default: 600ms)
;


http://www.voip-info.org/wiki/view/chan_dahdi.conf

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 14:20
barkosa
А почему бы не воспользоваться стандартными средствами для этого?
queue_log, там описано кто первый положил, почему положил и вообще из кьюлога можно узнать всю историю звонка, не важно дахди это цап или сип или иакс.

http://www.voip-info.org/wiki/view/Aste ... +queue_log
http://www.voip-info.org/wiki/view/Aste ... g+on+MySQL

Удачи.

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 14:38
barkosa
http://forum.asterisk.ru/viewtopic.php?f=3&t=476 вот буквально недавно эту тему обсуждали уже.

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 14:41
Aven
barkosa спасибо конечно, но у меня нет очередей.

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 14:49
barkosa
так а почему бы не создать их? на звонки кто отвечает, человек или ivr?

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 15:41
Aven
Зачем очередь при исходящих вызовах например? Вы бредите!

А я тем временим методом тыка нашел 100% рабочий способ :)

Вот данные тестирования, видны какие переменные выставляются и наблюдается в h при всех комбинациях звонков:

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

Звонок FXO -> FXS/SIP, завершает FXS/SIP
CHANNEL(checkhangup) = 0
CHANNEL(hangupsource) = ""

Звонок FXO -> FXS/SIP, завершает FXO
CHANNEL(checkhangup) = 1
CHANNEL(hangupsource) = ""
---
Звонок SIP1 -> FXS/FXO/SIP2, завершает FXS/FXO/SIP2
CHANNEL(checkhangup) = 0
CHANNEL(hangupsource) = ""

Звонок SIP1 -> FXS/FXO/SIP2, завершает SIP1
CHANNEL(checkhangup) = 1
CHANNEL(hangupsource) = "hangupsource = SIP/1-00000020"
Нафига нужен CHANNEL(hangupsource) с ТАКИМ поведением я так и не понял.

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 15:46
pan-user
2 aven:

а кусок работающего конфига показать ?

Re: Кто положил трубку?

Добавлено: 22 июн 2011, 20:56
ded
Подытожим. Если
CHANNEL(checkhangup) = 1
то однозначно - завершил звонок (повесил трубу) инициатор звонка.