-
Notifications
You must be signed in to change notification settings - Fork 0
/
ims_msgc.xml
115 lines (99 loc) · 5.33 KB
/
ims_msgc.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<!-- This program is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU General Public License as -->
<!-- published by the Free Software Foundation; either version 2 of the -->
<!-- License, or (at your option) any later version. -->
<!-- -->
<!-- This program is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!-- GNU General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU General Public License -->
<!-- along with this program; if not, write to the -->
<!-- Free Software Foundation, Inc., -->
<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -->
<!-- -->
<!-- IMS Benchmark Messaging scenario - UAC side -->
<!-- -->
<!-- Author : David Verbeiren from Intel Corporation - July 2007 -->
<!-- Xavier Simonart from Intel Corporation - July 2007 -->
<!-- Philippe Lecluse from Intel Corporation - July 2007 -->
<!-- -->
<scenario name="ims_msgc">
<info>
<!-- The RTD metrics listed here are checked at the end of the call -->
<!-- In case one or more is exceeded, the call is marked as failed. -->
<metric ref="PX_TRT-PMM1" rtd="1" max="2000"/>
</info>
<!-- *** STEP 1 *** -->
<!-- This is a scenario preparation step. It involves: -->
<!-- * Selecting a local user from a suitable pool -->
<!-- * Requesting a suitable user from a partner SIPp and instructing it to -->
<!-- run the appropriate UAS side scenario to run against this one. -->
<nop>
<action>
<assign_user pool="2" scheme="rand_uni"/> <!-- Select user from 'Registered' pool -->
<move_user pool="4"/> <!-- So we don't take it again -->
</action>
</nop>
<sendRmt type="req_user">
<param name="scenario" value="ims_msgs"/>
<!-- The scenario that the partner must run. -->
<param name="from_uri" value="[field0]@[field1]"/>
<!-- We must give the From URI (local user we selected) so that the partner SIPp can -->
<!-- detect when it later gets the SIP call that is prepared in this step. -->
<!-- Note: We can't use the call_id for this because the SUT could potentially change -->
<!-- the call_id between both call legs (SIPp-1 -> SUT -> SIPp-2) -->
<param name="call_id" value="[call_id]"/>
<!-- We include our local call_id so the partner SIPp will include it in any message it -->
<!-- later sends to us (e.g. 'res_user' response below) thereby allowing us to -->
<!-- efficiently find back the call to which the message relates. -->
</sendRmt>
<recvRmt type="res_user" timeout="8000">
<!-- When we get the response from the partner SIPp, we store the remote user URI in call -->
<!-- variables for later usage in the scenario (as 'To' user). -->
<action>
<store_param param="user_name" assign_to="1" />
<store_param param="user_domain" assign_to="2" />
</action>
</recvRmt>
<!-- *** STEP 2 *** -->
<!-- Now that our preparation steps are done, we wait for the time when the call must -->
<!-- actually start, according to the scenario arrival distribution. -->
<sync crlf="true">
<action>
<exec int_cmd="set_start_time"/> <!-- We remember our actual start time -->
</action>
</sync>
<!-- *** STEP 3 *** -->
<!-- Now the SIP scenario really starts -->
<send retrans="500" start_rtd="1" clen_random="uniform:0,140">
<![CDATA[
MESSAGE sip:[$1]@[$2] SIP/2.0
Via: SIP/2.0/[transport] [field5]:[local_port];branch=[branch]
Max-Forwards: 70
Route: [$u1]
From: "[field0]" <sip:[field0]@[field1]>;tag=[pid]SIPpTag00[call_number]
To: "[$1]" <sip:[$1]@[$2]>
Call-ID: [call_id]
CSeq: 1 MESSAGE
Contact: <sip:[field0]@[field5]:[local_port];transport=[transport]>
Content-Type: text/plain
Content-Length: [len]
This is some text to appear in the instant message.
It can have multiple lines and SIPp automatically computes the length to
be put in Content-Length header.
]]>
</send>
<recv response="202" rtd="1">
<action>
<move_user pool="2"/> <!-- Back to Registered pool !-->
</action>
</recv>
<!-- definition of the response time repartition table (unit is ms) -->
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
<!-- definition of the call length repartition table (unit is ms) -->
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>