我正在使用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-idSIP 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