Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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


Example - A reservation in the Request node

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);
}



  • No labels