Linphone 点对点通话

需求:为opensips服务器开启或者关闭情况下,不影响手机A和手机B的linphone客户端通话。

 


1.      在linphone界面上输入B的ip地址进行呼叫。

2.      查看日志,发现INVITE消息的字段错误,

3.      修改linphone 设置(将domain设成B的ip地址而不是服务器的ip地址),模拟一个正确的INVITE消息,发起呼叫

4.      呼叫失败,抓包查看B端没有响应INVITE消息

5.      查看代码,暂时没有头绪。

6.      安装支持点对点通话的sip工具软件SipPhone

7.      通话抓包,分析linphone发出的INVITE消息,得知没有问题

8.      测试发现手机上安装的linphone软件点对点呼叫SipPhone时可以互通,虚拟机上的linphone点对点呼叫SipPhone不能互通。测试发现SipPhone点对点呼叫linphone时都不能互通。

9.      分析发现linphone虚拟机使用私有ip,地址为10.0.0.15,所以虚拟机发起呼叫,SipPhone接收到INVITE后,向10.0.0.15发送100和180响应,虚拟机接收不到,造成无法互通。

10.  放弃虚拟机测试,改用笔记本上usb连接手机进行测试和日志打印。

11.  因为linphone→SipPhone OK,SipPhone→linphone NOK,怀疑linphone呼叫发起处理流程支持点对点,而呼叫响应处理流程有问题。

12.  查看代码,打印日志,发现SipPhone发起呼叫时,linphone没有进入呼叫响应处理函数。

13.  怀疑INVITE包被底层丢掉。

14.  查看代码,追踪在哪里把INVITE包丢掉,没有结论。

15. 经检测确认为linphone没有进行端口侦听。

16.  查看注册代码、UDP通道代码,打印注册日志和非注册日志进行对比,没有发现端口设置代码。

17.  查看UDP的socket处理函数,jevent,jpipe,对比日志,没有发现设置端口的代码。

18.  写udp发包测试程序,发送到手机,抓包提示unreachable。可知udp发送无关。

19.  从udp通道open函数查找到listen_addr函数,查到端口是在linphone初始化时读取sip配置文件处设置。在该处设置udp端口为一个固定端口8309。

20.  udp发包测试程序对B端该端口进行发包,可以到达。

21.  A端呼叫B端端口,点对点呼叫建立,问题解决。

用户点击 用户点击 linphone linphone linphone linphone 的图标后就开始了 的图标后就开始了 的图标后就开始了 的图标后就开始了 的图标后就开始了 linphone linphone linphone linphone 软件,这时 软件,这时 软件,这时 软件,这时 软件,这时 linphoneActivity linphoneActivity linphoneActivity linphoneActivity linphoneActivity linphoneActivity linphoneActivity开始运行,它 开始运行,它 开始运行,它 开始运行,它 使 linphoneService linphoneService linphoneService linphoneService linphoneServicelinphoneServicelinphoneService 开始,并做一些 开始,并做一些 开始,并做一些 开始,并做一些 linphone linphone linphone linphone 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 帐号密码的登录操作同时引导用户进行环境变 量的设置( 量的设置( LinphonePreferencesActivity LinphonePreferencesActivity LinphonePreferencesActivityLinphonePreferencesActivity LinphonePreferencesActivityLinphonePreferencesActivityLinphonePreferencesActivityLinphonePreferencesActivity LinphonePreferencesActivity LinphonePreferencesActivity LinphonePreferencesActivity LinphonePreferencesActivity)。 环境变量都储存在 环境变量都储存在 环境变量都储存在 环境变量都储存在 sharedPreferencessharedPreferences sharedPreferencessharedPreferences sharedPreferencessharedPreferencessharedPreferencessharedPreferences sharedPreferences 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 中,它是整个工程共享的一变量池。这些环境有 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器自动启回校正网络 音频和视编码设置选择,帐号密服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值