我对SIP有一个小小的疑问。我尝试使用谷歌搜索和引用许多书籍,但仍然找不到在SIP请求中添加from-tag的可靠原因。
SIP请求示例(来自rfc-3261的快照)
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com>
Content-Type: application//sdp
Content-Length: 142
Run Code Online (Sandbox Code Playgroud)
根据rfc-3261:
对话框可以使用from-tag,to-tag和call-id进行标识。
我知道添加to-tag和call-id的确切原因。我不知道的是
我已将Android SIP演示加载到Android Studio中。我在getonsip.com上注册了一个帐户,将其添加到我的手机帐户中,并通过从getonsip.com网络应用程序以及从一部Android手机到另一部Android手机拨打电话来验证它是否可以正常使用。到目前为止一切都很好。
我稍微修改了演示中的Java代码以适应getonsip设置:
SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setOutboundProxy(proxy);
builder.setPassword(password);
builder.setAuthUserName(auth);
builder.setAutoRegistration(true);
builder.setPort(5060);
builder.setProtocol("UDP");
sipProfile = builder.build();
Run Code Online (Sandbox Code Playgroud)
然后,将其部署到我的手机(Galaxy S4,Android 4.4.2 API 19)。但是,当我尝试这样给自己打电话时:
sipCall = sipManager.makeAudioCall(sipProfile.getUriString(), sipAddress, listener, 30);
Run Code Online (Sandbox Code Playgroud)
我总是得到相同的错误:
05-14 11:43:13.476 5061-5080/android.SipDemo W/System.err? android.net.sip.SipException: Failed to create SipSession; network unavailable?
Run Code Online (Sandbox Code Playgroud)
StackOverflow和互联网上的其他帖子对我没有帮助。我尝试在呼叫,重新启动电话以及将目标SIP地址更改为包括sip:<address>@getonsip.com和之前添加5秒的延迟sip:<address>@getonsip.com:5060,但始终是相同的错误消息。
有人知道如何解决这个问题吗?