SIPp 使用手册中文版_第1页
SIPp 使用手册中文版_第2页
SIPp 使用手册中文版_第3页
SIPp 使用手册中文版_第4页
SIPp 使用手册中文版_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SIPp使用手册中文版黄龙舟译 p 3.提高文件标识符限制 6 2.集成的脚本(场景) 72.1示范脚本:主叫(UAC) 8 2.3示范脚本:被叫(UAS.xml) 9l 2.73PCC(第三方呼叫控制) 10 SIPp 14 ML 6.1创建客户端(类似UAC)脚本 236.2创建服务端(类似UAS)脚本 276.3动作(Actions) 276.4变量 346.5条件分支 366.6SIP认证 386.7初始场景 40 8.传输层模式 42 2.SIPp内部调度机制 50 511.JEdit 512.Wireshark/tshark 51SIPcallflow 51one障;或者可以自定义SIP协议以测试终端对某些方面的容错或错误处理能力)。它能动态显sipp提供任何帮助和授权,sipp下载地址为/projects/sipp/files/pSIPpSIPp需要如下依赖组件:C++编译器curses者ncurses库对于需要支持统计分布的暂停:需要开源科学计算库(GnuScientificLibraries)有如下四个选项来编译SIPp:ippxxxtarcdsippremake包含TLS支持ippxxxtarcdsippfigurewithopensslmake包含PCAPplay支持ippxxxtarcdsippigurewithpcapmake包含SCTP支持ippxxxtarcdsippigurewithsctpmake或者组合支持以上功能ippxxxtarcdsippconfigurewithsctpwithpcap--with-opensslmakeakeautoconflibtoolmakelllibpcaplibpcapdevelncursesncursesdevelcdsippconfigurewithsctpwith-pcap--with-openssl持播放媒体(pcapplay),需要做如下工作:复制WinPcapdeveloperpackage到"C:\cygwin\lib\WpdPack"目录。移除或重命名"C:\cygwin\lib\WpdPack\Include"目录下的"pthread.h"文件根据以上步骤编译SIPp3.提高文件标识符限制使用命令行参数-maxsocket或者改变系统的设置来突破限制。至于如何提高文件的最大值,不同的系统修改方法或步骤不同。在内核为2.4版本的Linux系统上可以通过修改/etc/security/limits.conf文件和*softnofile32768*hardnofile65535然后打开/etc/pam.d/login文件并添加如下内容:iredlibsecuritypamlimitsso然后使用如下命令来永久更改文件描述符所能支持的最大值:ulimitsunlimitedulimitnunlimitedCentOS6.4上测试提ulimita更改成功,成功后如下图所示(openfiles为设置的值32768了)。1.主要特性Pp首先运行SIPp内嵌的服务器脚本,命令如下:#./sipp-snuas-ilocal_ip然后在同一台主机上运行SIPp内嵌的客户端脚本,命令如下:sippsnuac2.集成的脚本(场景)集成的脚本?是的,SIPp内置了若干个可执行的脚本,如服务器(UAS)脚本和客户端 SIPp内置的只是一些基本的脚本。以下介绍的均为集成(内置)的脚本2.1示范脚本:主叫(UAC)2.3示范脚本:被叫(UAS.xml)我下载。请见“6.3动作”。请点击下载branchc.xml和branchs.xml。这两个脚本是相互配合使用的,一个作主叫,UACOutofcall消息uac),则可能会用到out-of-call脚本,默认情况下脚本只是简3PCC(第三方呼叫控制) E控制器(Controller)实现3PCC功能。如下:脚本文件A:3pcc-A.xml(originalXMLfile)脚本文件B:3pcc-B.xml(originalXMLfile)脚本文件C-A:3pcc-C-A.xml(originalXMLfile)脚本文件C-B:3pcc-C-B.xml(originalXMLfile)CmdTADcalliddCmdCmderegregexpContentType*"gntoionvCmddAACKsip:[service]@[remote_ip]:[remote_port]SIP/2.0ViaSIP0/[transport][local_ip]:[local_port]Fromsippsipsipplocaliplocalporttag[call_number]Tosutsipserviceremoteip[remote_port]>[peer_tag_param]IDcallidCKontactsipsipplocaliplocalportMaxForwards70ormanceTestA转接,A和C通话,B退出通话具体是这样实现的。在扩展的3PCC模式中,发起呼叫的SIPp实例运行于主(master)SIPpsssNm,实例的格式如下:s0s0m:6080sendCmddestsTAIDcalliddCmdecvCmdsrcmeregregexpContentType*"gntoonvCmd上面这一段表明该实例正期望从“主”实例接收消息,注意:主实例脚本必须在最后SIPp是用来制台的一些简单命令来控制,使用到的热键如下:+e-*/c令控制台模式qQs转储当前屏幕状态到日志文件(仅当使用了-trace_screen参数时)p12345转储到日志文件lex设置呼叫速率步长(rate-scale)rsx设置同时在线的用户数(仅在指定了参数-users时生效)slimitx设置呼叫速率上限(等同于参数-l)limitlsesesetdisplayinooctruesetindexse图中的索引信息mainooconoff开启或关闭错误显示,仅对"error","logs","messages",roron流量控制SIPp根据脚本指定的内容产生sip流量,你可以控制每秒产生的sip呼叫(calls)个数。如果使用了参数-users,则是指定每秒并发的用户数(users),可以使用下面的方法来调节热键(上文已描述)交互式命令开数呼叫时指定的参数-r:指定每秒呼叫的个数-rp:指定呼叫速率的时间单位(毫秒),默认是1000毫秒(1秒)。通过这个参数可以指定每m毫秒里有n个呼叫(使用命令-rn-rpm)2)远程控制可以使用脚本来自动地控制一些动作,比如平滑地增加呼叫速率被测试的程序通过脚本可以根据负载向SIPp发送命令自动地控制呼叫速率setechodevudp/8889sleep5echodevudp/8889sleep5echodevudp/8889sleep5echodevudp/8889echoqdevudp/8889一直在后台运行。可以使用kill命令(killSIPp_PID,killSIPp进程号)终止SIPp。xmlversion"1.0"encoding="ISO-8859-1"?>scenarionameBasicSipstoneUAC面语句结束:nariosip消息命令(SIP消息命令包括<send>,<recv>,<nop>,<pause>,<sendCmd>和<recvCmd>)。开启一个“响应时间值(ResponseTimeDuration)”计时器,应时间<sendstart_rtd="invite">:当这个消息被发送的时候会开启停止五个中的一个“响应时间值”计时器,便于统计响应时间。计时器的个数序<sendrtd="invite">:当这个消息被发送的时候会停止invite重复使用“响应时间值”计时器,便于统<sendrtd="invite"repeat_rtd="true">:名为invite的计时rlf在脚本视图中对应的<sendcrlf="true">一个空行next属性可以使当前的执行跳到脚本的另一部分,前提是收到了当段脚本定义的消<sendnext="12"><![CDATA[ACKsip:[service]@[remote_ip]:[remote_port]SIP/2.0Via:...From:...To:...Call-ID:...Cseq:...Contact:...Max-Forwards:...Subject:...Content-Length:0]]></send><recvresponse="100"optional="true"></recv><recvresponse="180"optional="true"></recv><recvresponse="403"optional="true"next="5"></recv><recvresponse="200"></recv>求外,同时仅当设置K<sendnext="6"test="4"><![CDATA[ACKsip:[service]@[remote_ip]:[remote_port]SIP/2.0Via:...From:...To:...Call-ID:...Cseq:...Contact:...Max-Forwards:...Subject:...Content-Length:0]]></send>置后按设定的机率跳脚本。<recvresponse="403"optional="true"next="5"test="3"chance="0.90"></recv>值被设置时执行执行这个元素,具体例子可以参考“6.7初始分。<nopcondexec="executethis"><nopcondexec="skipthis"condexec_inverse="true">累加计数器,计算对应参数的执行次数,结果在统计视图中体dsection.2<sendretrans="500">:表示每500ms重传输该消息。率<sendlost="10">:发送的丢包率为10%本属性用来记录响应时间,该属性记录本次发以在收到回应时能够精sendstart_txn="invite">:存储本次会话(由branchid唯一指定)消息,名称记为“invite”本属性用来记录响应时间,该属性与start_txn指定的消息对应,这两个消息必须成对出现,“invite”的会话消息指定SIPp期望收到的SIP3xx等<recvresponse="200">:表示SIPp期望收到代码为指定SIPp期望到收的SIPrecvrequestACKSIPp期望收到ACK请求息是可选的,对端可以可以没有回这个期望的Pp个消息是否匹配一个标当optional设置为到一个消息时会检查脚步骤。<recvresponse="100"optional="true">:表示SIPpRecordRouteSet,果该属性被设置为“true”则收到的消息中的消息route]关键词调用。<recvresponse="100"rrs="true">.被设置为“true”则消息中的消息头:"会被存储并可以用来ntication<recvresponse="407"auth="true">.率eout设置超时,如果期望的消息在指定的时间里面<recvtimeout="100000">在超时之后跳到指定标号<recvresponse="100"timeout="100000"ontimeout="5"></recv>指定当收到指定的消息action则表达式实例:<recvresponse="200"><action><eregregexp="([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]*"search_in="msg"check_it="true"assign_to="1,2"/></action></recv>达式([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]*的字符串,并存储在变量1和2中,这个表达式的意义实际上是提取ip地址和端口号。布尔值。检查收到的请求(Request)是否匹配指定包含的消息,如果式,这个方法可以用来一次提取多个请求中的方便<recvrequest="MESSAGE|PUBLISH|SUBSCRIBE"crlf="true"regexp_match="true"></recv>表示这个响应消应是与之前开始的(start_txn)<recvresponse="200"response_txn="invite"/>:表示仅响应以start_txn="invite"发送的消息>定义暂停的时间,单位<pausemilliseconds="5000"/>:暂停脚本5秒钟iable表示使用哪个呼叫变量来决定该呼叫是否需要<pausevariable="1"/>:当含有呼叫变量1时暂停n表示使用GSL(GNU科学计算库)决定的呼叫长度来对呼叫进行暂停。用固定值或者指定一个范围。使用高斯分布,则有以下几种统计分布exponential,gamma,lambda,lognormal,negbin(negativebinomial),pareto,和时,需要指定对应的参1、不使用GSL时,可以使用以下两种方法来对呼叫进<pausedistribution="fixed"value="1000"/>,<pausedistribution="uniform"min="2000"GSL参数的命名与Wikipedia中关于分布的描述页面一致。举几例如下:<pausedistribution="normal"mean="60000"stdev="15000"/>,提供一个平均偏差为60秒和标准差为15秒的暂停分布值,平均差与标准差的值整型值,分布图形如下:<pausedistribution="lognormal"mean="12.28"stdev="1"/>,创建一个分布,该分布是以平均差准差为双精度型,单位为毫秒,分布图如下:<pausedistribution="exponential"mean="900000"/>,创建一个平均值为15分钟的指<pausedistribution="weibull"lambda="3"k="4"/>,创建一个威尔布分布。<pausedistribution="pareto"k="1"x_m="2"/>创建一个帕累托分布。<pausedistribution="gamma"k="3"theta="2"/>,创建一个伽马分布<pausedistribution="negbin"p="0.1"n="2"/>创建一个负二项分布。he完整性检查。默认情况下统计分布暂停都会执行完整性检查以保证暂停值不会超过程序设定的最大值,可以将该值<pausedistribution="lognormal"mean="10"stdev="10"sanity_check="false"/>播放声音或视频的命令<nop><action><execplay_pcap_audio="pcap/g711a.pcap"/></action></nop>C<sendCmd><![CDATA[Call-ID:[call_id]]]></sendCmd>的3方<sendCmddest="s1">:当接收到命令时定义一<recvCmd><action<eregregexp="Content-Type:.*"search_in="msg"assign_to="2"/></action></recvCmd><sendCmddest="s1">el属性值id是一个整型比如标号13:<labelid="13"/>seTimepartition>e<ResponseTimeRepartitionvalue="10,20,30"/>:表示响应时间分类为0-10,10-20,20-30和大于30e定义时间间隔,用于将<CallLengthRepartitionvalue="10,20,30"/>:baables<Globalsvariables="foo,bar"/>ables<Uservariables="foo,bar"/>ables脚本运行提示有存在未用到的变量时,可以使<Referencevariables="dummy"/>ause其实也蛮有规律的。比如有些命令在书写时是成对出现的,如<send></send>是一对,有些s6.1创建客户端(类似UAC)脚本scenarionameBasicSipstoneUACAerllIDcallidVITEMax-Forwards:70ormanceTesttTypeapplicationsdptentLengthlenouser7652353687637INIP[local_ip_type][local_ip]st=00INIPmediaiptypemediaipm=audio[media_port]RTP/AVP0pmapPCMUipvice址远端设备端口。可以在脚本中使用偏移量,如UDPTCP数-t决定可以由参数-i指定ip可由-p指定,可以在脚本中使用偏移量,如penpemp以设置偏移ediaportt个呼叫的音频和视频端口从-mp指定的端口开sip取指定头域(如果存在)的值。比如[last_to]则表示tofield-nfile<filename>ber的外部文件的起始行,field选择字段namesip。由于空格符,回车符及换行符不被某些关键词识式一样息用于认证头(authenticationhead),这个关键词可以使用参数,书写格式为:[authenticationrd如果没有指定用户名(username),则需使用命令行参数-au或者-s指定;如果没有指定密码 password命令行参数-ap指定“Record-Route”头被存储在关键词[route]中,可使用[routes]调用。生成一个由(z9hG4bK)+callnumber+message索提供消息号q在消息中包含sipp的内部时钟消息如果在命令行中指定了-users参数,则这个关键已经运行的用户的数量如果在命令行中指定了-users参数,则这个关键词表示当前正在运行的用户的id(范围为0到recvresponse>optional="true"recvresponseoptional="true"recvresponse>KendACKsipserviceremoteipremote_port]SIP/2.0ViaSIPtransportlocalip:[local_port]Fromsippsipsipplocaliplocalporttagcall_number]TosutsipserviceremoteipremoteportpeertagparamllIDcallideqACKContactsipsipplocaliplocalport]ardsTestentLengthdpausemilliseconds000"/>sendretrans0">pserviceremoteipremoteportSIPViaSIPtransportlocalip:[local_port]Fromsipp<sip:sipp@[local_ip]:[local_port]>;tag=[call_number]Tosut<sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]llIDcallidBYEContactsipsipplocaliplocalport]ardsTestentLengthdrecvresponse200">脚本nario6.2创建服务端(类似UAS)脚本stvrequestINVITEendIPRingingberlIDContactsiplocaliplocalporttransporttransport>entLengthd6.3动作(Actions)正则表达式(ereg)记录日志(log)执行外部命令(如系统命令),内部命令,以及播放pcap文件(exec)执行双精度变量算术运算给变量赋字符串值比较双精度变量跳到脚本的指定索引存储当前时间到变量在注入的可索引文件中查找指定词鉴权改变一个呼叫的网络地址正则表达式提取SIP消息中的内容或者SIP头并存储到变量中以在后续中用到(称之为再注入)检查SIP消息中的内容是否满足要求SIPpPSIX如何写表达式,可以参考此-<eregregexp=".*"search_in="hdr"header="Contact:"check_it="true"ssignto符串。search_in从消息From:siphello;tag=39f-29ee138中做果消息头为From:tagfeebodyvarSIPp。--Tolookforaheaderignoringcase.Onlyusedwhenthetagissettohdr1check_it设置为真时,如果不匹配则置此次呼叫为失败,不能同erse败o-将匹配的结果存储到指定单个变量或几个变量,使用$[n]n用于sip消息或者用于编写sipp条件分支脚本。在分配的几个变量中,第一个变量包含整个正则表达式的内容,接下来的其它变量依次匹:<eregregexp="o=([[:alnum:]]*)([[:alnum:]]*)[[:alnum:]]*)"search_in="msg"check_it="true"assign_to="3,4,5,8"/>ouser53687637特别提示一下:在同一个动作(action)中可以同时使用多个正个表达式。举例说明如第一个动作(Firstaction):提取接收到的sip消息中的第一个ipv4地址检查我们是否能够成功提取该ip地址第二个动作(Secondaction):提取接收到的消息的Contact头recvresponsestartrtdtrue>tioneregregexp,3}\.){3}[0-9]{1,3}:[0-9]*"search_in="msg"check_it="true"assign_to="1,2"/>eregregexpsearchinhdrheaderContact"check_it="true"assign_to="6"/>on2)记录日志log动作(action)可以记录自定义的日志,记录的消息保存在“脚本名_进程号.log”文在打开日志跟踪开关-trace_logs时才能产生日志。recvrequestINVITEcrlftruerrstrue>tioneregregexpsearchinhdrheaderSomeNewHeader:"assign_to="1"/>logmessageFromislastFromCustomheaderis[$1]"/>on还可以使用另一个动作“warning”来记录sipp的错误日志消息,如下:warningmessageFromislastFromCustomheaderis1]"/>3)执行命令动作“exec”可以用来执行内部命令,外部命令,或者播放音频或视频(命令udioplaypcapvideo(类似于使用ctrl+C强制退出sipp)。举个收到603后停止执行脚本的例子:recvresponse"optional="true">tioncmdstopnowoncommandshell令。举个ecvrequestINVITEtioncommandecholastFromisthefromheaderreceivedfromlistlogon令<execrtp_stream="pause"/>,暂停当前的流媒体<execrtp_stream="resume"/>,继续被暂停的流媒体命令“pcap_play”允许sipp发送预先录制好的RTP流媒体,共有play_pcap_audio/ptionxecplaypcapaudiopcapgapcaponp4)变量操作ptionassignassigntovalue="1"/>sampleassigntodistribution"normal"mean="0"stdev="1"/>以使用正测表达式来存储-->assignstrassigntovalue[field0]"/>todoubleassigntovariable="3"/>onpptionassignassigntovalue="0"/><!--$1==0-->addassigntovalue="2"/><!--$1==2-->subtractassigntovalue"/><!--$1==-1-->multiplyassignto1"value="4"/><!--$1==-4-->divideassignto"1"value="5"/><!--$1==-0.8-->onptionMultiplies$1byitself-->multiplyassigntovariable"1"/>DividesbyNotethat$2mustnotbezero-->multiplyassigntovariable"2"/>onp5)字符串变量ptionAssignthevalueinfield0oftheCSVfiletoa$1.-->assignstrassigntovaluefield0]"/>onpptionComparethevalueofstrvarto"Hello"andassignitto$result..-->cmpassigntoresultvariablestrvarvalueHelloonp6)变量测试llessthanequalptiontestassigntovariablecompare"less_than"value="10"/>onp7)查找一个从认证头(authorizationheader)中提取用户名并根据这个用户名找到user.csv文件中用户名的行号的一个例子:equestREGISTERtioneregregexpDigestusername""search_in="hdr"header="Authorization:"assign_to="junk,username"/>lookupassigntolinefileuserscsvkeyusername]"/>onp8)跳到一个索引ctedrptionjumpvalue/>onprptionumpvariableunexpretaddronp9)获得当前时间ptionfdayassigntosecondsmicrosecondsonpptionassignstrassigntourlvaluenexturl/><eregregexp="sip:.*@([0-9A-Za-z\.]+):([0-9]+);transport=([A-Z]+)"search_in="var"check_it="true"transportvariableurlsetdesthosthostportportprotocol"[$transport]"/>onpthrequestREGISTERAizationRequiredrDontactsiplocaliplocalporttransporttransportWWWAuthenticateDigestrealmtestexamplecomnonceebecdac5d4877b383027d28da013815"ngthlend然后根据结果采取接下来的动作:requestREGISTERtion<eregregexp="Digest.*username=\"([^\"]*)\""search_in="hdr"header="Authorization:"assigntojunkusername/>lookupassigntolinefileusersconfkeyusername"/>verifyauthassigntoauthvalidusernamefieldlineline]\"]"password="[field3line=\"[$line]\"]"/>onnophidetruetestauthvalidnextgoodauth/>nophidetruenext="badauth"/>nf6.4变量。SIPp所有呼叫生效,默认的变量仅对单个呼叫生效。呼叫之中保存其状态,全局变量和用户变量可以使用如下方法声明:balvariablesfoobarUservariablesbazquux"/>cvrequestINVITEtionegexpsipsearchinhdrheaderToassigntodummyurioniablesdummy的读取方式是顺序读取(SEQUENTIAL)还是随机读取(RANDOM)还是基于用户的方式读取 USER脚本中作为变量名[filed0],[field1],„„[fieldn]来引用。例如:TIALhislinewillbeignoredahsipphonehoneislinetooned用图片说明一下,以加深理解。TEsipfieldfilecalleecsvSIPlercsvtagpidSIPpTagcallnumbertuserfieldfilecalleecsv2)格式化输出的引用文件PRINTF况下,一个SIPp的外部文件是含asswordasswordasswordNTFasswordd:FsworddFoordpassworddBarsswordFoopasswordBarsswordFoopasswordBar3)PRINTF引入文件的参数设置生成数的起始值FSET次为10,12,14,„„4)索引注入的文件infindexinfindex的参数是将要被索引的文件的文件cepassAbob,pass_BassCndexuserscsv6.5条件分支条件分支脚本SIPp本的一个部分跳到脚本的另一个部分。这个功能使用标号实现:在脚本中定义一个标号如<labelnexttestm在变量[$m]有值时才会跳2)条件分支脚本中的随机执行SIPp来编写“概率分支(statisticalchance=”0.90”)来实现,chance表6.6SIP认证hmonthenticationusernamejoepasswordschmoauthenticationusernameor'-s'(service)指定。uthenticationpasswordDigest/AKA:(例如:[authenticationusername=HappyFeetakaOPxCDCDEFBD6AC72CB318xBCEBBFAAFAEEABCakaAMFxBB authenticationusernameor'-s'(service)指定。aka_K:Permanentsecretkey.Ifnoaka_Kisprovided,the"password"attributedisusedasaka_K.tkeyaka_AMF:AuthenticationManagementField(indicatesthealgorithmandkeyin假如你想针对不同的呼叫使用不同的认证,可以使用CSV文件如:TIALenticationusernamejoepasswordschmothenticationusernamejohnpasswordsmithcationusernamebettypasswordboop然后XML脚本文件如下([field1]会被auth替换)sendretranseipSIPViaSIPtransportlocaliplocal_port]sipfieldremoteipremoteportContactsipfieldlocaliplocalport>;transport=[transport]reslIDcallidqREGISTERentLengthdrecvresponse"auth="true">endACKsipserviceremoteip[remote_port]SIP/2.0ViaSIPtransportlocaliplocal_port]romsippsipsipplocaliplocalporttagcallnumberutsipserviceremoteipremoteportpeertagparamlIDcallidSeqACKontactsipsipplocaliplocalportardsTestentLengthdsendretrans0">EsipserviceremoteipremoteportSIPViaSIPtransportlocaliplocal_port]romsippsipsipplocaliplocalporttagcallnumbertsipserviceremoteipremoteportlIDcallidSeqINVITEontactsipsipplocaliplocalportionusernamefoouserardsTestationsdpngthlenouser7652353687637INIP[local_ip_type][local_ip]t=00cINIPmediaiptype[media_ip]AVPartpmapPCMU/8000d6.7初始场景景(initializationstanza)功能可以实现这个功能。创建初始场景的方法很简单,只要在命令init</init>和之间插入一些<nop>和<label>命令就行了。在初始场景中的变量,仅用于全ByDefaultTHINKTIMEistrue.-->ptionstrcmpassigntoemptyvariableTHINKTIMEvaluetestassigntoemptycompareequalvariableemptyvalue/>onpondexecemptytionassignstrassigntoTHINKTIMEvalue/>onpt能可以配合命令行参数-set来使用以使用复杂的功能。7.运行界面键1:脚本视图,显示脚本的流程和一些重要的信息Periodic情况(使用-f参数8.传输层模式SIPp输层模式,其默认模式为“UDPmonosocket”模式DPmonosocket在UDPmonosocket模式中(命令行参数-tu1),仅打开一个IP/UDPsocket与远端系统UDPmultisocketip地址的field(用命令行参数“ip_fieldx”来指定),这种模式需分两种情况讨论:rveripsippsfmyscenarioxmltuiinfdatabasecsvipfield168.1.14)TCPmonosocket)TCPmultisocke7)TCP重连接-max_reconnect:设置尝试重新连接的最大次数-reconnect_closetrue/false:设置是否关闭呼叫当重新连接时 8)IPv6支持sippsnuasifeff:fe4d:19d9]-p5063sippsnuacifefffeddfe0::204:75ff:fe4d:19d9]:50639.媒体处理1)RTP回送(RTPecho)RTP回送功能使SIPp能够监听一或两个(使用-mi或-mp命令指定)本地端口用来处理2)RTP流传送3)PCAP播放功能支持任意编码格式(SIPp并不处理解码)能够产生与所抓取的网络包完全一致的消息p10.退出码0:所有呼叫均成功个呼叫失败l-1:致命错误查看退出码的方法不一样,你可以使用“echo?”命令查看退出码11.统计响应时间统计2)可用的计数器StartTime:脚本开始运行的时间日期DateandtimewhenperiodiccounterswherelastresetedCurrentTime:当前统计的日期和时间ElapsTimeCallRate:呼叫速率,每秒ncomingCallOutcomingCall:呼出的呼叫数量TotalCallCreated:总共生成的呼叫个数CurrentCall:正在进行的呼叫SuccessfulCall:成功的呼叫CallFailedCannotSendMessage:不能发送消息的呼叫(传输层问题)ledMaxUDPRetransUnexpectedMessageledRegexpShouldntMatchFailedRegexpHdrNotFound的呼叫FailedTimeoutOnRecv叫FailedTimeoutOnSend致失败的呼叫OutOfCallMsgs:不能与存在的呼叫匹配的消息个数missionsAutoAnsweredok息的个数3)详细消息统计数-trace_counts可对发送或接收的消息的个数统计进行保存。12.错误处理未预料的消息当SIPp收到一个sip消息能与现存的呼叫进行匹配(通过call-id)但是不是脚本所pectedokbye200ok,那么sipp会发送一个cancel并记此次呼叫为失败(failed);如果收到的是记为失败2)重传输机制(仅UDP)在运行过程,SIPp提供了多种方法记录日志。-trace_msg命令-trace_shortmsg-trace_err:追踪错误消息-trace_error_codes-trace_countse13.在线帮助运行内置的服务器(uas)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论