Music On Hold Module

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Created page with " This module allows playing arbitrary raw audio streams from an external data source. It is typically used to provide entertainment to people waiting on hold or in a queue. M...")
 
(Sample for using a VLC wrapper script to play an Internet radio channel)
Line 33: Line 33:
  
 
The script would be like:
 
The script would be like:
 
 
 
  #! /bin/bash
 
  #! /bin/bash
 
   
 
   

Revision as of 16:25, 18 October 2012

This module allows playing arbitrary raw audio streams from an external data source. It is typically used to provide entertainment to people waiting on hold or in a queue.

Multiple named sources can be specified, for each only one external process is created and data is distributed internally to all consumers.

Don't forget to check the licensing conditions of the media files or streams used!

Configuration

[mohs]
; List of pipelines that will be used as sources of music (on hold).
; Each pipeline should write to stdout in 16bit signed linear
;  at default rate 8000/s or as specificed in the "rate" parameter.
; From outside (e.g. routing modules) mohs are addressed
;  as moh/default, moh/noise etc.

; use mpg123 to play a bunch of mp3 files (shuffled)
default=while true; do mpg123 -q -m -r 8000 -s -Z sounds/*.mp3; done

; just (loud) random noise from our favorite source
noise=cat /dev/urandom

; a relatively new madplay (>=0.15) is the best choice - low CPU usage,
;  built-in resampling, plays multiple files (shuffled)
madplay=while true; do madplay -q --no-tty-control -m -R 8000 -o raw:- -z sounds/*.mp3; done

; same madplay but with wideband support
wideband=while true; do madplay -q --no-tty-control -m -R ${rate$8000} -o raw:- -z sounds/*.mp3; done

Sample for using a VLC wrapper script to play an Internet radio channel

streaming=./vlc_wrapper.sh http://stream.profm.ro:8012/profm.mp3 ${rate$8000}

The script would be like:

#! /bin/bash

test -z "$1" && exit 1

cvlc --aout file --aout-rate "${2:-8000}" --audiofile-format s16 --audiofile-channels 1 --audiofile-file - --no-audiofile-wav "$1" 2>/dev/null &
vlcpid="$!"
trap "kill $vlcpid" SIGPIPE SIGTERM
wait "$vlcpid" 2>/dev/null
Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers