使用 JAIN SIP API 时,我创建了一个地址为 0.0.0.0 的 ListeningPoint 实例(即监听所有接口):
sipStack.createListeningPoint("0.0.0.0", 5060, "TCP");
有没有办法让我确定传入 SIP 消息到达的 IP 接口(以便在响应消息中派生适当的联系人标头地址,以及其他用途)?
使用 JAIN SIP API 时,我创建了一个地址为 0.0.0.0 的 ListeningPoint 实例(即监听所有接口):
sipStack.createListeningPoint("0.0.0.0", 5060, "TCP");
有没有办法让我确定传入 SIP 消息到达的 IP 接口(以便在响应消息中派生适当的联系人标头地址,以及其他用途)?
收听 0.0.0.0 不是一个好主意,在某些情况下,SIP 堆栈也必须猜测要使用的地址,并且可能会猜错。我认为使用标准 API 无法分辨地址,但您几乎总是可以使用实现中的私有 API。例如https://jsip.ci.cloudbees.com/job/jsip/javadoc/gov/nist/javax/sip/message/SIPMessage.html#getLocalAddress()
您也可以通过 Via 标头等进行猜测。但这又不是一个好主意。