jain-sip-applet-phone与GrandStream V3005 IP电话不能正常视频通话的问题解决方法(IP电话一直显示“对方保持”/“呼叫”)
1、以下是测试矩阵1(问题未解决):
被叫方 主叫方 |
Jain-sip-ua |
x-lite |
Ip-video |
Jain-sip-ua |
能正常通讯,但帧数不够,不流畅 |
接受呼叫后,xlite当掉 |
Ip接听后一直显示“保持”,能够收到ua音视频 |
x-lite |
Xlite挂掉,当时双方都有数据发送 |
正常 |
正常 |
Ip-video |
无法正常通讯,ip一直显示“呼叫” |
Xlite能接到音视频,ip不能接到音(视?)频 |
正常 |
2、 经过团队成员的细心检查,发现SDP中的Connection Informatioin(c)出现问题,本来需要用三个参数在程序中构造的,只用了一个参数,则其他两个参数为默认值,而默认值使得IP电话的语法分析器无法识别,导致整个描述信息被丢弃(见RFC2327 【2.协议】 最后几段话)。
3、 当前问题的解决:
原程序中使用的
createConnection(messageListener.getConfiguration().contactIPAddress)
1)修改MessengerManager中createSDPBody()
// Connection (C)
Connection connection = sdpFactory.createConnection("IN", "IP4", messageListener.getConfiguration().contactIPAddress);
2)修改MediaManager中getResponseSDPBody()
// Connection
Connection connection = sdpFactory.createConnection("IN", "IP4", callListener.getConfiguration().contactIPAddress);
4、 测试结果
被叫方 主叫方 |
Jain-sip-ua |
x-lite |
Ip-video |
Jain-sip-ua |
能正常通讯,但帧数不够,不流畅 |
接受呼叫后,xlite当掉 |
能正常通讯,但帧数不够,不流畅 |
x-lite |
Xlite挂掉 |
正常 |
正常 |
Ip-video |
正常 |
Xlite能接到音视频,ip不能接到音(视?)频 |
正常 |