Pulse Audio Push-to-Talk

Welcome to the push-to-talk (ptt) modules for Pulse Audio. These modules are based on the RTP modules that ship with the Pulse Audio source code. The ptt-send module streams speech (presumably from a microphone) to a multicast group while the user pushes a button. The ptt-recv module listens to a multicast group and plays back any streams that it hears. The objective is to tune and test these modules for use over a mesh network to create a sort of "walkie-talkie"-like functionality between networked mesh nodes.

How It Works

As mentioned above, the ptt modules send to and receive from a multicast group. The ptt-send module reads data from a Pulse Audio source at that source's default format. The data is packaged in RTP packets and sent to the multicast group. The ptt-recv module receives RTP packets on the multicast group and writes them to a Pulse Audio sink. Different RTP streams are created when they are detected. That is, when an RTP packet arrives with a source address and RTP SSRC identifier that has not been seen yet, a stream is created. If no packets arrive in a stream for a compile-time configurable period, the stream expires and is deleted.

Download

Releases are available below. See the README file for installation instructions and other interesting information.

Feedback

Question, comments, and patches are welcome. The OLPC developer's list is the best place to post them.