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?