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:
  1. 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.
  2. The Notification Server MenuNotificationHandler parses the MtxMenuNotification and triggers any Apache routes that use the MtxMenuNotification message.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. The USSD callout service returns the result to the Notification Server in a new MtxMenuNotification message.
  8. The Notification Server process builds a new MtxMenuRequestMsg using the Notification Server plug-ins.
  9. 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 1. USSD Menu Message Sequence Summary
Figure 2 shows an example message flow when a subscriber selects an option to display their balance from a USSD menu:
Figure 2. Subscriber Balance Example Message Flow