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

Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 08:49
postscripter
Уже обсуждалось, но именно такой ситуации вроде не было. В какой конфиг смотреть?

Вариант 1:

Звонок из внешнего мира поступает в банк каналов FXS, попадает в IVR, откуда направляется во внешний мир на SIPNET-номер. Затем звонящий кладёт трубку, собеседник слышит щелчок, пол-гудка, и астериск делает hangup с текстом "Requested indication 20 on channel DAHDI/71-1". Все довольны.

Вариант 2:

Тот же звонок направляется из IVR на внутренний SIP-номер. Затем звонящий кладёт трубку, и никаких событий не происходит, собеседник слушает гудки отбоя, пока не надоест......

С чем это связано? Ещё заметил проблемку, IVR даёт набрать внутренний номер только в импульсном режиме, а в тоновом - пытается начать выполнение после сразу первой же цифры. Пока не разбирался, но пишу, т.к. это может быть как-то связано, ведь indication 20 - это, если я не путаю, и есть разрыв.

Тех.подробности: на другом конце avaya дефинити, индикация явно не российская, гудки отбоя 500/500 примерно 480+620 герц, плюс щелчки как перед гудками, так и после. У меня в конгфигах везде RU, при этом сигнал "занято" от этой же авайи астериск детектирует нормально, хотя он тоже двутоновый, и busydetect=no (ему вообще пофиг на это). Плата Parabel Asteroid, loop-start.

[channels]
language=ru
busydetect=no (или yes)
busycount=3
usecallerid=no
callwaiting=no
usecallingpres=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=no
immediate=no
faxdetect=no
rxgain=0.0
txgain=0.0
usedistinctiveringdetection=no
callprogress=yes
progzone=us (ru, или "пусто")
calleridcallwaiting=no
hanguponpolarityswitch=yes


system.conf
loadzone=ru
defaultzone=ru

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 08:52
awsswa
Поймать - BUSY tone

google.ru - поиск - dlink busy tone
первая ссылка с верху

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 09:09
postscripter
Выдача гугла сильно персонифицирована, моя первая ссылка ведёт сюда. И при чём тут длинк?

Менял всё на us - без изменений. "Занято" понимает всегда, если установлен callprogress. "Отбой" - избирательно...

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 10:38
ded
postscripter писал(а):Звонок из внешнего мира поступает в банк каналов FXS, попадает в IVR, откуда направляется во внешний мир на SIPNET-номер. Затем звонящий кладёт трубку, собеседник слышит щелчок, пол-гудка, и астериск делает hangup с текстом "Requested indication 20 on channel DAHDI/71-1".
Если из внешнего мира, то наверное поступает в банк каналов FXO?
Если же всё это (Астериск + банк каналов) присоединён сзади к обычной УАТС на её порты экстеннов, тогда да, FXS, но это в корне неверно, никаких там IVR уже городить не надо в принципе.
Похожий случай - Before being disconnected two (2) clicks are being heard in succession. The second click kills the connection.
Сообщили про bug in wctdm.
http://forums.digium.com/viewtopic.php? ... 90222d2f91
See https://issues.asterisk.org/view.php?id=15311
postscripter писал(а):никаких событий не происходит, собеседник слушает гудки отбоя, пока не надоест......
В обычной жизни, когда собеседник слышит гудки отбоя - он просто вешает трубку. Почему в вашем случае он продолжает их слушать пока не надоест?
Если нужно autohangdown - надо тюнить автодетектирование busy tones.

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 11:09
postscripter
Если из внешнего мира, то наверное поступает в банк каналов FXO?
Мм.. Да :)
когда собеседник слышит гудки отбоя - он просто вешает трубку
Это когда он живой. А если ivr или хуже того, конференция, тогда канал зависает на час, пока не сработает таймаут.
Похожий случай - Before being disconnected two (2) clicks are being heard in succession.
Не, не похожий. Я думаю, это умничка авайя делает разрыв линии, или reverse polarity. У меня стоит hanguponpolarityswitch=yes, но неизвестно, поддерживает ли это банк каналов.
Если нужно autohangdown - надо тюнить автодетектирование busy tones.
Да, именно. Но ведь если звонить наружу, и там занято, астериск детектит их в 100% случаев. Откуда такая селективность со входящими - вот вопрос! Я уже готов поверить, что это сам SIPNET мониторит линию и разрывает соединение))

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 11:22
ded
Откуда такая селективность со входящими? Если запишите короткие гудки в первом случае (вариант 1) и во втором (вариант 2), то можно сравнить их в аудиоредакторе, обнаружите, что они РАЗНЫЕ. Ну вот нет универсального распознавания коротких гудков busy/congestion, это и есть индикация.
Можно выпилить лобзиком кастомное, конечно. Создать по шаблону раздел в файле indication.conf или подправить имеющийся, на основе анализа записанных гудков.

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 11:35
postscripter
Да почему разные. Гудки мне выдаёт одна и та же станция, для неё мой астер выглядит обычным телефоном, вне зависимости от того, куда дальше будет направлен вызов. Если вы про гудки "отбой" и "занято", то они тоже одинаковые, двухтоновые, американские, проверял в soundforge.

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 12:21
postscripter
ded писал(а):Создать по шаблону раздел в файле indication.conf
settings in indications.conf affect only the tones generated by the Playtones command.
_____
ded:
Я понял. Вас сбивает слово "тот же" в первом посте. Нет это не тот самый звонок, который проходит сначала вариант 1, потом вариант 2. Это звонок, который идёт ЛИБО в вариант 1, либо в вариант 2.

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 14:50
postscripter
Really need a help. Всё пробовал - не даёт отбоя. Я уже и us-тоны в indications прописал, хотя это совсем не то... не помогает

Re: Dahdi: отловить окончание разговора

Добавлено: 22 янв 2016, 14:57
postscripter
Сейчас попробовал позвонить не на СИП, а на аналоговый внутренний. Позвонил. Положил трубку. Канал освободился!!!!!
Не поверил, повторил. Снова получилось.

Что это значит?

dahdi-номера описаны вот так
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
;;;;;;[200]
type=
trustrpid=yes
transport=udp
signalling=fxo_ls
sendrpid=no
secret=
qualifyfreq=60
qualify=
port=
permit=0.0.0.0/0.0.0.0
nat=
immediate=no
host=
encryption=no
echotraining=800
echocancel=yes
dtmfmode=
deny=0.0.0.0/0.0.0.0
context=SuperUsers
canreinvite=
callprogress=no
callerid=Ivan <200>
busydetect=no
busycount=4
channel=>63