3G/UMTS

 

 

 

 

USSD (Unstructured Supplementary Service Data)

 

USSD is a kind of protocol (Supplementary Service protocol) that is designed for a UE to communicate with the service provider's computer. It was originally designed for GSM cellular communication and now is being used in WCDMA network as well.

 

In terms of base protocol, it is very similar to SMS. Like SMS, it is using control channel to carry the data. In WCDMA, it use DCCH to carry the data and in GSM it use SDCCH to carry the data.

However, there is minor difference in terms of managing a session. (According to Wikipedia )Unlike Short Message Service (SMS) messages, USSD messages create a real-time connection during a USSD session. The connection remains open, allowing a two-way exchange of a sequence of data. This makes USSD more responsive than services that use SMS.

 

< Example 1 > : MT USSD during Voice Call

    1) RRC : RRC Connection Request

    2) RRC : RRC Connection Setup

    3) RRC : RRC Connection Setup Complete

    4) RRC: initialDirectTransfer + MM : CM Service Request

    5) RRC : downlinkDirectTransfer + MM:Authentication Request

    6) RRC : uplinkDirectTransfer + MM:Authentication Response

    7) RRC : Security Mode Command

    8) RRC : Security Mode Complete

    9) RRC : uplinkDirectTransfer + CC : Setup

    10) RRC : downlinkDirectTransfer + CC : Call Proceeding

    11) RRC : Radio Bearer Setup

    12) RRC : Radio Bearer Setup Complete

    13) RRC : downlinkDirectTransfer + CC : Alerting

    14) RRC : uplinkDirectTransfer + CC : Connect

    15) RRC : downlinkDirectTransfer + CC : Connect Acknowledge

    16) < Voice Traffic >

    17) NW --> UE : SS : Register (USSD : send 'Register')

    18) NW <-- UE : SS : Facility (USSD : recieve 'Facility')

    19) NW --> UE : SS : Release Complete (USSD : send 'Release Complete')

 

    Example Contents of Step 17)

 

    DL-DCCH-Message

    message: downlinkDirectTransfer (5)

        downlinkDirectTransfer: r3 (0)

            r3

                downlinkDirectTransfer-r3

                    rrc-TransactionIdentifier: 0

                    cn-DomainIdentity: cs-domain (0)

                    nas-Message: 0b3b1c23a12102010002013d301904010004144d2aa83a9d...

                    GSM A-I/F DTAP - Register

                        Protocol Discriminator: Non call related SS messages

                            .... 1011 = Protocol discriminator: Non call related SS messages (0x0b)

                            0... .... = TI flag: allocated by sender

                            .000 .... = TIO: 0

                        ..11 1011 = DTAP Non call Supplementary Service Message Type: Register (0x3b)

                        Facility

                            Element ID: 0x1c

                            Length: 35

                            GSM Mobile Application

                                Component: invoke (1)

                                    invoke

                                        invokeID: 0

                                        opCode: localValue (0)

                                            localValue: unstructuredSS-Notify (61)

                                        ussd-DataCodingScheme: 00

                                            0000 .... = Coding Group: Coding Group 0 - GSM 7 bit

                                            .... 0000 = Language: German (0)

                                        ussd-String: 4d2aa83a9d12413ad0d35e96838653d030cc6603

                                        USSD String: MT USSD : Over CS Call

 

    Example Contents of Step 18)

 

    UL-DCCH-Message

    message: uplinkDirectTransfer (27)

        uplinkDirectTransfer

            cn-DomainIdentity: cs-domain (0)

            nas-Message: 8b3a05a203020100

            GSM A-I/F DTAP - Facility

                Protocol Discriminator: Non call related SS messages

                    .... 1011 = Protocol discriminator: Non call related SS messages (0x0b)

                    1... .... = TI flag: allocated by receiver

                    .000 .... = TIO: 0

                ..11 1010 = DTAP Non call Supplementary Service Message Type: Facility (0x3a)

                Facility

                    Length: 5

                    GSM Mobile Application

                        Component: returnResultLast (2)

                            returnResultLast

                                invokeID: 0

 

 

    Example Contents of Step 19)

 

    DL-DCCH-Message

    integrityCheckInfo

    message: downlinkDirectTransfer (5)

        downlinkDirectTransfer: r3 (0)

            r3

                downlinkDirectTransfer-r3

                    rrc-TransactionIdentifier: 0

                    cn-DomainIdentity: cs-domain (0)

                    nas-Message: 0b2a1c05a203020100

                    GSM A-I/F DTAP - Release Complete

                        Protocol Discriminator: Non call related SS messages

                            .... 1011 = Protocol discriminator: Non call related SS messages (0x0b)

                            0... .... = TI flag: allocated by sender

                            .000 .... = TIO: 0

                        ..10 1010 = DTAP Non call Supplementary Service Message Type:

                                                          Release Complete (0x2a)

                        Facility

                            Element ID: 0x1c

                            Length: 5

                            GSM Mobile Application

                                Component: returnResultLast (2)

                                    returnResultLast

                                        invokeID: 0

 

 

< Example 2 > : MT USSD during Idle - Notify

    1) Paging Type 1

    2) RRC : RRC Connection Request

    2) RRC : RRC Connection Setup

    3) RRC : RRC Connection Setup Complete

    4) RRC: initialDirectTransfer + MM : CM Service Request

    5) RRC : downlinkDirectTransfer + MM:Authentication Request

    6) RRC : uplinkDirectTransfer + MM:Authentication Response

    7) RRC : Security Mode Command

    8) RRC : Security Mode Complete

    9) SS : Register (USSD : send 'Register')

    10) SS : Facility (USSD : recieve 'Facility')

    11) SS : Release Complete (USSD : send 'Release Complete')

    12) RRC : RRC Connection Release

    13) RRC : RRC Connection Release Complete

    Example Contents of Step 1)

    

    PCCH-Message

    message: pagingType1 (0)

        pagingType1

            pagingRecordList: 1 item

                Item 0

                    PagingRecord: cn-Identity (0)

                        cn-Identity

                            pagingCause: terminatingHighPrioritySignalling (4)

                            cn-DomainIdentity: cs-domain (0)

                            cn-pagedUE-Identity: tmsi-GSM-MAP (1)

                                tmsi-GSM-MAP: 00000001

 

 

Consecutive USSD Message

 

Normally we send or receive one USSD message in one RRC session, but there case be a case where UE or NW want to send multiple USSDs consecutively. We can think of following two cases for this consecutive USSD.

 

< Case 1 >

    1) < Make a call (CS or PS) >

    2) SS : Register (USSD : send 'Register') - First USSD String

    3) SS : Facility (USSD : recieve 'Facility')

    4) SS : Release Complete (USSD : send 'Release Complete')

    5) SS : Register (USSD : send 'Register') - Second USSD String

    6) SS : Facility (USSD : recieve 'Facility')

    7) SS : Release Complete (USSD : send 'Release Complete')

 

< Case 2 >

    1) < Make a call (CS or PS) >

    2) SS : Register (USSD : send 'Register') - First USSD String

    3) SS : Facility (USSD : recieve 'Facility')

    4) SS : Register (USSD : send 'Register') - Second USSD String

    5) SS : Facility (USSD : recieve 'Facility')

    6) SS : Release Complete (USSD : send 'Release Complete')

 

Somehow when I tested these two cases with some of commerical UE, < Case 2 > work as expected but < Case 1 > does not work as expected. UE send 'Release Complete with 'ussd-busy' error at step 6). I am not sure yet.. if this is because 3GPP spec does not allow it or any UE issues. In terms of 3GPP spec, I see conflicting statements as follows. It will be appreciated if any expert in this area provide some advice on this.

 

TS 24.080 4.3.2.22 ussd-Busy

 

This error is returned by the MS to the network when the MS is not able to process the unstructured supplementary service data operation due to an on-going MMI input of the user or an already existing call independent supplementary service transaction.

 

TS 24.090 5.1.1 Normal Operation

 

When the MS receives an USSD operation in parallel to any call independent supplementary service transaction, it shall respond with a return error component in a RELEASE COMPLETE message, containing the "USSD-Busy" error as specified in 3GPP TS 24.080, to indicate the failure in handling a parallel USSD operation. However, the network is allowed to initiated USSD operations in parallel to call related transactions.

 

 

On-line tool for decoding/ecoding USSD text with GSM 7 Bit

 

When you want to encode USSD Hex string from a text string, I would recommend you to try with the following tool from http://smstools3.kekekasvi.com/topic.php?id=288