如何在 PJSUA2 中获得 "SIP header of incoming call"?
How to get "SIP header of incoming call" in PJSUA2?
我正在开发一个 android 应用程序,它使用 pjsip2.7 和 pjsua2 支持 SIP。我需要为我的 sip 呼叫设置自定义 header,我已经完成了,我设置 Asterisk 13 服务器将我的 header 转发给另一方。我可以在日志中看到我的自定义 header 已收到,但我无法在接收器中使用此 header。我需要一种方法来获取我在 header 中发送的参数。
有什么办法吗?
我正在使用 pjsua2 和 golang 而不是 C++,我遇到了同样的问题。虽然,我没有找到最好的方法,但我找到了一个可行的方法。
首先,您需要实现一个扩展到 pjsua2 帐户的帐户。然后,覆盖 OnIncomingCall
回调以使用 OnIncomingCallParam
,我使用此代码获取 header(在 golang 中)
func (acc *MyAccount) OnIncomingCall(prm pjsua2.OnIncomingCallParam) {
msg := prm.GetRdata().GetWholeMsg()
msgindex := strings.Index(msg, "NEWHEADER")
if msgindex != -1 {
cabecera = true
msg = msg[msgindex:]
msg = msg[strings.Index(msg, ":")+1:]
msgindex = strings.Index(msg, "Content-Type")
msg = msg[:msgindex] //this is to avoid spaces
msg = strings.Trim(msg, " ")
msg = strings.Trim(msg, "\n")
msg = strings.Trim(msg, "\r")
log.Info("NEWHEADER info:" + msg + "")
} else {
log.Error("THERE IS NO NEWHEADER")
}
抱歉来晚了
我正在开发一个 android 应用程序,它使用 pjsip2.7 和 pjsua2 支持 SIP。我需要为我的 sip 呼叫设置自定义 header,我已经完成了,我设置 Asterisk 13 服务器将我的 header 转发给另一方。我可以在日志中看到我的自定义 header 已收到,但我无法在接收器中使用此 header。我需要一种方法来获取我在 header 中发送的参数。 有什么办法吗?
我正在使用 pjsua2 和 golang 而不是 C++,我遇到了同样的问题。虽然,我没有找到最好的方法,但我找到了一个可行的方法。
首先,您需要实现一个扩展到 pjsua2 帐户的帐户。然后,覆盖 OnIncomingCall
回调以使用 OnIncomingCallParam
,我使用此代码获取 header(在 golang 中)
func (acc *MyAccount) OnIncomingCall(prm pjsua2.OnIncomingCallParam) {
msg := prm.GetRdata().GetWholeMsg()
msgindex := strings.Index(msg, "NEWHEADER")
if msgindex != -1 {
cabecera = true
msg = msg[msgindex:]
msg = msg[strings.Index(msg, ":")+1:]
msgindex = strings.Index(msg, "Content-Type")
msg = msg[:msgindex] //this is to avoid spaces
msg = strings.Trim(msg, " ")
msg = strings.Trim(msg, "\n")
msg = strings.Trim(msg, "\r")
log.Info("NEWHEADER info:" + msg + "")
} else {
log.Error("THERE IS NO NEWHEADER")
}
抱歉来晚了