Newer
Older
/*
* @author STF 574, TTF006
* @version $Id$
* @desc This module provides the TP behaviour functions at IC interface
*/
module AtsImsIot_TP_behavior_ISC
{
import from AtsImsIot_TestSystem all;
import from LibIot_PIXITS all;
import from AtsImsIot_Templates all;
import from AtsImsIot_TypesAndValues all;
import from LibIot_TestInterface all;
import from LibIms_UpperTester all;
import from LibIot_TypesAndValues all;
import from LibIot_Functions all;
import from LibSip_SIPTypesAndValues all;
import from LibSip_Templates all;
import from AtsImsIot_Templates_ISC all;
// LibMsrp
// import from LibMsrp_TypesAndValues { type MsrpURI };
// import from LibMsrp_Functions { function f_str2msrpUri };
// import from LibMsrp_Templates {
// template
// m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType,
// m_msrpReport_Dummy, mw_msrpREPORT_success,
// m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath,
// mw_toPath, mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports,
// m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy,
// mw_contentType
// };
import from AtsImsIot_Templates_IC all;
group g_ISC {
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
* @desc Starts monitor component behavior for TP_ISC_SCSCF_REGISTER_01
* @param p_monitorCompRef Reference to monitor component
* @remark source function f_mtc_check_TP_IC_IBCF_REGISTER_02
*/
function f_mtc_check_TP_ISC_SCSCF_REGISTER_01(
SipInterfaceMonitor p_monitorCompRef,
boolean p_checkMessage := false
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)){
var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
p_monitorCompRef.start(
f_Iot_Sip_receive(
{mw_SipRequest(mdw_TP_ISC_SCSCF_REGISTER_01(mw_From_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
mw_To_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain)))},
{mw_SipRequest(mw_REGISTER_Request_Base)},
{0, omit},
"TP_ISC_SCSCF_REGISTER_01 - REGISTER",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
var charstring v_EUT_A_Addr := f_GetEUTPcscfIpAddress_1();
var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress_1());
p_monitorCompRef.start(
f_Iot_Sip_receive(
{mw_SipResponse(mw_Response_Base_ToFrom(c_statusLine200, ?, ?,?,?))}, //TODO To/From
//{mw_SipResponse(mdw_TP_IC_IBCF_REGISTER200OK_02(v_EUT_A_Addr, v_eutBUri))},
{mw_SipResponse (mw_200OK_Base)},
{0, omit},
"TP_ISC_SCSCF_REGISTER_01 - 200 OK",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
}//end f_mtc_check_TP_ISC_SCSCF_REGISTER_01
}// end imsRegistration
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
group imsInvite {
/**
* @desc Verify that the S-CSCF successfully receives an initial emergency INVITE from a registered but not emergency registered UE.
* Reference
* "ETSI TS 124 229 [1], Clauses 5.7.1.14"
* Config Id CF_VoLTE_INT_ES
* PICS Selection NONE
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_A entity not isEmergencyRegisteredTo the IMS_A
* }
* Expected behaviour
* ensure that {
* when {
* the UE_A entity isRequestedToEstablishEmergencyCall
* }
* then {
* the IMS_S_CSCF_A entity receives an INVITE containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_SIP_EMERGENCY_SERVICE_URN,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* PPreferredIdentity, // one or two instances
* MessageBody;
* from the UE_A entity
* }
* }
*/
function f_mtc_check_TP_ISC_SCSCF_ECO_INVITE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
out SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)){
var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
var ImsUserInfo v_psap := f_getSipUserId(PX_PSAP);
// Check the INVITE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{
mw_SipRequest(mw_TP_ISC_SCSCF_ECO_INVITE_01(
-, // FIXME Set expected value
mw_From_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
mw_To_AddrUnion_SipUrl(omit, v_psap.publicId, v_psap.domain)
))
},
{ mw_SipRequest(mw_INVITE_Request_Base) },
{0, omit},
"TP_GM_PCSCF_ECO_INVITE_01 - Request", //TODO
true,
p_checkMessage
)
);
p_monitorCompRef.done;
// Retrieve messge
f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
}
} // End of function f_mtc_check_TP_ISC_SCSCF_INVITE_01
}
group ims183SessionProgress {
function f_mtc_check_TP_ISC_SCSCF_ECO_183SESSION_PROGRESS_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the 183 SESSION_PROGRESS
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_TP_ISC_SCSCF_183SessionProgress_01(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipResponse(mw_183SessionProgress_Base) },
{ 0, omit },
"TP_ISC_SCSCF_ECO_183SESSION_PROGRESS_01",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_ISC_SCSCF_ECO_183SESSION_PROGRESS_01
} // End of group ims183SessionProgress
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
group ims180Ringing {
function f_mtc_check_TP_ISC_SCSCF_ECO_180RINGING_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the 180 RINGING
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_TP_ISC_SCSCF_180Ringing_01(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.fromField,
mw_To_NameAddr_TelUrl(
-,
p_sip.request.msgHeader.toField.addressField.addrSpecUnion.components.tel.subscriber
)))
},
{ mw_SipResponse(mw_180Ringing_Base) },
{ 0, omit },
"TP_ISC_SCSCF_180RINGING_01",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_ISC_SCSCF_ECO_180RINGING_01
} // End of group ims180Ringing
group ims200Ok {
function f_mtc_check_TP_ISC_SCSCF_ECO_200OK_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
// Check the 200 OK
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_200OK(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.callId,
p_sip.request.msgHeader.fromField,
(
mw_To_NameAddr_TelUrl({quotedString:=f_getSipUserId(PX_EUT_B).publicId}),
mw_To_AddrUnion_TelUrl(f_getTelUserId(PX_EUT_B).publicId),
p_sip.request.msgHeader.toField
)
))
},
{ mw_SipResponse(mw_200OK_Base) },
{ 0, omit },
"TP_ISC_SCSCF_ECO_200OK_01",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_ISC_SCSCF_ECO_200OK_01
} // End of group ims200Ok
group imsAck {
function f_mtc_check_TP_ISC_SCSCF_ECO_ACK_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the ACK
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipRequest(mw_TP_ISC_SCSCF_ACK_01(
p_sip.request.msgHeader.callId,
p_sip.request.msgHeader.cSeq,
-, // FIXME To be set
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipRequest(mw_ACK_Request_Base) },
{ 0, omit },
"TP_ISC_SCSCF_ECO_ACK_01 - Request",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_ISC_SCSCF_ECO_ACK_01
} // End of group imsAck
} // end of g_ISC
} // end module AtsImsIot_TP_behavior_IC