Routing SBA 5G Requests
The TRA-RT requires that any MATRIXX Data Containers (MDCs) submitted have sub-domain routing information provided in the MtxMsg.TrafficRouteData field.
The contents of the MtxMsg.TrafficRouteData field are four-letter routing type identifiers, followed by the routing value. These identifiers give a lookup mechanism to the TRA for the location of a subscriber.
At the start of each session, MATRIXX receives a request from the subscriber and this request has information about the subscriber from their device. In smaller deployments with only one engine, it is easy to identify the location of the subscriber because all subscribers are on the same engine.
In larger deployments with multiple engines and spanning several sub-domains, the subscriber exists on only one of the sub-domains. It can be difficult for the TRA to identify which engine to send the subscriber's request to. These four-letter routing type identifiers offer a lookup mechanism to the TRA to help identify the whereabouts of an individual subscriber when there are several engines. The TRA can check its cache to locate the sub-domain for that subscriber.
The principal routing types of the routing type identifiers are:
- RTID — The specific sub-domain by sub-domain ID (for example, RTID0).
- IMSI — The specific IMSI (for example, IMSI5551212).
- ACNM — The specific AccessNumber aka MSISDN (for example, ACNM5551212).
- LOGN — The LoginId for LoginDevices (for example, [email protected]).
- ACID — The AccessId for LogicDevices (for example, [email protected]).
- SESS — The SessionId (Diameter) (for example, SESSfpp123456;d9;etc;etc;blah).
Based on the specific request received by SBA Gateway, the routing type identifier identifies the routing information in the request to build the routing string and ensures the string is populated in the message sent to the TRA.
The CHF retrieves routing information from the fields in the
ChargingDataRequest
. Routing Information in ChargingDataRequest shows the ChargingDataRequest
fields:
Name | Location | Restriction |
---|---|---|
IMSI | ChargingDataRequest.subscriberIdentifier | If value starts with 'imsi-', strip prefix. |
NAI | ChargingDataRequest.subscriberIdentifier | If value starts with 'nai-', strip prefix. |
GPSI_MSISDN | ChargingDataRequest.pDUSessionChargingInformation.userInformation.servedGPSI | If value starts with 'msisdn-', strip prefix. |
GPSI_EXTID | ChargingDataRequest.pDUSessionChargingInformation.userInformation.servedGPSI | If value starts with 'extid-', strip prefix. |
This is configured in the ChargingDataRequest
mapping file and can be
modified as required:
outputParameters:
IMSI: {from: "ChargingDataRequest.subscriberIdentifier", fieldValueMapperName: "matchAndStripImsiPrefixes"}
NAI: {from: "ChargingDataRequest.subscriberIdentifier", fieldValueMapperName: "matchAndStripNaiPrefixes"}
GPSI_MSISDN: { from: "ChargingDataRequest.pDUSessionChargingInformation.userInformation.servedGPSI", fieldValueMapperName: "stripGpsiMsisdnPrefixes" }
GPSI_EXTID: { from: "ChargingDataRequest.pDUSessionChargingInformation.userInformation.servedGPSI", fieldValueMapperName: "stripGpsiExtidPrefixes" }
customFieldValueMappers:
- name: "matchAndStripImsiPrefixes"
className: "com.matrixx.sba.mapping.field.MatchAndStripPrefixFieldValueMapper"
prefix: "imsi-"
- name: "matchAndStripNaiPrefixes"
className: "com.matrixx.sba.mapping.field.MatchAndStripPrefixFieldValueMapper"
prefix: "nai-"
- name: "stripGpsiMsisdnPrefixes"
className: "com.matrixx.sba.gateway.mapping.field.StripPrefixFieldValueMapper"
prefix: "msisdn-"
- name: "stripGpsiExtidPrefixes"
className: "com.matrixx.sba.gateway.mapping.field.StripPrefixFieldValueMapper"
prefix: "extid-"
postProcessors:
- name: "Traffic Routing Data"
className: "com.matrixx.sba.mapping.postprocessors.ChargingDataTrafficRoutingDataPostProcessor"
noRoutingDataMessage: "No suitable Routing Information can be found in the message."