Request

The <updateSubscriber> request provisions IMSI, MSISDN, and External Identifier routing data and can provision subscriber data. See Subscriber and Routing Data for a description of subscriber and routing data.

This request provisions standalone IMSI, MSISDN, and External Identifier routing entities and/or subscriber data. Each routing entity contains up to nine destination names. Each destination contains FQDN and realm values, which are used for routing messages.

When the group="y" attribute is specified, the request establishes or removes relationships between Account ID, IMSI, MSISDN, and External Identifier values. When adding new Account ID, IMSI, MSISDN, or External Identifier values to a subscriber, the request can also create a new IMSI, MSISDN, or External Identifier routing entity. When an IMSI, MSISDN, or External Identifier value is removed from a subscriber, the request deletes IMSI, MSISDN, or External Identifier routing entities. Once a subscriber is created, all subsequent subscriber requests can use any of the subscriber's Account ID, IMSI, MSISDN, or External Identifier values to update, delete or read the subscriber.

Note:

You can only add a subscriber to a subscriber table, if the Account ID, IMSI, MSISDN, or External Identifier is not already in the table. If the table already contains any of these values, the add function fails and an error condition report is generate that contains the reason for the failure.

The request can also be used to update destination names in existing routing entities or create new routing entities, regardless of whether the group="y" attribute is specified. These destination changes are applied to all specified IMSI, MSISDN, and External Identifier routing entities. If all of the specified Account ID, IMSI, MSISDN, and External Identifier values are assigned to one subscriber, the destination changes are also applied to all of the subscriber's routing entities.

If the group="y" attribute is specified, then the changes are also applied to any specified new or existing standalone routing entities, which are assigned to the subscriber.

The request can also be used to remove a destination value from existing IMSI and/or MSISDN and/or External Identifier routing entities by specifying "none" as the destination name.

Semantic Rules (All Requests)

  • Each IMSI, MSISDN, and External Identifier routing entity can be assigned to a maximum of 1 subscriber.
  • All specified destination names must already exist in the database.
  • Each destination name type can only be specified once.
  • Any existing destination(s) for a routing entity will not be changed/removed if not specified in the request.
  • Specifying a destination name of "none" removes the association of that destination from the specified routing entity(s).

Semantic Rules (requests that do not specify the group attribute or specify group="n")

  • The accountId, deleteAccountId, deleteImsi, deleteMsisdn, and deleteExternalIdentifier parameters cannot be specified.
  • All specified existing IMSI, MSISDN, and External Identifier values must be for standalone routing entities or must all be assigned to one subscriber. There cannot be a mixture of standalone routing entities and routing entities that are part of a subscriber.
  • At least one routing entity (IMSI, MSISDN, or External Identifier) value must be specified within the addressList.
  • A maximum of 10 routing entities (IMSI, MSISDN, External Identifier, or combinations) can be specified within the addressList.
  • At least one destination must be specified within the destionationList.
  • All specified routing entities will be provisioned with the same destination value(s).

Semantic Rules (requests that specify group="y")

  • The accountId, deleteAccountId, deleteImsi, deleteMsisdn, and deleteExternalIdentifier parameters can be specified.
  • All specified, existing accountID, imsi, msisdn, or externalIdentifier values must be assigned to the same subscriber or they can exist in a standalone routing entity. After the command successfully completes, all specified values are assigned to the same subscriber.
  • All specified addresses within the deleteAccountId, deleteImsi, deleteMsisdn, and deleteExternalIdentifier tags that exist in the database must be assigned to the same subscriber. All specified addresses within the addressList (Account ID, IMSI, MSISDN, or External Identifier values) must also be assigned to the same subscriber or not assigned to any subscriber.
  • At least one imsi, msisdn, externalIdentifier, or accountId value must be specified within the addressList.
  • The destinationList tag is mandatory, but no values are required within it. This allows the user to add an Account ID to an existing MSISDN and/or IMSI and or External Identifier values. This allows the user to create a Subscriber using existing MSISDN/IMSI/External Identifier and also allows the user to create a Subscriber with a mix of existing MSISDN/IMSI/External Identifier and new MSISDN/IMSI/External Identifier. In this case same destination(s) has to set to all routing entities.
  • The addressList can have a maximum of one accountId, six imsi, six msisdn, ten externalIdentifier, one deleteAccountId, six deleteImsi, and/or six deleteMsisdn values specified. If any of these limits are exceeded, the request fails.
  • All accountId, imsi, msisdn, and externalIdentifier values specified within the addressList that are not currently associated with a subscriber will be assigned to the same subscriber. They are added to an existing subscriber or new subscriber.
  • If a new subscriber is being created with all new routing entities, all specified routing entities will be provisioned with the specified destination values
  • If a new subscriber is being created with at least one existing standalone routing entity, all destination values from existing standalone routing entities must be the same prior to applying any specified destination changes. All new routing entities will inherit their destination values from an existing standalone routing entity with the applied destination changes.
  • If existing standalone routing entities are being added to an existing subscriber, the destination values in each standalone routing entity must match the destination values for the subscriber (extracted from any of the subscriber routing entities) prior to applying any specified destination changes.
  • If new routing entities are being added to an existing subscriber, the new routing entities will inherit the destination values for the subscriber (extracted from any of the subscriber routing entities).
  • If a new routing entity is being created, at least one of its destination values cannot be equal to "none".
  • The updated subscriber must have at least one IMSI, MSISDN, or External Identifier routing entity.
  • The updated subscriber can have 0 or 1 accountID values, 0-6 imsi values, and 0-6 msisdn values, as long as there is at least 1 IMSI, MSISDN, or External identifier value. If the result of the update (deleting and then adding Account ID, IMSI and/or MSISDN and/or External Identifier values) would cause too many Account ID, IMSI, MSISDN, External Identifier values, the request fails.
  • The subscriber Account ID value can be updated only if it is currently null or deleted within the request (as specified by the deleteAccountId parameter).
  • If any of the deleteAccountId, deleteImsi, deleteMsisdn, or deleteExternalIdentifier values do not exist in the database, they are ignored. If nothing else changes for the subscriber, then NO_UPDATES is returned.
  • If any of the deleteAccountId, deleteImsi, deleteMsisdn, or deleteExternalIdentifier values exist in the database, they must be assigned to the subscriber being updated or the command fails.
  • If any of the deleteImsi, deleteMsisdn, or deleteExternalIdentifier values exist, the routing entity is deleted unless it is the last IMSI, MSISDN, or External Identifier routing entity for the subscriber, in which case the command fails.

Request Format

The request must be inserted between the <soapenv:Body> and </soapenv:Body> XML tags as shown in SOAP Request Messages.
<updateSubscriberRequest [timeout="timeout"] [group="group"]>
    <addressList>
    [   <deleteAccountId>deleteAccountId</deleteAccountId> ]
    [
        <deleteImsi>deleteImsi</deleteImsi>
        …
        <deleteImsi>deleteImsi</deleteImsi>
    ]
    [
        <deleteMsisdn>deleteMsisdn</deleteMsisdn>
        …
        <deleteMsisdn>deleteMsisdn</deleteMsisdn>
    ]
    [
        <deleteExternalId>deleteExtIdentifier<deleteExternalId>
        …
        <deleteExternalId>deleteExtIdentifier</deleteExternalId>
    ]
    [   <accountId>accountId</accountId> ]
    [
    <imsi>imsi</imsi>
        …
    <imsi>imsi</imsi>
    ]
    [
    <msisdn>msisdn</msisdn>
        …
    <msisdn>msisdn</msisdn>
    ]
    [
    <externalId>extIdentifier</externalId>
        …
    <externalId>extIdentifier</externalId>
    ]
    </addressList>
    <destinationList>
    [   <imshss>imshss</imshss>       ]
    [   <ltehss>ltehss</ltehss>       ]
    [   <pcrf>pcrf</pcrf>             ]
    [   <ocs>ocs</ocs>                ]
    [   <ofcs>ofcs</ofcs>             ]
    [   <aaa>aaa</aaa>                ]
    [   <userdef1>userdef1</userdef1> ]
    [   <userdef2>userdef2</userdef2> ]
    [   <mtchss>mtchss</mtchss>       ]
    </destinationList>
</updateSubscriberRequest>

Request Parameters

Table 4-11 <updateSubscriberRequest> Parameters (SOAP)

Parameter Description Values
timeout (Optional)

The amount of time (in seconds) to wait before being able to perform a write if another connection is performing a write, or has a transaction open. Clients waiting to write are processed in the order that their requests were received.

If the request is being performed within a transaction, this parameter will have no effect, as the client already has a transaction open.

0 (return immediately if not available) to 3600 seconds (default is 0).
group (Optional) Indicates if relationships between a group of related IMSI and/or MSISDN and/or External Identifier routing entities and Account ID value should be created/updated.

y – Create new or update existing subscriber relationships and update destinations.

n – Only update destinations, not relationships between routing entities (default).

addressList XML tag that contains a list of addresses to be created or updated. Must have at least 1 of the following tags and values:
  • 0-1 – deleteAccountId
  • 0-6 – deleteImsi
  • 0-6 – deleteMsisdn
  • 0-10 – deleteExternalIdentifier
  • 0-1 – accountId
  • 0-6 – imsi
  • 0-6 – msisdn
  • 0-10 – externalIdentifier
deleteAccountId (Optional) A user-defined Account ID value to delete. 1 to 26 numeric digits.
deleteImsi (Optional) An IMSI (specified in E.212 format) value to delete. 10 to 15 numeric digits.
deleteMsisdn (Optional) An MSISDN (specified in E.164 international public telecommunication numbering plan format) value to delete. 8 to 15 numeric digits.
deleteExternalId (Optional) An ExternalIdentifier (specified in NAI format)value to delete. A string with 3 to 257 characters.
accountId (Optional) A user-defined Account ID value to add or update. 1 to 26 numeric digits.
imsi (Optional) An IMSI (specified in E.212 format) value to add or update. 10 to 15 numeric digits.
msisdn (Optional) An MSISDN (specified in E.164 international public telecommunication numbering plan format) value to add or update. 8 to 15 numeric digits.
ExternalId (Optional) An ExternalIdentifier (specified in NAI format)value to add or update. A string with 3 to 257 characters.
destinationList (Optional) XML tag that contains a list of destination values to update or set in the routing entity(s). Can be empty, or contain any of the following destination tags and values: imshss, ltehss, pcrf, ocs, ofcs, aaa, userdef1, userdef2 and/or mtchss.
imshss (Optional) The name of the IMS HSS destination. A string with 1 to 32 characters.
ltehss (Optional) The name of the LTE HSS destination. A string with 1 to 32 characters.
pcrf (Optional) The name of the PCRF destination. A string with 1 to 32 characters.
ocs (Optional) The name of the OCS destination. A string with 1 to 32 characters.
ofcs (Optional) The name of the OFCS destination. A string with 1 to 32 characters.
aaa (Optional) The name of the AAA server destination. A string with 1 to 32 characters.
userdef1 (Optional) The name of the first user defined destination. A string with 1 to 32 characters.
userdef2 (Optional) The name of the second user defined destination. A string with 1 to 32 characters.
mtchss (Optional) The name of the MTCHSS destination. A string with 1 to 32 characters.