Note about IuUP

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/.

Mykola Shchetinin mykola at kingmuffin.com
Wed Dec 19 18:49:41 UTC 2018


Hello,

It is about how I got a voice working between UE connected to Osmocom 3G
(external call handling - Kamailio PBX) and VoIP softphone connected to the PBX.
The part about is IuUP only. (Transcoding comes later)

I have a traces of a call where a commercial NITB was used and I compared them
to traces which I got from a call where Osmocom system was used.
(Osmocom Core consisted of libosmocore of branch laforge/iu_up, osmo-mgw of
branch neels/iuup and other stuff from Nightly Builds)

My femtocell (nano3g ip.access) uses AMR 12.2k as a codec.

The difference in IuUP <-> AMR conversion between two.

When converting from IuUP to AMR:
- Osmo-mgw only strips IuUP header from RTP payload;
- Commercial NITB strips IuUP header and prepends AMR header to RTP payload;

When converting from AMR to IuUP:
- Osmo-mgw only prepends IuUP header to RTP payload;
- Commercial NITB strips AMR header and prepends IuUP header to RTP payload;

So that means basically that my femtocell sends AMR payload as IuUP payload
without AMR header. And expects AMR payload inside IuUP message without AMR
header.

IuUP header is 4 bytes. AMR header for octet-aligned mode is 2 bytes.

To test this I've modified the code of iuup_cn_node.c so that it does:
- when converting from IuUP data (rx_data): after stripping IuUP header it
prepends 0xf03c as a header (it is for AMR 12.2k).
- when converting to IuUP data (osmo_iuup_cn_tx_payload): before prepending IuUP
header it strips AMR header.

The call performed had voice on both sides. It was performed between a regular
phone connected to a femtocell and a VoIP softphone connected to Kamailio PBX.

Kind regards,
Mykola



More information about the OpenBSC mailing list