Contents
Notes:
- In the following SCCP matching means SCCP level parameters: caller, called, caller_plan, called_plan, network
- Matching rules priority from API request is set in the order they appear in the matching list starting with value 0
- If a field is set in a matching rule to a non empty value and is missing when trying to match it will be handled as not matched (the rule won’t match)
YateHSS
API
gt_prefix_match: This parameter is used on update location to remember the prefix added by STP to calling party GT. It will be used when:
Generating requests (ISD, cancel location, PSI, PRN) toward visited node. GT prefix will be added to called party GT
Returning stored MSC/VLR/SGSN number in MAP responses to local nodes’ requests (e.g. SRI, SRI-SM).
The prefix will be added to stored number to assist local nodes and STP in properly route requests toward foreign visited nodes
Tenant usage for handled operations
{
"request": "set_tenants",
"node": "hss",
"params": {
"params": {
"gt_prefix_match": "" // Regular Expression used to match GT prefix added by STP
}.
"tenants": {
: {
"node_gt": "", // Optional node GT to use when responding or generating new requests
"shared_gt": "", // Optional shared GT to be set in inner protocol (e.g. HLR number in response to update location)
"home_route_smsc_gt": "", // Optional GT to be returned when handling home routed SMS in SRI-SM
"description": "" // Optional description of tenant. Informational only
}
// ... Other tenant(s)
},
"tenant_match_map": [
{
"tenant": "", // Required tenant name. Set it to '*' to stop matching (no tenant set)
"description": "" // Optional description of matching rule. Informational only
// Matching parameters: at least one parameter must be present
// Empty strings are ignored (treated as missing)
// Each parameter is handled as Regular Expression if starting with ^ or string (exact match) otherwise
"caller": "", // SCCP level calling party GT
"called": "", // SCCP level called party GT
"caller_plan": "", // SCCP level calling party GT numbering plan
"called_plan": "", // SCCP level called party GT numbering plan
"network": "", // SS7 network (linkset) receiving the request
"imsi": "", // IMSI at MAP level
"msisdn": "", // MSISDN at MAP level
"operation": "" // MAP component name
}
// ... Other matching rule(s)
]
}
}
Update CS and PS (GPRS) location
Fields used to match tenant for local GT use: SCCP, imsi, operation=updateLocation or updateGprsLocation
- Other tenant fields: shared_gt (returned as HLR number in response)
- Tenant name and GT prefix is stored in database
Fields used to match tenant for local GT use: SCCP, imsi, operation=purgeMS
Restore CS data from VLR
Fields used to match tenant for local GT use: SCCP, imsi, operation=restoreData
- Other tenant fields: shared_gt (returned as HLR number in response)
Send routing info (SRI)
Fields used to match tenant for local GT use: SCCP, msisdn, operation=sendRoutingInfo
- If requesting node is not found in subscriber’s operator home nodes the stored GT prefix will be added to returned V-MSC number
Send routing info for SM (SRI-SM)
Fields used to match tenant for local GT use: SCCP, msisdn, operation=sendRoutingInfoForSM
- The ‘home_route_smsc_gt’ field of tenant is used (return it if set and not overridden by auth) when handling home routed SMS
- If requesting node is not found in subscriber’s operator home nodes the stored GT prefix will be added to stored visited GTs (MSC / SGSN)
Send routing info for location services (SRI-LCS)
Fields used to match tenant for local GT use: SCCP, imsi, msisdn, operation=sendRoutingInfoForLCS
- If requesting node is not found in subscriber’s operator home nodes the stored GT prefix will be added to stored visited GTs (MSC / SGSN)
- NOTE: For a given request imsi or msisdn is present but not both of them. Keep this in mind when setting matching rules including subscriber’s identity
Send routing info for GPRS (SRI-GPRS)
Fields used to match tenant for local GT use: SCCP, imsi, operation=sendRoutingInfoForGprs
- Fields used to match tenant for local GT use: SCCP, imsi, operation=failureReport
- Fields used to match tenant for local GT use: SCCP, imsi, operation=statusReport
- Fields used to match tenant for local GT use: SCCP, msisdn, operation=reportSM_DeliveryStatus
- Fields used to match tenant for local GT use: SCCP, imsi, operation=readyForSM
- Fields used to match tenant for local GT use: SCCP, imsi, operation=registerPassword or registerSS or eraseSS or activateSS or interrogateSS
- NOTE: For deactivateSS the operation will be eraseSS
- Fields used to match tenant for local GT use: SCCP, imsi, operation=processUnstructuredSS_Data or processUnstructuredSS_Request
- Fields used to match tenant for local GT use: SCCP, imsi, msisdn, operation=unstructuredSS_Request
- NOTE: For a given request imsi or msisdn is present but not both of them. Keep this in mind when setting matching rules including subscriber’s identity
- Fields used to match tenant for local GT use: SCCP, msisdn, operation=sendIMSI
- Fields used to match tenant for local GT use: SCCP, imsi, msisdn, operation=anyTimeInterrogation
- NOTE: For a given request imsi or msisdn is present but not both of them. Keep this in mind when setting matching rules including subscriber’s identity
AuC: authentication request
Fields used to match tenant for local GT use: SCCP, imsi, operation=sendAuthenticationInfo
- NOTE: For a given request imsi or msisdn is present but not both of them. Keep this in mind when setting matching rules including subscriber’s identity
Fields used to match tenant for local GT use: SCCP, imsi, operation=authenticationFailureReport
YateSMSC
API
{
"request": "set_tenants",
"node": "smsc",
"params": {
"tenants": {
: {
"node_gt": "", // Optional node GT to use when responding or generating new requests toward MSC
"smsc_gt": "", // Optional SMSC GT to be set in inner protocol when sending requests (SRI-SM, MT-FORWARD-SM)
"node_hlr_gt": "", // Optional local node GT to be set when sending requests to HLR
"hlr_gt": "", // Optional HLR GT to use when sending requests to HLR and TCAP addressing is configured to use it
"prefix_msc_gt": "", // Optional prefix to add at SCCP level when delivering MT SMS to MSC
"my_cc": "", // Optional value to override tenant CC. Handled when changing destination MSISDN on incoming MO/MT SMS
"skip_cc": true/false, // Optional value to override tenant skip CC. Handled when changing destination MSISDN on incoming MO/MT SMS
"description": "" // Optional description of tenant. Informational only
}
// ... Other tenant(s)
},
"tenant_match_map": [
{
"tenant": "", // Required tenant name. Set it to '*' to stop matching (no tenant set)
"description": "", // Optional description of matching rule. Informational only
// Matching parameters: at least one parameter must be present
// Empty strings are ignored (treated as missing)
// Each parameter is handled as Regular Expression if starting with ^ or string (exact match) otherwise
"caller": "", // SCCP level calling party GT
"called": "", // SCCP level called party GT
"caller_plan": "", // SCCP level calling party GT numbering plan
"called_plan": "", // SCCP level called party GT numbering plan
"network": "", // SS7 network (linkset) receiving the request
"imsi": "", // IMSI at MAP level
"msisdn": "", // MSISDN at MAP level
"operation": "", // MAP component name,
"smsc": "", // SMSC number at MAP level
"hlr_gt": "", // GT of HLR responding to SRI-SM sent on MT forward
"submit_info": "", // Stored submit info
"submit_tenant": "" // Stored submit tenant
"ported": "" // Match 'ported' parameter obtained when routing a MT SMS
// Its value may indicate the destination MSISDN is ported in/out
}
// ... Other matching rule(s)
]
}
}
Tenant usage for handled operations
Handling MSC MO SMS:
- Fields used to match tenant for local GT use: SCCP, imsi, operation=mo_forwardSM
Deliver MT to MSC:
- Fields used to match tenant: SCCP (called: MSC number returned by HLR), msisdn, imsi, hlr_gt (GT of HLR responding to SRI-SM), submit_info, submit_tenant, ported, operation=mt_forwardSM
- Used tenant fields: node_gt, smsc_gt, prefix_msc_gt
Send SRI-SM to HLR on MT deliver:
- Fields used to match tenant: msisdn, submit_info, submit_tenant, ported, operation=sendRoutingInfoForSM
- Used tenant fields: smsc_gt, node_hlr_gt, hlr_gt
Handling alertServiceCentre from HLR:
- Fields used to match tenant for local GT use: SCCP, imsi, msisdn, operation=alertServiceCentre
Handling incoming MT-FORWARD-SM:
- Fields used to match tenant for local GT use: SCCP, msisdn, smsc, operation=route_mt_forwardSM
Routing SRI-SM from other SMSC:
- Fields used to match tenant for local GT use: SCCP, msisdn, smsc, operation=route_sendRoutingInfoForSM
Routing reportSM_DeliveryStatus from other SMSC:
- Fields used to match tenant for local GT use: SCCP, msisdn, operation=route_reportSM_DeliveryStatus
- Fields used to match tenant for HLR forwarding: msisdn, operation=reportSM_DeliveryStatus