Asterisk 1.8 Paging without DAHDI or MOH Shoutcast with DAHDI

Home » Asterisk Users » Asterisk 1.8 Paging without DAHDI or MOH Shoutcast with DAHDI
Asterisk Users 1 Comment

We just finished an upgrade of our Asterisk system to an HA
environment on a pair of servers using Linux-HA. As part of the
upgrade, we also moved to Asterisk version 1.8.4.3

Most things are working quite nicely on the new system. However, I’m
having trouble getting a paging feature to work. In Asterisk 1.4, we
simply used the Page() application like this:
3400,n,Page(SIP/3011&SIP/3021&SIP/3110&SIP/3120&SIP/3121&SIP/3122&SIP/3124&SIP/3125&SIP/3126&SIP/3127&SIP/3221&SIP/3222&SIP/3223&SIP/3250&SIP/3261&SIP/3262&SIP/3310&SIP/3311&SIP/3324&SIP/3329&SIP/3331&SIP/3332&SIP/3350&SIP/3455&SIP/3457)

However, the Page() application seems to rely on the Meetme()
application which also relies on the DAHDI channel driver for mixing
of the audio streams. I have tried using the DAHDI channel driver on
this system, but that seems to make the Music On Hold application use
the DAHDI timing module instead of the pthread module. With the DAHDI
timing module, Music On Hold does not playback Shoutcast streams which
is also a requirement for this system.

As an alternate solution, we have tried implementing a workaround
which simply uses a set of .call files to dial each phone. Those
phones then auto-answer the call and are placed into a conference
bridge on mute using the ConfBridge application. At this point, the
initiating caller speaks the announcement and the phones automatically
hangup after about 10 second. This worked perfectly in our small scale
tests. However, when we ramped this up to the 25 phones that are
required and tested it this morning, somehow this caused the Asterisk
service to restart. I suspect that processing the 25 call files and
placing them into the conference all at the same time somehow made the
system crash and it immediately started up again.

Here’s the relevant dialplan:
exten => 3400,1,Answer
exten => 3400,n,playback(beep)
exten => 3400,n,system(cp /etc/asterisk/testPage/*.call
/var/spool/asterisk/outgoing_staging/)
exten => 3400,n,system(mv /var/spool/asterisk/outgoing_staging/*.call
/var/spool/asterisk/outgoing/)
exten => 3400,n,ConfBridge(testPage,1)
exten => 3400,n,hangup

[testPage]
exten => s,1,Answer
exten => s,n,playback(beep)
exten => s,n,Set(TIMEOUT(absolute)=10)
exten => s,n,ConfBridge(testPage,m)
exten => s,n,hangup
exten => _XXXX,1,SIPAddHeader(Alert-Info: Auto Answer)
exten => _XXXX,n,Dial(SIP/${EXTEN})
exten => _XXXX,n,Hangup()

and here’s a sample call file:
channel: Local/3011@testPage
callerid: Page
context: testPage
extension: s
priority: 1
archive: no
waittime: 120

Does anyone have insight into how we could accomplish this paging
feature or of anything that we may have missed?

I suspect we could get this all to work with the original Page()
application if there was a way to force MusicOnHold to use the pthread
timing module instead of the Dahdi timing module. Is that configurable
somewhere?

Thanks for your help,
Bob

One thought on - Asterisk 1.8 Paging without DAHDI or MOH Shoutcast with DAHDI

  • Call file are not suitable for you as asterisk process these files in serial
    mode (single threaded) and in case of large number of files processing of
    last file can be that much delayed that some portion of message may be
    already played or the 1st phone may be hanged.