PJ
五山口老法师
腾讯后台开发工程师
展开
-
REGULAR NOMINATION && AGGRESSIVE NOMINATION
ICE指定了通话双方的role。会话发起端称为CONTROLLING AGENT,会话接收端称为CONTROLLED AGENT。CONTROLLING AGENT 从所有有效的候选者中找出适用于媒体的两种方法:1)REGULAR NOMINATION :当得到至少一对有效的pair的时候,CONTROLLING AGENT就会选择其中的一个pair,在上面再发送一个带Flag的请求,告诉...原创 2018-10-08 09:23:18 · 316 阅读 · 0 评论 -
SIP协议和压力测试, SIP callflow图形生成
SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。 它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把CSV统计数据转储,在多个套接字上的TCP和UDP,...原创 2018-12-17 08:38:50 · 816 阅读 · 0 评论 -
SIP协议状态码:480Temporarily Unavailable
4.18 480 Temporarily Unavailable 请求成功到达被叫方的终端系统,但是被叫方当前不可用(例如,没有登陆,或者登陆了但是状态是不能通讯,或者有”请勿打扰”的标记)。应答应当在 Retry-After中标志一个合适的重发时间。这个用户也有可能在其他地方是有效的(在本服务器中不知道)。Reason-Phrase(原因短句) 应当提示更详细的原因,为什么被叫方暂时不可用。这...原创 2018-10-26 09:16:24 · 36156 阅读 · 0 评论 -
ICE中地址对重发探测机制
if (c->state == PJ_ICE_SESS_CHECK_STATE_WAITING) { /* See if we shall nominate this check */ pj_bool_t nominate = (c->nominated || ice->is_nominating); LOG5((ice->obj...原创 2018-10-23 15:37:19 · 354 阅读 · 0 评论 -
c->nominated = ((rcheck->use_candidate) || c->nominated);
c->nominated = ((rcheck->use_candidate) || c->nominated);如果binding request 来自主叫端,则rcheck->use_candidate ==1,因此 左边c->nominated 始终为1;如果binding request 来自被叫端,则rcheck->use_candidate ...原创 2018-10-23 15:23:56 · 227 阅读 · 0 评论 -
端口预测策略
一般的,对称NAT为等差型和恒等型可以被预测出来。思路是:主叫端在端口限制型NAT之下。被叫端处于对称型NAT之下。被叫端主机地址向主叫端的主机地址和反射地址发包都会被丢弃!因此对称型NAT分配的端口号未知。但是被叫端主机地址发往主叫端中继地址的包会被主叫端接受。因此会得到此时prflx的端口号(音频和视频)再根据之前收集地址时,音频和视频分别收集反射地址、中继地址的分配端口规...原创 2018-10-16 17:57:18 · 1620 阅读 · 0 评论 -
STUN响应消息中添加MAPPED_ADDRESS
在主叫端处于对称型NAT,被叫端处于端口限制型NAT情况下:被叫端的主机地址向主叫端的中继地址发送STUN BINDING 包的时候,在被叫端产生了 Prflx地址,此地址主叫端从请求包的SOURCE_ADDRESS(此处说的SOURCE_ADDRESS是指到来的请求rcheck的src_addr字段)取出。据此,主叫端可以判定被叫端处于对称NAT,主叫端给被叫端响应,注入MAPPPED_AD...原创 2018-10-16 11:48:15 · 968 阅读 · 0 评论 -
主机到中继地址的发包路径
被叫端主机向主叫端的relay端口进行发stun binding 包的时候。实际上是先发送到relay端口,然后转发到3478端口。3478端口然后发送给内网主机!原创 2018-10-15 09:13:59 · 227 阅读 · 0 评论 -
SIP信令协议初识
1、什么是SIPSIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用。会话(Session)指两方或多方用户之间的语音、视频、及其他媒体形式的通信,具体可能是IP电话、会议、即时消息等等。SIP是一个信令协议,它对应于传统电话网络中的呼叫信令协议(比如SS7 ISUP)。构建一个完整多媒体通信架构还需要结合其他一些协议,必要的有:RTP,用于媒体传输;RSVP,用...原创 2018-10-08 15:35:07 · 7301 阅读 · 0 评论 -
在当前PJ项目pj_nath模块加入mysql的一些问题
在当前VS项目中添加MYSQL模块。首先要去pjnath模块的属性设置里面添加mysql.h的头文件包含。就是你的mysql安装目录的include目录下的mysql.h.然后再全局属性设置里面添加libmysql.lib的库文件的依赖。 此时出现了winsock.h里面的宏定义#define s_addr S_un.s_addr 与我本项目中ipv4的s_addr冲突,在...原创 2019-01-05 10:28:24 · 341 阅读 · 0 评论