Switchboard

Audio switchboard is drop-in (compile-time) replacement for the Conference Bridge. The main benefits of using the switchboard are its ability to handle encoded audio frames, its low latency, and higher performance. Its main drawback is it doesn’t do conferencing.

The switchboard is implemented in pjmedia/src/pjmedia/conf_switch.c, and can be activated by declaring PJMEDIA_CONF_USE_SWITCH_BOARD to non-zero in config_site.h.

The main features of the switchboard are:

  • it has the same API as the conference bridge, except that one port can only receive from once source port

    Tip

    The pjmedia_conf_connect_port() will disconnect previous source if it is called again for the same sink port while that sink port is currently listening to a source port

  • It supports encoded audio frames

    Tip

    For example when the audio frames from/to the audio device are already in encoded form.

  • One source may transmit to more than one destinations.

    Tip

    This is useful for example to implement call recording feature in the application.

  • Supports routing audio from ports with different ptime settings.

  • Optimized for low latency

    Tip

    It has zero latency unless the ptimes are different between ports.

  • Lightweight, both in footprint and performance.

Some conference bridge features are not available:

  • audio mixing feature (i.e. no conferencing feature),

  • audio level adjustment and query are not available when the port is using non-PCM format,

  • audio resampling,

  • passive ports.