Multi tenant

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": {
      <tenant_name>: {
         "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
 
Purge CS / PS location
  • 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

 
PDP context activation failure
  • Fields used to match tenant for local GT use: SCCP, imsi, operation=failureReport
 
VLR status report
  • Fields used to match tenant for local GT use: SCCP, imsi, operation=statusReport
SM delivery status
  • Fields used to match tenant for local GT use: SCCP, msisdn, operation=reportSM_DeliveryStatus
 
MS ready for SM notification
  • Fields used to match tenant for local GT use: SCCP, imsi, operation=readyForSM
 
Password and structured Supplementary Services
  • 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
 
USSD (MO)
  • Fields used to match tenant for local GT use: SCCP, imsi, operation=processUnstructuredSS_Data or processUnstructuredSS_Request
 
USSD (MT). Applicable for USSR / USSN
  • 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
 
Subscriber identity request
  • Fields used to match tenant for local GT use: SCCP, msisdn, operation=sendIMSI
 
ATI (Any Time Interrogation)
  • 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
 
AuC: authentication failure notification
  • Fields used to match tenant for local GT use: SCCP, imsi, operation=authenticationFailureReport

YateSMSC

API

				
					{
  "request": "set_tenants",
  "node": "smsc",
  "params": {
    "tenants": {
      <tenant_name>: {
         "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