Device Types

The MATRIXX Engine supports mobile and login devices. A mobile device uses one or more associated phone numbers to identify the subscription associated with the device. Login devices use a string value (SIP URI (Session Initiation Protocol Uniform Resource Identifier), an NAI (Network Address Identifier), or a PrivateId) for identification.

Mobile Devices

For mobile devices, which represent a SIM, the associated numbers can be MSISDN or International Mobile Subscriber Identity (IMSI) numbers. The MSISDN is the SIM number in a GSM/UMTS phone and identifies a unique subscription in the GSM/UMTS network. It is limited to 15 digits, but it is typically shorter. The value consists of a country code (1 to 3 digits), a national destination code (2 to 3 digits) or a national planning area (2 to 3 digits), and the subscriber ID (7 digits). For example, an MSISDN in the UK is 44 787 1234567. The IMSI is a 15-digit number identifying the SIM in a GSM/UMTS device, for example 310150123456789.
Note: Each device has exactly one IMSI and it can optionally have multiple access numbers (MSISDNs) associated with it. Each MSISDN in the system must be associated with exactly one IMSI.
For services using the Diameter protocol, the following fields are used to locate the mobile device object in the database and identify the subscription:
  • Imsi
  • AccessNumber
  • Calling-Station-Id
These fields are used to identify the subscription and authorize usage. At least one number must be present in the MtxDiamRoMsg to locate a device, but there can be multiple numbers received because a device can have multiple access numbers assigned to it. To handle the case where multiple numbers are received, the answer to the create_config.info question What field should be used to locate the device if both the Imsi and AccessNumber are present? is used to decide which field is used. If this question is unanswered, the default (Imsi) is used. If the Imsi field is not set, the values are examined in the following order:
  1. If the AccessNumber field value (MSISDN) is set, the mobile device is found using the Access Number on the device access object.
  2. If the CallingStationId field is set, it is treated as an IMSI value and the device is looked up accordingly. This field maps to the Diameter Calling-Station-Id AVP.

When a device is provisioned to a subscription, the device assignment date is recorded in the ProvisionedTime field for the device. Any late-reported usage, that occurred before the assignment date, is rejected by default. This ensures that if a device is recycled and an IMSI or login ID gets assigned to a new subscription, that subscription will not be responsible for any prior usage with the device. In such cases, Diameter error code 4010 (End User Service Denied) is returned to the network. Optionally, you can specify configuration in mtx_config.xml to disable the default behavior and allow usage before the assignment date to be processed.

To disable the default behavior and allow prior device usage to be processed, include the following lines in a sed.extra file for the mtx_config.xml file:
# Change setting to allow usage on devices prior to Provisonedtime
s@<reject_device_usage_before_provisioned>.*<@<reject_device_usage_before_provisioned>0<@

Login Devices

A login device is any device without an associated IMSI or MSISDN value which can be used to log into or access a network. For example, a subscriber can use a laptop computer to log into a network using an NAI such as [email protected]. For login devices, devices identified by an SIP URI, an NAI, or a PrivateId, you must configure selective updates to map the device identifier sent in the Diameter Subscription-Id AVP > Subscription-Id-Type to a LoginId or AccessId. The Subscription-Id-Type AVP can be any of the following:
  • 2: END_USER_SIP_URI
  • 3: END_USER_NAI
  • 4: END_USER_PRIVATE
Note: MATRIXX Charging Application does not support authentication of login devices. Login devices are only identified by a string other than an IMSI or MSISDN. Authentication of a subscriber's credentials must be done independent of MATRIXX Charging Application.
For an example of the selective update configuration for login devices, see the discussion about selective updates for login devices.

Login devices must be configured on the MATRIXX Engine or requests to create a login device will result in a PERMISSION_DENIED (33) response. The answer to the following create_config.info question must be a value greater than 0: What is the average number of login devices per subscriber?

For information about system configuration, see MATRIXX Configuration.

5G Device Object Lookup

For 5G N40 (Charging Data Request) and N28 (Spending Limit Control) messages, the Charging Server supports using SUPI (IMSI or NAI) or GPSI (MSISDN or EXTID) to look up the device object.

In an N40 message, SUPI is given in the ChargingDataRequest.subscriberIdentifierId field, and GPSI is given in the ChargingDataRequest.pDUSessionChargingInformation.userInformation.servedGPSI field. In an N28 message, SUPI is given in the SpendingLimitContext.supi field, and GPSI is given in the SpendingLimitContext.gpsi field.

When both SUPI and GPSI are provided in the message, the following create_config.info questions are used to select SUPI or GPSI:

What field should be used to locate the device if both the Imsi and AccessNumber are present?

What field should be used to locate the login device if both the LoginId and AccessId are present?

When SUPI is used to locate a device object, the Charging Server finds the device object by the IMSI field (for Mobile devices) or the LoginId field (for Login devices). When GPSI is used to locate a device object, the Charging Server finds the device object by the AccessNumber field (for mobile devices) or the AccessId field (for login devices).

If IMSI is provided in the 5G message (N40 or N28), after successful creation of a session, the Charging Server checks whether the MtxMobileDeviceObject.Imsi field is present in the device object. If it is not set, the IMSI attribute from the 5G message is copied to the MtxMobileDeviceObject.Imsi field in the database.

Adding Device Types

Operators can define new device types, associate multiple access numbers with a device, and base rating on device attributes. For example, an operator can define a custom set-top device that uses a MAC address to identify the subscription owning a cable device and charge them based on the set-top device model. In addition, product offers can be purchased for a device, which makes the associated services and pricing available only to that device. This also enables operators to set up pricing for devices that limits the device to access only certain content.

A device can be removed from a subscription so it can be reassigned to another subscription and it can be deleted from the database when no longer needed.

For information about extending MATRIXX device types to create custom devices, see the discussion about extending MATRIXX Engine functionality in MATRIXX Configuration. For information about managing devices for subscriptions, including assigning access numbers, removing and deleting them, and changing the status of a device, see MATRIXX Subscriber Management API.

Changing an IMSI or a Login ID

Using the device modify request API, you can change the IMSI for a mobile device or the login ID of a login device. If an IMSI or a login ID is already assigned to a device, an error is returned. When an IMSI or login ID is changed, the ProvisionedTime of the device is updated to the time of the modification.

To change a device IMSI, enter the new value in the Imsi field. To change a device login ID, enter the new value in the LoginId field.