[Kamailio-Users] script var or avp in ds_select_dst (dispatcher)?
Robert McGilvray
rmcgilvr at globeop.com
Wed Jun 24 22:55:55 CEST 2009
Turns out this is caused by passing ds_select_dst a string instead of an
int.
$var(test) = 30; works
$var(test) = "30"; doesn't work
The attrs field in dialplan is a string. Converting it to an int with
{s.int} worked for me.
________________________________
From: users-bounces at lists.kamailio.org
[mailto:users-bounces at lists.kamailio.org] On Behalf Of Robert McGilvray
Sent: Wednesday, June 24, 2009 3:14 PM
To: users at lists.kamailio.org
Subject: [Kamailio-Users] script var or avp in ds_select_dst
(dispatcher)?
Can someone please confirm that I cannot use a script var or avp in the
set field when calling ds_select_dst from the dispatcher module? I'm
trying to use dialplan to return a gateway group via attr, then call
ds_select_dst with that but get the following error in my logs. If this
is my problem are there any workarounds? The goal is to call
ds_select_dst with a dynamic value. Example -
ds_select_dst("$var(dpattr)", "0")
Jun 24 14:50:49 [1125] ERROR:core:fixup_get_ivalue: no valid PV value
found (error in scripts)
Jun 24 14:50:49 [1125] ERROR:dispatcher:w_ds_select_dst: no dst set
value
If I hardcode the value which in this case is 30 it works as expected.
I've verified that the correct value is in $var(dpattr) with an xlog
right before the call to ds_select_dst.
if ($ruri.user =~ "[0-9]{4}") {
xlog("L_NOTICE", "KAM_HOST: ($ci) $pr $mi route[$rm][0]
$fu -> $ru - Internal 4 digit call\n");
if (dp_translate("2", "$ruri.user/$var(dpuser)")) {
xlog("L_NOTICE", "KAM_HOST: ($ci) -> DP
result='$var(dpuser)', attr='$var(dpattr)'\n");
setflag(FLAG_DIALPLAN);
} else {
xlog("L_NOTICE", "KAM_HOST: ($ci) -> No matching
dialplan for $ru\n");
}
} some other if statements here with other pattern matches...
if (isflagset(FLAG_DIALPLAN)) {
xlog("L_NOTICE", "KAM_HOST: ($ci) -> DP Attr is
$var(dpattr)\n");
if (ds_select_dst("$var(dpattr)", "0")) {
xlog("L_NOTICE", "KAM_HOST: ($ci) $pr $mi
route[$rm][0] $fu -> DST='$avp(s:dispatcher-dst)', \
GRP='$avp(s:dispatcher-grp)',
CNT='$avp(s:dispatcher-cnt)'\n");
} else {
xlog("L_NOTICE", "KAM_HOST: ($ci) $pr $mi
route[$rm][0] $fu -> $ru - No dst gateways found\n");
sl_send_reply("404", "No destination gateways
found\n");
}
}
Thanks
________________________________
This email with all information contained herein or attached hereto may
contain confidential and/or privileged information intended for the
addressee(s) only. If you have received this email in error, please
contact the sender and immediately delete this email in its entirety and
any attachments thereto.
--------------------------------------------------------------------------
This email with all information contained herein or attached hereto may contain confidential and/or privileged information intended for the addressee(s) only. If you have received this email in error, please contact the sender and immediately delete this email in its entirety and any attachments thereto.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/users/attachments/20090624/48c03dee/attachment.htm>
More information about the Users
mailing list