@3ton

Как пустить голосовое приветствие в канал но не дать ответ 200 SIP пока второй канал не поднимет трубку?

Имеется сложный продукт в котором используется следующая схема:

- Сервер соединен с телефонным провайдером по стандартному SIP потоку через авторизацию
- На самом серваке крутится астериск в хостовой системе и несколько виртуалок с своим телефонным сервером и бизнеслогикой.
- В зависимости от номера цели астериск в хостовой системе определяет на какую виртуалку завернуть поток.
- На интересующей нас виртуалке находится freeswitch который через AGI соединен с нашим приложением написаном на Ruby и общающимся через Adhearsion.

Потому входящий звонок проходит следующую цепочку:

внешний_SIP_провайдер->наш_сервер->asterisk_on_host->VPS->freeswitch->AGI->Adhearsion->Ruby

После чего Ruby согласно бизнеслогике определяет куда должен идти звонок и по какой схеме он должен реализовываться, а в это время звонившему проигрывается голосовое приветствие.
В некоторых случаях просто проигрывается голосовое приветствие и в зависимости от действий звонившего будет выбран маршрут и цель звонка.

Суть проблемы в том что до того как мы проигрываем звонившему в SIP канал уходит код SIP 200 после которого оператор начинает тарифицировать звонок.

Необходимо: найти решение когда при проигрывании голосового приветствия мы не отправляем код SIP 200, но при этом после действия звонившего мы набираем вторую цель и как только она снимает трубку, мы шлем команду SIP 200

Для начала не совсем понятно на каком отрезке соединения и в какой момент это делать.
Считаю что логично это рулить на уровне приложения через Adhearsion, но не уверен что он способен этим рулить, по крайней мере не нашел такого в функциях.

UPD.:
проблема в том что тарификация на входящий вызов - 2 евро минута
и пока клиент слушает приветствие и делает действия не хочется облагать его таким тарифом
смысл - тарифицировать лишь его общение с целью

тарифицирует провайдер, номер платный
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dronmaxman
VoIP Administrator
То что вы хотите, называется sip early media.
Для примера, когда вы звоните абоненту вам проигрывается сообщение по типу "Перезвоните позже" или "В данный момент абонент не может принять ваш звонок" и эти сообщения не тарифицируются.

Ваша хотелка должна поддерживаться на стороне оператора связи или самому становиться оператором.
Ответ написан
Keffer
@Keffer
Delenn Test Group
Не изобретайте велосипед. Тарификация какая то там. Неужели трудно использовать анлимные сип-каналы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы