Servizio Comunitario di Informazione in materia di Ricerca e Sviluppo - CORDIS

VoIP package for multi-hop ad hoc networks

The VoIP package contains two main modules; signalling module and data transport module.

The signaling module consists of the software component that will initiate the VoIP session with other peer nodes in the Ad Hoc network. This module has been implemented specifically for the Ad Hoc framework since existing implementations did require excessive resources (e.g. CPU, memory, etc). The signalling module implements the SIP signalling protocol and utilizes IP addresses for finding the peer nodes to initiate the VoIP session.

The SIP signalling protocol can run on UDP or TCP protocol but in order to minimize the requirements for maintaining the session state in the nodes, the existing implementation uses UDP as the only transport protocol. The session initiation also requires negotiating the media parameters using SDP protocol. In order to minimize the negotiation process the signalling module uses the same codec for the VoIP session (i.e. GSM).

Therefore, the signalling module is compliant with the SIP protocol but having a single codec optimises the session set-up. The SIP module is implemented specifically for the Ad Hoc network but the GSM codec is obtained from public source.

The data transport module consists of the software component that after the VoIP session is set up, takes care of exchanging the voice packets coded with the selected media format (i.e. in this case GSM is the only codec used in the session).
The data transport module implements a RTP client for exchanging the voice packets.

The RTP client implements the functions for obtaining the audio samples from the microphone, encoding them using the selected codec (i.e. GSM) and then exchange the packets using the RTP protocol. The RTP client uses an publicly available RTP library for managing the RTP messages. The effectiveness of the developed package has been tested on multi-hop ad hoc networks of up to 3 hops. In the experimentation we used both OLSR and AODV.

Reported by

Otakaari 1