怎样使用linphoneapi编程?

怎样在qt中使用linphone编程啊。

Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。

二、准备工作:

1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:http://www.linphone.org/technical-corner/linphone?qt-technical_corner=2

如上图所示SIP地址为:sip:[email protected]:5060

3、注册自己的账号

T3-DVR的linphone客户端需要账号:
账号注册地址为:https://www.linphone.org/freesip/home

这里我注册的账号为:
SIP地址为: sip:[email protected]
Username: yang-123
Domain/Proxy: sip.linphone.org
密码: 123

4、DVR设置账号:

DVR启动后,通过TCP方式设置SIP账号信息:

命令为:CMD_SET_SIP_INFO:sip.linphone.org,yang-123,123

三、linphone 操作:

1、创建linphone后台进程
linphonecsh init
这一操作开机执行在/etc/profile文件中:
cat /etc/linphonerc > /tmp/linphonerc & /usr/local/bin/linphonecsh init

2、创建linphone后台进程
linphonecsh exit

3、拨号
linphonecsh dial <sip uri or number>
比如:linphone dial sip:[email protected]

4、挂断
linphonecsh generic terminate

5、注册到服务器(账号登陆)
因为我们使用的是sip.linphone.org服务器,此需要联网
linphonecsh register --host sip.linphone.org --username yang-123 --password 123
这一步跟CMD_SET_SIP_INFO:sip.linphone.org,yang-123,123命令一个作用

6、获取注册状态(登陆状态)
用于获取是否注册成功的信息
linphonecsh status register

7、接通电话
linphonecsh generic answer

通讯录:

8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:[email protected]:5060'

9、查看好友列表
linphonecsh generic 'friend list'

10、给好友打打电话
linphonecsh generic 'friend call <index>'
例:linphonecsh generic 'friend call yang'

11、删除好友
linphonecsh generic 'friend delete <index>'

12、查看历史记录
linphonecsh generic 'call-logs'
可以看出刚才我打电话的记录。

13、静音配置 打开静音
linphonecsh generic mute

14、静音配置 取消静音
linphonecsh generic unmute

四、Linphone中相关api介绍:

Coreapi:
源码目录:t3_dvr/external/linphone/linphone/coreapi/
该通过这些API接口,可以快速构建基于sip的可视化电话系统。

(1)Callback模块:
文件:callbacks.c
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。

(2)Address 模块:
文件:address.c
调用 sal提供的接口,进行与地址相关的处理, 这里的地址主要是 uri相关的处理。包括获取地 址以及地址中的部分信息或者设置这些信息。在上层地址是一个字符串指针,但是在内部处理时都 会强制转换为 osip_from结构体来处理。实际上就是对linphone_address结构体的处理。

(3)authentication模块:
文件:authentication.c
处理认证信息。 各个认证用户的信息都被保存到 linphone_auto结构体中兵串接在 linphone_core 结构体上。这里的接口就是处理这些数据结构,提供设置和获取相关信息的接口。

(4)Chat 模块:
文件:chat.c
提供创建和销毁 chat room,向 chat room发送消息和从 chat room接收消息的接口,以及设置和 获取用户数据的接口。 类似于 authorization模块,所有的 chat room信息也是保存在linphone_chat结 构体中并串接在 linphone_core结构体上的。

(5)Friends模块:
文件:friend.c
提供处理 friends相关信息的接口。所有的 friends信息保存在linphone_friend结构体中并被串接 在 linphone_core结构体上,这样操作起来,包括设置,获取,添加以及移除都很方便。

(6)Offeranswer模块:
文件:offeranswer.c
管理基于 sdp的媒体协商。根据本地的支持能力和远端支持的能力,根据就低的原则,获得双方都 可以支持的媒体信息。比如编解码格式等。

(7)presence模块:
文件:Presence.c
提供与在线状态相关的处理。

五、Linphone中参数解析:

T3-DVR 中: /etc/linphonerc
[sip]
sip协议相关参数

[net]

[net_policy_0]
net使用ref参数传递

[misc]
唯一的机器生成的标识

[video]
是否显示、是否录像等标志位

[rtp]
rtp音频端口、视频端口等信息:

[sound]
铃声文件目录、音频频率等、

六、 Linphone中通信过程分析:

实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:[email protected]:5060
B: sip:[email protected]:5060

操作:
A给B打电话进行实验:

Wireshark置过滤信息:
(ip.src == 172.17.218.139)||(ip.src == 172.17.218.66)

过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求

2、B向A发送呼叫处理中的应答信号。

3、B向A发送 我正在震铃中,请稍等。

4、B向A发送 接通了。

5、A向B发送应答。

6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。

7、A要挂断了

8、关闭UDP服务

9、B知道A挂断了,相应ACK

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_33487044/article/details/104080018

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-27
Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。
二、准备工作:1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:http://www.***.org/technical-corner/linphone?qt-technical_corner=2
如上图所示SIP地址为:sip:[email protected]:50603、注册自己的账号T3-DVR的linphone客户端需要账号:
账号注册地址为:https://www.***.org/freesip/home
这里我注册的账号为:
SIP地址为: sip:yang-123@sip.***.org
Username: yang-123
Domain/Proxy: sip.***.org
密码: 123
4、DVR设置账号:DVR启动后,通过TCP方式设置SIP账号信息:命令为:CMD_SET_SIP_INFO:sip.***.org,yang-123,123三、linphone 操作:1、创建linphone后台进程
linphonecsh init
这一操作开机执行在/etc/profile文件中:
cat /etc/linphonerc > /tmp/linphonerc & /usr/local/bin/linphonecsh init2、创建linphone后台进程
linphonecsh exit3、拨号
linphonecsh dial <sip uri or number>
比如:linphone dial sip:[email protected]、挂断
linphonecsh generic terminate5、注册到服务器(账号登陆)
因为我们使用的是sip.***.org服务器,此需要联网
linphonecsh register --host sip.***.org --username yang-123 --password 123
这一步跟CMD_SET_SIP_INFO:sip.***.org,yang-123,123命令一个作用6、获取注册状态(登陆状态)
用于获取是否注册成功的信息
linphonecsh status register7、接通电话
linphonecsh generic answer通讯录:
8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:[email protected]:5060'
9、查看好友列表
linphonecsh generic 'friend list'
10、给好友打打电话
linphonecsh generic 'friend call <index>'
例:linphonecsh generic 'friend call yang'
11、删除好友
linphonecsh generic 'friend delete <index>'12、查看历史记录
linphonecsh generic 'call-logs'
可以看出刚才我打电话的记录。
13、静音配置 打开静音
linphonecsh generic mute14、静音配置 取消静音
linphonecsh generic unmute四、Linphone中相关api介绍:Coreapi:
源码目录:t3_dvr/external/linphone/linphone/coreapi/
该通过这些API接口,可以快速构建基于sip的可视化电话系统。(1)Callback模块:
文件:callbacks.c
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。(2)Address 模块:
文件:address.c
调用 sal提供的接口,进行与地址相关的处理, 这里的地址主要是 uri相关的处理。包括获取地 址以及地址中的部分信息或者设置这些信息。在上层地址是一个字符串指针,但是在内部处理时都 会强制转换为 osip_from结构体来处理。实际上就是对linphone_address结构体的处理。(3)authentication模块:
文件:authentication.c
处理认证信息。 各个认证用户的信息都被保存到 linphone_auto结构体中兵串接在 linphone_core 结构体上。这里的接口就是处理这些数据结构,提供设置和获取相关信息的接口。(4)Chat 模块:
文件:chat.c
提供创建和销毁 chat room,向 chat room发送消息和从 chat room接收消息的接口,以及设置和 获取用户数据的接口。 类似于 authorization模块,所有的 chat room信息也是保存在linphone_chat结 构体中并串接在 linphone_core结构体上的。(5)Friends模块:
文件:friend.c
提供处理 friends相关信息的接口。所有的 friends信息保存在linphone_friend结构体中并被串接 在 linphone_core结构体上,这样操作起来,包括设置,获取,添加以及移除都很方便。(6)Offeranswer模块:
文件:offeranswer.c
管理基于 sdp的媒体协商。根据本地的支持能力和远端支持的能力,根据就低的原则,获得双方都 可以支持的媒体信息。比如编解码格式等。(7)presence模块:
文件:Presence.c
提供与在线状态相关的处理。五、Linphone中参数解析:T3-DVR 中: /etc/linphonerc
[sip]
sip协议相关参数
[net]
[net_policy_0]
net使用ref参数传递
[misc]
唯一的机器生成的标识
[video]
是否显示、是否录像等标志位
[rtp]
rtp音频端口、视频端口等信息:
[sound]
铃声文件目录、音频频率等、
六、 Linphone中通信过程分析:实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:[email protected]:5060
B: sip:[email protected]:5060操作:
A给B打电话进行实验:Wireshark置过滤信息:
(***.src == 172.17.218.139)||(***.src == 172.17.218.66)
过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求
2、B向A发送呼叫处理中的应答信号。
3、B向A发送 我正在震铃中,请稍等。
4、B向A发送 接通了。
5、A向B发送应答。
6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。
7、A要挂断了
8、关闭UDP服务
9、B知道A挂断了,相应ACK
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.***.net/qq_33487044/article/details/104080018
第2个回答  2022-06-26
Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。
二、准备工作:1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:http://www.***.org/technical-corner/linphone?qt-technical_corner=2
如上图所示SIP地址为:sip:[email protected]:50603、注册自己的账号T3-DVR的linphone客户端需要账号:
账号注册地址为:https://www.***.org/freesip/home
这里我注册的账号为:
SIP地址为: sip:yang-123@sip.***.org
Username: yang-123
Domain/Proxy: sip.***.org
密码: 123
4、DVR设置账号:DVR启动后,通过TCP方式设置SIP账号信息:命令为:CMD_SET_SIP_INFO:sip.***.org,yang-123,123三、linphone 操作:1、创建linphone后台进程
linphonecsh init
这一操作开机执行在/etc/profile文件中:
cat /etc/linphonerc > /tmp/linphonerc & /usr/local/bin/linphonecsh init2、创建linphone后台进程
linphonecsh exit3、拨号
linphonecsh dial <sip uri or number>
比如:linphone dial sip:[email protected]、挂断
linphonecsh generic terminate5、注册到服务器(账号登陆)
因为我们使用的是sip.***.org服务器,此需要联网
linphonecsh register --host sip.***.org --username yang-123 --password 123
这一步跟CMD_SET_SIP_INFO:sip.***.org,yang-123,123命令一个作用6、获取注册状态(登陆状态)
用于获取是否注册成功的信息
linphonecsh status register7、接通电话
linphonecsh generic answer通讯录:
8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:[email protected]:5060'
9、查看好友列表
linphonecsh generic 'friend list'
10、给好友打打电话
linphonecsh generic 'friend call <index>'
例:linphonecsh generic 'friend call yang'
11、删除好友
linphonecsh generic 'friend delete <index>'12、查看历史记录
linphonecsh generic 'call-logs'
可以看出刚才我打电话的记录。
13、静音配置 打开静音
linphonecsh generic mute14、静音配置 取消静音
linphonecsh generic unmute四、Linphone中相关api介绍:Coreapi:
源码目录:t3_dvr/external/linphone/linphone/coreapi/
该通过这些API接口,可以快速构建基于sip的可视化电话系统。(1)Callback模块:
文件:callbacks.c
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。(2)Address 模块:
文件:address.c
调用 sal提供的接口,进行与地址相关的处理, 这里的地址主要是 uri相关的处理。包括获取地 址以及地址中的部分信息或者设置这些信息。在上层地址是一个字符串指针,但是在内部处理时都 会强制转换为 osip_from结构体来处理。实际上就是对linphone_address结构体的处理。(3)authentication模块:
文件:authentication.c
处理认证信息。 各个认证用户的信息都被保存到 linphone_auto结构体中兵串接在 linphone_core 结构体上。这里的接口就是处理这些数据结构,提供设置和获取相关信息的接口。(4)Chat 模块:
文件:chat.c
提供创建和销毁 chat room,向 chat room发送消息和从 chat room接收消息的接口,以及设置和 获取用户数据的接口。 类似于 authorization模块,所有的 chat room信息也是保存在linphone_chat结 构体中并串接在 linphone_core结构体上的。(5)Friends模块:
文件:friend.c
提供处理 friends相关信息的接口。所有的 friends信息保存在linphone_friend结构体中并被串接 在 linphone_core结构体上,这样操作起来,包括设置,获取,添加以及移除都很方便。(6)Offeranswer模块:
文件:offeranswer.c
管理基于 sdp的媒体协商。根据本地的支持能力和远端支持的能力,根据就低的原则,获得双方都 可以支持的媒体信息。比如编解码格式等。(7)presence模块:
文件:Presence.c
提供与在线状态相关的处理。五、Linphone中参数解析:T3-DVR 中: /etc/linphonerc
[sip]
sip协议相关参数
[net]
[net_policy_0]
net使用ref参数传递
[misc]
唯一的机器生成的标识
[video]
是否显示、是否录像等标志位
[rtp]
rtp音频端口、视频端口等信息:
[sound]
铃声文件目录、音频频率等、
六、 Linphone中通信过程分析:实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:[email protected]:5060
B: sip:[email protected]:5060操作:
A给B打电话进行实验:Wireshark置过滤信息:
(***.src == 172.17.218.139)||(***.src == 172.17.218.66)
过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求
2、B向A发送呼叫处理中的应答信号。
3、B向A发送 我正在震铃中,请稍等。
4、B向A发送 接通了。
5、A向B发送应答。
6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。
7、A要挂断了
8、关闭UDP服务
9、B知道A挂断了,相应ACK
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.***.net/qq_33487044/article/details/104080018
第3个回答  2022-06-25
Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。
二、准备工作:1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:http://www.***.org/technical-corner/linphone?qt-technical_corner=2
如上图所示SIP地址为:sip:[email protected]:50603、注册自己的账号T3-DVR的linphone客户端需要账号:
账号注册地址为:https://www.***.org/freesip/home
这里我注册的账号为:
SIP地址为: sip:yang-123@sip.***.org
Username: yang-123
Domain/Proxy: sip.***.org
密码: 123
4、DVR设置账号:DVR启动后,通过TCP方式设置SIP账号信息:命令为:CMD_SET_SIP_INFO:sip.***.org,yang-123,123三、linphone 操作:1、创建linphone后台进程
linphonecsh init
这一操作开机执行在/etc/profile文件中:
cat /etc/linphonerc > /tmp/linphonerc & /usr/local/bin/linphonecsh init2、创建linphone后台进程
linphonecsh exit3、拨号
linphonecsh dial <sip uri or number>
比如:linphone dial sip:[email protected]、挂断
linphonecsh generic terminate5、注册到服务器(账号登陆)
因为我们使用的是sip.***.org服务器,此需要联网
linphonecsh register --host sip.***.org --username yang-123 --password 123
这一步跟CMD_SET_SIP_INFO:sip.***.org,yang-123,123命令一个作用6、获取注册状态(登陆状态)
用于获取是否注册成功的信息
linphonecsh status register7、接通电话
linphonecsh generic answer通讯录:
8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:[email protected]:5060'
9、查看好友列表
linphonecsh generic 'friend list'
10、给好友打打电话
linphonecsh generic 'friend call <index>'
例:linphonecsh generic 'friend call yang'
11、删除好友
linphonecsh generic 'friend delete <index>'12、查看历史记录
linphonecsh generic 'call-logs'
可以看出刚才我打电话的记录。
13、静音配置 打开静音
linphonecsh generic mute14、静音配置 取消静音
linphonecsh generic unmute四、Linphone中相关api介绍:Coreapi:
源码目录:t3_dvr/external/linphone/linphone/coreapi/
该通过这些API接口,可以快速构建基于sip的可视化电话系统。(1)Callback模块:
文件:callbacks.c
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。(2)Address 模块:
文件:address.c
调用 sal提供的接口,进行与地址相关的处理, 这里的地址主要是 uri相关的处理。包括获取地 址以及地址中的部分信息或者设置这些信息。在上层地址是一个字符串指针,但是在内部处理时都 会强制转换为 osip_from结构体来处理。实际上就是对linphone_address结构体的处理。(3)authentication模块:
文件:authentication.c
处理认证信息。 各个认证用户的信息都被保存到 linphone_auto结构体中兵串接在 linphone_core 结构体上。这里的接口就是处理这些数据结构,提供设置和获取相关信息的接口。(4)Chat 模块:
文件:chat.c
提供创建和销毁 chat room,向 chat room发送消息和从 chat room接收消息的接口,以及设置和 获取用户数据的接口。 类似于 authorization模块,所有的 chat room信息也是保存在linphone_chat结 构体中并串接在 linphone_core结构体上的。(5)Friends模块:
文件:friend.c
提供处理 friends相关信息的接口。所有的 friends信息保存在linphone_friend结构体中并被串接 在 linphone_core结构体上,这样操作起来,包括设置,获取,添加以及移除都很方便。(6)Offeranswer模块:
文件:offeranswer.c
管理基于 sdp的媒体协商。根据本地的支持能力和远端支持的能力,根据就低的原则,获得双方都 可以支持的媒体信息。比如编解码格式等。(7)presence模块:
文件:Presence.c
提供与在线状态相关的处理。五、Linphone中参数解析:T3-DVR 中: /etc/linphonerc
[sip]
sip协议相关参数
[net]
[net_policy_0]
net使用ref参数传递
[misc]
唯一的机器生成的标识
[video]
是否显示、是否录像等标志位
[rtp]
rtp音频端口、视频端口等信息:
[sound]
铃声文件目录、音频频率等、
六、 Linphone中通信过程分析:实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:[email protected]:5060
B: sip:[email protected]:5060操作:
A给B打电话进行实验:Wireshark置过滤信息:
(***.src == 172.17.218.139)||(***.src == 172.17.218.66)
过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求
2、B向A发送呼叫处理中的应答信号。
3、B向A发送 我正在震铃中,请稍等。
4、B向A发送 接通了。
5、A向B发送应答。
6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。
7、A要挂断了
8、关闭UDP服务
9、B知道A挂断了,相应ACK
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.***.net/qq_33487044/article/details/104080018
第4个回答  2022-06-25
Linphone是基于WEB的IP电话工具,可以运行于 Linux和Windows下。通过 Linphone可以在互联网上和其他人进行声音、视频通信。 Linphone是遵从SIP协议开发的,它需要和支持SIP协议的设备或者代理服务器进行相互操作。
二、准备工作:1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:http://www.***.org/technical-corner/linphone?qt-technical_corner=2
如上图所示SIP地址为:sip:[email protected]:50603、注册自己的账号T3-DVR的linphone客户端需要账号:
账号注册地址为:https://www.***.org/freesip/home
这里我注册的账号为:
SIP地址为: sip:yang-123@sip.***.org
Username: yang-123
Domain/Proxy: sip.***.org
密码: 123
4、DVR设置账号:DVR启动后,通过TCP方式设置SIP账号信息:命令为:CMD_SET_SIP_INFO:sip.***.org,yang-123,123三、linphone 操作:1、创建linphone后台进程
linphonecsh init
这一操作开机执行在/etc/profile文件中:
cat /etc/linphonerc > /tmp/linphonerc & /usr/local/bin/linphonecsh init2、创建linphone后台进程
linphonecsh exit3、拨号
linphonecsh dial <sip uri or number>
比如:linphone dial sip:[email protected]、挂断
linphonecsh generic terminate5、注册到服务器(账号登陆)
因为我们使用的是sip.***.org服务器,此需要联网
linphonecsh register --host sip.***.org --username yang-123 --password 123
这一步跟CMD_SET_SIP_INFO:sip.***.org,yang-123,123命令一个作用6、获取注册状态(登陆状态)
用于获取是否注册成功的信息
linphonecsh status register7、接通电话
linphonecsh generic answer通讯录:
8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:[email protected]:5060'
9、查看好友列表
linphonecsh generic 'friend list'
10、给好友打打电话
linphonecsh generic 'friend call <index>'
例:linphonecsh generic 'friend call yang'
11、删除好友
linphonecsh generic 'friend delete <index>'12、查看历史记录
linphonecsh generic 'call-logs'
可以看出刚才我打电话的记录。
13、静音配置 打开静音
linphonecsh generic mute14、静音配置 取消静音
linphonecsh generic unmute四、Linphone中相关api介绍:Coreapi:
源码目录:t3_dvr/external/linphone/linphone/coreapi/
该通过这些API接口,可以快速构建基于sip的可视化电话系统。(1)Callback模块:
文件:callbacks.c
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。(2)Address 模块:
文件:address.c
调用 sal提供的接口,进行与地址相关的处理, 这里的地址主要是 uri相关的处理。包括获取地 址以及地址中的部分信息或者设置这些信息。在上层地址是一个字符串指针,但是在内部处理时都 会强制转换为 osip_from结构体来处理。实际上就是对linphone_address结构体的处理。(3)authentication模块:
文件:authentication.c
处理认证信息。 各个认证用户的信息都被保存到 linphone_auto结构体中兵串接在 linphone_core 结构体上。这里的接口就是处理这些数据结构,提供设置和获取相关信息的接口。(4)Chat 模块:
文件:chat.c
提供创建和销毁 chat room,向 chat room发送消息和从 chat room接收消息的接口,以及设置和 获取用户数据的接口。 类似于 authorization模块,所有的 chat room信息也是保存在linphone_chat结 构体中并串接在 linphone_core结构体上的。(5)Friends模块:
文件:friend.c
提供处理 friends相关信息的接口。所有的 friends信息保存在linphone_friend结构体中并被串接 在 linphone_core结构体上,这样操作起来,包括设置,获取,添加以及移除都很方便。(6)Offeranswer模块:
文件:offeranswer.c
管理基于 sdp的媒体协商。根据本地的支持能力和远端支持的能力,根据就低的原则,获得双方都 可以支持的媒体信息。比如编解码格式等。(7)presence模块:
文件:Presence.c
提供与在线状态相关的处理。五、Linphone中参数解析:T3-DVR 中: /etc/linphonerc
[sip]
sip协议相关参数
[net]
[net_policy_0]
net使用ref参数传递
[misc]
唯一的机器生成的标识
[video]
是否显示、是否录像等标志位
[rtp]
rtp音频端口、视频端口等信息:
[sound]
铃声文件目录、音频频率等、
六、 Linphone中通信过程分析:实验:两个电脑下载linphone进行通话,Wireshark进行抓包分析通信过程。
Linphone 地址为:
A: sip:[email protected]:5060
B: sip:[email protected]:5060操作:
A给B打电话进行实验:Wireshark置过滤信息:
(***.src == 172.17.218.139)||(***.src == 172.17.218.66)
过程:
SIP(Session Initiation Protocol,会话初始协议)是一个控制发起、修改和终结交互式多媒体(音视频、聊天、游戏等)会话的信令协议
1、主叫方发给被叫方的INVITE请求
2、B向A发送呼叫处理中的应答信号。
3、B向A发送 我正在震铃中,请稍等。
4、B向A发送 接通了。
5、A向B发送应答。
6、A和B互相通过RTP(Real-time Transport Protocol实时传输协议)发送音频或视频数据。
7、A要挂断了
8、关闭UDP服务
9、B知道A挂断了,相应ACK
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.***.net/qq_33487044/article/details/104080018
相似回答