我使用 pjsua 的 Voip 应用程序在呼叫转移 REFER 请求时返回 403 Frobidden。
呼叫转移代码如下,
public void transferTo(String destination) throws Exception {
String transferString = "sip:" + destination + "@" + SipPreferenceManager.getDomain(context);
CallOpParam param = new CallOpParam();
currentCall.xfer(transferString, param);
}
响应日志如下,
I/System.out: REFER sip:xxx.xxx.xxx.xxx:5060;TRC=ffffffff-ffffffff;Dpt=ed2a-200 SIP/2.0
I/System.out:通过:SIP/2.0/UDP 25.45.1.121:5060;rport;branch=z9hG4bKPj1bb70192-a6be-4a2d-89bb-4bafc03af55d
I/System.out:最大转发数:70
I/System.out:来自:;tag=2b62b4a4-31c4-42d4-b848-755d5f6e2a13
I/System.out: 到: ;tag=sbc04074wqgc46y
I/System.out: 联系人:
I/System.out:呼叫 ID:asbcyf4y5uw9ufr2yqf979gy2uguwr7e7f2f@10.191.54.18
I/System.out: CSeq: 13241 REFER
I/System.out:事件:参考
I/System.out:过期:600
I/System.out:支持:replaces、100rel、timer、norefersub
I/System.out:接受:消息/sipfrag;版本=2.0
I/System.out:允许事件:存在、消息摘要、参考
I/System.out:参考:sip:123456789@domain
I/System.out:推荐人:
I/System.out:用户代理:Pjsua2 Android 2.9
I/System.out:内容长度:0
I/System.out:--结束消息--
I/System.out: 14:04:11.804 evsub0x8e7fbc1 .....订阅状态改变 NULL --> SENT
I/System.out: 14:04:11.926 pjsua_core.c !.RX 348 字节响应消息 403/REFER/cseq=13241 (rdata0x8df74014) 来自 UDP 218.248.233.142:5060:
I/System.out:SIP/2.0 403 禁止
I/System.out:通过:SIP/2.0/UDP 25.45.1.121:5060;branch=z9hG4bKPj1bb70192-a6be-4a2d-89bb-4bafc03af55d;rport=5060
I/System.out:呼叫 ID:asbcyf4y5uw9ufr2yqf979gy2uguwr7e7f2f@10.191.54.18
I/System.out:来自:;tag=2b62b4a4-31c4-42d4-b848-755d5f6e2a13
I/System.out: 到: ;tag=sbc04074wqgc46y
I/System.out: CSeq: 13241 REFER
I/System.out:内容长度:0
I/System.out:--结束消息--
I/System.out: 14:04:11.928 evsub0x8e7fbc1 ....订阅状态已更改 SENT --> TERMINATED
I/System.out: 14:04:11.929 pjsua_call.c ......Xfer 客户端订阅终止
I/System.out: 14:04:12.086 pjsua_core.c .TX 358 字节响应消息 500/INVITE/cseq=1 (tdta0x8e0dc064) 到 UDP 212.129.25.1:5074: