OpenBSC USSD external application

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Rowan Phipps phippsr at cs.washington.edu
Fri Sep 15 18:05:44 UTC 2017


Hi,
I tried using those branches with those flags set and they do not compile
together.  Libosmocore builds fine but when building openbsc I get the
following error:
/usr/local/lib/libosmoabis.so: undefined reference to `osmo_timer_setup'

I did manage to get ussd working using libosmocore:master and
openbsc:fairwaves/sup-ussd with some modifications.  I ended up writing my
own sup endpoint since I was having some issues with reg-proxy while trying
to establish a sip session.

After the initial invoke processUnstructuredSS_request send by the phone,
future messages from the phone have a message type less than 0x7b (e.g.
0x3b, 0x7a) and for some reason the phone leaves out the iei, and opcode
from the messages it sends.  This causes problems in gsm0480.c in
libosmocore since the opcode is not set and the data is misaligned due to
the missing iei.  I wrote some workarounds into libosmocore which seem to
fix the problem but I was wondering if anyone else has had similar issues.
I made some other minor modifications to libosmocore to add message type
and component type to the ss_request object.

I also noticed that the max ussd string length is set to 31 bytes in
gsm0480.h.  According to the gsm standards that values should be 160 bytes
or 182 7 bit characters.  Is there any reason for it to be set to 31 or
should it be changed to a larger value?


On Fri, Sep 8, 2017 at 2:16 AM Ivan Kluchnikov <ivan.kluchnikov at fairwaves.co>
wrote:

> Hello Rowan,
>
> You should use:
> for libosmocore: fairwaves/master-rebase branch
> for openbsc: fairwaves/master-rebase branch and use
> ./configure --enable-ussd-proxy
>
> 2017-09-07 21:15 GMT+03:00 Rowan Phipps <phippsr at cs.washington.edu>:
>
>> Do you know which version of libosmocore that branch worked with?  I have
>> tried it with both the master branch and the fairwaves/master-rebase branch
>> and neither one compiled.  I also tried rebasing the
>> fairwaves/master-rebase onto master again.  This at least builds but it
>> looks like osmo-nitb is sending a different version of SUP than what
>> libosmocore is expecting and so it can't decode it.  The function in
>> libosmocore that seems to do the decoding is osmo_gsup_decode in gsup.c
>>
>> I have seen references to be SUP and GSUP in the code.  Are these two
>> different protocols or are they the same thing?  Also, are they specified
>> anywhere other than in the code?
>>
>>
>> On Sat, Sep 2, 2017 at 2:11 PM Alexander Chemeris <
>> alexander.chemeris at gmail.com> wrote:
>>
>>> Hi Rowan,
>>>
>>> A more recent version of this work is a part of the
>>> fairwaves/master-rebase branch. It has implementation of exporting
>>> USSD (and any other SS for that matter) over a SUP socket and an
>>> external utility to decode/encode them and convert to/from SIP+XML
>>> similar to defined in the IMS standard.
>>>
>>> We're currently using this code to implement external USSD services
>>> like a balance check from a billing system and also to forward SS and
>>> USSD to MAP/Sigtran. So I think the code should work well for you.
>>>
>>> If you find this code useful, we would greatly appreciate any help in
>>> merging this code into master. We intend to eventually merge this into
>>> master, but it requires some cleanup before it could be submitted for
>>> a review and given it's not a simple small change we've never had
>>> enough time to do that so far :(
>>>
>>> On Wed, Aug 30, 2017 at 10:59 PM, Rowan Phipps
>>> <phippsr at cs.washington.edu> wrote:
>>> > Hi,
>>> > I’ve been looking into getting ussd working with an external
>>> application. I
>>> > found a branch from last year (fairwaves/sup-ussd) that looks like it
>>> has
>>> > implemented most of ussd sessions and possibly communicates with an
>>> external
>>> > application. Does anyone know if it was finished or what still needs
>>> to be
>>> > done?
>>> >
>>> > I also found a python script called ussd_example.py which looks like
>>> it is
>>> > supposed to act as a gateway and receive used connections from
>>> openbsc. Is
>>> > this correct and did it work or am I misunderstanding its purpose?
>>> >
>>> > Thanks!
>>> > - Rowan Phipps
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Alexander Chemeris.
>>> CTO/Founder, Fairwaves, Inc.
>>> https://fairwaves.co
>>>
>> --
>> Thanks!
>>     - Rowan Phipps
>>
>
> --
Thanks!
    - Rowan Phipps
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20170915/7fad45a3/attachment.htm>


More information about the OpenBSC mailing list