USSD Menu Process
The Unstructured Supplementary Service Data (USSD) menu service enables subscribers to select an option from a list sent to their handset in a USSD string. The service returns the results to subscribers in UnstructuredSS-Request messages.
Call Control Framework (CCF) processes USSD menu service requests as follows:
- After receiving an incoming USSD Process-UnstructuredSS request containing the service code for a USSD menu service, the USSD incoming service generates an MtxMenuNotification MDC, and sends it to the Notification Server for processing.
- The Notification Server MenuNotificationHandler parses the MtxMenuNotification and triggers any Apache routes that use the MtxMenuNotification message.
- The Apache Camel Freemarker plug-in and RS Gateway REST calls are used to satisfy the menu requests and, if required, to build new menu selections. The results are sent back to the subscriber.
- After using the Apache Camel plug-ins to process the MtxMenuNotification, the Notification Server builds a response request on the selected Apache Camel route in an MtxMenuRequestMsg MDC, and returns it to the MATRIXX MDC gateway.
- MATRIXX Engine determines that the response request message is for the USSD callout service. The resultant data is retrieved, and then delivered using a USSD UnstructuredSS-Request message.
- If the subscriber selects a new menu option to request more information, the request is sent to MATRIXX Engine for processing, and the result is returned in a USSD UnstructuredSS-Request acknowledgement.
- The USSD callout service returns the result to the Notification Server in a new MtxMenuNotification message.
- The Notification Server process builds a new MtxMenuRequestMsg using the Notification Server plug-ins.
- The process of selecting new menu options and building response requests continues until the MtxMenuRequestMsg has a terminate flag that is set to true. A final USSD message is sent in an USSD Process-UnstructuredSS returnResult message.
USSD Menu Message Sequence
Figure 1 shows the message sequence used for processing USSD menu service requests:
Figure 2 shows an example message flow when a subscriber selects an option to display their balance
from a USSD menu: