Re: [asterisk-users] best practices for dialing multiple contacts of multiple extensions

2019-03-08 Thread Brian J. Murrell
On Thu, 2019-02-21 at 11:17 -0500, Brian J. Murrell wrote:
> In the past, I have created variables that hold multiple extensions
> such as:
> 
> HOUSEPHONES=PJSIP/mom&PJSIP&dad&PJSIP/grandma
> 
> so that I can do a Dial(${HOUSEPHONES},...) with it, to ring multiple
> phones.
> 
> But now some of those phones will be registering multiple times and
> thus have multiple contacts, so I want to use ${PJSIP_DIAL_CONTACTS()
> to expand all of the contacts of an endpoint.
> 
> But of course you can't pass a string such as what's in
> ${HOUSEPHONES}
> to ${PJSIP_DIAL_CONTACTS()}.
> 
> I wonder what others are doing about this?
> 
> I had considered:
> 
> HOUSEPHONES=PJSIP/mom&PJSIP&dad&${PJSIP_DIAL_CONTACTS(grandma)}
> 
> but I suspect that that just adds the contacts for grandma at the
> time
> the dialplan is loaded and is not updated as her contacts actually
> change.  Correct?
> 
> I could imagine a bunch of "dialplan" code to break up a & separated
> string, strip off the PJSIP/ and then run each item through
> ${PJSIP_DIAL_CONTACTS()} and concatenate it all back together with
> &s.
> 
> Even in AEL (which is probably what I'd do it in) it seems like this
> could be a bit hairy and possibly somebody else must have invented
> this
> while already.
> 
> Or is there some other best known practice to handle all of this that
> I
> am not considering?

Since nobody offered up any BPs, I will provide the AEL macro that I
wrote to do this expansion:

macro expand_exten(ext) {
while ("${ext}" != "") {
Set(e=${SHIFT(ext,&)});
if ("${e:0:5}" = "PJSIP") {
Set(e=${PJSIP_DIAL_CONTACTS(${STRREPLACE(e,PJSIP/,)})});
} 
if ("${e}" != "") {
Set(newext=${newext}${e}&);
}
}
// blech!  global variables because there no way to make a
// function/gosub/etc that returns a value
Set(newext=${newext:0:-1});
Return(${newext});
return;
}

where the first argument passed in is an extention of the format:

PJSIP/

I'm pretty new to AEL, so any constructive criticism would be welcome.

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

[asterisk-users] best practices for dialing multiple contacts of multiple extensions

2019-02-21 Thread Brian J. Murrell
In the past, I have created variables that hold multiple extensions
such as:

HOUSEPHONES=PJSIP/mom&PJSIP&dad&PJSIP/grandma

so that I can do a Dial(${HOUSEPHONES},...) with it, to ring multiple
phones.

But now some of those phones will be registering multiple times and
thus have multiple contacts, so I want to use ${PJSIP_DIAL_CONTACTS()
to expand all of the contacts of an endpoint.

But of course you can't pass a string such as what's in ${HOUSEPHONES}
to ${PJSIP_DIAL_CONTACTS()}.

I wonder what others are doing about this?

I had considered:

HOUSEPHONES=PJSIP/mom&PJSIP&dad&${PJSIP_DIAL_CONTACTS(grandma)}

but I suspect that that just adds the contacts for grandma at the time
the dialplan is loaded and is not updated as her contacts actually
change.  Correct?

I could imagine a bunch of "dialplan" code to break up a & separated
string, strip off the PJSIP/ and then run each item through
${PJSIP_DIAL_CONTACTS()} and concatenate it all back together with &s.

Even in AEL (which is probably what I'd do it in) it seems like this
could be a bit hairy and possibly somebody else must have invented this
while already.

Or is there some other best known practice to handle all of this that I
am not considering?

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users