-
Notifications
You must be signed in to change notification settings - Fork 0
/
ims_rereg.xml
137 lines (115 loc) · 6.21 KB
/
ims_rereg.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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?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 Re-Registration scenario -->
<!-- -->
<!-- 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_rereg" on_unexpected="9" default_behavior="false">
<info>
<metric ref="PX_TRT-REG4" rtd="1" max="2000"/>
</info>
<!-- *** STEP 1 *** -->
<!-- Select a user from the 'Registered' pool and place it into a -->
<!-- '(De)Registration ongoing' pool so we don't register it multiple times -->
<!-- in parallel and so it's not taken for calling and messaging scenarios. -->
<nop>
<action>
<assign_user pool="2" scheme="rand_uni"/> <!-- 'Registered' user -->
<move_user pool="1"/> <!-- Re-Registration ongoing -->
</action>
</nop>
<!-- *** STEP 2 *** -->
<!-- Now that our preparation step is done, we wait for the time when the scenario -->
<!-- must actually start, according to the random scenario arrival distribution. -->
<sync crlf="true">
<action>
<exec int_cmd="set_start_time"/>
</action>
</sync>
<!-- *** STEP 3 *** -->
<!-- Now the SIP scenario really starts -->
<!-- NOTE - We use 'cached' credentials which means that if the SUT still has our auth_vector in -->
<!-- cache, it will respond 200 OK right away, thereby skipping the 401 Unauthorized -->
<!-- step that the IMS Bench spec seems to indicate would be the normal operation for a non -->
<!-- secure channel (no IPSec). However, we think attempting to use cached credentials is -->
<!-- the normal UE behavior (to be confirmed!). -->
<!-- "Caching the credentials" is done by using the 'challenge_from' parameter of the -->
<!-- [authentication] field. It refers to a user variable into which the full digest -->
<!-- challenge was stored during initial registration -->
<send retrans="500" start_rtd="1">
<![CDATA[
REGISTER sip:[field1] SIP/2.0
Via: SIP/2.0/[transport] [field5]:[local_port];branch=[branch]
From: "[field0]" <sip:[field0]@[field1]>;tag=[call_number]
To: "[field0]" <sip:[field0]@[field1]>
Call-ID: [call_id]
CSeq: 1 REGISTER
Contact: <sip:[field0]@[field5]:[local_port]>;expires=[%RegistrationExpire]
Expires: [%RegistrationExpire]
Content-Length: 0
Authorization: Digest username="[field2]@[field3]", realm="[field1]"
Supported: path
]]>
</send>
<recv response="401" auth="true" optional="true" next="5">
<!-- We store the challenge into user variable 2 so that the REGISTER can be built using the -->
<!-- send scheme above (same as for our first attempt with cached credentials. -->
<!-- This also updates the cached credentials so we have them for a potential subsequent -->
<!-- re-registration of the same user. -->
</recv>
<label id="1"/> <!-- Second REGISTER must succeed in any case -->
<recv response="200" rtd="1" next="10">
<action>
<ereg regexp=".*" search_in="hdr" header="Service-Route:" check_it="true" assign_to="u1" />
<!-- We store the Service-Route indicated by the SUT into a user variable -->
<!-- because we must use it as Route for subsequent dialogs we'll initiate -->
<!-- as part of executing other scenarios for the registered user. -->
<move_user pool="2"/> <!-- User is now 'Registered' -->
</action>
</recv>
<label id="5"/> <!-- Second REGISTER -->
<send retrans="500" next="1">
<!-- Respond to challenge in case cached credentials were not accepted -->
<![CDATA[
REGISTER sip:[field1] SIP/2.0
Via: SIP/2.0/[transport] [field5]:[local_port];branch=[branch]
From: "[field0]" <sip:[field0]@[field1]>;tag=[call_number]
To: "[field0]" <sip:[field0]@[field1]>
Call-ID: [call_id]
CSeq: 2 REGISTER
Contact: <sip:[field0]@[field5]:[local_port]>;expires=[%RegistrationExpire]
Expires: [%RegistrationExpire]
Content-Length: 0
[authentication username=[field2]@[field3] aka_OP=0x00000000000000000000000000000000 aka_K=[field4] aka_AMF=0x8000]
Supported: path
]]>
</send>
<label id="9"/> <!-- FAILURE CASE -->
<nop>
<action>
<move_user pool="0"/> <!-- We ASSUME User is 'Not Registered' -->
</action>
</nop>
<label id="10"/> <!-- END OF SCENARIO -->
<!-- definition of the response time repartition table (unit is ms) -->
<ResponseTimeRepartition value="10, 20"/>
<!-- definition of the call length repartition table (unit is ms) -->
<CallLengthRepartition value="10"/>
</scenario>