Как настроить вызов REFER в SIPML5 WebRTC?
Я пытаюсь сделать веб-клиент для моего запроса вызова SIP. Я успешно пригласил вызов из браузера. Но я не понимаю, как ссылаться на сторонний вызов через Javascript. Я использую WebRTC и SIPML5.
При попытке session.transfer()
, после успешного реферала, ссылка на реферера прервана... но я могу слышать звук от рефери рефереру. "Я не получаю уведомления. Просто обратитесь к ACK sip сообщению, а затем к 1 одностороннему вызову.
Например:
A
относится кB
, После успешного обращения я не могу отправлять / получать SIP-пакеты отA
, Но я могу сделать то же самое изB
, Так когдаB
переговоры,A
могу слышать. Но, наоборот, не работает.
Ссылка SIP работает отлично через SIPP. И двусторонние пакеты доступны.
PS: Я НЕ ХОЧУ ПЕРЕВОДИТЬ ВЫЗОВ.
Если SIPML5 не поддерживает это, могу ли я сделать то же самое через Java. Где я отправляю запрос реферала в SIP-сервлет, который обрабатывает его через doRefer()
?
Это ссылки, на которые я ссылался:
1 ответ
Я нашел это самостоятельно.
SIPML5 не поддерживает передачу вызовов, но перевод вызовов. Таким образом, он использует REFER для перевода вызова, но затем вызываемый абонент отключается.
Итак, найдя обходной путь, я отправил детали сообщения REFER в session.send() в виде строки. Мне пришлось проанализировать строку, чтобы получить данные, которые, конечно, не SIP-сообщение, а простая строка.
и при обработке ссылки я могу получать пакеты от вызывающего и вызывающего абонентов.
Проблема остается, хотя,
Проблема состоит в том, что сеанс приглашения вызова имеет тип "вызов", тогда как сеанс сообщения был типа "сообщение".
Итак, я добавил CALL-ID сеанса вызова в сеанс Message и проанализировал его. Таким образом, успешно получая пакеты на том же канале.