0

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

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

我收到以下错误:

Header[Call-ID]是系统头,不能添加,不能修改!!!

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

4

1 回答 1

1

SIP Servlets Specification明确禁止修改Call-ID Header,它是一个System Header。请阅读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

于 2015-06-05T07:57:00.080 回答