<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 19, 2017 at 5:38 AM, Daniel Journo <span dir="ltr"><<a href="mailto:dan@keshercommunications.com" target="_blank">dan@keshercommunications.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-GB">
<div class="m_7350603653864421081WordSection1">
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">In my dialplans, I’m currently using PJSIP_AOR to check the status of a contact before dialling so that I can route the call differently if the endpoint is offline.<u></u><u></u></p>
<p class="MsoNormal">But PJSIP_AOR seems to take about 0.9 seconds to return. If I’m checking 10 endpoints, that can cause a significant delay.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Is there a better way to check the status of an endpoint pre-dialling within the dialplan?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Here is a sample of what I’m doing.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">exten => example_839,9,ExecIf($["${<wbr>PJSIP_AOR(example_220,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_220))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,10,ExecIf($["${<wbr>PJSIP_AOR(example_220,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,11,NoOp(${PJSIP_<wbr>AOR(example_223,contact)})<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,12,ExecIf($["${<wbr>PJSIP_AOR(example_223,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_223))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,13,ExecIf($["${<wbr>PJSIP_AOR(example_223,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,14,NoOp(${PJSIP_<wbr>AOR(example_224,contact)})<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,15,ExecIf($["${<wbr>PJSIP_AOR(example_224,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_224))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,16,ExecIf($["${<wbr>PJSIP_AOR(example_224,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,17,NoOp(${PJSIP_<wbr>AOR(example_226,contact)})<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,18,ExecIf($["${<wbr>PJSIP_AOR(example_226,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_226))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,19,ExecIf($["${<wbr>PJSIP_AOR(example_226,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,20,NoOp(${PJSIP_<wbr>AOR(example_227,contact)})<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,21,ExecIf($["${<wbr>PJSIP_AOR(example_227,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_227))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,22,ExecIf($["${<wbr>PJSIP_AOR(example_227,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,23,NoOp(${PJSIP_<wbr>AOR(example_240,contact)})<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,24,ExecIf($["${<wbr>PJSIP_AOR(example_240,contact)<wbr>}"=""]?Set(UNAVAILABLEPEER=${<wbr>UNAVAILABLEPEER} example_240))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,25,ExecIf($["${<wbr>PJSIP_AOR(example_240,contact)<wbr>}"!=""]?Set(WORKINGPEERFOUND=<wbr>1))<u></u><u></u></p>
<p class="MsoNormal">exten => example_839,26,GotoIf($[${<wbr>WORKINGPEERFOUND}=0]?227)<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span>Many thanks<u></u><u></u></span></p>
<p class="MsoNormal"><span>Dan<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></blockquote><div><br></div><div>Where are the AORs for your endpoints stored? Static conf file, database, etc.?</div><div><br></div><div>Are you using any type of caching via sorcery?<br></div><div> </div></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Matthew Jordan<br>Digium, Inc. | CTO<br>445 Jan Davis Drive NW - Huntsville, AL 35806 - USA<br>Check us out at: <a href="http://digium.com" target="_blank">http://digium.com</a> & <a href="http://asterisk.org" target="_blank">http://asterisk.org</a></div>
</div></div>