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

Не работает timeout при звонке через шлюз

Добавлено: 29 ноя 2017, 12:56
Effaceurs
Добрый день господа!
У меня есть шлюз Grandstream 4104, настроен для работы в 1 стадию.

Кусок его диалплана

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

; 
exten => _XXX,n,Dial(SIP/${EXTEN}@gxw410x,15,tT)
exten => _XXX,n,Hangup()
Всё отрабатывает нормально, кроме таймаута в команде Dial.
Он не учитывается, потому что шлюз сразу отвечает Астериску, если получает ring back от вызываемой трубки.
И получается такая вещь, что телефон если абонента нет на месте, то его телефон звонит бесконечно долго пока я с VOIP телефона не повешу трубку. А мне нужно, что бы если 15 секунд прошло, то звонок сбрасывался.
К сожалению аналоговая АТС не против того что бы вызыв абонента шёл сколько угодно, и как я понял из общения с специалистами, ограничить длительность вызова нельзя.
У кого есть какие идеи?

Re: Не работает timeout при звонке через шлюз

Добавлено: 29 ноя 2017, 13:43
ded
1) Используйте синтаксис
Dial(SIP/gxw410x/${EXTEN},15,tT)

2) Аналоговый шлюз понимал бы таймаут набора 15 секунд, если бы там не открывался сразу аудио канал Answer, ибо гудки вызова Ring back tones в этом случае не сигнализация, а просто звуки.
Возможно Grandstream понимает разные ring tones, должны быть там региональные настройки типа indications.conf в Астериске, но они больше относятся к определению Busy & disconnect.

Аналоговое зло! http://asterisk.ru/knowledgebase/analogue

Re: Не работает timeout при звонке через шлюз

Добавлено: 29 ноя 2017, 20:18
Effaceurs
Так, ответ что-то так и не появился, напишу ещё раз.

1. Спасибо, поправил.
2. Да, этот товарищ понимает
Dial Tone, Ringback Tone,Busy Tone,Reorder Tone. Но всё это - очень тонкий лёд, ибо долго плясал с отсутствивем определения Busy tone.

Сам шлюз работает по следующему алгоритму
+ gateway receives the SIP call from the Asterisk side
+ gateways now answers the call from SIP Side automatically by sending 200OK.
+ gateway will dial the external number through analog PSTN line
+ Once the gateway receives ring back tone from provider , it will send it to the Asterisk as RTP packet.
И тут становится очевидно, почему система себя так ведет.

Настройки в шлюзе, что-то вроде отбой при N ringback, к сожалению нет, а хотелось бы.
Вся петрушка в том, что в confbridge при попытке добавления партисипанта из внутренней номерации TDA100 и при отсутствии сотрудника на месте, такой вызыв приводит к тому, что его телефон звенит до победного конца (бесконечно) и сбросить его можно лишь с веб интерфейса шлюза или cli астериска.
Собственно я тут и завис, как победить всё это не понятно. Я думаю, это всё не ново и кто-то с этим, что-то делал.

Re: Не работает timeout при звонке через шлюз

Добавлено: 06 дек 2017, 22:09
w307892309
предположу, что в процессе такого дозвона мы имеем два голосовых потока:
1. от астериска в сторону шлюза
2. от шлюза в сторону астериска

при этом поток от астериска в сторону шлюза должен быть "пустой" - можно покопать в эту сторону, например есть rtptimeout, который обрывает звонок, если там "кончился голос" (но этот скорее всего смотрит оба канала)