Adding support for realtime music on hold. The following are the main points:
authorMark Michelson <mmichelson@digium.com>
Wed, 28 Nov 2007 00:47:22 +0000 (00:47 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 28 Nov 2007 00:47:22 +0000 (00:47 +0000)
commita42259c3ffcd4498b973c8ba57f55044bed440ee
treebffb8e8621b673bb130d3c6f9937ff99e88c20ba
parent880fb1ece980e7adc228407758bf5a3553da1dd1
Adding support for realtime music on hold. The following are the main points:

1. When moh is started, we search first in memory to find the class. If we do not
   find it in memory, we search realtime instead.

2. When moh is restarted (as in, it had been started on this particular channel, stopped,
   and now we're starting it again), if using the "files" mode, then realtime will always
   be rechecked. If you are using other modes, however, we will simply reattach to the external
   running process which was playing moh earlier in the call. This is a necessary compromise so that
   we don't end up with too many background processes.

3. musiconhold.conf has a general section now. It has one option: cachertclasses. If set to yes,
   then moh classes found in realtime will be added to the in-memory list. This has the advantage
   of not requiring database lookups each time moh is started, but it has the disadvantage of not
   truly being realtime.

I have tested this for functionality, and it passes. I also tested this under valgrind and there
are no memory problems reported under typical use.

Special thanks to Sergee for implementing this feature and enduring my complaints on the bugtracker!

(closes issue #11196, reported and patched by sergee)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
CHANGES
configs/extconfig.conf.sample
configs/musiconhold.conf.sample
res/res_musiconhold.c