OpenBSC updates
I am almost back from a trip to iceland, I was fortunate enough to focus exclusively on GSM. In the last week I have continued to build osmo-bsc (a true BSC based on code from the on-waves/bsc-master) branch, I have worked on the NAT to make the IMSI filtering more useful and to add (hardware) transcoding to the MGCP MGW. The NAT changes are already in production, the transcoding will follow soon.
IMSI filtering in the NAT/MUX. There is the use case that in certain areas IMSIs are not allowed that are normally allowed in your network (e.g. on a test cell, only allow test IMSIs). Now in general the first message (GSM0808 Complete Layer3 Information) should carry the T-MSI/IMSI and a NAT/MUX could filter based on this message (which I did). The reality is a bit different, in the case of a Location Updating Request most phones send you the TMSI of a different network, in that case the NAT/MUX will need to inspect every message until the real IMSI and TMSI (TMSI reallocation) is revealed and then apply the filter. I have added this part to the NAT and it appears to be working. While doing this we also encountered a crasher that was hiding and only happens on unreliable networks (e.g. not during unit testing).
For the last days I was working on a funny real life issue. In our case certain connections have an adaptive bandwidth. E.g. when a voice call is setup we will only slowly get the bandwidth we need. This means that on the first couple of RTP packets we will have a huge jitter. Now luckily we are using a proprietary MGW that puts out press releases of their field proven Jitter Buffer technology… which means that money was spend on PR instead of making it work and we had to run the audio through a different hardware based decoder/encoder to really handle the jitter. In the next couple of weeks we are hopefully able to replace this MGW with our own.