一、Sip协议简介:
SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。它是一种应用层协议,与其他应用层协议协同工作,通过Internet控制多媒体通信会话。它在在RFC 3261中定义。
SIP 用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。SIP 协议基于文本编码,大量借鉴了成熟的 HTTP 协议,并且具有易扩展、易实现等特点,因此非常适合用来实现基于因特网的多媒体通信系统。
SIP协议是IMS/NGN主要通信协议, 是一种比较复杂的协议。kylinPET很好地支持SIP协议:提供易用的SIP业务流程脚本编辑,支持SIP鉴权,支持复杂SIP流程。
二、SIP性能测试
sip协议的性能测试,我采用奇林公司的kylinPET软件,相关操作步骤如下所示。
官网:www.70testing.com
1、录制脚本
1.1、点击“文件” -> “新建”或者“工具栏”的“新建” 按钮。
1.2、 生成业务流程脚本
Scripter被叫流程脚本
流程图的Media节点表示执行代理器通知媒体代理器发送音视频流与监控收到的音视频流。
参数media-ip、audio-port、video-port为被叫的SDP信息,来源于参数列表的配置;而参数SDP-IP、SDP-AudioPort、SDP-VideoPort为流程从INVITE消息的SDP内容获取的。
流程图的Media节点表示执行代理器通知媒体代理器发送音视频流与监控收到的音视频流。
参数media-ip、audio-port、video-port为被叫的SDP信息,来源于参数列表的配置;而参数SDP-IP、SDP-AudioPort、SDP-VideoPort为流程从INVITE消息的SDP内容获取的。
2、创建测试场景
2.1、创建媒体代理器
点击“工具” -> “媒体代理器”或者“工具栏”的 按钮,添加媒体代理器
2.2、 配置主叫媒体代理器
2.3、 配置被叫媒体代理器
3、 自动添加媒体监控项
3.1、 查看每一路媒体流指标
上图查看被叫每一路的指标情况,表格只显示每秒的指标值与总得平均值,绿色表示指标没超过阈值,红色表示指标超过阈值。
3.2、 主叫收到的每一路媒体指标
双击表格某行查看对应媒体流指标曲线
三、其它场景
1、主叫发送BYE丢失情况
主叫发送BYE消息丢失,被叫将收不到BYE消息,不会回复200响应。而主叫等待200响应将超时。因此,需要主叫流程实现超时重传流程。
通过branch节点实现多种情况的考虑,当收到200表示会话成功,当收到超时则重发BYE消息。
2、被叫收到BYE后发送200丢失
被叫收到BYE消息后发送200响应消息丢失,主叫没收到200将重传BYE,如果被叫会话已经完成,将导致被叫成功,但主叫失败。因此,需要被叫发送200后等待一定时间才结束会话。