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