Music on hold with announcements

I have music on hold working on my system now what I would like is a way for me to add an announcement and/or check for an event (such as new voice-mail) every X number of seconds without the person having to restart the song or skip to the next song.

Yes I know I can have a ‘playlist’ which will play one or more songs and then my announcement followed by other songs. But this is not quite what I want and does not work if I’m using a streaming feed.

I have two different cases I would like to solve. The first is when a customer is parked on hold. My music-on-hold would be set to random but every X number of seconds it would pause the music, play my random announcement and then continue with the song. If I’m using a streaming feed then it would pick up the feed after the announcement losing only the length of the announcement from the stream.

The second case is where I’m may be camp-on a number waiting for them to be free so I can be connected, be able to listen to music-on-hold and every X amount of time check for an event (such as new voice-mail or something else). Depending on the event (new voice-mail) I could decide to listen to the message and continue with being camp-on the number.

I would like to be able to solve both of the above issues. The second case as describe is the effect I desire as I would be able to use it in a slightly different form as part of a future business plan.

[quote]The second case is where I’m may be camp-on a number waiting for them to be free so I can be connected, be able to listen to music-on-hold and every X amount of time check for an event (such as new voice-mail or something else). Depending on the event (new voice-mail) I could decide to listen to the message and continue with being camp-on the number.
[/quote]

Having given this case more thought I have decided the best method is to use a streaming music-on-hold source. I can place the caller into a context where there is a while loop in which I use WaitMusicOnHold(${timelimie}) followed by random() for the different announcements.

I’m will would like an answer to the first case. Looking through the O’Reilly Asterisk book I have not found a way to introduce announcements into a parked call.

For both queues and park calls it would be nice to have a way to specified an event context so that every X amount of seconds the context will be performed but otherwise the customer would continue to have music-on-hold (as well as the location in the call queue being announced).

I too would like to know if its possible and if so how to have announcements in the music on hold every X number of seconds without having to restart the song…