Parallel Dialoog With Different Alert-Info Headers

Home » Asterisk Users » Parallel Dialoog With Different Alert-Info Headers
Asterisk Users 4 Comments

We have a couple of parallel ring settings (and this has worked well for eons).

Either in the form of

same => n,Dial(SIP/1001 & SIP/1002 & SIP/1003 …..)

Or via a subroutine (below) that has a bit of extra logic:

FOO = 1010 & 1019 & 1017 & 1033
… same => n,gosub(sub-callout,s,1,(${FOO},”Ringing all class FOO telefons”))

Now I have two types of phones (different) era’s that require slightly different Alert-Info headers.

How can one introduce a layer of indirection at phone (extension) level that adds those headers ?

E.g. something like above 1010 mapping to

; map internal virtual number to the real SIP dial
[1010]
.. SIPAddHeader(Alert-Info: \;info=alert-internal)
.. Dail(SIP/2010)

But still have the phones all ring in parallel. Any and all suggestions welcome.

With kind regards,

Dw.

[sub-callout]
exten => s, 1,Log(NOTICE, Ringing ${ARG2})
same => n,Set(DIALGROUP(allgroup)=)
same => n,While($[${LEN(${ARG1})} != 0])
same => n,Set(PEERNAME=${SHIFT(ARG1,&)})
; Skip any peer that is currently not connected same => n,ExecIf($[0${SIPPEER(${PEERNAME},port)} != 0]?Set(DIALGROUP(allgroup,add)=SIP/${PEERNAME}))
same => n,EndWhile()
; Play congestion tone if there are no peers connected in this list same => n,ExecIf($[${LEN(${DIALGROUP(allgroup)})} = 0]?Congestion(10))
same => n,Log(Notice, to ${DIALGROUP(allgroup)})
; For the 95XX phones; prevent a ‘missed call’ entry. same => n,Set(_CISCO_HUNTPILOT=”Ring All” <${EXTEN}>)
same => n,Dial(${DIALGROUP(allgroup)},120,ic)
same => n,Hangup()
same => n,Return()

4 thoughts on - Parallel Dialoog With Different Alert-Info Headers

  • I’m assuming you mean at the device level, and that you want to send only the relevant header to each device?
    Use pre-dial handlers; a unique handler runs on each destination channel. With PJSIP, you’re forced to do this anyways, but SIPAddHeader adds these to the calling channel first, which explains the problem you have now.

    How you determine the right header to send on each channel is something you still need to do. For example, you could detect the user agent in your pre-dial handler and add the appropriate header. This is a common enough scenario for things like setting the ring cadence that I wrote an application to handle this for me.

  • I hear you… you’re not the first person that’s told me that. It’s one of the top reasons I hear for staying on chan_sip. Unfortunately, the author of those patches hasn’t expressed interest in porting the functionality to PJSIP due to some misconceptions about PJSIP development. Some of it I might take a stab at to allow some of my users to move over, but not until outstanding patches have cleared; I
    have some of these phones but don’t really use them, so it’s lower on my priority list.

  • Aye – no worries – it is what it is & there is a moment that either enough people want to scratch the itch its of adding the functionality to PJSIP — or that these phones naturally fade into history.

    That is always the problem with things that are stable and good enough. With kind regards,

    Dw.