// File : CtrlFunctions.ttcn
//
// Info : This file specifies functions for using CTRL elements
//
// Do not modify without permission!
//
module CtrlFunctions
{
import from CtrlRel2Types all;
import from CtrlRel2Templates all;
import from ModuleParameters all;
import from OtherTypesAndConstants all;
import from TestSystem all;
import from L4RouterConfig all;
import from TestCoordinationManagement all;
import from CtrlTestCaseTemplates all;
// Use f_ctrlGetParameter to read actual parameter values from the returned AbstractCtrlResponse
function f_ctrlAuthenticate ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "Authenticate", {}, omit, p_params );
}
function f_ctrlIgnoreChallenge ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "IgnoreChallenge", {}, omit, p_params );
}
function f_ctrlGetChallenge ( in template ParameterList p_params ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetChallenge", {}, omit, p_params );
return f_ctrlGetParameter( res, a_ctrlDigestRealm( ? ) );
}
function f_ctrlSetCredentials ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SetCredentials", {}, omit, p_params );
}
function f_ctrlRemoveCredentials ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "RemoveCredentials", {}, omit, p_params );
}
function f_ctrlDeleteConnection ( in template TestClientIdList p_ids ) runs on CtrlCompType
{
f_ctrlGenericRequest( "DeleteConnection", {}, p_ids, omit );
}
function f_ctrlRemoveHttpObserver ( ) runs on CtrlCompType
{
f_ctrlGenericRequest( "RemoveHttpObserver", {}, omit, omit );
}
function f_ctrlFreezeTester ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "FreezeTester", {}, omit, p_params );
}
function f_ctrlChannel ( in ValueList p_headers,
in template ParameterList p_params ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "Channel", p_headers, omit, p_params );
return f_ctrlGetParameter( res, a_ctrlClientDiscoveryRequestId( ? ) );
}
function f_ctrlCreateSession ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "CreateSession", {}, omit, p_params );
}
// Use f_ctrlGetParameter to read actual parameter values from the returned AbstractCtrlResponse
function f_ctrlGetClientDiscoveryStatus ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "GetClientDiscoveryStatus", {}, omit, p_params );
}
function f_ctrlRegisterClient ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "RegisterClient", {}, omit, p_params );
}
// Added by jarim 6.7.2004 for special hardware case INV_16
function f_ctrlStartTestCase_hardware ( in charstring p_testCaseName,
CompRefs p_compRefs ) runs on CtrlCompType
{
f_ctrlInit_hardware( p_compRefs );
CTRL.send( a_ctrlStartTCRequest( p_testCaseName ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlInit_hardware( CompRefs p_compRefs ) runs on CtrlCompType
{
g_v_compRefs := p_compRefs;
f_initAndMapL4rCtrlTcpIpv4_hardware();
var default defaultsRef;
defaultsRef := activate( defaultCTRL() );
f_syncCTRL();
deactivate(defaultsRef); // Tero added 18.2.
}
function f_initAndMapL4rCtrlTcpIpv4_hardware() runs on CtrlCompType
{
map( self:MGMT, system:MGMT );
if( mp_sip_bearer_bt )
{
MGMT.send( a_CreateBluetoothCompProfile( mp_sip_bearer_bt_com_port ) );
map( self:CTRL, system:BT );
}
else
{
MGMT.send( a_CreateMyCompProfile( e_tcp, 5071, mp_sip_emu_ipAddress_ctrl.ipv4, 5070 ) );
map( self:CTRL, system:TCP );
}
}
// Added for Remote URI handling in requests for R4 Ite 4 and later
function f_constructParameters(in ParameterList p_params,
in ParameterList p_mandatoryRequestParams) return ParameterList
{
var integer i := 0;
var integer ii := 0;
var boolean v_remoteURIWasNotAssigned := true;
var ParameterList v_parameterList;
for ( i := 0; i < sizeof(valueof(p_params)); i := i + 1)
{
if ( valueof(p_params[i].parameter.pName) == "RemoteURI" ) {
v_remoteURIWasNotAssigned := false;
}
v_parameterList[i] := valueof(p_params[i]);
}
if ( v_remoteURIWasNotAssigned ) {
i := sizeof(valueof(p_params));
for ( ii := 0; ii < sizeof(valueof(p_mandatoryRequestParams)); ii := ii + 1)
{
v_parameterList[i] := valueof(p_mandatoryRequestParams[ii]);
}
}
return v_parameterList;
}
// End of adding by jarim
function f_initAndMapL4rCtrlTcpIpv4() runs on CtrlCompType
{
map( self:MGMT, system:MGMT );
if( mp_sip_bearer_bt )
{
MGMT.send( a_CreateBluetoothCompProfile( mp_sip_bearer_bt_com_port ) );
map( self:CTRL, system:BT );
}
else
{
MGMT.send( a_CreateMyCompProfile( e_tcp, 5071, mp_sip_emu_ipAddress.ipv4, 5070 ) );
map( self:CTRL, system:TCP );
}
}
//
// -- GetXXX functions --------------------------------------------------------
//
function f_ctrlGetConnectionState ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetConnectionState", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlConnectionState( ? ) );
}
function f_ctrlGetDialogAOR ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetDialogAOR", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlAddress( ? ) );
}
function f_ctrlGetDialogFrom ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetDialogFrom", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlAddress( ? ) );
}
function f_ctrlGetDialogRegistration ( in template TestClientIdList p_ids ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetDialogRegistration", {}, p_ids, omit );
return res;
}
function f_ctrlGetDialogRemoteURI ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetDialogRemoteURI", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlRemoteURI( ? ) );
}
function f_ctrlGetDialogState ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetDialogState", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlDialogState( ? ) );
}
function f_ctrlGetTransactionState ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetTransactionState", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlTransactionState( ? ) );
}
function f_ctrlGetTransactionStateWitResponse ( in template TestClientIdList p_ids ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "GetTransactionState", {}, p_ids, omit );
}
function f_ctrlGetIAPName ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetIAPName", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlIAPName( ? ) );
}
function f_ctrlGetIAPNames ( ) runs on CtrlCompType return ValueList
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetIAPNames", {}, omit, omit );
return f_ctrlGetArray( res, a_ctrlIAPNames( ? ) );
}
function f_ctrlGetMessage ( in template ParameterList p_params ) runs on CtrlCompType return ReceivedMsg
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetMessage", {}, omit, p_params );
if ( not ispresent(res.recvMsg))
{
res.recvMsg := {-1,omit,{}}; // add something because there can not be omit -value
return res.recvMsg;
}
else
{
return res.recvMsg;
}
}
function f_ctrlGetMessageWithErr ( in template ParameterList p_params ) runs on CtrlCompType return ReceivedMsg
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetMessage", {}, omit, p_params );
if ( not ispresent(res.recvMsg))
{
res.recvMsg := {-1,omit,{}}; // add something because there can not be omit -value
res.recvMsg.respCode := 200;
}
return res.recvMsg;
}
function f_ctrlGetMessageWithResponse ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetMessage", {}, omit, p_params );
return res;
}
function f_ctrlGetMessageAndCreateAssoc ( in template ParameterList p_params ) runs on CtrlCompType return ReceivedMsg
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetMessageAndCreateAssoc", {}, omit, p_params );
if ( not ispresent(res.recvMsg))
{
res.recvMsg := {-1,omit,{}}; // add something because there can not be omit -value
return res.recvMsg;
}
else
{
return res.recvMsg;
}
}
function f_ctrlGetMessageWithResponseWithConnId ( in template ParameterList p_params, in template TestClientIdList p_ids ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetMessage", {}, p_ids, p_params );
return res;
}
function f_ctrlGetOutboundProxy ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetOutboundProxy", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlAddress( ? ) );
}
function f_ctrlGetRefresh ( in template TestClientIdList p_ids ) runs on CtrlCompType
{
f_ctrlGenericRequest( "GetRefresh", {}, p_ids, omit );
}
function f_ctrlGetRefreshState ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetRefreshState", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlRefreshState( ? ) );
}
function f_ctrlGetRegistrationAOR ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetRegistrationAOR", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlAddress( ? ) );
}
function f_ctrlGetSecurityMechanisms () runs on CtrlCompType return ValueList
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetSecurityMechanisms", {}, omit, omit );
return f_ctrlGetArray( res, a_ctrlSecurityMechanisms( ? ) );
}
function f_ctrlGetSigCompCompartmentCount () runs on CtrlCompType return integer
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetSigCompCompartmentCount", {}, omit, omit );
return str2int( f_ctrlGetParameter( res, a_ctrlCompartmentCount( ? ) ) );
}
function f_ctrlGetTransactionType ( in template TestClientIdList p_ids ) runs on CtrlCompType return charstring
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "GetTransactionType", {}, p_ids, omit );
return f_ctrlGetParameter( res, a_ctrlTransactionType( ? ) );
}
//
// -- IsXXX functions ---------------------------------------------------------
//
function f_ctrlIsClientTransaction ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsClientTransaction", p_ids );
}
function f_ctrlIsCancelAllowed ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsCancelAllowed", p_ids );
}
function f_ctrlIsContextActive ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsContextActive", p_ids );
}
function f_ctrlIsDialogAssociated ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsDialogAssociated", p_ids );
}
function f_ctrlIsResponseAllowed ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsResponseAllowed", p_ids );
}
function f_ctrlIsSigCompSupported ( in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
return f_ctrlBooleanRequest( "IsSigCompSupported", p_ids );
}
//
// -- SendXXX functions -------------------------------------------------------
//
function f_ctrlSendAck ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SendAck", p_headers, p_ids, p_params );
}
function f_ctrlSendBye ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SendBye", p_headers, p_ids, p_params );
}
function f_ctrlSendCancel ( in template TestClientIdList p_ids ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendCancel", {}, p_ids, omit );
return res;
}
group requestFunctionsWithURIHandling {
function f_ctrlSendInvite(in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "SendInvite", p_headers, p_ids, valueof(a_ctrlInviteParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlInviteParamsMandatory)));
return f_ctrlGenericRequest( "SendInvite", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "SendInvite", p_headers, p_ids, p_params );
}
}
function f_ctrlSendMessage ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "SendMessage", p_headers, p_ids, valueof(a_ctrlMessageParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlMessageParamsMandatory)));
return f_ctrlGenericRequest( "SendMessage", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "SendMessage", p_headers, p_ids, p_params );
}
}
function f_ctrlSendRequest (in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "SendRequest", p_headers, p_ids, valueof(a_ctrlRequestParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlRequestParamsMandatory)));
return f_ctrlGenericRequest( "SendRequest", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "SendRequest", p_headers, p_ids, p_params );
}
}
function f_ctrlFetchRegistrations ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "FetchRegistrations", p_headers, p_ids, valueof(a_ctrlFetchRegistrationParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlFetchRegistrationParamsMandatory)));
return f_ctrlGenericRequest( "FetchRegistrations", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "FetchRegistrations", p_headers, p_ids, p_params );
}
}
function f_ctrlSendSubscribe ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "SendSubscribe", p_headers, p_ids, valueof(a_ctrlSubscribeParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlSubscribeParamsMandatory)));
return f_ctrlGenericRequest( "SendSubscribe", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "SendSubscribe", p_headers, p_ids, p_params );
}
}
function f_ctrlSendRefer ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var ParameterList v_parameterListConstruction;
if ( mp_remoteURIMandatory ) {
if ( valueof(p_params) == omit ) {
return f_ctrlGenericRequest( "SendRefer", p_headers, p_ids, valueof(a_ctrlReferParamsMandatory) );
} else {
// Parameters must be inserted into variable before sending to ctrlGenericRequest
v_parameterListConstruction := valueof(f_constructParameters(valueof(p_params),valueof(a_ctrlReferParamsMandatory)));
return f_ctrlGenericRequest( "SendRefer", p_headers, p_ids, v_parameterListConstruction );
}
} else {
return f_ctrlGenericRequest( "SendRefer", p_headers, p_ids, p_params );
}
}
} // End of group requestFunctionsWithURIHandling
function f_ctrlSendInviteUsingProfile ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SendInviteUsingProfile", p_headers, p_ids, p_params );
}
function f_ctrlSendInviteWithinDriver ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SendInviteWithinDriver", p_headers, p_ids, p_params );
}
function f_ctrlSendInviteWithinDialog ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendInviteWithinDialog", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendNotify ( in template TestClientIdList p_ids) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SendNotify", {}, p_ids, omit );
}
function f_ctrlSendReferWithinDialog ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendReferWithinDialog", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendReferResponseCreateDialog ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendReferResponseCreateDialog", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendNonTargetRefreshRequest ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendNonTargetRefreshRequest", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendPrack ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendPrack", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendRegister ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendRegister", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendResponse ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendResponse", p_headers, p_ids, p_params );
return res;
}
function f_ctrlSendResponseCreateAssoc ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SendResponseCreateAssoc", p_headers, p_ids, p_params );
}
function f_ctrlCreateInviteDialogAssociation ( in template TestClientIdList p_ids ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "CreateInviteDialogAssociation", omit, p_ids, omit );
}
function f_ctrlCreateNotifyAssoc ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "CreateNotifyDialogAssociation", p_headers, p_ids, p_params );
}
function f_ctrlSendResponseCreateDialog ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( "SendResponseCreateDialog", p_headers, p_ids, p_params );
return res;
}
function f_ctrlUpdateInvite ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "UpdateInvite", p_headers, p_ids, p_params );
}
function f_ctrlUpdateRefer( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "UpdateRefer", p_headers, p_ids, p_params );
}
function f_ctrlUpdateNotify( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "UpdateNotify", p_headers, p_ids, p_params );
}
function f_ctrlUpdateSubscribe ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "UpdateSubscribe", p_headers, p_ids, p_params );
}
// Added by jarim
function f_ctrlSendSubscribeWithinDialog ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SendSubscribeWithinDialog", p_headers, p_ids, p_params );
}
function f_ctrlSendUnsubscribe ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SendUnsubscribe", {}, p_ids, omit );
}
function f_ctrlSendUpdate ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SendUpdate", {}, p_ids, omit );
}
//
// -- SetXXX functions --------------------------------------------------------
//
function f_ctrlSetOutboundProxy ( in template ParameterList p_params,
in template TestClientIdList p_ids ) runs on CtrlCompType
{
f_ctrlGenericRequest( "SetOutboundProxy", {}, p_ids, p_params );
}
function f_ctrlSetSecurityParams ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SetSecurityParams", {}, omit, p_params );
}
//
// -- UpdateXXX functions --------------------------------------------------------
//
function f_ctrlUpdateRefresh ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "UpdateRefresh", p_headers, p_ids, p_params );
}
function f_ctrlUpdateRegistration ( in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "UpdateRegistration", p_headers, p_ids, p_params );
}
//
// -- Misc functions ----------------------------------------------------------
//
function f_ctrlDeleteFile ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "DeleteFile", {}, omit, p_params );
}
function f_ctrlCreateConnection ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "CreateConnection", {}, omit, p_params );
}
function f_ctrlInstallClient ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "InstallClient", {}, omit, p_params );
}
function f_ctrlTerminate ( in template TestClientIdList p_ids ) runs on CtrlCompType
{
f_ctrlGenericRequest( "Terminate", {}, p_ids, omit );
}
function f_ctrlTerminateProcess ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "TerminateProcess", {}, omit, p_params );
}
function f_ctrlUninstallClient ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "UninstallClient", {}, omit, p_params );
}
function f_ctrlUnregister ( in template TestClientIdList p_ids ) runs on CtrlCompType
{
f_ctrlGenericRequest( "Unregister", {}, p_ids, omit );
}
//New Transfer File function Added by Satish
function f_ctrlTransferFile ( in charstring p_srcFileName, charstring p_destFileName, octetstring p_fileContent ) runs on CtrlCompType
{
CTRL.send( a_ctrlFileXferRequest( p_srcFileName, p_destFileName, p_fileContent ) );
alt {
[] CTRL.receive /*( a_ctrlOkResponse )*/
{
}
}
}
function f_ctrlGetMemoryUsage ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "GetMemoryUsage", {}, omit, p_params );
}
function f_ctrlGetUNSAFTimers ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "GetUNSAFTimers", {}, omit, p_params );
}
function f_ctrlSetUNSAFTimers ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SetUNSAFTimers", {}, omit, p_params );
}
function f_ctrlEnableCRLFRefresh ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "EnableCRLFRefresh", {}, omit, p_params );
}
function f_ctrlSetSTUNServer ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SetSTUNServer", {}, omit, p_params );
}
function f_ctrlSetDomainParams ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "SetDomainParams", {}, omit, p_params );
}
function f_ctrlGetDomainParams ( in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
return f_ctrlGenericRequest( "GetDomainParams", {}, omit, p_params );
}
function f_ctrlStopIAP ( in template ParameterList p_params ) runs on CtrlCompType
{
f_ctrlGenericRequest( "StopIAP", {}, omit, p_params );
}
//
// -- Test case start & end & reset -------------------------------------------
//
function f_ctrlStartTestCase ( in charstring p_testCaseName ) runs on CtrlCompType
{
f_ctrlInit();
CTRL.send( a_ctrlStartTCRequest( p_testCaseName ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlStartTestCase_1 ( in charstring p_testCaseName,
CompRefs p_compRefs ) runs on CtrlCompType
{
f_ctrlInit_1( p_compRefs );
CTRL.send( a_ctrlStartTCRequest( p_testCaseName ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlEndTestCase () runs on CtrlCompType
{
CTRL.send( a_ctrlEndTCRequest( omit ) );
timer mytimer;
mytimer.start(5.0);
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
[] mytimer.timeout
{
f_ctrlResetAll();
}
}
setverdict( pass );
stop;
}
function f_ctrlReset ( in integer p_objectId ) runs on CtrlCompType
{
CTRL.send( a_ctrlResetRequest( int2str( p_objectId ) ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlStartTester ( in charstring p_testCaseName,
CompRefs p_compRefs ) runs on CtrlCompType
{
//f_ctrlInitWithOnePort( p_compRefs );
CTRL.send( a_ctrlStartTCRequest( p_testCaseName ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlEndTester () runs on CtrlCompType
{
CTRL.send( a_ctrlEndTCRequest( omit ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlResetAll ( ) runs on CtrlCompType
{
CTRL.send( a_ctrlResetRequest( omit ) );
alt {
[] CTRL.receive( a_ctrlOkResponse )
{
}
}
}
function f_ctrlInit() runs on CtrlCompType
{
f_initAndMapL4rCtrlTcpIpv4();
var default defaultsRef;
defaultsRef := activate( defaultCTRL() );
f_syncCTRL();
deactivate(defaultsRef); // Tero added 18.2.
}
function f_ctrlInit_1( CompRefs p_compRefs ) runs on CtrlCompType
{
g_v_compRefs := p_compRefs;
f_initAndMapL4rCtrlTcpIpv4();
var default defaultsRef;
defaultsRef := activate( defaultCTRL() );
f_syncCTRL();
deactivate(defaultsRef); // Tero added 18.2.
}
//
// -- Internal request wrapper functions --------------------------------------
//
function f_ctrlBooleanRequest ( in charstring p_action,
in template TestClientIdList p_ids ) runs on CtrlCompType return boolean
{
var AbstractCtrlResponse res;
res := f_ctrlGenericRequest( p_action, {}, p_ids, omit );
return match( f_ctrlGetParameter( res, a_ctrlBoolean( ? ) ), a_ctrlBooleanTrue );
}
function f_ctrlGenericRequest ( in charstring p_action,
in ValueList p_headers,
in template TestClientIdList p_ids,
in template ParameterList p_params ) runs on CtrlCompType return AbstractCtrlResponse
{
var AbstractCtrlResponse res;
CTRL.send( a_ctrlRequest( p_action, p_headers, p_ids, p_params ) );
alt {
// [] CTRL.receive( a_ctrlResponse( p_action, 0, *, *, * ) ) -> value res
[] CTRL.receive( a_ctrlResponse( p_action, *, *, *, * ) ) -> value res
{
// As a work-around to avoid TEMPLATE MISMATHCES in the Tau log, we're having
// all (or none) of the ID fields present in the messages
// For SIP =4.0
//HS
if( ispresent( res.ids ) ) {
if (sizeof(res.ids) == 12 ) {
log("12"); //HS
if( res.ids[ 0 ].idValue > 0 ) { v_ctrlCompState.v_connectionId := res.ids[ 0 ].idValue }
if( res.ids[ 1 ].idValue > 0 ) { v_ctrlCompState.v_dialogId := res.ids[ 1 ].idValue }
if( res.ids[ 2 ].idValue > 0 ) { v_ctrlCompState.v_inviteDialogId := res.ids[ 2 ].idValue }
// New value
if( res.ids[ 3 ].idValue > 0 ) { v_ctrlCompState.v_notifyDialogId := res.ids[ 3 ].idValue }
if( res.ids[ 4 ].idValue > 0 ) { v_ctrlCompState.v_profileId := res.ids[ 4 ].idValue }
// New value
if( res.ids[ 5 ].idValue > 0 ) { v_ctrlCompState.v_referDialogId := res.ids[ 5 ].idValue }
if( res.ids[ 6 ].idValue > 0 ) { v_ctrlCompState.v_refreshId := res.ids[ 6 ].idValue }
if( res.ids[ 7 ].idValue > 0 ) { v_ctrlCompState.v_registryId := res.ids[ 7 ].idValue }
if( res.ids[ 8 ].idValue > 0 ) { v_ctrlCompState.v_registrationId := res.ids[ 8 ].idValue }
if( res.ids[ 9 ].idValue > 0 ) { v_ctrlCompState.v_serverTransactionId := res.ids[ 9 ].idValue }
if( res.ids[ 10 ].idValue > 0 ) { v_ctrlCompState.v_subscribeDialogId := res.ids[ 10 ].idValue }
if( res.ids[ 11 ].idValue > 0 ) { v_ctrlCompState.v_transactionId := res.ids[ 11 ].idValue }
} else if (sizeof(res.ids) == 10 ) {
log("10"); //HS
if( res.ids[ 0 ].idValue > 0 ) { v_ctrlCompState.v_connectionId := res.ids[ 0 ].idValue }
if( res.ids[ 1 ].idValue > 0 ) { v_ctrlCompState.v_dialogId := res.ids[ 1 ].idValue }
if( res.ids[ 2 ].idValue > 0 ) { v_ctrlCompState.v_inviteDialogId := res.ids[ 2 ].idValue }
if( res.ids[ 3 ].idValue > 0 ) { v_ctrlCompState.v_profileId := res.ids[ 3 ].idValue }
if( res.ids[ 4 ].idValue > 0 ) { v_ctrlCompState.v_refreshId := res.ids[ 4 ].idValue }
// New value 29.6.2004
if( res.ids[ 5 ].idValue > 0 ) { v_ctrlCompState.v_registryId := res.ids[ 5 ].idValue }
if( res.ids[ 6 ].idValue > 0 ) { v_ctrlCompState.v_registrationId := res.ids[ 6 ].idValue }
if( res.ids[ 7 ].idValue > 0 ) { v_ctrlCompState.v_serverTransactionId := res.ids[ 7 ].idValue }
if( res.ids[ 8 ].idValue > 0 ) { v_ctrlCompState.v_subscribeDialogId := res.ids[ 8 ].idValue }
if( res.ids[ 9 ].idValue > 0 ) { v_ctrlCompState.v_transactionId := res.ids[ 9 ].idValue }
}
} //ispresent
} //receive
} //alt
return res;
}
//
// -- Internal utility functions for getting data out of responses ------------
//
function f_ctrlGetParameter( in AbstractCtrlResponse p_response,
in template ParameterListElement p_param ) runs on CtrlCompType return charstring
{
var integer I;
if( ispresent( p_response.params ) ) {
for( I := 0; I < sizeof( p_response.params ); I := I + 1 ) {
if( match( p_response.params[ I ], p_param ) ) {
return p_response.params[ I ].parameter.pValue;
}
}
}
return "";
}
function f_ctrlGetArray( in AbstractCtrlResponse p_response,
in template ParameterListElement p_array ) runs on CtrlCompType return ValueList
{
var integer I;
if( ispresent( p_response.params ) ) {
for( I := 0; I < sizeof( p_response.params ); I := I + 1 ) {
if( match( p_response.params[ I ], p_array ) ) {
return p_response.params[ I ].array.aValues;
}
}
}
return {};
}
function f_ctrlGetStructure( in AbstractCtrlResponse p_response,
in template ParameterListElement p_struct ) runs on CtrlCompType return FieldList
{
var integer I;
if( ispresent( p_response.params ) ) {
for( I := 0; I < sizeof( p_response.params ); I := I + 1 ) {
if( match( p_response.params[ I ], p_struct ) ) {
return p_response.params[ I ].struct.sFields;
}
}
}
return {};
}
}