ESP8266 VoIP/RTP pager

Experimental, very simple RTP pager (audio receiver) based on ESP8266 SoC.
ESP8266 RTP pager
ESP8266 RTP pager breadboard

Many VoIP phones (most of the phones with "BLF") have RTP streaming function - usually they can work both as RTP senders and receivers. After pressing button phone starts sending audio RTP stream to specified address (either unicast or multicast) and port where other device(s) are expected to receive it.
tSIP softphone is also able to transmit RTP stream, sending either audio from PC sound card or content of specified wave file. Multiple buttons can be programmed to start sending different audio files to different destinations. RTP streaming is also available through plugin interface (see: Lua scripting).
tSIP RTP streaming
tSIP RTP streaming
For G.711a streaming from wave file use PCM S16, mono, 8000 samples per second format (example: lin.wav), copy it to softphone directory and enter its name on "Behavior" button config. If wave file is not specified application would use default audio source (same as for regular calls, e.g. microphone).
With very low cost - just by adding RC filter, power supply, optionally audio amplifier - RTP receiver can be built with ESP8266 SoC.
To a high degree it was inspired by MP3 decoder and it uses this project PWM I2S audio output code, in particular delta-sigma version.

Good power supply filtering is required. Since application is processing typically 50 packets per seconds during streaming (+ regular traffic) current consumption may be higher than in typical IoT applications. Output audio quality can be also degraded by power supply and/or poor connections - in my test setup it required try and error (decoupling, changing ground connection point for headphones) to eliminate disturbances with ESP8266 connected to breadboard. This kind of problems manifest as audible noises on packet reception (even ping) but is distinguishable from software, network or buffering issues as it varies when changing electrical connections.

Limitations:

Source includes Code::Blocks project (see ESP8266+gcc page), although command line make can be used directly as well.

Source:

RTP streamer for android

RTP streamer (android)
Very simple RTP streamer (sender) for android: app-debug.apk with source code: RtpStreamer.7z. As this uses built-in RTP android streaming it is limited to G.711a (no G.722 available).


 "Cookie monsters": 7684096    Parse time: 0.001 s