5 Network initiated unstructured supplementary service
23.0903GPPRelease 17Stage 2TSUnstructured Supplementary Service Data (USSD)
5.1 Handling of network initiated USSD
The network (MSC, VLR or HLR) can at any time send a USSD operation towards an MS. This operation may be either a request (asking the MS to provide information) or a notification (requiring no information in the response from the MS). No prior provision of USSD is required, although provision of services which make use of USSD may be required. All USSD requests, notifications and responses (except responses to notifications) contain the USSD string, an alphabet indicator and language indicator.
5.2 Functions and information flows
The following text describes the handling of network initiated USSD. Diagrammatic representations are as follows:
Figure 5.1 SDL for USSD invocation (HLR, VLR, MSC);
Figure 5.2 SDL for forwarding of USSD operations (VLR, MSC);
Figure 5.3 SDL for MS;
Figure 5.4 Information flow for successful single USSD request;
Figure 5.5 Information flow for successful single USSD notification;
Figure 5.6 Information flow for successful multiple USSD requests;
Figure 5.7 Information flow for failed USSD request.
5.2.1 Invoking unstructured SS operation from the HLR
When an application in the HLR is to send a USSD request or notification to an MS, it shall set up a transaction to the VLR where the subscriber is currently registered and send the operation to the VLR. It shall then await a response. The HLR is responsible for controlling the transaction, and shall therefore normally release the transaction when it receives a response from the VLR. The HLR may also release the transaction before receiving a response if necessary (e.g. if an application timer expires).
If an application in the HLR needs to send further operations to the same MS as part of the same application, it may continue to use the same transaction until all operations are completed (see figure 5.6). If a different transaction is to be used for a subsequent operation, the HLR shall release the first transaction before starting the next.
If the VLR releases the transaction at any time (e.g. due to user clearing), the HLR shall inform the application and terminate the USSD operation.
See clause 5.2.4 for forwarding of an HLR invoked operation by the VLR and MSC.
5.2.2 Invoking unstructured SS operation from the VLR
When an application in the VLR is to send a USSD request or notification to an MS, it shall set up a transaction to the MSC where the subscriber is currently registered and send the operation to the MSC. It shall then await a response. The VLR is responsible for controlling the transaction, and shall therefore normally release the transaction when it receives a response from the MSC. The VLR may also release the transaction before receiving a response if necessary (e.g. if an application timer expires).
If an application in the VLR needs to send further operations to the same MS as part of the same application, it may continue to use the same transaction until all operations are completed. If a different transaction is to be used for a subsequent operation, the VLR shall release the first transaction before starting the next.
See clause 5.2.4 for forwarding of a VLR invoked operation by the MSC.
If the MSC releases the transaction at any time (e.g. due to the user clearing), the VLR shall inform the application and terminate the USSD operation.
5.2.3 Invoking unstructured SS operation from the MSC
When an application in the MSC is to send a USSD request or notification to an MS, it shall set up a transaction to the MS where the subscriber is currently registered and send the operation to the MS. It shall then await a response. The MSC is responsible for controlling the transaction, and shall therefore normally release the transaction when it receives a response from the MS. The MSC may also release the transaction before receiving a response if necessary (e.g. if an application timer expires).
If an application in the MSC needs to send further operations to the same MS as part of the same application, it may continue to use the same transaction until all operations are completed. If a different transaction is to be used for a subsequent operation, the VLR shall release the first transaction before starting the next.
If the MS releases the transaction at any time (e.g. due to the user clearing), the MSC shall inform the application and terminate the USSD operation.
NOTE: MSC invoked USSD is only likely to be used for call related operations, where the application is controlling a call to or from the MS.
5.2.4 Forwarding USSD operations
The VLR may any time receive a USSD operation from the HLR. If the subscriber can be contacted, the VLR shall set up a transaction to the MSC and forward the operation unchanged. Any further information exchange between the HLR and MSC shall be transparent to the VLR. When one transaction is released, the VLR shall release the other.
The MSC may at any time receive an USSD operation from the VLR. If the subscriber can be contacted, the MSC shall set up a transaction to the MS and forward the operation unchanged. Any further information exchange between the VLR and MS shall be transparent to the MSC. When one transaction is released, the MSC shall release the other.
5.2.5 Handling of unstructured SS operation at the MS
The MS may at any time receive a USSD operation (request or notification) from the MSC.
If the MS receives a USSD transaction while another USSD transaction (network or mobile initiated) or a non-call related supplementary service transaction is in progress, the MS shall reject the new transaction.
If the MS receives a USSD operation when it is in a state where the MMI required is not possible (e.g. during dialling) it shall reject the operation.
If the MS does not support the alphabet indicated in the USSD operation, it shall inform the network.
If the MS is in a state where it can handle the operation, it shall process the operation as follows:
– The MS shall analyse the data coding scheme and decides whether the USSD operation is MMI mode or application mode. See 3GPP TS 22. 030 [2] for details of codes.
If the data coding scheme corresponds to the MMI mode :
– For a USSD request, the MS shall display the text provided and await user input. If the user enters a response, the MS shall return the response to the MSC, maintaining the transaction. If the user requests release of the transaction, the MS shall release the transaction.
– For a USSD notification, the MS shall display the text provided and send back a response.
If the data coding schemes corresponds to the application mode :
– For a USSD request, the MS shall pass the message to the application addressed in the ME, SIM or TE, and await application response . If the application responds, the MS shall pass the response to the MSC, maintaining the transaction. If the application releases the transaction, the MS shall release the transaction.
– For a USSD notification, the MS shall pass the message to the application addressed in the ME, SIM or TE, and send back a response.
After sending the response to a USSD operation, the MS shall wait for the network to release the transaction. If, while awaiting this release, the MS receives any further USSD operations, it shall process them in the normal way.
Figure 5.1: Network initiated USSD invoked at HLR, VLR or MSC
Figure 5.2: Network initiated USSD forwarding at VLR or MSC
Figure 5.3: Network initiated USSD at MS
MS MSC VLR HLR
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ │ │ │ │ │ │ │
│HLR initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │USSD response│ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ Release │ │
│ │ │ │ Release │ │<────────────┤ │
│ │ Release │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│VLR initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │USSD request │ │ │ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ Release │ │ │ │
│ │ Release │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│MSC initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD request │ │ │ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ Release │ │ │ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
Figure 5.4: Information flow for USSD request (Single Operation)
MS MSC VLR HLR
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ │ │ │ │ │ │ │
│HLR initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD notify │ │
│ │ │ │USSD notify │ │<────────────┤ │
│ │USSD notify │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │USSD response│ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ Release │ │
│ │ │ │ Release │ │<────────────┤ │
│ │ Release │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│VLR initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │USSD notify │ │ │ │
│ │USSD notify │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ Release │ │ │ │
│ │ Release │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│MSC initiated │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD notify │ │ │ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ Release │ │ │ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
Figure 5.5: Information flow for USSD notification (Single Operation)
MS MSC VLR HLR
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │USSD response│ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
: : : : : : : :
: : : : : : : :
: : : : : : : :
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │USSD response│ │ │ │ │ │
│ ├────────────>│ │USSD response│ │ │ │
│ │ │ ├────────────>│ │USSD response│ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ Release │ │
│ │ │ │ Release │ │<────────────┤ │
│ │ Release │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
Figure 5.6: Information flow for HLR initiated USSD request (Multiple Operation On Same Transaction)
MS MSC VLR HLR
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ │ │ │ │ │ │ │
│VLR cannot contact subscriber │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │ │ │<────────────┤ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ Error │ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│MSC cannot contact subscriber │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │ │ │<────────────┤ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ Error │ │ │ │
│ │ │ ├────────────>│ │ Error │ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│Error detected at MS │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ Error │ │ │ │ │ │
│ ├────────────>│ │ Error │ │ │ │
│ │ │ ├────────────>│ │ Error │ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│MS clears transaction │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │USSD request │ │
│ │ │ │USSD request │ │<────────────┤ │
│ │USSD request │ │<────────────┤ │ │ │
│ │<────────────┤ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ Release │ │ │ │ │ │
│ ├────────────>│ │ Release │ │ │ │
│ │ │ ├────────────>│ │ Release │ │
│ │ │ │ │ ├────────────>│ │
│ │ │ │ │ │ │ │
Figure 5.7: Information flow for failed USSD request
5.3 Information stored in the HLR
The HLR shall not store any information specific to the use of USSD, although information may be stored for services which are offered by USSD applications.
5.4 Information stored in the VLR
The VLR shall not store any information specific to the use of USSD, although information may be stored for services which are offered by USSD applications.
5.5 Handover
Handover will have no impact on the operation of this service.
5.6 Cross-phase compatibility
Network initiated USSD shall not be permitted if the MS or any network entity involved in the operation is of Phase 1. If, when setting up a transaction, a network entity discovers that the other end is of Phase 1, it shall reject the request and release the transaction being set up.