Hi
I am having an issue with the Async module.
The async_route function doesn't seem able to take a
dynamic value as is it's duration.
The module docs states: The
sleep parameter represent the number of seconds to suspend
the processing of a SIP request. Maximum value is 100. The
parameter can be a static integer or a variable holding an
integer.
However
when I try:
async_route("WITHINDLG_DELAYED", $avp(buffer_duration) );
I get the following error when trying to restart kamailio:
parse error in config file /etc/kamailio/switchsoftk
amailio/includes/deployments/develop/callprocessing/../../../default.cfg,
line 866, column 41-61: function async_route: parameter 2 is
not constant ... failed!
I also tried with $var instead of an AVP, and even tried
having perl call the function (since we have gotten around
this sort of limitation in the past using perl).
Perl gives:
Jan 24 03:27:07
develop-callprocessing /usr/sbin/kamailio[1424]: ERROR:
app_perl [kamailioxs.xs:289]: moduleFunc(): Module
function 'async_route' is unsafe. Call is refused.
Jan 24 03:27:07
develop-callprocessing /usr/sbin/kamailio[1424]: ERROR:
app_perl [kamailioxs.xs:986]:
XS_Kamailio__Message_moduleFunction(): calling module
function 'async_route' failed. Missing loadmodule?
I have gotten
around this issue with a large if else structure like the
following:
if
($avp(buffer_duration) == 1) {
async_route("WITHINDLG_DELAYED", 1);
}
else if ($avp(buffer_duration) == 2) {
async_route("WITHINDLG_DELAYED",
2);
.........
This
is messy but works for us.
The
bug is not blocking our progress due to this work
around but I wanted to post it any way incase it helps
improve the module.
All
the best.
Will
Ferrer
Switchsoft