Hi, 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;
Without Async: ---------------------- route[1]{ ... if($var(Outpluseflag) == 0) { avp_db_query("SELECT Outpulse_number,setid FROM Prefix_data where Program_prefix = '$var(pg_prefix)'", "$avp(outpluse), $avp(trunkid)"); $var(res) = $retcode; # or you can just use $retcode! xlog("--------- OB Route 1-1 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc | Var Res: $var(res)-------"); if ($var(res) > 0) { cache_store("local", "DID_$tU", "$avp(outpluse)", 60); cache_store("local", "Trunk_$tU", "$avp(trunkid)", 60); } #xlog("DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code -> $var(res)"); xlog("--------- OB Route 1-2 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc | Var Res: $var(res)-------"); } } With Async: ------------------- route[1]{ ... if($var(Outpluseflag) == 0) { async(avp_db_query("SELECT Outpulse_number,setid FROM Prefix_data where Program_prefix = '$var(pg_prefix)'", "$avp(outpluse), $avp(trunkid)"),ob_route_1); } } route[ob_route_1]{ xlog("--------- OB Route 1-1 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc-------"); if ($rc > 0) { cache_store("local", "DID_$tU", "$avp(outpluse)", 60); cache_store("local", "Trunk_$tU", "$avp(trunkid)", 60); } xlog("--------- OB Route 1-2 DB fetched value outpluse -> $avp(outpluse) | trunkid -> $avp(trunkid) | Return Code: $rc-------"); } The records in xlog I'm getting without using async; 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------- 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------- Whereas, records in xlog I'm getting using async; Jan 19 18:10:07 qorblpsisprxyd1 /usr/sbin/opensips[14109]: --------- OB Route 1-1 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 1------- Jan 19 18:10:07 qorblpsisprxyd1 /usr/sbin/opensips[14109]: --------- OB Route 1-2 DB fetched value outpluse -> 6099020000 | trunkid -> 117 | Return Code: 0------- 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. Please advise, if the above async db statement is correct as shared in sample above. -- Regards, Ahmed Munir Chohan
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users