Yes, initially I thought about using SMPP for USSD. But it looked really complicated since only few external SMPP libraries have support of USSD and most of that few are in C#/Java/etc. Moreover I didn't have any working software for USSD over SMPP to test interoperability with.

So I decided to use GPRS SUP socket as a simple transport to send MAP-like messages. Workflow of this SUP is very simple and basically it forwards SS messages with little modifications.
 

On Wed, Nov 25, 2015 at 3:22 PM, Holger Freyther <holger@freyther.de> wrote:

> On 25 Nov 2015, at 12:03, Sergey.Kostanbaev <sergey.kostanbaev@gmail.com> wrote:
>
> From: Sergey Kostanbaev <sergey.kostanbaev@gmail.com>
>
> This series of patches add support for external USSD processing via
> simplified MAP-like protocol over SUP socket. As an example of a such
> external application simple USSD to SIP proxy is provided (it targets
> TS 124 390)

Have you considered using SMPP for USSD? At first this looks more natural
than a custom protocol like SUP.

holger