MBUS interface for controlling media application

KyungTae Kim
Computer Science
Columbia University
New York, NY 10027
USA
kk521@columbia.edu
 

Abstract

The Message bus (Mbus)[1] supports local conference control for multiparty multimedia conferencing in the Mbone community. The sip-mbus controller allows call signaling protocol engines like SIPC to control audio engines using Mbus. In this project we describe the Mbus call-control mechanism designed to provide the functionality to control the call-related configuration of Reliable Audio Tool (RAT)[2].

Introduction

This report describes the implementation of sip-mbus interface for controlling media application. It covers the following topics.

Background

The project was motivated by the need to provide the features of coordination and control of applications and components to sipc[4]: audio tools like RAT need to be started with the correct initial state, but also may need to be corporate and be re-configured during the course of a session. sipc[4] is a SIP user agent that can communicate with SIP[3] redirect, proxy and registration servers such as sipd[5] and other SIP user agents. The client program can issue REGISTER, INVITE, CANCEL and BYE requests to initiate and teardown a call. Also if both call parties want to modify an existing connection between them, e.g.  in case of INVITE, REINVITE and BYE in SIP command, the audio tool like RAT needs to be reconfigured during the session. The package was designed and implemented to support reconfiguration of RAT such as changing the remote address/port, audio codec, packetization period and toggling mute/talk state.

Architecture

This section describes the architecture of the software. When appropriate, the design decisions and alternatives are discussed.

Overall Architecture

Overall architecture of the software was motivated by the need to have a modular, simple and platform independent sip-mbus controller implementation which could be easily integrated into sipc. In order to provide sip engine with functionality which allows to reconfigure audio engine in session, mbus library and rat was modified. When sipc receives call control command to modify the operation of rat, it calls sip-mbus interface respectively, then sip-mbus interface trigger the mbus commands to rat.

sip-mbus Interface

sip-mbus interface consists of five functions. These function is for mbus initialization, change of remote IP address, toggling of mute/talk, change of codec and packetization rate which means units-per-packet.

 

sip-mbus interface

Description

sipc_mbus_control mbus initialization interface starts mbus library to send and receive all mbus commands and spawns a thread to send a mbus.hello mbus command as a heartbeat every period to indicate liveness. 
sip_mbus_rtp_addr  In order to change remote IP address of RAT, rtp.addr.change mbus command was added to mbus library and this sip-mbus interface works for sending the command.
sipc_mbus_talk  enables or disables muting of transmission.
sipc_mbus_codec  changes the codec of RAT. RAT supports the six codec
  Linear 16: 128 kbit/s: Uncompressed 16 bit samples, with linear spacing between sample values
A-Law: 64 kbit/s: a-law companded 8 bit samples. Very similar to Mu-Law but only supported by RAT (i.e. not VAT)
Mu-Law: 64 kbit/s: mu-law companded 8 bit samples.
GSM: 13.2 kbit/s: This encoding is used in mobile phones. and is specially designed for voice signal.
LPC: 5.8 kbit/s: Generates a synthetic representation of speech, which sounds slightly artificial.
sipc_mbus_packetization set the number of "units" (codec frames, typically) placed in each packet when transmitting.

sipc_mbus_input_gain

sets the input (Eg: microphone) gain

sipc_mbus_output_gain

handles the volume of the speaker

sipc_mbus_rat_quit

makes RAT to be quit.

mbus library

The current sip-mbus controller uses seven mbus commands for sending and eight mbus commands for receiving. Among these, not only was rtp.addr.change for changing remote IP address of RAT added to mbus library, but also RAT source was modified for process this command. 

Program Documentation

References

  1. The Message Bus
  2. Reliable Audio Tool (RAT)
  3. SIP: Session Initiation Protocol
  4. sipc: SIP user agent
  5. sipd: SIP redirect, proxy and registration server

Last updated: 2001-02-15 by KyungTae Kim