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.
Docs here:
http://kamailio.org/docs/modules/4.2.x/modules/async.html#async.f.async_rou…
However when I try:
async_route("WITHINDLG_DELAYED", $…
[View More]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
[View Less]
Hi,
Is there a way to write CDRs for failed calls?
I tried calling the acc_db_request command from my script, but it inserts a
transaction log not a CDR.
Thanks,
Mickael
Hi,
Is it possible to save user location data in a MongoDB database?
If not, are you guys using p_usrloc in your projects? Can you please give me
some feedback?
Thanks,
Mickael
Hello all,
we are are a small network-provider and selling internet via FTTC and
FTTH. To complete the portfolio we also sell telephony via a rented
ClassV Service with provisioning API, but its not our system and not in
our network.
To get more informations about Registration-Status and calls I have now
installed a kamailio as a statefull proxy between the subscriber and the
softwitch:
|----------|
|subscriber|\ ---------
|----------| \ …
[View More] /| Mobile|
\ -------------- / ---------
|----------| \ ------------ | Class V | / --------
|subscriber|---------| Kamailio |--------| Softswitch |-------| PSTN |
|----------| / ------------ | | \ --------
/ -------------- \ ---------
|----------| / \| World |
|subscriber|/ ---------
|----------|
I am really new in kamailio, so I just use the configuration named "Edge
Proxy Configuration" shown in the documentation to the outbound module,
see http://kamailio.org/docs/modules/4.2.x/modules/outbound.html
example 1.1. We dont need NAT and STUN because all our subscribers get
official IPv4 addresses.
Outgoing calls (subscriber -> PSTN) are working fine, all SIP messages
pass the Kamailio Proxy. But incoming Calls (World -> subscriber) miss
the proxy and will be routed directly from the Softwitch to the subscriber.
I think because of the Contact-Header in the subscriber REGISTER:
Contact: <sip:49xxxxxxyyyyyy@134.xx.yy.zz;uniq=E41120B46C92D3818E72B>
This is the IP of the subscriber FritzBox.
So I just added some lines to replace the Contact-Header in the REGISTER
to get all incoming Calls from the Softswitch to the Kamailio:
if (is_method("REGISTER")) {
if (src_ip==CUSTOMER_NET) {
remove_hf("Route");
add_path();
$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";
if ($ct != $null) {
subst('/^Contact:(.*)@[a-zA-Z0-9.]+(.*)$/Contact:\1@KAMAILIO_IP\2/ig');
}
}
}
and now the Contact-Header looks better:
Contact: <sip:49xxxxxxyyyyyy@KAMAILIO_IP;uniq=E41120B46C92D3818E72B>
Now the subscriber is registered on the Softswitch with the IP from the
Kamailio. And now the Kamailio get the incoming Call, but directly
route it back to the Softwitch and the call failed.
Now my questions:
- Is the "Edge Proxy Configuration" right for this setup?
- How the Kamailio keep all registered IPs and Lines to route an
incoming Call to the right subscriber?
- Why the Kamailio route an incoming call directly back to the
Softswitch?
Thanks a lot.
Regards
Thomas
[View Less]
Hi All
I am in need of being able to see what the duration of the call was at the
time of hang out.
I tried turning on the dialog module, but the result is that the values I
need are either null or always show as zero.
I tried to follow the suggestions in the thread about this here:
http://lists.sip-router.org/pipermail/sr-users/2010-October/065889.html
In the end my config looks like this:
loadmodule "dialog.so"
...
modparam("dialog", "dlg_flag", 4)
modparam("dialog", "dlg_match_mode", …
[View More]1)
...
request_route {
if (is_method("INVITE") && (! has_totag() ) ) {
dlg_manage();
}
if (is_method("BYE")) {
$var(elapsed) = ( $TV(s) - $dlg(start_ts) );
xlog ("L_INFO", "request_route DIALOG TEST: Completed $dlg(from_uri) to
$dlg(to_uri), elapsed: $var(elapsed), now seconds: $TV(s), dlg start time:
$dlg(start_ts), DLG_lifetime: $DLG_lifetime");
}
....
Note that I put at the top of the request route just for testing purposes
The result I get in the log is this:
INFO: <script>: request_route DIALOG TEST: Completed
sip:willf1976Test@develop-sbc.switchsoft.com to
sip:+18054515526@develop-sbc.switchsoft.com, elapsed: 1421305210, now
seconds: 1421305210, dlg start time: 0, DLG_lifetime: <null>
I was wondering if any one could point out to me what I have set up wrong.
Thanks in advance
All the best.
Will Ferrer
Switchsoft
[View Less]
Hi All,
i'm trying to get GEO IP Location for an IPv6 Setup.
We downloaded the GeoLiteCityv6.dat from maxmind and referred to it in
modparams of geoip.
If i now place a call from an V6 User and do something like:
if(geoip_match("$si", "src")) {
xlog("L_NOTICE", "Call comes from IP '$si' ($gip(src=>cc))
CID=$ci F=$fU URI=$ru\n");
append_hf("X-GeoIP: $gip(src=>cc)\r\n");
}
it will not match for any reason
if i xlog the src IP it look like: "Src IP = 2A01:…
[View More]abc:321:123:0:0:0:2" so
it should match to the GEO IP Database.
In CSV version of geo IP database there is an entry for my IP Address.
Since the Module is not that verbose, i cannot tell whether the entry
exists or not. Just the result in my "if" is False.
Has anybody experience with GEOIP and IPv6?
thanks
Best regards,
Jöran
[View Less]