一、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后等待一定时间才结束会话。

基于SIP协议的性能测试——奇林软件kylinPET的更多相关文章

  1. SIP压力测试——奇林软件kylinPET

    一.Sip协议简介: SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定 ...

  2. 基于奇林软件kylinTOP工具的HTTP2协议的压力测试

    1.HTTP协议概述 说到http,那就应该先了解一下http协议的发展历史.关于http协议的历史,可以参考阮一峰老师的这篇博客文章HTTP 协议入门,里面介绍的比较详细了.简单来说http先后存在 ...

  3. 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享

    一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现-- ...

  4. 基于WebSocket协议的性能测试

    互联网应用时代,用户获取信息的方式从传统媒体到新媒体,信息时效性对通信技术要求越来越高, HTTP协议已经不能适用.于是WebSocket出现了,它实现浏览器与服务器的全双工通信,服务端主动向客户端发 ...

  5. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍

    **************************************************************************************************** ...

  6. vsftpd-基于ftp协议的文件传输服务器软件

    第一部分:在Linux上部署vsftpd服务 1. vsftpd简介 1.1 vsftpd是什么? ftp(File Transfer Protocol)文件传输协议.(实现不同操作系统之间文件的传输 ...

  7. 阐述:SIP协议是什么

    sip协议是什么?可能刚刚接触这个协议的朋友会掌握不好它的定义.那么首先我们要了解一下,目前企业中大多数VoIP应用都使用H.323协议,但是,随着越来越多的企业研究SIP协议,不久的将来基于SIP协 ...

  8. 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125. 上两章节简要的 ...

  9. 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...

随机推荐

  1. Mac使用sublime text3的快捷键

    符号说明⌘:command⌃:control⌥:option⇧:shift↩:enter⌫:delete 打开/关闭/前往⌘⇧N 打开一个新的sublime窗口⌘N 新建文件⌘⇧W 关闭sublime ...

  2. Java 判断字符串是否包含某个字符

    // 判断不为静态栏目的文章 if (e.getCategory().getName().indexOf("静态") == -1) { articleList2.add(e); } ...

  3. tomcat启动后access error[730048]的解决方法

    安装了JDK... 配置了系统变量... 解压了tomcat... 配置了系统变量... 点击startup.bat启动了以后,打开浏览器,出现access error 404错误. 仔细看过控制台输 ...

  4. 理解 Redux 中间件机制

    Redux 的 action 是一个 JS 对象,它表明了如何对 store 进行修改.但是 Redux 的中间件机制使action creator 不光可以返回 action 对象,也可以返回 ac ...

  5. 第一次安装vs2010无法运行程序,系统找不到exe文件,LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    最近在看数据结构的一些书籍,怎奈代码是c写的,所以安装一个编译器vs2010来测试代码,但是建完文件后编译ok,f5却出现错误:无法启动程序,系统找不到指定文件.上网找了一些解决办法,但是仍然无法解决 ...

  6. 产品需求说明书PRD模版

    <软件自动化测试开发>出版了 XXX产品需求说明书 [版本号:V+数字]                 编  制: 日  期: 评  审: 日  期: 批  准: 日  期:       ...

  7. ReadHub项目Kotlin版开发指南(三、MVP架构)

    ReadHub项目Kotlin版转换指南(一.环境搭建) ReadHub项目Kotlin版转换指南(二.数据库和网络请求) ReadHub项目Kotlin版转换指南(三.MVP架构) Android ...

  8. Spring Boot从入门到精通(五)多数据源配置实现及源码分析

    多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...

  9. C++走向远洋——34(友元函数,成员函数和一般函数的区别)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:youyuan.cpp * 作者:常轩 * 微信公众号:Worl ...

  10. jq拖拽插件

    (function ($) { var move = false; //标记控件是否处于被拖动状态 var dragOffsetX = 0; //控件左边界和鼠标X轴的差 var dragOffset ...