JAIN SIP:在侦听 0.0.0.0 时识别 SIP 消息的入站 IP

JAIN SIP: Identify inbound IP for SIP message when listening on 0.0.0.0

使用 JAIN SIP API 时,我创建了一个地址为 0.0.0.0 的 ListeningPoint 实例(即监听所有接口):

sipStack.createListeningPoint("0.0.0.0", 5060, "TCP");

有没有办法让我识别传入的 SIP 消息到达哪个 IP 接口(以便在响应消息中派生适当的联系人 header 地址,以及其他用途)?

听 0.0.0.0 不是一个好主意,在某些情况下,SIP 堆栈也必须猜测要使用的地址,并且它可能猜错。我认为使用标准 API 无法告知地址,但您几乎总是可以使用来自实现的私有 API。例如https://jsip.ci.cloudbees.com/job/jsip/javadoc/gov/nist/javax/sip/message/SIPMessage.html#getLocalAddress()

您也可以通过 headers 等进行猜测。但同样不是一个好主意。