在sip-servlet中添加calllid



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

我的要求是在会议中连接两个呼叫,为此我需要修改其中一个邀请请求的call-id,但它不允许我修改标题部分的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

SIP servlet规范明确禁止修改Call-ID报头,这是一个系统报头。请在https://jcp.org/en/jsr/detail?id=289

阅读规范。

哪个会议提供程序强制您对2个不同的呼叫具有相同的Call-ID以能够加入同一个会议?这似乎是一个非常糟糕的设计,违背了SIP RFC本身https://www.rfc-editor.org/rfc/rfc3261#section-8.1.1.4

最新更新