Page Sip Spkeakers using recorded message


We have SIP Paging speakers from Cyberdata setup in our school. We can do real time paging to them, but cannot do a recorded message. The principal wants the ability to dial an number, record his message, hangup and then have that message sent to all the sip speakers. The programming below is what we have tried, but open to other options.

Here is what we have programmed:

exten => 288,1,Answer()
exten => 288,n,Wait(1)
exten => 288,n,NoOP(Recording Message)
exten => 288,n,Record(elementary-page.gsm,xk)
exten => 288,n,Hangup()

exten => h,1,NoOP(Paging Speakers)
exten => h,n,Dial(SIP/100&SIP/101&SIP/102&SIP/103&SIP/104&SIP/105&SIP/106&SIP/107&SIP/108&SIP/109&SIP/110)
exten => h,n,Wait(.5)
exten => h,n,NoOP(Playing backing message)
exten => h,n,Playback(elementary-page)
exten => h,n,Hangup()

The system gets to the point where it Records the message, Dials all the sip speakers, the speakers answer, but the system never plays back the recorded file.

Any suggestions?

It shouldn’t get that far! You shouldn’t be able to run Dial() at all on a hungup channel.

I don’t understand why you should not be prepared to hold the call open until the paging is complete, but given that you are not, I believe you will need to use Originate, or call files.

Note that your dialplan tries to play the message to the principal, but, of course, they’ve already gone, which is why Playback is also not sensible in an h extension.

Do you have an example of how to use the orginate command to playback the recorded file to all of the sip clients? I can see how to get it to connect to one client, but not multiple.

Originate to a local channel and use the page application. Use a dummy application/context+extension, to keep originate happy.

Hi David;

You mentioned this technique on two different threads.

Could you provide and example?

I am not sure about the two sides of a call thing you are talking about.

One side of originate is the channel. The other side is the extension or application.

The channel can be a local channel, which allows you to use an extension in a context which needs a device. This means you can run dialplan in such a context.

Google something like “asterisk local channel” for more details of local channels.

As a general rule, I don’t do such detailed examples, as it is too much like free consultancy, and one ends up spending a lot of time, because either one has to thoroughly test it before giving it, or one ends up going through several rounds of debugging on the forum.

On the other hand, giving hints, can be quite quick.