2015-09-11 5 views
0

Я использую прокси-сервер Kamailio 4.0.4. У меня есть два UAC (Bob1, Bob2), зарегистрированные с тем же URI. Затем третий UAC (Алиса) отправляет INVITE в прокси. Оба UAC получают этот приглашение и оба принимают вызов. Kamailio теперь отменяет второй (Bob2) и отправляет 200 Ok первого (Боб1) Алисе.Kamailio одновременные вызовы после разветвленного приглашения

Тем не менее, мне нужно получить оба ответа 200 Ok от Bob1 и Bob2 до Алисы. Алиса хочет поговорить с ними одновременно.

Возможно ли это с помощью kamailio? Как я могу предотвратить отмену второго 200 Ok?

ответ

2

При маршрутизации в режиме состояния (через модуль tm) Kamailio отменяет все другие активные ветви при получении 200ok. Даже вы думаете, что два файла 200ok генерируются одновременно, очень вероятно, что они обрабатываются один за другим, поэтому одна ветка отменяется.

Вы должны быть в состоянии достичь того, чего хотите, делая безгражданную маршрутизацию. Вместо использования функций модуля tm для отправки запроса используйте функцию forward(). Логика должна быть, как:

  • множества R-URI ($ RU) к первому месту назначения
  • вперед()
  • множество Г-URI ($ RU) ко второму месту назначения
  • вперед()

Если пункт назначения задан поиском («местоположение»), первый попадает в r-uri, и вы можете сделать forward(). Во-вторых, вы должны получить свои данные через переменную $ branch (...) и установить r-uri, а затем другие атрибуты, относящиеся к следующему прыжку.

+0

Спасибо за ваш ответ. Не могли бы вы привести небольшой пример того, как я могу это использовать? Я не являюсь синтаксисом камаилио. Это было бы прекрасно! –

Смежные вопросы