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

Задержка перед отправокй RTP при работе с BridgeWait.

Проблемы Asterisk без вэб-оболочек и их решения

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

Ответить
shumiloff
Сообщения: 60
Зарегистрирован: 18 ноя 2010, 19:04

Задержка перед отправокй RTP при работе с BridgeWait.

Сообщение shumiloff »

Добрый день.

Гугл замучал, но пока безрезультатно. Подскажите пожалуйста, что я делаю не так.

Цель - при входящем вызове с домофона запустить скрипты, отправить учётные записи мобильным приложениям, и как только первое приложение из пришедших на регистрацию ответит - соединить с входящим вызовом с домофона, остальные попытки дозвона убить. Реализовано всё через помещение вызова в bridgewait, AGI скриптов с логикой, генерирующих файлы отложенного вызова. Ниже рассматривается вариант, когда вызов нужно терминировать на один сип номер.

Суть проблемы - при вызове напрямую через Dial(SIP/XXXX) никаких проблем нет, но при закидывании вызова в bridgewait после принятия вызова и перед началом отправки RTP происходит задержка до 15 секунд.

Тест первый:

Предположим, домофон, инициирует вызов на номер XXXX. Всё стандартно, alaw, h264, стандартный сип.
Есть сип клиент (linphone), подключенный к тому же астериску, который принимает вызов, отправленный напрямую через Dial(SIP/XXXX).

Всё прекрасно, аудио, видео, rtp приходит быстро (за пару секунд).


Тест второй:

Тот же самый домофон, но вызов отправляется в BridgeWait(domofon-${CALLERID(NUM)},,S(30)) и запускается AGI, который отправляет коллбеком учётку сип бекенд серверу для передачи мобильному приложению (как при подключении мобильным приложением, так и при подключением linphone вместо мобильного приложения симптомы одинаковые) и через outgoing call производит попытку дозвониться до выданного номера XXXX, после чего приземлить его в экстенжн, где звонок падает в тот же бридж Bridge(SIP/${SRC}), где в ${SRC} лежит имя бриджа, выставленное в outgoing файле через set val.
Сип клиент/МП приходит на регистрацию, получает одну из очередных попыток вызова, попадает в бридж, а дальше проходит 8-10 секунд перед тем, как попавшему в бридж клиенту начинает уходить RTP (что аудио, что видео).

Т.е. всё работает, но после поднятия трубки сам астер отправляет аудио и видео потоки в RTP спустя 8-10 секунд. В логах никакого криминала нет. Возможно я как-то не так использую BridgeWait?

Ниже пример того, как это выглядит в sngrep
rtp.png
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH