目前我正在使用Android应用程序发送和接收VoIP电话,我们正在使用Android.Net.Sip软件包在我们的SIP服务器上注册。
现在我们想知道是否有办法修改寄存器包中的Contact头,它作为请求发送到我们的SIP服务器。
这是一个示例SIP包:
REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP pc34.example.com;branch=z9hG4bKnaaff
From: sip:joe@example.com;tag=99a8s
To: sip:joe@example.com
Call-ID: 88askjda9@pc34.example.com
CSeq: 9976 REGISTER
Contact: sip:joe@pc34.example.com
我们需要更改Contact标头,因此如果目前用户尚未注册,我们的SIP服务器就知道在哪里发送推送通知。
通过阅读Android.Net.Sip代码,我发现ContactHeader是使用UserName,Domain,Transport协议和DisplayName生成的。当我将DisplayName设置为某个示例字符串时,它不会进入ContactHeader。
我们正在使用Xamarin.Android。
希望能找到一些有用的解决方案。
诚恳,