2015-08-19 4 views
2

Мне нужно экстраполировать SDP из SIP-сообщения в приложении SIP. Я пытался сделать что-то вроде:Sip Servlet получает SDP-контент

protected void doInvite(SipServletRequest req) throws ServletException, IOException { 
String = req.getContent().toString(); 
} 

Но он не возвращает мне SDP. Рекомендации: для решения проблемы? Спасибо!

ответ

3

Это обычно зависит от заголовка Content-Type, но при условии, что это INVITE, я предполагаю, что Content-Type является application/sdp. Если это так, попробовали ли вы следующее?

Строка SDP = новый String (req.getContent())

+0

он не работает для меня, он говорит: «Конструктор String (Object) не определен» – shabby

+0

@shabby Каков ваш тип контента или сообщение SIP, входящее в SDP? – jeand

+0

это не ошибка времени выполнения, его там во время компиляции, пакет приглашения имеет SDP в своем теле сообщения, а тип параметра запроса в перегруженном методе doInvite - это javax.servlet.sip.SipServletRequest. – shabby

1

Но он не возвращает мне SDP. Некоторые советы для решения проблемы?

Попробуйте следующее, чтобы получить SDP, я использую его, чтобы упаковать СДП в session_progress, в методе doInvite:

@Override 
protected void doInvite(SipServletRequest request) throws ServletException, IOException { 
    byte[] sdpOffer = request.getRawContent(); 

    try { 
     SipServletResponse response = request.createResponse(SipServletResponse.SC_SESSION_PROGRESS); 
     response.setContent(sdpOffer, "application/sdp"); 
     response.send(); 
     logger.info("SESSION_PROGRESS sent"); 
    } catch (Exception exp) { 
     logger.error("exception in sending SP", exp); 
    } 
} 

Примечание: код не является полным, вы должны делать другие вещи, как хорошо, когда вы отвечаете с Session_Progress

0

Я поместил текстовую строку json в качестве содержимого сообщения sip. После того, как я установил request.setContentType ("text/json"); как в коде клиента, так и в сервере, я могу правильно получить строку json.

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