[asterisk-users] Parallel dialoog with different Alert-Info headers
Dirk-Willem van Gulik
dirkx at webweaving.org
Sat Jul 22 15:51:42 CDT 2023
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: <http://127.0.0.1>\;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()
More information about the asterisk-users
mailing list