SIPp脚本编写方法基础m
sipp操作说明cn文档
sipp操作说明cn文档用途:SIPP远程主机[:远程端口][选项]例子:使用嵌入式服务器(UAS)运行SIPP方案:/SIPP-序列号UAS在同一主机上,使用嵌入式客户端(UAC)运行SIPP方案:/SIPP-序列号UAC 127.0.0.1可用选项:***方案文件选项:-sd:转储默认方案(嵌入在sipp可执行文件中)-SF:加载备用XML方案文件。
了解有关XML方案的更多信息语法,使用-sd选项转储嵌入的方案。
它们包含所有必要的帮助。
-OOCSF:加载呼叫中断场景。
-OOCSN:加载呼叫外场景。
-sn:使用默认方案(嵌入在sipp可执行文件中)。
如果此选项是省略,加载标准Sipstone UAC方案。
此版本中的可用值:-“UAC”:标准Sipstone UAC(默认)。
-“UAS”:简单的UAS响应程序。
-“regexp”:标准Sipstone UAC-带有regexp和变量。
-“branchc”:场景中的分支和条件分支-客户端。
-“分支”:场景-服务器中的分支和条件分支。
默认3pcc方案(请参见-3pcc选项):-“3pcc-c-a”:控制器A侧(必须在所有其他3pcc之后启动)场景)-“3pcc-c-b”:控制器B侧。
-“3pcc-a”:A侧。
-“3pcc-b”:B侧。
***IP、端口和协议选项:-T:设置传输模式:-U1:具有一个套接字的UDP(默认值),-un:udp,每次调用一个套接字,-ui:udp,每个IP地址一个套接字。
必须定义IP地址在注入文件中。
-T1:TCP,带一个插座,-Tn:TCP,每次调用一个套接字,-c1:u1+压缩(仅当加载压缩插件时)-cn:un+压缩(仅当加载压缩插件时)。
这个插件是不提供SIPP。
-i:为“contact:”、“via:”和“from:”头设置本地IP地址。
违约是主主机IP地址。
-P:设置本地端口号。
默认值是由系统。
-bind_local:将套接字绑定到本地IP地址,即本地IP地址用作源IP地址。
51CTO下载-SIPp教程
SIPp教程编写:黄龙舟本PDF文档含有附件请用Adobe阅读器或者福昕阅读器查看附件目录SIPp教程___________________________________________________________ 1目录 __________________________________________________________________ 2一、简介__________________________________________________________ 3二、安装并设置(Windows) _________________________________________ 3三、sipp的参数、控制和界面简要说明 _________________________________ 4四、csv和xml ______________________________________________________ 8书写规则________________________________________________________________ 8控制命令_______________________________________________________________ 10关键词列表_____________________________________________________________ 14五、Action ________________________________________________________ 15正则表达式_____________________________________________________________ 16记录消息_______________________________________________________________ 16执行命令_______________________________________________________________ 17变量控制_______________________________________________________________ 17字符串变量_____________________________________________________________ 18变量测试_______________________________________________________________ 18查找___________________________________________________________________ 19跳到指定索引___________________________________________________________ 19获取时间_______________________________________________________________ 19改变通话的网络地址____________________________________________________ 19鉴权___________________________________________________________________ 20例_____________________________________________________________________ 21六、使用方法_____________________________________________________ 22理解sipp _______________________________________________________________ 22一般使用步骤___________________________________________________________ 22例:注册场景分析______________________________________________________ 22例:用SIPp实现单机支持多IP发起注册、呼叫 _____________________________ 23例:构造UAC端的XML场景_____________________________________________ 25例:构造UAS端的XML场景_____________________________________________ 27七、SIPp对未知消息的处理原则______________________________________ 28八、常用脚本_____________________________________________________ 28九、测试实例_____________________________________________________ 31测试步骤_______________________________________________________________ 32十、官方文档_____________________________________________________ 32附录 _________________________________________________________________ 32环境准备:_____________________________________________________________ 32安装步骤_______________________________________________________________ 33一、简介SIPp是一个测试SIP协议性能的工具软件,它包含了一些基本的用户代理工作流程(UAC 和UAS),并可使用INVITE和BYE建立和释放多个呼叫。
SIP网关压力测试工具SIPp的安装及使用详解收藏
SIP网关压力测试工具SIPp的安装及使用详解收藏上一篇介绍了安装Trixbox的过程。
经过简单的测试,pc2pc、pc2phone的通话功能正常。
要把网络电话业务作为商用,就必须要保证系统的稳定和一定的承载能力,所以接下来需要做的是对Asterisk的压力测试,以了解Asterisk在我们的硬件基础上的承载能力。
google一番,发现有一共叫SIPp的软件,专门用于对SIP网关的压力测试,包括注册、通话、多方meeting等并发的压力测试。
以下是从网上搜集并结合我的实际安装过程整理的资料。
SIPp是一个在Linux下运行的软件,为了便于操作,可将其通过Cygwin模拟运行在win32平台下。
第一步,先要安装的是Cygwin,下载地址:/setup.exe 。
该安装文件是在运行过程中再下载相关安装包进行安装的。
第二步,安装。
摘录网友的安装经验:“这方面的文很多,这里只大概谈一下需要注意的地方:1、下载时前面都是下一步就OK,按默认就好。
到选择镜像站点的时候建议选择前面一点的,希望大家不要浪费时间去试验;2、到选择安装方式——Select Packages页面时,一定要注意每个包后面的状态:Keep,意思就是说保持目前已经安装的版本不动。
不会替换目前已有的版本,下次安装包的时候尽量使用此选项,因为它不会把你已经有的包重新安装一次;Curr,意思就是说把最新的版本统统下载下来安装其它2个没试过。
而且应该注意一下名为Category的一列,该列后面写的是安装的方式,有安装、卸载、重新安装等,不用说,第一次当然是安装。
好了,剩下的就是等待了,相信我,这是相当漫长地。
Cygwin就安装完毕,大家一定要记住安装的路径。
”第二步,安装cygwin的IPv6补丁。
地址:http://win6.jp/Cygwin/index.html1、将其解压出来的3个文件夹:/bin,/lib,/usr复制到刚刚Cygwin的安装目录下即:../Cygwin/这里,以替换已有的文件夹。
SIP系统测试工具SIPP--个人使用经验
SIP系统测试工具SIPP--个人使用经验刚开始接触SIPP,是无意中整理自己的文档时候。
很早的时候从一个FTP上拖下一堆SIP相关的资料,没想到竟然藏了这么强的一个软件。
^^ 动手使用前,在网上搜索了一些使用SIPP的文章。
长了不少经验,走了不少弯路。
负责任的说,多数是不负责任的互相转来转去。
个人经验1:SIPP的主站上的说明是最详细最完善的(当然!这是废话。
)读的懂原文的人自然不屑看那些互转的文章,正是不愿意或看不懂原文的人才会找所谓的中文资料(比如我)。
个人经验2:即使拿着金山词霸自己翻译原文,也比跑瞎道强!SIPP主站文档地址:/doc/reference.html第一步:安装On Linux, SIPp is provided in the form of source code. You will need to compile SIPp to actually use it.Pre-requisites to compile SIPp are (see Compilation tips):C++ Compilercurses or ncurses libraryFor authentication and TLS support: OpenSSL >=0.9.8For pcap play support: libpcap and libnetFor distributed pauses: Gnu Scientific LibrariesYou have four options to compile SIPp:Without TLS (Transport Layer Security) and authentication support: This is the recommended setup if youdon't need to handle SIP authentication and/or TLS. In this case, there are no depencies to install before building SIPp. It is straight forward: # gunzip sipp-xxx.tar.gz # tar -xvf sipp-xxx.tar # cd sipp # makeWith TLS and authentication support, you must have installed OpenSSL library (>=0.9.8) (which may come with your system). Building SIPp consist only in adding the "ossl" option to the make command: # gunzip sipp-xxx.tar.gz # tar -xvf sipp-xxx.tar # cd sipp # make osslWith PCAP play and without authentication support: # gunzip sipp-xxx.tar.gz # tar-xvf sipp-xxx.tar # cd sipp # make pcapplayWith PCAP play and authentication support: # gunzip sipp-xxx.tar.gz # tar -xvfsipp-xxx.tar # cd sipp # make pcapplay_ossl以上原文,太要看看了。
SIP基础培训精品文档
头域定义二
Via
用来描述请求当前经历的路径的,并且标志了应答所应当经过的路径。请求每经过一次转发, 都会将本次转发实体的地址记录到via头域中,应答每经过一次转发,都会将本转发实体的地址 从via头域中删除,并且Via头域的branch ID参数提供了事务的标志,并且用于proxy来检查循环 路由
典型的STATUS-CODE
100:正在尝试-和Q.931 CALL PROCEEDING 类似,可能会被代理服务器、或者呼叫信令路径上 的其他中间SIP服务器返回
180:正在振铃-和Q.931 ALERTING类似。表示虚拟或者真实的电话正在振铃 200: 请求成功执行(OK) 300:在对请求中的地址进行解析时出现多个选择。它们会被返回,呼叫者可以从列表中挑出一个
SIP(Session Initiation Protocol) 基础培训
Jade 2016/11
目录
概述 SIP消息 SIP流程 RTP协议 DTMF
SIP
会话启动协议SIP(Session Initiation Protocol)是一个在IP网 络上进行多媒体通信的应用层控制协议,它被用来创建、修改、 和终结一个或多个参加者参加的会话进程。
SIP参考标准 – RFC 2327 Session Description Protocol – RFC 3264 Offer Answer Model with SDP
SIP 应用组网
Storage Server
PARLAY API
TCP/IP
TCP/IP Internet
WMC
SIP服务器测试工具SIPp使用指导
SIP服务器性能测试工具SIPp使用指导Contents1安装及概述: (1)1.1SIPp安装 (2)1.2SIPp使用 (3)1.2.1 uac.bat: (3)1.2.2 data.csv: (4)1.2.3 uac.xml: (4)2常见问题: (8)2.1uas.bat (8)2.2uas.xml (9)3操作截图: (13)3.1uac: (13)3.2uas: (14)1 安装及概述:SIPp是一个测试SIP协议性能的工具软件。
这是一个GPL的开放源码软件。
它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE 建立和释放多个呼叫。
它也可以读XML的场景文件,即描述任何性能测试的配置文件。
它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。
周期性地把CSV统计数据转储,在多个套接字上的TCP和UDP,利用重新传输管理的多路复用。
在场景定义文件中可以使用正规表达式,动态调整呼叫速率。
SIPp可以用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x网关,SIP PBX,等等,它也可以模仿上千个SIP代理呼叫你的SIP系统。
SIPp的网址:/,这里可以下载最新版的SIPp软件,并且有英文资料可供查阅。
1.1 SIPp安装SIPp提供Linux,Windows和HPUX平台的版本。
Windows平台上的安装很简单,下面说一下Linux下的安装。
首先,可以从/projects/sipp/files/sipp/3.2/下载最新版的SIPp,解压之后就得到一个rpm文件,你可以使用rpm命令来完成安装。
如果你拿到的是绿色版的SIPp,那么你需要对其重新编译才能使用。
SIPp是用C++写的,因此系统必须支持G++才可成功编译。
SIPp支持四种不同的安装模式:1) 没有TLS支持与密码验证支持:a) # tar -xvf sipp-1.1rc6.tar.gzb)# cd sipp-1.1.rc6c)# makeMake出来的sipp文件就是一个可执行的文件,只需要搭配场景xml文件与csv文件即可进行SIP测试,这是最常用的安装。
SIP制作方法
制作SIP的重点及注意事项1.什么是SIP?SIP是STANDARD INSPECTION PROCEDURE的缩写,翻译成中文检验标准指导书,是为确保产品的性能,寿命,可靠性,安全性,经济性,尺寸和外观是否满足明确和隐含要求而制定的一个准则。
2.分类检验标准一般分为内部检验标准和外部检验标准,外部检验标准又可分为客户检验标准和行业检验标准。
3.检验标准的意义a.保证产品质量的一致性。
b.为公司节约成本.c.减少社会资源浪费。
d.方便客户寻找替代品。
f.为检验员判定产品某一特性是否合格提供依据。
4.检验标准书包括的项目4.1.基本项目:公司名称,文件名称,发行日期,发行版本,文件编号,产品名称,产品料号,检验工程站别名称,检验项目,检验标准,检验方法,检验环境和设施,检验频率,制定者,审核人。
4.2.衍生项目:使用表单,检验步骤及其编号,机种,核准,不良履历,日期,负责人,备注,严重度。
检验项目包括:外观,尺寸,特性。
5.重要项目说明a.产品名称,产品料号,文件编号一方面为了查找,另一方面区别与其它产品,相当于一种产品的代号。
b.检验方法包括目视,量测,实验,其中量测和实验是借用二次元,厚度规,拉力急等仪器,设备来完成检验。
c.使用表单通常是检验者记录检验结果的表单,记录内容包括:产品名称,规格,批量,编号,使用机器,设备,检验时间,检验人,检验结果数据,检验结果。
d.检验频率是指对总样本数抽多少的一个比率或间隔多长时间抽取一定的样本数。
e.严重度分危害,严重,轻微,危害指对人的生命安全造成一定影响;严重指完全或部分影响使用,轻微指不会影响使用,但存在一些瑕疵使客户的满意度降低。
f.制定栏目填写制定此SIP的品质工程师自己的名字,审核和核准栏目为品质部门的主管填写。
g.尺寸是客户对某一种产品的长度,宽度,弧度等特性的要求,其检验标准栏填写客户要求这些特性和允许的公差。
6.如何制作一份完整的SIP?6.1.如何识别产品的质量特性中的固有特性和不合格特性?产品的质量特性分为固有特性和不合格特性,固有特性指客户在外观,结构,性能,可靠度等方面可区分的要求,及制造过程中不可避免的特征。
sip编程开发基础入门
最近在学习SIP协议的相关知识,于是上网搜集了部分内容,主要包括SIP协议的概要介绍,SIP 所涉及到得相关协议,SIP开源软件介绍,SIP基础编程范例。
SIP协议全方位概要介绍转载自:出处:中国电信摘要:SIP协议是NGN中的重要协议,越来越得到业界的重视。
本文通过SIP协议的背景、功能、网络元素、实现机制、以及SIP消息的组成等几个方面对SIP协议做了全方位的概要性介绍,以使读者对SIP有初步的概念和认识。
一、SIP协议的背景和功能SIP(会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务。
因特网电话(IP 电话)正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的NGN(下一代网络)系列协议中重要的一员。
SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的。
它用来建立,改变和终止基于IP网络的用户间的呼叫。
为了提供电话业务它还需要结合不同的标准和协议:特别是需要确保传输(RTP),与当前电话网络的信令互连,能够确保语音质量(RSVP),能够提供目录(LDAP),能够鉴权用户(RADIUS)等等。
SIP被描述为用来生成,修改和终结一个或多个参与者之间的会话。
这些会话包括因特网多媒体会议,因特网(或任何IP网络)电话呼叫和多媒体发布。
会话中的成员能够通过多播或单播联系的网络来通信。
SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。
它同时通过代理和重定向请求到用户当前位置来支持用户移动性。
SIP不与任何特定的会议控制协议捆绑。
本质上,SIP提供以下功能:名字翻译和用户定位:无论被呼叫方在哪里都确保呼叫达到被叫方。
执行任何描述信息到定位信息的映射。
确保呼叫(会话)的本质细节被支持。
特征协商:它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有方都能够支持相同级别的特征)。
SIPp基础及脚本编写
1. SIPp概述1.1. SIPp简介SIPp是一个测试SIP协议性能的工具软件。
它包含了一些基本的用户代理工作流程(UAC 和UAS:UAC负责发起SIP呼叫请求,UAS接收UAC的请求并负责对其做出响应),并可使用INVITE和BYE建立和释放多个呼叫。
➢可以读取XML的场景文件,即描述任何性能测试的配置文件,在场景定义文件中可以使用正则表达式;➢能动态显示测试运行的统计数据(呼叫速率、消息统计等);➢可以用来测试许多真实的SIP设备,也可以模仿上千个SIP代理呼叫你的SIP系统;另外,SIPp可以用来模拟现场的SIP信令,以重现出现的故障;或者可以自定义SIP协议以测试终端对某些方面的容错或错误处理能力。
1.2. SIPp安装1.2.1.SIPp在Linux下安装安装步骤:1)SIPp安装到sipp账户下面(也可以安装到其他账户下),上传tar包到服务器,直接解压;2)执行编译脚本,进入sipp目录下,执行make;3)进入.bash_profile配置环境变量,如下图所示,配置完成后执行. .bash_profile后生效;启动方式:screen方式启动主被叫,登录sipp账户打开两个窗口,分别用于启动主叫和被叫,进入到sipp脚本目录下,执行如下命令:1)启动主叫:Screen –S uac(screen的名字,可以随便命名,便于区分主被叫即可)./caller.sh启动成功,可以按ctrl+a+d退出screen(切到后台运行)2)启动被叫:Screen –S uas./callee.sh启动成功,可以按ctrl+a+d退出screen(切到后台运行)3)再次进入screen,可以先执行screen -ls查看screen进程号,然后再执行screen -r 进程号,便可进入该screen,按ctrl+c后再输入exit,即可结束进程。
1.2.2.SIPp在windows下安装直接解压双击安装即可。
sipp使用手册
[键入文字][键入文字]使用SIPp进行SIP压力测试使用手册项目名称V1.1.0文档编号版本号V1.1.0作者、管路敷设技术通过管线敷设技术不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。
在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。
管线敷设技术中包含线槽、管架等多项式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。
线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。
、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。
对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。
sipp脚本制作和使用技巧
SIPp脚本制作与使用技巧
脚本的类型
脚本类型:uas、uac、uas和uac的结合体 1、实现关键点:熟悉业务流程
A
message
200ok
B
2、判断点:第一条消息
Uas: <recv request="MESSAGE" rtd="true" crlf="true" ></recv>
需要终端先注册到模拟服务端。
Uac: <send > <![CDATA[ MESSAGE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
终端不需要注册到模拟服务端,有两种实现方式: 1、通过服务器中转消息,远端IP为服务器ip 2、直接点对点进行业务,远端ip为终端ip(推荐使用)
变量循环
场景介绍: 场景介绍: 终端循环发送5次消息后继续向下执行
1、C语言实现: 语言实现: 语言实现 Init a=0; If(a<5) {a++;} Else….. 2、sipp实现 实现 <nop> <action> <assign assign_to="1" value="0"/> 定义 变量1并设置为0 </action> </nop> <nop> <action> <add assign_to="1" value="1" /> 给变量1加1 <test assign_to="2" variable="1" compare="less_than" value="5" /> 比较5和变量1的值大小,将比较 的结果赋值给变量2 ,变量2为布尔变量
SIPp安装和使用(Ubuntu系统)
SIPp安装和使用(Ubuntu系统)第一步:安装sipp之前需要预安装的一些文件apt-get install makeapt-get install gccapt-get install bison flexapt-get install build-essentialapt-get install libncurses-devapt-get install libssl-devapt-get install libpcap-devatp-get install opensslapt-get install sip-testerapt-get install ssh-----------------主要是用CRT来登录到虚拟机中的SIPP第二步:官网下载最新版本/projects/sipp/files/sipp/3.2/(下载sipp.svn.tar.gz就可以)软件包解压到/home目录下:tar -xvf sipp.svn.tar.gz此外还sipp安装文件自带的一些预安装文件gsl-1.9、openssl-0.9.8c.tar.gz、libpcap-0.9.5.tar.gz ,对这几个进行解压缩(文件在/sipp.svn/sipp-external-lib-src/目录下)tar -xvf gsl-1.9.tar.gztar -xvf libpcap-0.9.5.tar.gztar -xvf openssl-0.9.8c.tar.gz第三步:sipp选用第四种安装方法:支持PCAP 声音文件播放,而且支持密码验证支持:(支持407 auth验证支持)make cleanmake pcapplay_ossl第四步:.sipp/ -help (帮助信息出来,OK。
安装完毕)第五步:在sipp.svn创建或拷贝两个目录:uac和uasroot@ubuntu:~/sipp.svn/uac# ls -ltotal 888-rwxrwxrwx 1 root root 219 2013-05-02 02:20 account.sh-rw-r--r-- 1 root root 2444 2013-03-31 17:44 register.xml-rwxr-xr-x 1 root root 885162 2013-02-21 18:45 sipp-rw-r--r-- 1 root root 5671 2013-04-24 23:09 uac_pcap.xml-rw-r--r-- 1 root root 923 2013-05-02 02:22 users_uac.csvroot@ubuntu:~/sipp.svn/uac#root@ubuntu:~/sipp.svn/uac# cd ..root@ubuntu:~/sipp.svn# cd uasroot@ubuntu:~/sipp.svn/uas# ls -ltotal 888-rwxrwxrwx 1 root root 251 2013-05-02 02:22 account.sh-rw-r--r-- 1 root root 2444 2013-03-26 23:26 register.xml-rwxrwxrwx 1 root root 885162 2013-02-21 18:45 sipp-rw-r--r-- 1 root root 4195 2013-04-24 23:10 uas.xml-rw-r--r-- 1 root root 843 2013-05-02 02:24 users_uas.csvroot@ubuntu:~/sipp.svn/uas#第六步:注册测试例如:在uac目录下执行命令./sipp -sf register.xml -inf users.csv -p 9050 -i 192.168.1.3 -m 2 192.168.28.227:5060出错1解决:******************************************************************************* **********如果出现如下报错:send_packets.c:44:18: 错误:pcap.h:没那个文件或目录make[1]: *** [send_packets.o] 错误 1make[1]: Leaving directory `/usr/src/sipp.svn'make: *** [pcapplay_ossl] 错误 2说明没安装库pcap。
Python-SIP参考指南-介绍
Python-SIP参考指南-介绍介绍本⽂是SIP4.18的参考指南。
SIP是⼀种Python⼯具,⽤于⾃动⽣成Python与C、C++库的绑定。
SIP最初是在1998年⽤PyQt开发的,⽤于Python与Qt GUI toolkit的绑定,但适⽤于⽣成任何C或C++库的绑定。
此版本SIP⽣成的绑定可⽤于Python 2.3以后的版本,包括Python 3.x。
还有许多其他类似的⼯具,例如SWIG。
事实上,SIP如此名字是因为它源于⼀个⼩型的SWIG。
但不像SWIG,SIP是特别设计于将Python 与C/C++进⾏绑定的,它尽可能地集成更多C/C++的功能。
许可SIP许可类似于Python,也采⽤GPL协议(包括v2和v3)。
如果你使⽤SIP,意味着你必须遵循GPL协议。
特征SIP和它所⽣成的绑定拥有如下特征:加载迅速,内存占⽤低。
⾃动转换标准的Python与C/C++数据类型。
不同参数签名的函数和⽅法的重载访问C++类的protected⽅法能够定义⼀个继承于C++类型的Python⼦类,包括C++抽象类Python⼦类可以实现__dtor__()⽅法来⽀持C++类的虚析构函数的调⽤。
⽀持普通C++函数、类⽅法、静态类⽅法、虚类⽅法和抽象类⽅法。
可以在Python中重新实现C++虚/抽象⽅法⽀持全局和Class变量⽀持全局和Class操作⽀持C++命名空间⽀持C++模板⽀持C++异常并转换为Python异常丰富的comparsion slots的⾃动⽣成⽀持deprecation警告⽀持定义C++类与相似的Python数据类型的映射,并⾃动调⽤⽀持⾃动利⽤任何可⽤的运⾏时类型信息,确保Python实例对象类型与对应的C++对象实例相匹配可以转换在类型与meta类型之间转换python对象,⽤以包装⼀个C/C++数据类型⽀持Python全局解释器锁,包括指⽰⼀个C++函数可能被阻塞,从⽽允许释放锁,让其他Python线程运⾏。
使用OpenSIPS构建电话通信系统-4脚本及路由基础
第四章 脚本及路由基础书节习请经这们本章是本中最重要的章之一,在学下一章之前,确信你已理解了些概念。
在本章中,我将学简单一些构建基本路由脚本的基知。
准配置文件习础识标/etc/opensips/opensips.cfg 是OpenSIPS最的配置文件,同这块时习OpenSIPS功能的一个好的开始点。
里,你需要熟悉一些基本的模,参数以及函数。
它也是一个学结够本章束,你将能:•主要的全局配置参数认识•与默脚本中的参数行比认进较•默脚本中加的模以及它的参数认识认载块们•可用的主要路由句认识语•理解量,量(变伪变pseudo-variables),AVPs及flags的概念•准路由配置的局限性认识标•使用ngrep跟踪SIP事务们我在哪里VoIP 供商解决方案有有很多件为窥,我将在很多章中展示下面片。
在本章中,们节这张图应拥组,避免以管天组我将学准配置下的们继续习标SIP代理件。
OpenSIPS脚本OpenSIPS的主要配置文件只有一个,就是opensips.cfg。
它包含了若干部分,如“全局参数”(Global Parameters),“加模”(载块Load Modules),“模参数”(块Module Parameters),“路由脚本”(Routing Script)。
建此文件,我需要源自核心(块们绍为创们core)和模的一些命令及函数。
下面,我就会介每部分常的函数,你将看到,在默脚本中部分使用用的是多么地繁。
见认这频OpenSIPS在安装的候已生成了一个最小配置,个的配置是一个很好的学起点。
启之后时经这简单习动,OpenSIPS将会:•在你的网中将自身作一个务络为SIP服器建立起来•允你在内部网(许络internal network)中接两个连UACs•允两个不同的许UACs相互呼叫还OpenSIPS仍旧没有做:然而,有一些事情•没有行或数据支持。
本将在稍后添加些。
对电话进认证库书这•不支持PSTN。
SIP的编写
SIP的编写在开始这写这个主题之前,⾸先得说明检验作业指导书编写部门理所当然为质量部们,⾄于为什么是质量部门编写,留给读者⾃⼰思考。
在个⼈经历中,发现检验⽂件由⼯程/项⽬/技术部门编写的糊涂⼯⼚还真不少,这类⼯⼚的检验⽂件⼀般是⼀塌糊涂,惨不忍睹。
典型的现象是⽂件⼏年都没更新,重点检验项⽬缺失,检验⽅法不正确,检验内容含糊不清,判定标准模糊,样本量/检验频次往往是越多越好,不顾检验的实际需要。
上⾯已经说了检验作业指导书的编写部门,以及检验作业指导书⼀些的典型失效模式,接下来谈谈检验作业指导书各组成部分的注意要点。
⼀.检验作业指导书需要包括图纸版本号,并且与图纸⼀致。
⼆.检验作业指导书需要包含⽂件履历表,这也是⽂件的基本要求。
当⼚内发⽣批量不良,或者客户重⼤投诉时,需根据需要更新检验作业指导书。
三.检验项⽬⼀般分为包装,外观,尺⼨,功能,性能。
四.检验⼯具/⽅法,外观检验需要保证光照度,并且在现场需要有ok/ng样件。
尺⼨检验的检查⼯具的量测精度⾄少要⾼于公差10个数量级。
功能及性能的检测⼯具能够模拟客户实际使⽤状态。
五.检验内容需要明确具体,清晰易懂。
在此不能出现参考其它⽂件的现象。
检验内容来源图纸,不能少于图纸所要求的内容。
在检验作业指导书中,需要将需检测的图纸上的尺⼨显⽰出来,避免检验时查阅图纸。
六.判定标准,这来源于图纸,标准不能低于图纸要求。
同时判定标准需要具体明确,能够量化的内容尽可能量化。
对于外观的判定标准,⾄少要有⽬视化产品图⽚。
七.检验频次和样本量,检验频次⼀般有每批,开机时,每天,每班,每年。
检验频次和样本量是由所检验的质量特性风险程度决定的。
⼋.反应计划是检验作业指导书不可或缺的⼀部分,需要详细说明⼀旦不合格,检验员如何作业?九.检验完成后,需要如实填写质量记录,包括检验项⽬是什么,检验实际值是多少?检验数量和不良数量是多少?不良现象是什么?这些记录是⼯⼚质量管理的基础。
总⽽⾔之,⼀份检验作业指导书需要包含检验项⽬,检验⽅法/检验⼯具,检验内容,判定标准,样本量,检验频次,反应计划。
sipp使用秘笈v1.2
Sipp测试工具使用文档1. Sipp软件简介sipp是对sip协议进行性能测试的一款软件系统。
sipp能够对远程系统发起一个或者多个呼叫。
Sipp提供呼叫发起端(uac)和呼叫接收端(uas)的功能,通过呼叫完成对中间设备(TG等)的性能测试。
sipp会根据xxx.xml场景描述文件来进行sip呼叫的建立、处理和释放。
2. 使用前的准备(这里假设读者已经安装好了的sipp)考虑到测试时操作的方便性,因此写了几个批处理文件,封装内部细节,只须指定服务器的IP与端口即可进行测试。
(约定uac指定端口,uas占用5090端口,使用前请确定端口没占用)呼叫前请注意是否配置好了所需文件,如果您是第一次使用请首先参考第4节和第5节相关内容修改2.1 系统相关修改1) 关闭系统防火墙,杀毒软件,下载程序以及其他跟网络相关的应用程序以防干扰测试。
2) 添加ip 。
有时候设备ip段和本机ip段不一样(本机ip段可能用于公网)那么只需要添加一个ip即可。
添加方法:网上邻居->右键属性->本地连接->右键属性->选择Tcp/ip选择属性点击高级在ip地址那个框内,选择添加即可。
3. 使用方法考虑到测试时操作的方便性,因此写了几个批处理文件,封装内部细节,只须指定服务器的IP与端口即可进行测试。
(约定uac占用5061端口,uas占用5090端口,使用前请确定这两个端口没占用)3.1 注册test.bat直接在sip的安装目录下点击test.bat3.2 启动uas在弹出的对话框中输入uas(注明:uas是呼叫接收端,无需输入任何参数)3.3 启动uacUac.bat hostip hostport 每秒呼叫个数总呼叫个数例如:uac 172.16.55.201 5060 10 1000上面表示呼叫目标(配置中使用的TG)目标IP,172.16.55.201,对端端口5060,每秒发起呼叫10,总呼叫数目为1000(注:uac后面的参数次序不能有错,必须按照此顺序进行)3.4 程序启动后的常用操作‘+’呼叫速率加1‘-‘呼叫速率减1‘*’呼叫速率加10‘/’呼叫速率减10暂停呼叫:按键盘上的p键来暂停呼叫,再次按p键则重新开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SIPp脚本编写方法基础目录SIPp脚本编写方法入门 (1)1. 脚本格式 (3)1.1.基于XML进行扩展 (3)1.2.DTD扩展语法规则 (3)1.3.脚本结构 (3)1.4.注释 (6)2. 脚本类型 (6)2.1.UAC (6)2.2.UAS (7)2.3.3PCC(三方通话) (7)2.4.OCC(Out-of-call) (7)3. 命令与属性 (7)3.1.常用命令 (8)3.2.常用属性列表 (10)3.3.正则表达式 (12)4. 变量与关键字 (13)4.1.关键字的使用 (13)4.2.变量定义与使用 (15)4.3.鉴权 (16)5. 分支和跳转 (18)5.1.标签 (18)5.2.条件判断 (19)5.3.跳转和循环 (20)5.4.概率分支 (21)6. 文件引用 (22)6.1.外部文件格式 (22)6.2.引用方法 (23)6.3.文件索引 (24)7. 脚本中的命令操作 (24)7.1.部命令 (24)7.2.外部命令 (25)7.3.媒体命令 (25)8. 附录 (27)修订记录 (28)1.脚本格式1.1.基于XML进行扩展SIPp的测试脚本遵循标准的XML V1.0版本的语法规,XML即“可扩展标记语言”eXtensible Markup Language 的缩写,W3C组织与1998年发布XML 1.0规。
1.2.DTD扩展语法规则SIPp的执行目录中,存在一个sipp.dtd文件。
该文件为标准的xml扩展语法规则,在该文件中,对send、recv、pause等元素增加了定义,包括其属性列表等容,可作为脚本文件格式的校验。
1.3.脚本结构一个标准的SIPp脚本,文件起始应为通用的xml前导区和DTD文件定义区如图所示:接下来使用<scenario>和</scenario>包括的部分,即为脚本的正文部分。
sipp脚本正文部分,包含如下几个区域:1.初始化区在初始化区域中,通常用来进行全局变量的定义和赋值等操作,在脚本未进行逻辑流程前,预先完成初始化动作。
初始化区是在脚本正文的最开始,通过使用命令<init>和</init>,并在其之间插入一些<nop>和<label>命令即可实现,在初始场景中的变量,仅用于全局变量,并不会应用于呼叫。
例如下图中,在初始化区对THINKTIME进行赋值:2.逻辑执行区逻辑执行区中包括了业务流程的相关容,比如接收消息、发送消息、暂停时长、分支判断、媒体播放、外部命令执行等操作。
逻辑执行区是脚本的最关键部分,编写sipp脚本,主要也就是针对该部分进行编写和调试。
3.变量抑制区该部分是为了避免在脚本逻辑区定义了大量的变量,但实际并未使用导致运行时报错无法执行的问题,不论定义了多少变量,这些变量有无被使用,只需要添加进变量抑制区的列表中,脚本均可正常执行。
该部分仅有一个命令<Reference />,variables属性为所需抑制的变量列表。
如下图所示:4.定时器自定义区该区域主要作用为:针对消息响应时长(ResponseTime)以及呼叫持续时长(CallLength)的Timer进行自定义间隔的配置,以获取所需的显示围,例如自定义timer配置为:则在sipp运行时,查看运行统计界面呈现如下:1.4.注释sipp脚本注释的语法格式为<!-->xxx<-->,支持多行注释,如:2.脚本类型SIPp脚本根据使用场景不同,主要分为UAC、UAS、3PCC和OCC4种类型,每种类型均有其特定的使用方式,部逻辑也有所不同。
2.1.UAC顾名思义,UAC类型的脚本主要是模拟sip会话中的UAC侧,即负责发起会话的client端。
如注册客户端、主叫用户、订阅者等。
通常的UAC脚本逻辑区会以send作为业务流程的起始。
UAC脚本一旦启动,如果不设置起始暂停时长的参数,通常会立即开始执行。
2.2.UASUAS与UAC相对,主要模拟sip会话的UAS侧,启动后即进入被动接收状态,通常作为server端使用,如注册服务器、被叫用户、通知者、业务网关等。
通常的UAS脚本逻辑区会以recv作为业务流程的起始。
UAS脚本启动后,即绑定相关本地socket,进入接收消息的状态。
2.3.3PCC(三方通话)SIPp工具允许多个脚本实例间进行交互,完成较为复杂的业务流程。
如三方通话等业务,因此该种脚本在普通脚本的基础上,更多地使用部cmd交互命令,如recvcmd、sendcmd等在不同脚本间传递会话参数,配合完成复杂流程的测试实现。
sipp还提供了扩展的3pcc模式,支持master和slave的脚本角色。
该类型的脚本编写和调试较为复杂,本文档中不再赘述,如有兴趣可以翻阅sipp 的使用手册等文档,其中有详细说明。
2.4.OCC(Out-of-call)OCC(Out-of-call)脚本作为特殊类型的脚本,通常不会单独使用,而是与UAC脚本配合使用(也只能与UAC脚本配合,UAS等类型脚本无法支持-occsn 等执行命令)。
主要作用为扩展UAC脚本的适用围,使UAC脚本能够在接收到不同会话的非预期消息时,不至于直接丢弃。
如注册客户端可能会遇到接收到通知NOTIFY的消息,此时就需要在运行register脚本的时候适用-oocsn或-oocsf 参数,配合ooc脚本,实现对NOTIFY消息返回200的操作。
3.命令与属性3.1.常用命令SIPp工具提供的命令相当丰富,包括消息操作命令、变量操作、正则表达式、赋值和判断、部命令、外部命令、日志操作、媒体命令等多种,在一般的使用场景下,通常根据不同的动作,来进行命令的使用。
下面针对比较常用的场景,如发送消息、接收消息、媒体播放等进行描述:(更详细的命令功能及示例,可以翻阅sipp的使用手册等文档)一个最基本的sipp脚本,通常包含了send、recv、nop、pause这几个命令。
其中send为发送sip消息,recv为接收sip消息,nop为处理非业务的逻辑,pause为提供暂停时长。
例如一个基本语音呼叫的主叫侧脚本:首先使用send命令发送INVITE消息,注意在发送消息时,sip消息所有容均包含在标准的xml数据格式CDATA,CDATA的语法格式请格外注意,避免因为语法错误导致无确发送。
(注:在构造发送的INVITE消息时,为实现批量发送,使用到了大量的变量和关键字,在后续容中会详细加以说明。
)发送出消息后,还需要进行后续响应消息的接收,请注意由于sip协议存在临时响应和最终响应两种,而1xx的响应在业务中可能存在,也可能不存在,因此需要采用可选属性加以区别。
(注:optional=“true”即表示该条消息为可选接收,如果没有收到,也不会影响后续消息的接收及处理,如100/183/180。
而200为必选接收消息,只有当接收到该消息后,脚本才会继续后续流程,因此没有optional参数。
)在接收到200 ok消息,并发送出ACK后,语音通话接续流程即完成,此时根据实际业务流程,需要进行语音媒体的传输,因此脚本在这里需要增加一个nop命令,用于媒体的播放(注:nop命令可以用于任何非消息处理的位置,在nop命令中增加action 命令,然后即可执行类似媒体处理、变量操作、条件判断等动作。
)在执行媒体播放命令后,由于sipp在执行nop相关命令后,不会等待命令执行完毕而是立即执行后续脚本容,因此为保证媒体播放正常,我们还需要根据实际要求,将脚本暂停一段时间,以确保流程模拟正确。
(注:millisenconds属性可以自定义暂停的时长,单位为ms,如果该属性为空,则可以通过在执行命令中增加“-d 10000”来指定暂停时长)3.2.常用属性列表通用属性:3.3.正则表达式正则表达式作为sipp中极为重要的功能,在各个场景下应用广泛,最常见的是通过正则表达式,获取接收消息中某个参数,并将该参数赋给变量,用于后续流程的使用。
正则表达式的使用语法如下图所示:正则表达式的命令为<ereg />regexp属性为需要匹配的表达式容,其中使用”()”包括起来的部分,为匹配项,可以赋给变量;search_in属性为设置本次查询的方式,sipp支持3种正则匹配的方式,分别为:1.头域查询匹配当search_in=”hdr”时,表示正则按照头域匹配,必须包含header参数,给出需要查询的头域名称,如header=”From”。
sipp会在指定的头域中进行匹配。
注:start-line的匹配也是用头域匹配方式。
2.消息查询匹配当search_in=”msg”时,表示正则根据整个消息容进行匹配,通常在需要匹配SDP容时会用到。
3.变量查询匹配当search_in”var”时,表示正则按照变量进行匹配,必须配置variable参数,给出需要匹配的变量名称,如variable=”header_to_tag”。
4.变量与关键字4.1.关键字的使用sipp中定义了大量的关键字,涉及到网络参数、sip会话参数和媒体参数等等,需要在编写脚本时加以注意。
关键字的引用格式为[keyword],例如[locao_ip]、[call_id]等。
下表列出了常用的关键字:4.2.变量定义与使用sipp的脚本中,支持双精度浮点型变量和字符串变量两种变量类型.1.浮点型变量针对浮点型变量的操作命令主要有assgin(赋值)、sample(统计分布)和todouble(强制类型转换),以及加减乘除等简单算术运算,举例如下:<nop><action><!—将变量sum赋值为0--><assign assign_to="sum" value="0" /><!--将sum加2,然后再赋值给sum--><add assign_to="sum" value="2" /><!--将sum减3,然后再赋值给sum --><subtract assign_to="sum" value="3" /><!--将sum乘以4,然后再赋值给sum --><multiply assign_to="sum" value="4" /><!--将sum除以5,然后再赋值给sum,此时sum=-0.8 --><divide assign_to="sum" value="5" /></action></nop>浮点型变量还支持变量比较测试功能,该部分在分支一节中会重点描述。