This example shows a workflow configured to, via TCPIP, receive requests and, through the Request (Analysis) node, make a reservation in the RTBS node. The session state between network and RTBS is stored in the State (Aggregation) node whilst the network sends a new request for an ongoing session. The Request node checks if there is an ongoing session in the State node before a new request is sent to the RTBS node.
Before passing a response back to the network element, the response returning from the RTBS agent may need to be enriched with data required for the response to the network element using the state of the ongoing session, kept in the State agent.
Info |
---|
title | Example - A reservation in the Request node |
---|
|
Code Block |
---|
| import ultra.rtbs;
consume {
// Initial reservation request
ReserveUnitReq req = udrCreate(ReserveUnitReq);
req.sessionDescription = "";
req.merchantAccount = udrCreate(TpMerchantAccountID);
req.merchantAccount.AccountID = 1732380001;
req.merchantAccount.MerchantID = "OSA Merchant-001 (ET-NJ)";
req.correlationID = udrCreate(TpCorrelationID);
req.correlationID.CorrelationID = 10;
req.correlationID.CorrelationType = 1;
req.user = udrCreate(TpAddress);
req.user.AddrString = "8082340211";
req.user.Name = "Name";
req.user.Plan = "P_ADDRESS_PLAN_E164";
req.user.Presentation = "P_ADDRESS_PRESENTATION_UNDEFINED";
req.user.Screening = "P_ADDRESS_SCREENING_UNDEFINED";
req.user.SubAddressString = "Subaddresssss";
// Application Description
req.applicationDescription = udrCreate(TpApplicationDescription);
req.applicationDescription.Text = "description";
req.applicationDescription.AppInformation = listCreate
(TpAppInformation);
TpAppInformation appInfo = udrCreate(TpAppInformation);
appInfo.Timestamp = "2008-06-01 00:00";
listAdd(req.applicationDescription.AppInformation, appInfo);
// Charging Parameters
req.chargingParameters = listCreate(TpChargingParameter);
TpChargingParameter param = udrCreate(TpChargingParameter);
param.ParameterID = 2;
param.ParameterValue = udrCreate(TpChargingParameterValue);
param.ParameterValue.StringValue = "OSA";
listAdd(req.chargingParameters, param);
// Volume
req.volumes = listCreate(TpVolume);
TpVolume volume = udrCreate(TpVolume);
volume.Unit = 3;
volume.Amount = udrCreate(TpAmount);
volume.Amount.Exponent = 1;
volume.Amount.Number = 6;
listAdd(req.volumes, volume);
// User Object to be associated to response
req.UserObject = input;
// Pass to RTBS
udrRoute(req);
} |
|