This page presents illustrative flows for USSD requests initiated by a UE . The USSI features are described in the administration guide.
A balance query example
A signalling diagram for a balance query operation is shown below.
1 - The INVITE has an SDP offer as per TS 24.390 section 4.5.2. The INVITE body is as per 24.390. It is a multi-part body with both an SDP and a USSD message. An example of a USSD message is
Content-Type: application/vnd.3gpp.ussd+xml <?xml version="1.0" encoding="UTF-8"?> <ussd-data> <language>en</language> <ussd-string>*100*1#</ussd-string> </ussd-data>
2 - An iFC is used to match USSD requests. An example is shown in INVITE Request containing USSD content
3 - A 2xx to the INVITE is sent, confirming the dialog. The SDP answer reflects the offer. The response contains a Recv-Info header field set to g.3gpp.ussd
4 - Forwarded to the UE
5 - ACK
6 - Forwarded to the IPSMGW/USSIGW
7 - A MAP Process-Unstructured-SS-Request containing the USSD message is sent to the HLR addressed using the MSISDN
8 - The HLR sends it towards the Prepaid SCP
9 - The SCP responds with the balance information in a USSD message
10 - Forwarded to the IPSMGW/USSIGW
11 - The IPSMGW/USSIGW converts the USSD message in the response into an XML document. It is placed in the body of the BYE request
An example is
Content-Type: application/vnd.3gpp.ussd+xml <?xml version="1.0" encoding="UTF-8"?> <ussd-data> <language>en</language> <ussd-string> Hello, your credit is $175.50. Thanks for your query. We are happy to assist. Your operator </ussd-string> </ussd-data>
12 - Proxied to the UE