<div dir="ltr"><div><div><div><div><div>Hi,<br><br></div>Currently I'm trying to use async fucntion for avp_db_query. The issue I'm facing while using it as not retrieving or returning correct return code and not execute later part of the routing script. See old & new DB queries;<br><br></div>Without Async:<br>----------------------<br>route[1]{<br>...<br><br> if($var(Outpluseflag) == 0) {<br>              avp_db_query("SELECT Outpulse_number,setid FROM Prefix_data where Program_prefix = '$var(pg_prefix)'", "$avp(outpluse), $avp(trunkid)");<br>                $var(res) = $retcode; # or you can just use $retcode!<br>                xlog("--------- OB Route 1-1 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc | Var Res: $var(res)-------");<br>                if ($var(res) > 0) {<br>                           cache_store("local", "DID_$tU", "$avp(outpluse)", 60);<br>                           cache_store("local", "Trunk_$tU", "$avp(trunkid)", 60);<br>                }<br>                #xlog("DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code -> $var(res)");<br>                xlog("--------- OB Route 1-2 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc | Var Res: $var(res)-------");<br>}<br></div>}<br><br>With Async:<br>-------------------<br></div>route[1]{<br><br></div><div>...<br><br><div><div><div><div>if($var(Outpluseflag) == 0) {<br>     async(avp_db_query("SELECT Outpulse_number,setid FROM Prefix_data where Program_prefix = '$var(pg_prefix)'", "$avp(outpluse), $avp(trunkid)"),ob_route_1);<br>}<br>}<br><br></div><div>route[ob_route_1]{<br>        xlog("--------- OB Route 1-1 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc-------");<br><br>        if ($rc > 0) {<br>               cache_store("local", "DID_$tU", "$avp(outpluse)", 60);<br>               cache_store("local", "Trunk_$tU", "$avp(trunkid)", 60);<br>        }<br>       xlog("--------- OB Route 1-2 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc-------");<br><br>}<br clear="all"></div><div><div><br><br></div><div>The records in xlog I'm getting without using async;<br><br>Jan 19 18:05:39 qorblpsisprxyd1 /usr/sbin/opensips[14040]: --------- OB Route 1-1 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 1 | Var Res: 1-------<br>Jan 19 18:05:39 qorblpsisprxyd1 /usr/sbin/opensips[14040]: --------- OB Route 1-2 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 1 | Var Res: 1-------<br><br><div>Whereas, records in xlog I'm getting using async;<br><br>Jan 19 18:10:07 qorblpsisprxyd1 /usr/sbin/opensips[14109]: --------- OB Route 1-1 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 1-------<br>Jan 19 18:10:07 qorblpsisprxyd1 /usr/sbin/opensips[14109]: --------- OB Route 1-2 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 0-------<br><br></div><div>Is there is way to properly retain the $retcode/$rc in version 2.2.2? Seems like using async return code(s) are not properly set or the avp variables are not setting up correct using async statement.<br><br></div><div>Please advise, if the above async db statement is correct as shared in sample above.<br></div><br><br></div><div>-- <br><div class="gmail_signature">Regards,<br><br>Ahmed Munir Chohan<br><br></div>
</div></div></div></div></div></div></div>