Communication devices and methods for generating a message

According to one embodiment, a communication device is described that comprises a determining circuit configured to determine a type of an information indicated by a first message, wherein the first message is formed in accordance with a first transmission protocol; a selecting circuit configured to select a type of message according to a second transmission protocol based on the determined type of information; and a message generating circuit configured to generate a second message of the selected type according to the second transmission protocol indicating the information.

TECHNICAL FIELD

Embodiments generally relate to communication devices and methods for generating a message.

BACKGROUND

Unstructured Supplementary Service Data (USSD) is a protocol that may be used by cellular telephones to communicate with a component of the network side. The efficient transmission of supplementary service data in accordance with USSD is desirable.

DESCRIPTION

Unstructured supplementary service data is a transmission protocol that allows the exchange of data between a communication terminal of a communication system and a component of the network side of the communication system, e.g. a radio access network and/or a core network of a cellular mobile communication system wherein the communication terminal is a subscriber terminal of the cellular mobile communication system.

In USSD Man Machine Interface mode (MMI mode) data may be transmitted that can be used to exchange generic information between a communication terminal and a component of the network side. For example, a communication terminal may transmit data according to USSD to request special information from the component of the network side and the component of the network side may transmit information data to be displayed by the communication terminal.

In USSD application mode data may be transmitted that can be used to exchange application specific information between a communication terminal and a component of the network side. For example, information may be exchanged for controlling a network based voice mail box for the communication terminal.

A USSD message can contain up to 182 7 bit characters.

In a mobile communication system according to 3GPP (3rdGeneration Partnership Project) USSD data (i.e. USSD messages) may be transported via layer 3 signaling. According to USSD data are exchanged in (small) dialogs referred to as transactions. Such a dialog is identified by a transaction identifier (id). According to USSD, data are immediately transmitted (without store and forward).

According to one embodiment, a possibility is provided to transport USSD messages in a communication network that is not necessarily based on a 3GPP communication network. For example, according to one embodiment, a transport mechanism is provided that is applicable to an IMS (Internet Protocol Multimedia Subsystem) that is not necessarily provided with a 3GPP communication network. According to one embodiment, a possibility for immediate transport of USSD messages is provided. Further, according to one embodiment, a possibility for efficient transport (e.g. with low signaling overhead) is provided. According to one embodiment, a transport mechanism is provided that is compliant with IETF (Internet Engineering Task Force).

According to one embodiment, information indicated by a USSD message is transported (i.e. transmitted) using MSRP (Message Session Relay Protocol).

In other words, according to one embodiment, USSD is provided based on the MSRP such that USSD messages can be transported in a communication system capable of using the MSRP (e.g. an IMS).

The MSRP can be used to exchange messages within a messaging session, e.g. a multimedia session. Multimedia sessions can for example be set up and controlled using the Session Initiation Protocol (SIP), e.g. in an IMS which provides communication services based on SIP.

MSRP SEND messages can be used to transport messages. An entire message may be split into multiple chunks each being transported by an MSRP SEND message.

MSRP REPORT messages may be used to respond with delay to MSRP SEND messages.

According to one embodiment, a communication system supporting MSRP (but not providing 3GPP layer 3 signaling) can be used to transport USSD messages. Thus, according to one embodiment, supplementary services to be used in a communication system not providing 3GPP layer 3 signaling can be based on USSD and existing USSD based supplementary services can be used in a communication system not providing 3GPP layer 3 signaling. According to one embodiment USSD messages can be immediately transmitted via MSRP and can be transmitted efficiently (e.g. with low signaling overhead). Further, according to one embodiment, USSD message transport via MSRP is compliant with the IETF specifications. According to one embodiment, USSD messages are transported using existing MSRP messages such that no new MSRP messages need to be specified.

Generally, according to one embodiment, a message according to a first transmission protocol (e.g. USSD) may be transmitted by a communication device by means of a message according to a second transmission protocol (e.g. MSRP) in a way that may allow efficient transmission of the message according to the first transmission protocol (or, in other words, the information indicated by the message according to the first transmission protocol). A communication device according to an embodiment is described in the following with reference toFIG. 1.

FIG. 1shows a communication device100according to an embodiment.

The communication device100includes a determining circuit101configured to determine, for a first message formed in accordance with a first transmission protocol indicating information to be transmitted as part of a message exchange, whether or not the first message is a message directed to an initiator of the message exchange (e.g. a message dialog such as a USSD transaction).

The communication device100further includes a selecting circuit102configured to select a type of message according to a second transmission protocol based on whether or not the first message is directed to the initiator of the message exchange and a message generating circuit103configured to generate a second message of the selected type according to the second transmission protocol indicating the information.

According to one embodiment, in other words, a message according to a first protocol is translated into a message according to a second protocol, wherein the type of message of the second protocol that is used depends on to whom the information indicated by the first message is addressed, namely whether to the initiator of the message exchange in course of which the information is to be transmitted or to a non-initiator of the message exchange in course of which the information is to be transmitted. In other words, different types of messages of the second protocol are used for different transport directions of the information to be exchanged during the message exchange.

It should be noted that the first message does not necessarily need to be present in the communication device100(i.e. does not necessarily have to be generated by the communication device100or have to have been received by the communication device100). In other words, the second message may be generated for a content, structure, and/or recipient of the first message that it would have if the first transmission protocol was used for transmission of the information.

The first transmission protocol and/or the second transmission protocols are for example application layer protocols, i.e. protocols of the OSI (Open Systems Interconnection) reference model application layer.

According to one embodiment, the communication device further includes a transmitter configured to send the generated second message.

According to one embodiment, the determining circuit is configured to determine whether the first message is directed to the initiator or to a non-initiator of the message exchange.

According to one embodiment, the information is included in the first message.

According to one embodiment, the message generating circuit is configured to generate the second message to include the information.

According to one embodiment, the second protocol is the Message Session Relay Protocol (MSRP).

According to one embodiment, the first protocol is the Unstructured Supplementary Service Data (USSD) protocol.

According to one embodiment, the message exchange is an Unstructured Supplementary Service Data transaction.

According to one embodiment, the message exchange is carried out in a communication session (e.g. a communication session set up with SIP).

The message exchange is for example carried out between the communication device and another communication device.

The communication device is for example a communication terminal.

The communication device may also be a communication server on the network side of a communication system. The communication device may operate as a gateway between two communication systems.

The communication device100for example carries out a method as illustrated inFIG. 2.

FIG. 2shows a flow diagram200according to an embodiment.

The flow diagram200illustrates a method for generating a message.

In201it is determined, for a first message formed in accordance with a first transmission protocol indicating information to be transmitted as part of a message exchange, whether or not the first message is a message directed to an initiator of the message exchange.

In202a type of message according to a second transmission protocol is selected based on whether or not the first message is directed to the initiator of the message exchange.

In203, a second message of the selected type is generated according to the second transmission protocol indicating the information.

In case that the second transmission protocol allows separation of a message in a plurality of parts (which are all associated with the same message by means of an identification of the message), which is also referred to as “chunking”, such as it is the case for MSRP, a plurality of messages according to the first protocol are according to one embodiment sent using a plurality of parts of the same message according to the second protocol. This is illustrated inFIG. 3.

FIG. 3shows a communication device300according to an embodiment.

The communication device300includes a message generating circuit301configured to generate, for each first message of a sequence of first messages formed in accordance with a first application layer transmission protocol indicating an information, a part of a second message according to a second application layer transmission protocol indicating the information, wherein the parts of the second message according to the second application layer transmission protocol each include an identification of the second message.

According to one embodiment, in other words, the first messages are translated to parts of the same second message according to the second protocol. These parts are also referred to as “chunks” of the second message. Similarly, response messages to the parts of the second message may be received as parts (chunks) of one (overall) response message. In other words, a dialog between the communication device and another communication device (providing the response messages) may be carried out using only two (overall) messages (namely the second message and the overall response message by the other communication device) which are separated into chunks. This allows carrying out a message dialog according to the second protocol without need of a communication session in which a plurality of messages are sent and received by both sides. The first protocol and the second protocol are in this embodiments application layer protocols, i.e. protocols of the application layer according to the OSI (Open Systems Interconnection) reference model. The chunks include a common identification, namely an identification of the second message, which may in case that the first protocol is USSD for example correspond to a USSD transaction id.

According to one embodiment, the communication device further includes a transmitter configured to transmit the parts of the second message.

The transmitter is for example configured to transmit the parts of the second message in a communication session.

According to one embodiment, the communication device further includes a receiver configured to receive a response message to at least one part of the second message.

According to one embodiment, the message generating circuit is configured to generate the parts of the second message such that a sequence of parts of the second message corresponding to the sequence of first messages is generated and is configured to generate, for the at least one part of the second message, the part of the second message only after the response message to the part of the second message preceding the part of the second message in the sequence of parts of the second message has been received by the receiver.

According to one embodiment, the message generating circuit is configured to, for the at least one part of the second message, generate the part of the second message in response to the response message.

The communication device may further include a receiver configured to receive a response message to each part of the second message.

According to one embodiment, the message generating circuit is configured to generate the parts of the second message such that a sequence of parts of the second message corresponding to the sequence of first messages is generated and is configured to generate, for each part of the second message but the first part in the sequence of parts of the second message, the part of the second message only after the response message to the part of the second message preceding the part of the second message in the sequence of parts of the second message has been received by the receiver.

The communication device for example carries out a method as illustrated inFIG. 4.

FIG. 4shows a flow diagram400according to an embodiment.

The flow diagram400illustrates a method for generating a message.

In401, for each first message of a sequence of first messages formed in accordance with a first application layer transmission protocol indicating an information, a part of a second message according to a second application layer transmission protocol is generated indicating the information, wherein the parts of the second message according to the second application layer transmission protocol each include an identification of the second message.

It should be noted that embodiments described in context of one of the communication devices are analogously valid for the other communication device and the methods for generating a message and vice versa.

Further, it should be noted that the communication devices and methods for generating a message as described above with reference toFIGS. 1 to 4can be used independently and may also be combined according to various embodiments.

According to one embodiment, the first transmission protocol is USSD and/or the second transmission protocol is MSRP. Thus, according to one embodiment, MSRP messages are used for transporting USSD data (i.e. USSD messages) in a communication system. For this, according to one embodiment, an MSRP session is being set up for USSD communication. A USSD transaction is translated to the chunks of a message to be transmitted by MSRP SEND messages (e.g. for the USSD messages generated by the initator of the message dialog) and MSRP REPORT messages (e.g. for the USSD response messages to be returned to the initiator of the message dialog). The USSD transaction identifier (id) is for example mapped to the MSRP Message-ID header value. A component of the network side may provide its MSRP address for the USSD service during session setup. A communication terminal may according to one embodiment choose a target network address depending on the USSD codes for network indication.

According to one embodiment, for interworking of a communication system supporting MSRP with a communication system that does not support MSRP (but supports USSD by other means) a gateway may be provided translating between USSD messages and MSRP messages. In other words, the communication devices according toFIGS. 1 and 3may be operated as such a gateway.

According to one embodiment, for interworking with USSD based applications an IM client (e.g. running on a communication terminal) and/or an IMS server can be provided for translating between USSD messages and MSRP messages. In other words, the communication devices according toFIGS. 1 and 3may be operated as an IMS client or as an IMS server.

According to one embodiment, USSD REGISTER messages may be translated to MSRP SEND messages. USSD FACILITY messages may be translated to MSRP SEND or MSRP REPORT messages. USSD RELEASE COMPLETE messages may be translated to MSRP SEND or MSRP REPORT messages. USSD response messages may be translated to MSRP SEND messages or MSRP REPORT messages or MSRP response messages.

In the following, examples are given for transporting USSD message information by means of MSRP.

FIG. 5shows a communication system500according to an embodiment.

The communication system500is an IMS communication system, i.e. a communication system based on IMS. It includes a communication terminal501, in other words an end device, for example a mobile terminal, and a visited (IMS) network502, i.e. an IMS network which is not operated by the operator of the home network of the communication terminal501. The visited network502includes a P-CSCF (Proxy-Call Session Control Function503) and a first I-CSCF504(Interrogating-CSCF).

The communication system500further includes a home (IMS) network505of the communication terminal501which includes a second I-CSCF506, an S-CSCF (Serving-CSCF)507and a USSD AS (USSD Application Server)508.

The communication terminal501is connected to the visited network's Proxy-CSCF (P-CSCF)503. The P-CSCF503is connected to the home operator's Serving CSCF (S-CSCF)507via the first I-CSCF504and the second I-CSCF506. The S-CSCF507is connected to the home operator's USSD application server508.

In the following example, it is assumed that the user of the communication terminal501would like to enable call forwarding for his communication terminal501.

The user initiates the generation and sending of a USSD message using the communication terminal501to request call forwarding. The generated USSD message includes particular USSD codes indicating that the USSD message should be sent to the user's home network and indicating that call forwarding is requested.

The communication terminal501further initiates an MSRP session. The corresponding flow is illustrated inFIG. 6.

FIG. 6shows a flow diagram600according to an embodiment.

The flow takes place between a communication terminal601corresponding to the communication terminal501, a P-CSCF602corresponding to the P-CSCF503, an S-CSCF603corresponding to the S-CSCF507, and a USSD AS604corresponding to the USSD AS508.

In605, the communication terminal601generates a SIP INVITE message606for initiating an MSRP session. Since the USSD message includes the USSD code for home network forwarding the communication terminal601chooses the address of the home operator's USSD application server (AS)604as target address for the SIP INVITE message606. The address of the home operator's USSD AS604has for example been provided beforehand to the communication terminal601by the home network operator.

The SIP INVITE message606for example has the following structure:

The communication terminal601sends the SIP INVITE message606via the P-CSCF602and the S-CSCF603to the USSD AS604. The USSD AS604acknowledges the session setup in608by means of an 200 OK message607which is in turn acknowledged by the communication terminal601by means of an ACK message610in609.

The further message flow after session setup is illustrated inFIG. 7.

FIG. 7shows a flow diagram700according to an embodiment.

The message flow takes place between a communication terminal701corresponding to the communication terminal501,601and a USSD AS702corresponding to the USSD AS508,604.

After session setup, in703, the communication terminal701translates the USSD message into a first MSRP SEND message704. The first MSRP SEND message704includes the USSD transaction identifier (id) as a Message-ID header value. It also includes a ‘text/plain’ Content-Type body including the USSD data. The Byte-Range header field is set to 1-*/* to indicate that the first MSRP SEND message704provides the first of several message chunks and the total message size is unknown. The Success-Report header field is set to ‘yes’ to indicate that MSRP success REPORT messages should be sent back.

The USSD message and the first MSRP SEND message704(into which the USSD message is translated) for example have the following structure:

Further, the communication terminal701sets up a Transmission Control Protocol (TCP) connection to the USSD AS702for transporting MSRP messages and associates the connection with the USSD MSRP session. This TCP connection for MSRP transport is indicated by a dashed arrow509inFIG. 5. The communication terminal701sends the first MSRP SEND message704via the established TCP connection to the USSD AS702in703.

In705, when the USSD AS702receives the first MSRP SEND message704it responds by means of a first MSRP 200 OK message706to acknowledge the receipt of the MSRP SEND message704.

In707, the USSD AS702inspects the content of the first MSRP SEND message704for USSD codes. It finds the USSD service code for call forwarding.

The USSD AS702further finds that no destination for call forwarding has been defined yet by the user. Therefore it generates a USSD message to request the call forwarding destination from the communication terminal701. The USSD AS702translates the USSD message to a first MSRP REPORT message709and sends the first MSRP REPORT message709to the communication terminal701in708.

The USSD message and the corresponding first MSRP REPORT message709for example have the following structure:

When receiving the first MSRP REPORT message709the communication terminal701knows from the connection association of the first MSRP REPORT message709with the USSD MSRP session that the first MSRP REPORT message709is for transporting USSD data. From the USSD transaction identifier in the Message-ID header of the first MSRP REPORT message709the communication terminal701knows that the transported USSD data belongs to the transaction initiated by the USSD call forwarding request previously sent (with the first MSRP SEND message704).

In710, the communication terminal701inspects the content of the first MSRP REPORT message709for USSD codes. It finds the code for requesting the call forwarding destination and sends back a second MSRP SEND message711including a USSD body containing a USSD code for call forwarding destination and the destination URL.

The second MSRP SEND message711provides the second chunk of the entire message sent via MSRP whose first chunk has been sent in the first MSRP SEND message704. This is indicated by a Byte-Range header field value ‘89-*/*’.

The USSD message corresponding to the USSD body of the second MSRP SEND message711and the second MSRP SEND message711for example have the following structure:

In712, the USSD AS702acknowledges the information about the forwarding destination by means of a second 200 OK message713.

In714, the USSD AS702sets the call forwarding destination for the user to the URL provided by the second MSRP SEND message711and enables call forwarding.

After the transaction has been completed the USSD AS702releases the transaction by generating a USSD RELEASE COMPLETE message, translating the message to a second MSRP REPORT message716and sending the second MSRP REPORT message to the communication terminal701in715.

The USSD RELEASE COMPLETE message and the second MSRP REPORT message716for example have the following structure:

In one embodiment, the MSRP REPORT message716does not contain any body. In this case the start line of the MSRP REPORT message716may include a comment describing the USSD Release Complete like e.g. ‘USSD Release Complete’.

According to another embodiment, other USSD messages than the ones used in the flow illustrated inFIG. 7may be exchanged. For example, the USSD messages given in the left column of table 1 may be used. For each USSD message a corresponding MSRP message into which the USSD message may be translated according to one embodiment is given in the right hand column of table 1.

TABLE 1USSD messageMSRP messageFacility (Invoke)SENDFacility (Return result)REPORT or response if sent by non-initiator; or SEND if sent by initiatorFacility (Return error)REPORT or response if sent by non-initiator; or SEND if sent by initiatorFacility (Reject)REPORT or response if sent by non-initiator; or SEND if sent by initiatorRELEASE COMPLETEREPORT if sent by non-initiator; or SENDif sent by initiator

According to table 1, USSD error and rejection responses may be translated to MSRP REPORT messages or SEND messages. Such an error response is for example sent if in707, after the checking the USSD content of the first MSRP SEND message704an error occurs, e.g. in case call forwarding is not possible or, in case that instead of call forwarding retrieval of the user's current balance (e.g. prepaid account balance) is requested, if the retrieval of the user's balance fails. In this case, the USSD AS702may for example respond with a REPORT message indicating that an error has occurred.

The example described above with reference toFIGS. 6 and 7may be seen as an example for an end device initiated USSD transaction via IMS.

In the following, a further example is given which is based on the communication system500illustrated inFIG. 5.

In this example, it is assumed that the network provider of the user of the communication terminal501, i.e. the operator of the home network505of the user, would like to know the amount of free memory still available on the user's SIM (Subscriber Identity Module) card installed in the communication device501.

The corresponding message flow is illustrated inFIG. 8.

FIG. 8shows a flow diagram800according to an embodiment.

The flow takes place between a SIM card801, a communication terminal802(in which the SIM card801is installed) corresponding to the communication terminal501, and a USSD AS803corresponding to the USSD AS508.

Analogously as described with reference toFIG. 6, it is assumed that the USSD AS803has initiated an MSRP session by sending a SIP INVITE message to the communication terminal802.

After session setup, in804, the network provider's USSD application server803generates a USSD message directed to the communication terminal802for querying the free memory amount of the SIM card801. The USSD message includes particular USSD codes indicating that the USSD message should be sent to the user's SIM card801and indicating that the amount of free SIM card memory is requested.

The USSD AS803translates the USSD message into a first MSRP SEND message805. The first MSRP SEND message805includes the USSD transaction identifier (id) as a Message-ID header value. It also includes a ‘text/plain’ Content-Type body including the USSD data. The Byte-Range header field is set to 1-*/* to indicate that the first MSRP SEND message805provides the first of several message chunks and the total message size is unknown. The Success-Report header field is set to ‘yes’ to indicate that MSRP success REPORT messages should be sent back.

The USSD message and the corresponding first MSRP SEND message805for example have the following structure:

The USSD AS803sets up a Transmission Control Protocol (TCP) connection to the communication terminal802for transporting MSRP messages and associates the connection with the USSD MSRP session. Then the USSD AS sends the first MSRP SEND message805via the established TCP connection to the communication terminal802.

When the communication terminal receives the first MSRP SEND message805it responds in806by means of an MSRP 200 OK message807to acknowledge the receipt of the first MSRP SEND message805and inspects the content of the first MSRP SEND message805for USSD codes. It finds the USSD code for SIM forwarding. Therefore, in808, the communication terminal802translates the first MSRP SEND message805into a first USSD message810and forwards the first USSD message810to the SIM801in809.

The SIM801inspects the content of the first USSD message810for USSD codes in811. It finds the USSD service code for free memory amount querying and in812sends back a second USSD message813including the free amount of memory. The second USSD message813also includes a USSD code indicating that the second USSD message813should be forwarded to the user's home network.

In814, when receiving the second USSD message813from the SIM801, the communication terminal802translates it to a first MSRP REPORT message816and sends the first MSRP REPORT message816to the USSD AS803in815.

In817, when receiving the first MSRP REPORT message816the USSD AS803knows from the USSD transaction identifier in the Message-ID header of the first MSRP REPORT message816that the transported USSD data belongs to the transaction initiated by the USSD memory query previously sent (by means of the first SEND message805).

In this example it is assumed that the USSD AS803extracts the free memory amount information from the first MSRP REPORT message816and finds that the free memory amount is too low. Therefore the USSD AS803generates another USSD message to request the user's SIM card801to free unneeded memory. The USSD AS803translates this USSD message to a corresponding second MSRP SEND message820. The second MSRP SEND message820includes the same USSD transaction id as the first MSRP SEND message805in the Message-ID header to indicate that the included USSD message belongs to the same USSD transaction. In818, the USSD AS803sends the second MSRP SEND message820to the communication terminal802via the TCP connection associated with the MSRP session.

The communication terminal802acknowledges receipt of the second MSRP SEND message820in819by means of a second 200 OK message833.

In821, the communication terminal802translates the second MSRP SEND message818to a third USSD message823and sends the third USSD message823to the SIM801in822.

In824, the SIM801acknowledges receipt of the instruction to free memory by means of a fourth USSD message825which is translated by the communication terminal802to a second REPORT message827which is sent to the USSD AS803in826.

In828, according to the USSD code for freeing memory in the third USSD message823the SIM801frees unneeded memory.

After the transaction has been completed the USSD AS803releases the transaction by generating a USSD RELEASE COMPLETE message (or USSD release message). The USSD AS803translates the USSD RELEASE COMPLETE message into a third MSRP SEND message829and sends it to the communication terminal802in834.

The USSD release message and the third MSRP SEND message829for example have the following structure:

In830, the communication terminal translates the third MSRP SEND message829into a fifth USSD message832which it sends to the SIM801in831.

The example described with reference toFIG. 8can be seen as an example for an USSD transaction via IMS initiated by the network side (in this case the USSD AS803).

A further example is described in the following. For this example, a communication system based on IMS as illustrated inFIG. 9is assumed.

FIG. 9shows a communication system900according to an embodiment.

The communication system900is an IMS communication system, i.e. a communication system based on IMS. It includes a communication terminal901, in other words an end device, for example a mobile terminal, and a visited (IMS) network902, i.e. an IMS network which is not operated by the operator of the home network of the communication terminal901. The visited network902includes a P-CSCF (Proxy-Call Session Control Function903), a first I-CSCF904(Interrogating-CSCF) and a signaling gateway (SGW)908.

The communciation system900further includes a home IMS network905of the communication terminal901which includes a second I-CSCF906and an S-CSCF (Serving-CSCF)907. Further, the communication system900includes a PLMN (Public Land Mobile Network)909. The PLMN909may be a home PLMN909of the communication terminal901such that the home IMS network905and the PLMN909can be seen to form a home network910of the communication terminal901.

The communication terminal901is connected to the visited network's Proxy-CSCF (P-CSCF)903. The P-CSCF903is connected to the home operator's Serving CSCF (S-CSCF)907via the first I-CSCF904and the second I-CSCF906.

Unlike in the examples described with reference toFIG. 5, the P-CSCF903is also connected to the home operator's PLMN909via the Signaling Gateway (SGW)908. The PLMN909includes a USSD server. It should be noted that the SGW908may be integrated into the visited P-CSCF or into the USSD server of the PLMN909.

It is assumed that the user of the communication terminal901is using the communication terminal901with a prepaid subscription. It is further assumed that he would like to know his subscription's current balance.

The corresponding message flow is illustrated inFIG. 10.

FIG. 10shows a flow diagram1000according to an embodiment.

The flow takes place between a communication terminal1001corresponding to the communication terminal901, a P-CSCF1002corresponding to the P-CSCF903, an SGW1003corresponding to the SGW908, and a PLMN1004corresponding to the PLMN909.

The user initiates the generation of a USSD message by his communication terminal1001for querying the balance. The USSD message includes particular USSD codes indicating that the USSD message should be sent to the user's home network910and indicating that the current subscription balance is requested.

It is assumed that the home operator's network910does not support USSD via IMS. Therefore, it is assumed that the communication device901has been provided with the home network operator's PLMN USSD server address for using the USSD service.

In1005, the communication terminal1001generates a SIP INVITE message1006targeted at the provided home operator's PLMN USSD server for setting up an MSRP session and sends the message to the P-CSCF1002.

Since the message is targeted at the home PLMN USSD server the P-CSCF1002forwards the message to the SGW1003in1007.

The SGW1003translates the SIP INVITE message1006to a PLMN USSD signaling1009and forwards the signaling information in1010to the PLMN1004, specifically the PLMN USSD server, which may respond accordingly.

In1011the SGW1003sends back a first SIP 200 OK message1012for negotiating the SDP (Session Description Protocol) for the MSRP session. The first SIP 200 OK message1012includes the address of the SGW1003in the Contact header field. The first SIP 200 OK message1012has for example the following structure:

In1013, the communication terminal1001acknowledges receipt of the first SIP 200 OK message1012by means of an ACK message1014. The communication terminal1001stores the SGW address included in the first SIP 200 OK message1012for later setting up an MSRP TCP connection.

After session setup the communication terminal1001translates the USSD message indicating that the current subscription balance is requested and generated by the communication terminal1001into a MSRP SEND message1016. The MSRP SEND message1016includes the USSD transaction identifier (id) as a Message-ID header value. It also includes a ‘text/plain’ Content-Type body including the USSD data. The Byte-Range header field is set to 1-*/* to indicate that the MSRP SEND message1016provides the first of several message chunks and the total message size is unknown. The Success-Report header field is set to ‘yes’ to indicate that MSRP success REPORT messages should be sent back.

In1015, the communication terminal1001sets up a TCP connection to the SGW1003for transporting MSRP messages and associates the connection with the USSD MSRP session. The communication terminal1001sends the MSRP SEND message1016via the established TCP connection to the SGW1003. The TCP connection for MSRP transport is indicated by a dashed arrow911inFIG. 9.

In1017, when the SGW1003receives the MSRP SEND message1016it responds by means of a first MSRP 200 OK message1018to acknowledge the receipt of the MSRP SEND message1016.

In1019, the SGW1003translates the MSRP SEND message1016to a first USSD message1021and in1020forwards the USSD message1021to the PLMN1004(i.e. the home PLMN USSD server).

In1022, the PLMN1004(i.e. the PLMN USSD server) finds the USSD service code for balance querying and responds in1023by means of a second USSD message1024including the current balance information. The second USSD message1024includes a code indicating that the message content should be presented to the user.

The second USSD message1024is sent from the PLMN USSD server to the SGW1003. In1025, the SGW1003translates the received second USSD message1024to an MSRP REPORT message1027and in1026sends it to the communication terminal1001.

In1028, when receiving the MSRP REPORT message1027, the communication terminal1001inspects the content of the MSRP REPORT message1027for USSD codes. It finds the code for user presentation and displays the USSD message's content (the current balance information) for the user.

In one embodiment, instead of including USSD data in MSRP message bodies with Content-Type ‘text/plain’ the USSD data may be included with other Content-Types, e.g. with a special USSD Content-Type ‘application/ussd’.

According to one embodiment, USSD messages may target the visited network502,902by targeting the SIP INVITE message for setting up the MSRP USSD session at the visited USSD AS (i.e. at a USSD AS of the visited network502,902). In case that the communication terminal501,901does not know the visited USSD AS's address then the SIP INVITE message may be targeted at a generic visited USSD AS address like e.g. ‘visitedUSSDAS@visitedOperator.com’. In this case the P-CSCF503,903may for example provide the address of the visited operator's USSD AS in the SIP 200 OK message replied to the SIP INVITE message (similar to the provision of the SGW address with the first 200 OK message1012in the flow of figure 1000).

Whether the communication terminal should target its USSD messages at the home operator or at the visited operator may be decided by the communication terminal depending on USSD codes for network forwarding included in the USSD messages to be sent. For example, if home network forwarding is indicated then the home operator's USSD AS or PLMN USSD server is targeted and if visited network forwarding is indicated then the visited operator's USSD AS or PLMN USSD server is targeted.

According to one embodiment, instead or in addition of indicating the MSRP address for USSD network service in the Contact header field of a SIP 200 OK message the address may be indicated in the SIP message's body, e.g. in its SDP body, for example as follows:

In one embodiment, if an MSRP session has already been set up for home operator targeted USSD but not for visited operator targeted USSD, and if a new USSD transaction is targeted at the visited operator then a new MSRP session may be set up targeting the visited operator and vice versa.