GAPK (GSM Audio Pocket Knife) is a FFmpeg like project focused on GSM related codecs (HR/FR/EFR/AMR) and various formats. Since the libosmogapk was introduced, it has become possible to link OsmocomBB against it and use its API for audio processing, i.e. for both voice capture and playback.
The initial working implementation can be found in a separate branch (fixeria/audio).
Both trxcon and VIRT-PHY do forward TCH frames to the higher layers (e.g. mobile) by default, while Calypso-based phones can handle them either within DSP (both regular phone's mic and speaker are involved), or also forward them via L1CTL. The forwarding behavior can be enabled using L1CTL_TCH_MODE_REQ message and its AUDIO_TX_TRAFFIC_REQ | AUDIO_RX_TRAFFIC_IND flags.
Why GAPK integration is important?¶
Well, at the moment the state of voice support in the higher layers, especially in the mobile application, is limited. There is incomplete implementation of MNCC-socket handling, including forwarding of TCH frames, but it is very limited (for example, only TCH FR codec is supported).
With GAPK it is pretty easy to fill the gap, and implement audio / voice processing back-end for mobile application. In particular, back-end implementation assumes the following features:
- voice capture and playback (via ALSA),
- frame coding for GSM specific codecs,
- PHY specific format (e.g. TI) handling,
- ECU (Error Concealment Unit),
- RTP support.
Virtual GSM Load Testing¶
This is about development of Load Testing Setup to demonstrate OsmoBSC functionality and performance at >= 200 TRX, >= 100 BTS and thousands of MS.
- Development of primitive-based asynchronous interface to OsmocomBB âmobileâ program, together with script language (e.g. LUA) bindings for cellselection, location update, SMS and voice calls.
- Development of voice frame support to OsmocomBB virt_phy, OsmocomBB mobile and osmo-bts-virtual to simulate voice/user plane in addition to control/signaling plane.
- Development of software to manage (configure, start, monitor, stop) thousands of OsmocomBB mobile instances as well as hundreds of osmo-bts-virtual instances
- Creation + Documentation of corresponding test suite for automatic execution of load testing