Практически закончена реализация GSM-части USSD в OpenBTS и пора приступать к реализации внешнего API. В данный момент для выполнения внешних запросов рассматриваются варианты использования SMPP и HTTP. Первый вариант более стандартный — протокол изначально создавался для передачи SMS и USSD. Второй же вариант не так стандартен, но лично мне кажется более интересным.
Используя HTTP, можно привлечь к написанию USSD-приложений огромную армию web-разработчиков и обеспечить доступ к самым разнообразным интернет-ресурсам прямо из USSD. Однако HTTP легко использовать только в простом режиме запрос-ответ. Как его лучше всего использовать для создания меню, в котором запросы посылаются несколько раз в течение одной сессии нам пока не ясно. Ну не web-разработчики мы. :) Если вы знаете, как это лучше (и проще) всего реализовать — напишите нам, пожалуйста.
Ещё один вариант, который может быть интересен — использование Jabber или того же SIP/SIMPLE для обработки USSD-запросов и USSD-меню. Но не будет ли это слишком большим оверхэдом для достаточно простой функции?
Приглашаю всех к обсуждению этого вопроса — здесь в комментариях (на русском) или в рассылке OpenBTS (на английском). Давайте вместе сделаем API удобным и красивым.