在sip-servlets中添加callid

时间:2015-06-03 11:00:51

标签: sip mobicents-sip-servlets

我正在使用sip servlets api进行sip调用,

我的要求是在会议中连接两个呼叫,为此我需要修改其中一个邀请请求的call-id,但它不允许我修改header部分中的call-id,我的代码如下:

SipServletRequest forkedRequest = linkedSession.createRequest("INVITE");
ipFactory sipFactory = (SipFactory)getServletContext().getAttribute("javax.servlet.sip.SipFactory");
SipURI sipUri = (SipURI)sipFactory.createURI("sip:msml@192.168.149.113");
forkedRequest.setRequestURI(sipUri);
forkedRequest.setContent(secondSdp,"application/sdp");
forkedRequest.addHeader("Call-ID",sipServletResponse.getCallId());

我收到了以下错误:

标题[Call-ID]是系统标题,无法添加,无法修改!!!

任何人都可以对此提出建议吗?确保如何修改call-id

1 个答案:

答案 0 :(得分:1)

SIP Servlets规范明确禁止修改作为系统标头的Call-ID标头。请阅读https://jcp.org/en/jsr/detail?id=289

中的规范

哪个会议提供商强制您为2个不同的呼叫设置相同的呼叫ID才能加入同一个会议?这似乎是一个非常糟糕的设计,并且违反了SIP RFC本身https://tools.ietf.org/html/rfc3261#section-8.1.1.4