Hello,
There seems to be an implementational difference in interpolation of PVs in AVP and XAVP identifiers and/or field names.
The pseudovariables documentation[1] on classical AVPs says:
The 'id' can be:
...
pseudo variable - if value of pv is integer, id is integer, if string, id is string
So, for example, this composition of variables works:
$var(f) = 'donkey'; $avp($var(f) = 'eehaw';
xlog("L_INFO", "Donkey says: $avp(donkey)\n");
It correctly prints:
Donkey says: eehaw
Making some assumptions, I tried this, and it did not work similarly as expected:
$var(f) = 'donkey'; $xavp(r=>$var(f)) = 'eehaw';
xlog("L_INFO", "Donkey says: $xavp(r=>donkey)\n");
This prints:
Donkey says: <null>
And a PV dump confirms that the PV value is not interpolated:
Mar 31 18:26:15 localhost /usr/local/sbin/kamailio[2399]: INFO: debugger [debugger_api.c:1799]: dbg_dump_json(): {"$xavp(r)":[{"$var(f)":["eehaw"]}]}
Interpolation of variables does not work for either field or stem names.
Is this a design principle of XAVPs, or an oversight?
Thanks,
-- Alex
[1] http://www.kamailio.org/wiki/cookbooks/4.2.x/pseudovariables#avp_id_-_avps