CN101951447A - 行为可编程的sip呼叫模拟方法 - Google Patents
行为可编程的sip呼叫模拟方法 Download PDFInfo
- Publication number
- CN101951447A CN101951447A CN2010102886926A CN201010288692A CN101951447A CN 101951447 A CN101951447 A CN 101951447A CN 2010102886926 A CN2010102886926 A CN 2010102886926A CN 201010288692 A CN201010288692 A CN 201010288692A CN 101951447 A CN101951447 A CN 101951447A
- Authority
- CN
- China
- Prior art keywords
- functional module
- called
- caller
- sip functional
- sip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种行为可编程的SIP呼叫模拟方法,将模拟用户呼叫行为用主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识六个调制参数来描述,并构成呼叫脚本送入客户端SIP功能模块中,然后客户端SIP功能模块与服务端SIP功能模块根据模拟用户呼叫行为这六个调制参数进行交互,通过抓包程序在通信链路上获得每一模拟用户呼叫行为对应的SIP信令,送入被测试对象,进行仿真和实验。由于客户端SIP功能模块可以同时读取多个用户呼叫行为的呼叫脚本进行处理,因此,可以精确地模拟多个用户的呼叫行为,得到准确的、并发的、完全可控的SIP信令流。
Description
技术领域
本发明属于语音通信技术领域,更为具体地讲,涉及一种行为可编程的SIP(Session Initial Protocol,会话初始协议)呼叫模拟方法,通过该方法,可以实现对多个用户呼叫行为的精确模拟。
背景技术
会话初始协议((Session Initial Protocol,以下简称SIP)是下一代网络(Next Generation Network)中的重要协议,它由互联网工程任务组(Intemet Engineering Task Force,简称IETF)制定,是一个灵活、通用的工具。SIP本身并不是一个垂直集成的通信系统,而需要与其他协议,如实时传输协议(Real-time Transport Protocol,简称RTP),会话描述协议(Session Description Protocol,简称SDP)等协作以构成完整的多媒体通信系统向用户提供业务。由于与下层的传输协议以及会话类型无关,SIP能够为不同的业务提供信令功能。SIP协议用于创建、修改及结束拥有一个或多个参与者的会话。
SIP是基于文本的协议,具有很好的扩展性,能够方便地进行定制,以满足特定业务的需求,并且易于实现,使它得到了广泛的应用。随着网络的演进与融合,SIP成为传统公共交换电话网络(Public Switched Telephone Network,以下简称PSTN)与IP网络间语音通信的重要组成部分。
由于SIP的应用是基于IP网络的,因此SIP在具有IP网络的优势的同时也为语音通信网络,特别是PSTN网络,带来了IP网络中存在的安全隐患。如今对于SIP所存在的安全问题已经有了比较多的研究,但现有研究关注的问题是协议漏洞带来的安全隐患、攻击模式及其实现以及防御算法,没有给出一个通用的实验平台。现有的SIP呼叫模拟软件,如SIPp,无法精确模拟多个用户的呼叫行为。
发明内容
本发明目的在于克服现有技术的不足,提出一种行为可编程的SIP呼叫模拟方法,可以精确地模拟多个用户的呼叫行为,得到准确的、并发的、完全可控的SIP信令流,这样可以让研究者专注于SIP协议漏洞、SIP攻击模式以及防御算法的研究,更为高效地进行仿真与实验。
为实现上述发明目的,本发明行为可编程的SIP呼叫模拟方法,其特征在于,包括以下步骤:
(1)、研究者根据仿真和实验的需要,设计出一系列的需要模拟的用户呼叫行为,每个用户呼叫行为用主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识六个调制参数来描述,并构成呼叫脚本;其中,挂机标识为的取值为0或1,0表示主叫挂机、1表示被叫挂机;
根据呼叫的结束方式,将用户呼叫行为分为:正常呼叫、无人接听/振铃超时、被叫忙、被叫拒绝接听;
(2)、呼叫脚本送入客户端SIP功能模块中,客户端SIP功能模块同时读取多条用户呼叫行为的呼叫脚本,然后分别判断振铃时间是否为0;如果为0,转入被叫忙呼叫行为信令处理流程,如果不为0,则进行步骤(3);
(3)、判断用户呼叫行为的通话时间是否为0;如果不为0,转入正常呼叫行为信令处理流程;如果为0,则进一步判断挂机标识是否为0,如果挂机标识为0,则进入无人接听/振铃超时呼叫行为处理流程,如果挂机标识不为0进入被叫拒绝接听呼叫行为处理流程;
所述的正常呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
101、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
102、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
103、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100Trying作为临时应答;
104、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
105、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
106、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
107、振铃时间计时器在开启振铃时间时长后超时;
108、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送200OK表示摘机;
109、服务端SIP功能模块的被叫摘机后,开启通话时间计时器,开始计时;
110、客户端SIP功能模块的主叫收到200OK后发送ACK进行确认,至此主被叫间通信连接已建立,开始通话;
111、通话时间计时器在开启通话时间时长后超时;
112、在通话时间计时器超时后,根据挂机标识是1或0,服务端SIP功能模块的被叫或客户端SIP功能模块的主叫通过通信链路向客户端SIP功能模块的主叫或服务端SIP功能模块的被叫发送BYE表示此次通话结束;
113:客户端SIP功能模块的主叫或服务端SIP功能模块的被叫收到BYE后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
所述的无人接听/振铃超时呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
201、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
202、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
203、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
204、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
205、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
206、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
207、振铃时间计时器在开启振铃时间时长后超时;
208、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送480 Temporarily Unavailable,表示无人接听/振铃超时;
209、客户端SIP功能模块的主叫收到480 Temporarily Unavailable后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束。
所述的被叫忙呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
301、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
302、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
303、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
304、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
305、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送486 BUSY表示忙;
306、客户端SIP功能模块的主叫收到486 BUSY后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
所述的被叫拒绝接听呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
401、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
402、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
403、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
404、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
405、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
406、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
407、振铃时间计时器在开启振铃时间时长后超时;
408、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送603 Decline表示拒绝接听电话;
409、客户端SIP功能模块的主叫收到603 Decline后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
(4)、通过抓包程序在通信链路上获得每一模拟用户呼叫行为对应的SIP信令,送入被测试对象,进行仿真和实验。
在本发明中,将模拟用户呼叫行为用主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识六个调制参数来描述,并构成呼叫脚本送入客户端SIP功能模块中,然后客户端SIP功能模块与服务端SIP功能模块根据模拟用户呼叫行为这六个调制参数进行交互,通过抓包程序在通信链路上获得每一模拟用户呼叫行为对应的SIP信令,送入被测试对象,进行仿真和实验。由于客户端SIP功能模块可以同时读取多个用户呼叫行为的呼叫脚本进行处理,因此,可以精确地模拟多个用户的呼叫行为,得到准确的、并发的、完全可控的SIP信令流。
附图说明
图1是本发明行为可编程的SIP呼叫模拟方法的流程图;
图2是本发明行为可编程的SIP呼叫模拟方法的网络模型图;
图3是图1所示正常呼叫行为信令处理流程的一种具体实施方式流程图;
图4是图1所示无人接听/振铃超时呼叫行为信令处理流程的一种具体实施方式流程图;
图5是图1所示被叫忙呼叫行为信令处理流程的一种具体实施方式流程图;
图6是图1所示被叫拒绝接听呼叫行为信令处理流程的一种具体实施方式流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明行为可编程的SIP呼叫模拟方法的流程图。
图1所反映的内容与发明内容中的内容一致,在此不再赘述。以下是步骤(1)中,用主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识六个调制参数来描述,并构成呼叫脚本的实例,在本实例中,呼叫脚本用xml文档结构进行组织。
<sip>
<caller>Bob<sip:bob@10.0.0.5></caller>
<callee>Alice<alice@10.0.0.3><callee>
<calldelay>2000<calldelay>
<ringtime>5000<ringtime>
<calltime>240000<calltime>
<endflag>1</endflag>
</sip>
..........................
...........................
<sip>
<caller>Bob<sip:bob@10.0.0.5></caller>
<callee>Alice<alice@10.0.0.3><callee>
<calldelay>2000<calldelay>
<ringtime>40000<ringtime>
<calltime>0<calltime>
<endflag>0</endflag>
</sip>
..........................
..........................
<sip>
<caller>Bob<sip:bob@10.0.0.5></caller>
<callee>Alice<alice@10.0.0.3><callee>
<calldelay>2000<calldelay>
<ringtime>0<ringtime>
<calltime>0<calltime>
<endflag>0</endflag>
</sip>
..........................
..........................
<sip>
<caller>Bob<sip:bob@10.0.0.5></caller>
<callee>Alice<alice@10.0.0.3><callee>
<calldelay>2000<calldelay>
<ringtime>3000<ringtime>
<calltime>0<calltime>
<endflag>1</endflag>
</sip>
其中:
<sip/>一条用户呼叫行为
<caller/>主叫URI
<callee/>被叫URI
<calldelay/>呼叫建立时间
<ringtime/>振铃时间
<calltime/>通话时间
<endflag/>挂机标识
在现实的公共交换电话PSTN网络中,每个电话用户即可以作为主叫呼出电话,也可以作为被叫用户接受呼叫。而本发明中,呼叫脚本中的主叫URI和被叫URI是随机产生的,所以在同时模拟多个用户呼叫行为时,为了确保呼叫模拟更加精确,需要解决以下两种特殊情况:其一,当主叫用户A呼叫被叫用户B后,两者此刻相对于其他用户处于忙状态,即此刻如果有新的主叫用户C呼叫用户A或者用户B就会产生忙音;其二,当主叫用户A呼叫被叫用户B,两者建立会话后,需要保证用户A和用户B不能再发起新的呼叫。进一步说明,本发明中PSTN模型中话路忙的定义如下:1.用户的摘机到对应于此次摘机的挂机期间;2.振铃期间。
作为进一步的改进,在本发明步骤(2)中,呼叫脚本送入客户端SIP功能模块中,客户端SIP功能模块同时读取多条用户呼叫行为的呼叫脚本后,先判断主叫URI是否处于忙的状态,如果为忙,则忽略此用户呼叫行为的呼叫脚本,如果处于空闲状态,然后分别判断振铃时间是否为0;如果为0,转入被叫忙呼叫行为信令处理流程,如果不为0,则进行步骤(3);
在所述的四种呼叫行为信令处理流程中,在客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求后,需要将此主叫URL设定为忙;
在服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100Trying作为临时应答后,需要在服务端SIP功能模块判断被叫URI是否处于忙状态:如果处于忙状态,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送486BUSY表示忙,客户端SIP功能模块的主叫收到486BUSY后,将主叫URI设为空闲,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;如果处于空闲状态,则进行下一步;
同时,在正常呼叫行为、无人接听/振铃超时呼叫行为以及被叫拒绝接听呼叫行为呼叫信令处理流程中,客户端SIP功能模块在收到180Ringing应答后,将被叫URL设定为忙。
通过上述改进,主叫URI、被叫URI在会话时,会设置为忙状态,此时,如果呼叫脚本中主叫URI同正在会话的主叫URI、被叫URI相同,则会被忽略,不会发起新的呼叫,同时,如果主叫URI呼叫正在会话的主叫URI、被叫URI,则会向主叫发送486BUSY表示忙。这样,精确更加精确地模拟现实的公共交换电话PSTN网络中多个用户的呼叫行为。
图2是本发明行为可编程的SIP呼叫模拟方法的网络模型图。
如图2所示,模拟用户呼叫行为的呼叫脚本送入客户端SIP功能模块中,然后客户端SIP功能模块与服务端SIP功能模块根据模拟用户呼叫行为六个调制参数进行交互,通过抓包程序在通信链路上获得每一模拟用户呼叫行为对应的SIP信令,送入被测试对象,进行仿真和实验。
图3是图1所示正常呼叫行为信令处理流程的一种具体实施方式流程图。
在本实施例中,如图3所示,本实例以正常的呼叫行为为例进行说明,正常呼叫是具有主叫呼叫、接通振铃、被叫摘机、一方挂机的完整过程,其中:六个调制参数主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识分别用R1~R6表示,在本实施例中,R1={Bob<sip:bob@10.0.0.5>},R2={Alice<alice@10.0.0.3>},R3={2000},R4={5000},R5={240000},R6={1},呼叫建立时间R3、振铃时间R4、通话时间R5的值的单位为毫秒,具体包括以下步骤:
首先客户端SIP功能模块将呼叫脚本中的主叫URI Bob<sip:bob@10.0.0.5>和被叫URI Alice<alice@10.0.0.3>,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
101、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>摘机发起对被叫Alice<alice@10.0.0.3>的呼叫,通过通信链路向被叫Alice<alice@10.0.0.3>发送INVITE请求;
102、服务端SIP功能模块的Alice<alice@10.0.0.3>被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
103、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送100Trying作为临时应答;
104、呼叫建立时间计时器在开启呼叫建立时间R3时长,即2秒后超时;
105、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送180Ringing表示开始振铃;
106、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送振铃后,开启振铃时间计时器,开始计时;
107、振铃时间计时器在开启振铃时间R4时长,即5秒后超时;
108、在振铃时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送200OK表示摘机;
109、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>摘机后,开启通话时间计时器,开始计时;
110、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>收到200OK后发送ACK进行确认,至此主被叫间通信连接已建立,开始通话;
111、通话时间计时器在开启通话时间R5时长,即4分钟后超时;
112、在通话时间计时器超时后,根据挂机标识R6是1或0,在本实施例中为1,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送BYE表示此次通话结束;
113:客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>收到BYE后,通过通信链路向服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送ACK进行确认,至此本次会话结束。
图4是图1所示无人接听/振铃超时呼叫行为信令处理流程的一种具体实施方式流程图。
在本实施例中,如图4所示,本实例以无人接听/振铃超时的呼叫行为为例进行说明。六个调制参数主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识R1~R6为:R1={Bob<sip:bob@10.0.0.5>},R2={Alice<alice@10.0.0.3>},R3={2000},R4={40000},R5={0},R6={0},呼叫建立时间R3、振铃时间R4、通话时间R5的值的单位均为毫秒,具体包括以下步骤:
首先客户端SIP功能模块将呼叫脚本中的主叫URI Bob<sip:bob@10.0.0.5>和被叫URI Alice<alice@10.0.0.3>,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
201、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>摘机发起对被叫Alice<alice@10.0.0.3>的呼叫,通过通信链路向被叫Alice<alice@10.0.0.3>发送INVITE请求;
202、服务端SIP功能模块的Alice<alice@10.0.0.3>被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
203、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送100Trying作为临时应答;
204、呼叫建立时间计时器在开启呼叫建立时间R3时长,即2秒后超时;
205、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送180 Ringing表示开始振铃;
206、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送振铃后,开启振铃时间计时器,开始计时;
207、振铃时间计时器在开启振铃时间R4时长,即40秒后超时;
208、在振铃时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送480 Temporarily Unavailable,表示无人接听/振铃超时;
209、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>收到480 TemporarilyUnavailable后,通过通信链路向服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送ACK进行确认,至此本次会话结束。
图5是图1所示被叫忙呼叫行为信令处理流程的一种具体实施方式流程图。
在本实施例中,如图5所示,本实例以被叫忙的呼叫行为为例进行说明。六个调制参数主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识R1~R6为:R1={Bob<sip:bob@10.0.0.5>},R2={Alice<alice@10.0.0.3>},R3={2000},R4={0},R5={0},R6={0},呼叫建立时间R3、振铃时间R4、通话时间R5的值的单位均为毫秒。
首先客户端SIP功能模块将呼叫脚本中的主叫URI Bob<sip:bob@10.0.0.5>和被叫URI Alice<alice@10.0.0.3>,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
301、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>摘机发起对被叫Alice<alice@10.0.0.3>的呼叫,通过通信链路向被叫Alice<alice@10.0.0.3>发送INVITE请求;
302、服务端SIP功能模块的Alice<alice@10.0.0.3>被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
303、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送100 Trying作为临时应答;
304、呼叫建立时间计时器在开启呼叫建立时间R3时长,即2秒后超时;
305、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送486BUSY表示忙;
306、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>收到486BUSY后,通过通信链路向服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送ACK进行确认,至此本次会话结束。
图6是图1所示被叫拒绝接听呼叫行为信令处理流程的一种具体实施方式流程图。
在本实施例中,如图6所示,本实例以被叫拒绝接听的呼叫行为为例进行说明。六个调制参数主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识R1~R6为:R1={Bob<sip:bob@10.0.0.5>},R2={Alice<alice@10.0.0.3>},R3={2000},R4={3000},R5={0},R6={1},呼叫建立时间R3、振铃时间R4、通话时间R5的值的单位均为毫秒,具体包括以下步骤:
首先客户端SIP功能模块将呼叫脚本中的主叫URI Bob<sip:bob@10.0.0.5>和被叫URI Alice<alice@10.0.0.3>,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
401、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>摘机发起对被叫Alice<alice@10.0.0.3>的呼叫,通过通信链路向被叫Alice<alice@10.0.0.3>发送INVITE请求;
402、服务端SIP功能模块的Alice<alice@10.0.0.3>被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
403、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送100Trying作为临时应答;
404、呼叫建立时间计时器在开启呼叫建立时间R3时长,即2秒后超时;
405、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送180Ringing表示开始振铃;
406、服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送振铃后,开启振铃时间计时器,开始计时;
407、振铃时间计时器在开启振铃时间R4时长,即3秒后超时;
408、在振铃时间计时器超时后,服务端SIP功能模块的被叫Alice<alice@10.0.0.3>通过通信链路向客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>发送603Decline表示拒绝接听电话;
409、客户端SIP功能模块的主叫Bob<sip:bob@10.0.0.5>收到603Decline后,通过通信链路向服务端SIP功能模块的被叫Alice<alice@10.0.0.3>发送ACK进行确认,至此本次会话结束。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种行为可编程的SIP呼叫模拟方法,其特征在于,包括以下步骤:
(1)、研究者根据仿真和实验的需要,设计出一系列的需要模拟的用户呼叫行为,每个用户呼叫行为用主叫URI、被叫URI、呼叫建立时间、振铃时间、通话时间、挂机标识六个调制参数来描述,并构成呼叫脚本;其中,挂机标识为的取值为0或1,0表示主叫挂机、1表示被叫挂机;
根据呼叫的结束方式,将用户呼叫行为分为:正常呼叫、无人接听/振铃超时、被叫忙、被叫拒绝接听;
(2)、呼叫脚本送入客户端SIP功能模块中,客户端SIP功能模块同时读取多条用户呼叫行为的呼叫脚本,然后分别判断振铃时间是否为0;如果为0,转入被叫忙呼叫行为信令处理流程,如果不为0,则进行步骤(3);
(3)、判断用户呼叫行为的通话时间是否为0;如果不为0,转入正常呼叫行为信令处理流程;如果为0,则进一步判断挂机标识是否为0,如果挂机标识为0,则进入无人接听/振铃超时呼叫行为处理流程,如果挂机标识不为0进入被叫拒绝接听呼叫行为处理流程;
所述的正常呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
101、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
102、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
103、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
104、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
105、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
106、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
107、振铃时间计时器在开启振铃时间时长后超时;
108、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送200OK表示摘机;
109、服务端SIP功能模块的被叫摘机后,开启通话时间计时器,开始计时;
110、客户端SIP功能模块的主叫收到200OK后发送ACK进行确认,至此主被叫间通信连接已建立,开始通话;
111、通话时间计时器在开启通话时间时长后超时;
112、在通话时间计时器超时后,根据挂机标识是1或0,服务端SIP功能模块的被叫或客户端SIP功能模块的主叫通过通信链路向客户端SIP功能模块的主叫或服务端SIP功能模块的被叫发送BYE表示此次通话结束;
113:客户端SIP功能模块的主叫或服务端SIP功能模块的被叫收到BYE后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
所述的无人接听/振铃超时呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
201、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
202、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
203、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
204、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
205、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
206、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
207、振铃时间计时器在开启振铃时间时长后超时;
208、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送480 Temporarily Unavailable,表示无人接听/振铃超时;
209、客户端SIP功能模块的主叫收到480 Temporarily Unavailable后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束。
所述的被叫忙呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
301、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
302、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
303、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100Trying作为临时应答;
304、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
305、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送486 BUSY表示忙;
306、客户端SIP功能模块的主叫收到486 BUSY后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
所述的被叫拒绝接听呼叫行为信令处理流程为:
首先客户端SIP功能模块将呼叫脚本中的主叫URI和被叫URI,填入SIP信令的起始行、From头域、To头域、Contact头域以及Via头域的相应位置;然后进行以下步骤:
401、客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求;
402、服务端SIP功能模块的被叫收到INVITE请求后,开启呼叫建立时间计时器,开始计时;
403、服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答;
404、呼叫建立时间计时器在开启呼叫建立时间时长后超时;
405、在呼叫建立时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送180 Ringing表示开始振铃;
406、服务端SIP功能模块的被叫发送振铃后,开启振铃时间计时器,开始计时;
407、振铃时间计时器在开启振铃时间时长后超时;
408、在振铃时间计时器超时后,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送603 Decline表示拒绝接听电话;
409、客户端SIP功能模块的主叫收到603 Decline后,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;
(4)、通过抓包程序在通信链路上获得每一模拟用户呼叫行为对应的SIP信令,送入被测试对象,进行仿真和实验。
2.根据权利要求1所述的行为可编程的SIP呼叫模拟方法,其特征在于:
在本发明步骤(2)中,呼叫脚本送入客户端SIP功能模块中,客户端SIP功能模块同时读取多条用户呼叫行为的呼叫脚本后,先判断主叫URI是否处于忙的状态,如果为忙,则忽略此用户呼叫行为的呼叫脚本,如果处于空闲状态,然后分别判断振铃时间是否为0;如果为0,转入被叫忙呼叫行为信令处理流程,如果不为0,则进行步骤(3);
在所述的四种呼叫行为信令处理流程中,在客户端SIP功能模块的主叫摘机发起对被叫的呼叫,通过通信链路向被叫URI发送INVITE请求后,需要将此主叫URL设定为忙;
在服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送100 Trying作为临时应答后,需要在服务端SIP功能模块判断被叫URI是否处于忙状态:如果处于忙状态,服务端SIP功能模块的被叫通过通信链路向客户端SIP功能模块的主叫发送486 BUSY表示忙,客户端SIP功能模块的主叫收到486 BUSY后,将主叫URI设为空闲,通过通信链路向服务端SIP功能模块的被叫发送ACK进行确认,至此本次会话结束;如果处于空闲状态,则进行下一步;
同时,在正常呼叫行为、无人接听/振铃超时呼叫行为以及被叫拒绝接听呼叫行为呼叫信令处理流程中,客户端SIP功能模块在收到180 Ringing应答后,将被叫URL设定为忙。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010288692 CN101951447B (zh) | 2010-09-21 | 2010-09-21 | 行为可编程的sip呼叫模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010288692 CN101951447B (zh) | 2010-09-21 | 2010-09-21 | 行为可编程的sip呼叫模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101951447A true CN101951447A (zh) | 2011-01-19 |
CN101951447B CN101951447B (zh) | 2012-12-05 |
Family
ID=43454803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010288692 Expired - Fee Related CN101951447B (zh) | 2010-09-21 | 2010-09-21 | 行为可编程的sip呼叫模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101951447B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103124315A (zh) * | 2012-11-05 | 2013-05-29 | 太仓市同维电子有限公司 | 一种在voip终端上实现远程诊断语音功能设计的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421424B1 (en) * | 2000-06-05 | 2002-07-16 | International Business Machines Corp. | Client simulator and method of operation for testing PSTN-to-IP network telephone services for individual & group internet clients prior to availability of the services |
CN101039268A (zh) * | 2007-03-02 | 2007-09-19 | 华为技术有限公司 | 限制用户设备接入的方法及mgc和cscf |
CN101146100A (zh) * | 2007-09-19 | 2008-03-19 | 北京交通大学 | 一种基于传输协议sctp和dccp的sip网络电话实现方法 |
CN101420637A (zh) * | 2007-10-22 | 2009-04-29 | 中兴通讯股份有限公司 | 一种利用会话初始协议呼叫器进行大话务量测试的方法 |
-
2010
- 2010-09-21 CN CN 201010288692 patent/CN101951447B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421424B1 (en) * | 2000-06-05 | 2002-07-16 | International Business Machines Corp. | Client simulator and method of operation for testing PSTN-to-IP network telephone services for individual & group internet clients prior to availability of the services |
CN101039268A (zh) * | 2007-03-02 | 2007-09-19 | 华为技术有限公司 | 限制用户设备接入的方法及mgc和cscf |
CN101146100A (zh) * | 2007-09-19 | 2008-03-19 | 北京交通大学 | 一种基于传输协议sctp和dccp的sip网络电话实现方法 |
CN101420637A (zh) * | 2007-10-22 | 2009-04-29 | 中兴通讯股份有限公司 | 一种利用会话初始协议呼叫器进行大话务量测试的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103124315A (zh) * | 2012-11-05 | 2013-05-29 | 太仓市同维电子有限公司 | 一种在voip终端上实现远程诊断语音功能设计的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101951447B (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102347950B (zh) | 电信网络向互联网提供会话服务的方法及系统 | |
KR20100027229A (ko) | 패킷-기반 원격통신 네트워크에서 호출자로의 콜-백을 설정하는 방법, 패킷 기반 원격통신 네트워크에서 호출자로의 콜-백을 설정하는 단말기 및 패킷 기반 원격통신 네트워크에서 호출자로의 콜-백을 설정하는 미디어 서버 | |
CN101394294B (zh) | 网络多媒体会议接入方法、系统及装置 | |
CN101099366A (zh) | 促进通信系统中的早期媒体 | |
CN107690054A (zh) | 一种视频通话的处理方法及装置 | |
US9071690B2 (en) | Call transfer processing in SIP mode | |
WO2007093116A1 (fr) | Procédé et système de fourniture de service de simulation et entité adaptative de signalisation d'accès | |
CN102316228B (zh) | 在总机业务中实现话务员插入通话的方法、装置和系统 | |
CN101754050B (zh) | 集成化的高时效呼叫连接控制方法 | |
CN101951447B (zh) | 行为可编程的sip呼叫模拟方法 | |
CN105991239B (zh) | 一种ims系统中的信令处理方法、装置和相关设备 | |
CN100589395C (zh) | 呼叫计费的方法及计费系统 | |
EP2739026A1 (en) | Method and system for implementing simultaneous ringing group call in click to dial service | |
US8160224B2 (en) | Method, apparatus and system for implementing conference service | |
CN100401692C (zh) | 分组语音网络的监听方法 | |
CN101686138B (zh) | 一种实现三方会议的方法、设备和系统 | |
Manjur et al. | Conference gateway for heterogeneous clients: Real time switching clients and interasterisk exchange clients | |
CN107613123A (zh) | 基于wifi实现无绳电话功能的系统及方法 | |
KR100967604B1 (ko) | 신뢰성 있는 발신번호 표시를 위한 VoIP서비스의 호설정 제어방법 | |
US8559613B2 (en) | Method and system for performing communication transfer service for access gateway control function user | |
CN100486254C (zh) | 一种会话初始协议网络中控制会话定时器的方法及系统 | |
CN101119212A (zh) | 传递及应用用户-用户应用信息的方法和系统 | |
CN101953141B (zh) | 实现跨越主叫信息显示的系统及方法 | |
CN101218815B (zh) | 允许在同一语音通信中相继使用多个设备的设备及方法 | |
US8279855B2 (en) | Method for dialing between internet extensions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: University of Electronic Science and Technology of China Document name: Notification of Passing Preliminary Examination of the Application for Invention |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121205 Termination date: 20150921 |
|
EXPY | Termination of patent right or utility model |