[asterisk-users] multiple softphone clients and same/different account credentials

C.Maj chris at PenguinPBX.com
Wed Nov 27 16:47:54 CST 2019


On 2019-11-26 20:05, Greg Troxel wrote:
> "C.Maj" <chris at PenguinPBX.com> writes:
> 
>> Another option for a patch would be to extend the PJSIP_DIAL_CONTACTS
>> function with an argument such as 'please' to minimally return the
>> endpoint name in a Dialable format when no reachable contacts are found
>> eg. "PJSIP/bar" -- instead of the current empty string, which is not
>> Dialable.
> 
> I thought of that also while considering if patching the way Dial
> behaves was feasible.  I think you are right that having
> PJSIP_DIAL_CONTACTS reduce to a single PJSIP/aor string will follow the
> principle of least astonishment.

Thanks, I put together a patch:

https://issues.asterisk.org/jira/browse/ASTERISK-28638

>> Also the empty string is somewhat in conflict with the Synopsis "Return
>> a dial string for dialing all contacts on an AOR." (Maybe add " Or
>> returns empty string if no reachable contacts. Do not Dial directly." ?)
>>
>> Regardless of patch status, I'd recommend looking at the PUSH function
>> to build up the dial list one line item at a time -- please pardon the
>> AEL format on my example:
>>
>>   Set(rgrp=);
>>   Set(PUSH(rgrp,&)=PJSIP/foo);
>>   Set(PUSH(rgrp,&)=PJSIP/baz);
>>   if( "${PJSIP_DIAL_CONTACTS(bar)}" != "" ) {
>>     Set(PUSH(rgrp,&)=${PJSIP_DIAL_CONTACTS(bar)});
>>   }
>>   Dial(${rgrp});
> 
> That looks workable.  Is there a multiprocessing hazard here?  Could
> ${PJSIP_DIAL_CONTACTS(bar)} change between check and use.

Yes, if you put the Dial() further away, maybe after a Wait(), then it
could be a problem. But in this example, it is not going to be that much
slower than more 'direct' substitution Dial(${PJSIP_DIAL_CONTACTS(bar)})
because either way the PJSIP_DIAL_CONTACTS function is being evaluated
first and separately from the Dial() application itself. The application
only sees the results of the function.

Kind Regards,

-- 
🤠 C. Maj, Technology Captain @ Penguin PBX Solutions
📞 USA Toll Free 1-833-PNGNPBX (1-833-764-6729)
🤙 International & SMS Texting +1.720.32.42.72.9
🐧 Visit on the World Wide Web at PENGUINPBX.COM



More information about the asterisk-users mailing list