Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

Example workflow with the RTBS agent


Info
titleExample - A reservation in the Request node


Code Block
languagetext
themeEclipse
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);
}