I am using 3CX trial version, and I have a working setup:
for the baby's lullaby music, I set up two IVR's to play that music.
1 lullaby music is 10 minutes. Another one is a 1 hour instrumental piece. 3CX plays this without problem!
You can play music on line 1, and receive incoming calls on line 2...
I tried another IVR-program: TekIVR (http://www.tekivr.com), but the soundquality of the latter is quite deceiving (it's always choppy).
I have a similar application where i automatically download my preferred podcasts and drop them in an IVR. Downside of this: you always have to start listening over from the beginning. No possibility to fast-forward through the soundfile.
A workaround to this problem would be to make multiple IVR's (max. up to 10), each containing the same soundfile, but each with a few more minutes chopped off at the beginning of the file. IVR1 contains the complete soundfile, IVR2 contains (soundfile - n min.), IVR 3 contains (soundfile - 2*n min.), IVR4 contains (soundfile - 3*n min)... up to IVR10 which contains the last n mins of the file. Within 1 IVR you can assign shortkeys to 10 other IVR's, which would allow you to jump forward and back within the soundfile.
Streaming does not seem to be a possible option in 3CX.
Update (25/11/12): I just finished experimenting with the freeware PJSUA.exe for Windows for playing music over the phone. It gives a marvellous result. The Sound quality is even a bit smoother than 3CX (less interuptions; even when served from a VM running on top of the 3CX-server) and the thing plays instantly (for aesthetics i have to add a few seconds of silence at the start and the tail of my music file with a sound editor).
Downside: once the player gets triggered by an incoming call, it does two things:
- Anyone who calls in later, has to hop on the music stream at a random place. The music stream does not start from zero for the new callers. In other words: all the callers hear exactly the same at the same time.
- If everybody hangs up, the player does not rewind to the beginning. Upon the next incoming call, It continues playing there where it stopped previously.
Cheers,
Flurk