NAT穿透(UDP打洞)

NAT穿透(UDP打洞),第1张

英语a bare-metal server翻译成中文是:“裸机服务器”。

重点词汇:server

一、单词音标

server单词发音:英 [ˈsɜːvə]  美 [ˈsɜrvər]。

二、单词释义

n 侍者,服务员;服务器;发球者

三、词形变化

复数: servers

四、短语搭配

disk server 磁盘服务程序

fax server 传真服务器

Web server 万维网服务器

information server 信息服务器

五、近义词

waiter 侍者

attendant 伴随的

head waiter 侍者领班

headwaiter 服务生领班

六、双语例句

The server is designed to store huge amounts of data

该服务器是为存储大量数据设计的。

I'll run a diagnostic test to see why the server keeps crashing

我要做诊断测试,弄清为什么服务器总是不断地生故障。

You like to feel that you have a voice in how much money your server makes

你很享受对为你服务的员工收入多少有发言权的感觉。

That's because he plans to ban tipping in favor of paying his servers an actual living wage

这是因为他打算取消小费,以支付其雇员真正可以维持生计的工资来取代小费。

即C/S模式(服务器/客户端
服务器端被动等待连接,因此必须在某个约定的端口等待客户端连接,这个端口就是服务器的监听端口,在这个端口上有1个监听队列,队列长度可以设置的,一旦有客户端需要连接服务器,就会占用队列的一项,队列满了客户端就只能等待了。
若客户端在队列中了,则在服务器端会生成一个新的socket,用于维护这一个连接,客户端仍然用原来那个,以后的数据收发都由这个新生成的socket负责,这样刚连接上的客户端就不会与其他客户端的数据发生混乱啦~
信息太大是不能发过去的,TCP是面向连接的字符流,所以必须自己界定数据包的起始与结束位置。

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

二、准备工作:

1、DVR联网:
两种方式:
T3DVR连接AI-BOX->T-BOX通过网络转发连接外网。
T3DVR直接接PC,利用PC的网络出外网(桥接)。
2、下载客户端
下载地址:>

如上图所示SIP地址为:sip:linphone@1921681013:5060

3、注册自己的账号

T3-DVR的linphone客户端需要账号:
账号注册地址为:>

这里我注册的账号为:
SIP地址为: sip:yang-123@siplinphoneorg
Username: yang-123
Domain/Proxy: siplinphoneorg
密码: 123

4、DVR设置账号:

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

命令为:CMD_SET_SIP_INFO:siplinphoneorg,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:102@1921684203

4、挂断
linphonecsh generic terminate

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

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

7、接通电话
linphonecsh generic answer

通讯录:

8、添加一个好友
linphonecsh generic 'friend add <name> <addr>'
例:linphonecsh generic 'friend add yang sip:yang@1921681011: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模块
文件:callbacksc
该模块下的回调函数都是用于 sal模块调用的。当 sal处理完 sip协议的处理后,就会调用相应 的 callback函数继续后续的处理,包括启动一个音视频传输流,启动响铃等。也就是说这里的 callback 完成了media媒体层的处理以及 linphone上层的处理。

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

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

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

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

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

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

五、Linphone中参数解析:

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

[net]

[net_policy_0]
net使用ref参数传递

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

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

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

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

六、 Linphone中通信过程分析:

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

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

Wireshark置过滤信息:
(ipsrc == 17217218139)||(ipsrc == 1721721866)

过程:
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 40 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13430689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-04
下一篇 2023-08-04

发表评论

登录后才能评论

评论列表(0条)

保存