res_musiconhold: Add new 'playlist' mode
[asterisk/asterisk.git] / configs / samples / musiconhold.conf.sample
1 ;
2 ; Music on Hold -- Sample Configuration
3 ;
4 [general]
5 ;cachertclasses=yes     ; use 1 instance of moh class for all users who are using it,
6                         ; decrease consumable cpu cycles and memory
7                         ; disabled by default
8
9 ;preferchannelclass=yes ; Prefer the musicclass as defined by CHANNEL(musicclass),
10                         ; over a class set by an application (e.g. a musicclass set on a queue).
11                         ; Defaults to yes.
12
13 ; valid mode options:
14 ; files         -- read files from a directory in any Asterisk supported
15 ;                  media format
16 ; playlist      -- provide a fixed list of filenames or URLs to play
17 ; quietmp3      -- default
18 ; mp3           -- loud
19 ; mp3nb         -- unbuffered
20 ; quietmp3nb    -- quiet unbuffered
21 ; custom        -- run a custom application (See examples below)
22
23 ; =========
24 ; File-based (native) music on hold
25 ; =========
26 ;
27 ; This plays files directly from the specified directory, no external
28 ; processes are required. Files are played in normal sorting order
29 ; (same as a sorted directory listing), and no volume or other
30 ; sound adjustments are available. If the file is available in
31 ; the same format as the channel's codec, then it will be played
32 ; without transcoding (same as Playback would do in the dialplan).
33 ; Files can be present in as many formats as you wish, and the
34 ; 'best' format will be chosen at playback time.
35 ;
36 ; The path specified can be either an absolute path (starts with '/'),
37 ; or a relative path; relative paths are interpreted as being relative
38 ; to the 'astdatalibdir' in asterisk.conf, which defaults to
39 ; /var/lib/asterisk.
40 ;
41 ; NOTE:
42 ; If you are not using "autoload" in modules.conf, then you
43 ; must ensure that the format modules for any formats you wish
44 ; to use are loaded _before_ res_musiconhold. If you do not do
45 ; this, res_musiconhold will skip the files it is not able to
46 ; understand when it loads.
47 ;
48 ; =========
49 ; Playlist (native) music on hold
50 ; =========
51 ;
52 ; This mode is similar to 'files' mode in that it plays through a list
53 ; of files, but instead of scanning a directory the files are
54 ; explicitly configured using one or more 'entry' options.
55 ;
56 ; Each entry must be one of:
57 ;
58 ;   * An absolute path to the file to be played, without an extension.
59 ;   * A URL
60 ;
61 ; The entries are played in the order in which they appear in the
62 ; configuration. The 'sort' option is not used for this mode.
63 ;
64
65 [default]
66 mode=files
67 directory=moh
68 ;
69 ;[native-random]
70 ;mode=files
71 ;directory=moh
72 ;digit=#        ; If this option is set for a class, then when callers are
73 ;               ; listening to music on hold, they can press this digit, and
74 ;               ; they will switch to listening to this music class.
75 ;announcement=queue-thankyou    ;If this option is set for a class, then
76 ;               ; when callers get put on hold, the specified sound will be
77 ;               ; be played to them. Also, if using modes that Asterisk
78 ;               ; controls the playlist for (files, mp3, etc), the same
79 ;               ; sound will also be played between MOH songs.
80 ;sort=random    ; Sort the files in random order. Other sort options are:
81 ;               ; 'alpha' and 'randstart'. If 'alpha', the files are sorted
82 ;               ; in alphabetical order. If 'randstart', the files are sorted
83 ;               ; in alphabetical order as well, but the first file is chosen
84 ;               ; at random. If unspecified, the sort order is undefined.
85
86 ;[native-alphabetical]
87 ;mode=files
88 ;directory=moh
89 ;sort=alpha     ; Sort the files in alphabetical order.
90
91 ;[sales-queue-hold]
92 ;mode=playlist
93 ;entry=/var/lib/asterisk/sounds/en/yourcallisimportant
94 ;entry=http://example.local/sales-queue-hold-music.ulaw
95 ;entry=/var/lib/asterisk/moh/macroform-robot_dity
96
97 ; =========
98 ; Other (non-native) playback methods
99 ; =========
100
101 ;[manual]
102 ;mode=custom
103 ; Note that with mode=custom, a directory is not required, such as when reading
104 ; from a stream.
105 ;directory=/var/lib/asterisk/mohmp3
106 ;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s
107
108 ;[ulawstream]
109 ;mode=custom
110 ;application=/usr/bin/streamplayer 192.168.100.52 888
111 ;format=ulaw    ; The 'format' option specifies the audio format that the
112 ;               ; 'application' will provide to Asterisk. In this example,
113 ;               ; streamplayer will output ulaw samples so we need to set the
114 ;               ; format to ulaw so that Asterisk knows how to interpret the
115 ;               ; incoming audio.
116
117 ; mpg123 on Solaris does not always exit properly; madplay may be a better
118 ; choice
119 ;[solaris]
120 ;mode=custom
121 ;directory=/var/lib/asterisk/mohmp3
122 ;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12
123
124 ; By default, when res_musiconhold reloads or unloads, it sends a HUP signal
125 ; to custom applications (and all descendants), waits 100ms, then sends a
126 ; TERM signal, waits 100ms, then finally sends a KILL signal.  An application
127 ; which is interacting with an external device and/or spawns children of its
128 ; own may not be able to exit cleanly in the default times, expecially if sent
129 ; a KILL signal, or if it's children are getting signals directly from
130 ; res_musiconhoild.  To allow extra time, the 'kill_escalation_delay'
131 ; class option can be used to set the number of milliseconds res_musiconhold
132 ; waits before escalating kill signals, with the default being the current
133 ; 100ms.  To control to whom the signals are sent, the "kill_method"
134 ; class option can be set to "process_group" (the default, existing behavior),
135 ; which sends signals to the application and its descendants directly, or
136 ; "process" which sends signals only to the application itself.
137
138 ;[sox_from_device]
139 ;mode=custom
140 ;directory=/var/lib/asterisk/mohmp3
141 ;application=/usr/bin/sox -q -t alsa -c 2 -r 48000 hw:1 -c 1 -r 8000 -t raw -s -
142 ; Wait 500ms before escalating kill signals
143 ;kill_escalation_delay=500
144 ; Send signals to just the child process instead of all descendants
145 ;kill_method=process