Hi all,
My scenario is as follows:
I have All the CSCFs on the same IP using different ports.
P-CSCF advertises a public IP. Rest of the nodes including I-CSCF and S-CSCF
listen local only.
Behavior: When an ACK or PRACK goes from P-CSCF to S-CSCF, the RURI changes
such that alias parameter is removed.
Hence, P-CSCF ends up sending PRACK and ACK on private IP of UE.
Here's what the config looks like:
Any hints?
--
View this message in context: http://sip-router.1086192.n5.nabble.com/Kamailio-IMS-NAT-issue-PRACK-ACK-RU…
Sent from the Users mailing list archive at Nabble.com.
Hello,
We're trying to get our Asterisk test server to REGISTER with Kamailio.
The first attempts are ok, but once the nonce timer is exceeded Kamailio starts rejecting the REGISTER requests from Asterisk, due to the nonce being expired.
The auth_check function is the one returning error -4.
Is this an issue in Asterisk or Kamailio? Which component is responsible for generating a new nonce value?
I'm a bit confused regarding the flow of SIP REGISTER.
I hope someone could help me out on this.
Thanks!
Regards,
Grant Bagdasarian
Hi,
Kamailio release 4.4.3 was tagged as a "bug fix release", no config changes
should be needed.
However, we had to change two things in our config file to get 4.4.3
running. I thought, I might share those on the list.
1) Defines must not have '-' in the names.
In 4.4.2 we had a Define like this:
#!define NO-FRAUDCHECK
This threw an error when trying to restart with 4.4.3. Replacing it with
#!define NO_FRAUDCHECK
fixed the problem.
2) Module Order problems.
We introduced the usage of http_async_client module a few weeks ago, and
this worked perfectly. However, 4.4.3 complained that the pv module was
not available before loading http_async_client. After moving up the pv
module above http_async_client, everything worked again.
3) There's a bug in uac_auth function. I've opened an issue for that:
https://github.com/kamailio/kamailio/issues/797
Best Regards,
Sebastian
Hi!
I’m trying to use replace function, but got strange results.
Idea - modify Contact header
What I got as start packet. (202 Accepted on onreply_route)
…
Contact: <sip:*97@10.0.20.81:5060>
…
I give a command
replace("Contact: <.*>», "Contact: <" + $fu + ">");
$fu = sip:11@master.rufan.at
And, as a result I got
Contact: <sip:11@master.rufan.at>sip:*97@10.0.20.81:5060
Why it’s adding old Contact part at the end? What can cause this? On
onreply_route I have only this command.
Thanks!
--
Best regards,
Igor
Hi all,
I am trying to limit the concurrent calls of a customer, but we have multiple Kamailio servers in our platform. I have the dialog module up and running and it is storing its data in a database, but when I use get_profile_size, it will only return the number of dialogs in that profile for the current machine, it does not add the others.
How can I get Kamailio to add the others, i.e. how can I get Kamailio to consult the database to get the correct size. Now, Kamailio seems to only write to the database, but not read from it.
Best regards,
MICHAEL JEPSON
Hello,
I'm planning on doing some smart load balancing with Kamailio.
We have a distributed network, with multiple Kamailio boxes in different locations serving as Ingress SBC,
these Kamailio boxes are the entry point for a SIP call and then they route the call to a pre-configured Asterisk boxes.
I want to move away from this, I would like these Kamailios to be able to distribute the traffic to Asterisk boxes based on the
actual load on these boxes, the goal is to be more dynamic?
Is there any Kamailio module which could do that? Do I need to integrate some other tool(Homer etc) with Kamailio to achieve this?
Any suggestions are welcome.
Hello List,
I'm finishing my implementation of LCR with kamailio for outgoing calls but
one use case does not work.
Let me explain:
- I have some sbc for one destination. If one destination fail, kamailio
try to second one etc..
- If no SBC is available for this destination (for exemple, all are down),
i want to send my call to an error server (asterisk), play an error sound.
To accomplish this, i re-write the RURI: "sip:error1@errorserver.local",
and launch RELAY route. But kamailio dont make a DNS query to find IP of
"errorserver.local", only change RURI and try to send to the last LCR
gateway.
I have also try to add a new branch, but same result... Why kamailio do not
make a new DNS query ?
*route[RELAY] { #if (is_method("INVITE")) { #
if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");
#} if (!t_relay()) { sl_reply_error();
} exit;}route[NOTFOUND]{ $ru =
"sip:error1@errorserver.local"; xlog("L_WARN", "[$ci]|$si|Routing
this call to $ru (error server)\n"); append_branch($ru);
route(RELAY);}route[LCR] { xlog("L_INFO", "[$ci]|$si|Loading
gateways...\n"); if (!load_gws(1)) { xlog("L_ERR",
"[$ci]|$si|Can't load LCR gateways\n"); sl_send_reply("503",
"Unable to load gateways"); exit; } else
{ $var(i) = 0;
while(is_avp_set("$(avp(i:709)[$var(i)])")) {
xlog("L_INFO", "[$ci]|$si|This gateway was found:
gw_uri_avp[$var(i)]=$(avp(i:709)[$var(i)]) \n");
$var(i) = $var(i) + 1; };
if(is_avp_set("$avp(i:709)")) { xlog("L_INFO",
"[$ci]|$si|Trying gateway ‘$avp(i:709)’\n"); } else
{ xlog("L_INFO", "[$ci]|$si|No more gateways. Goto
route NOTFOUND...\n");
route(NOTFOUND); }; # try the first matched
gateway if (next_gw()) {
xlog("L_INFO", "[$ci]|$si|New request URI built: $ru . Relaying it (and
arming backup destination if needed)."); # Route to
failure for failover
t_on_failure("lcrfailure");
route(RELAY); } else { xlog("L_INFO",
"[$ci]|$si|No more gateways (after next_gw()). Goto route
NOTFOUND..."); route(NOTFOUND);
}; }; exit;}failure_route[lcrfailure] { # the previous
gateway is no good if (t_check_status("408|50[34]"))
{ xlog("L_WARN", "[$ci]|$si|Entering in entering
failure_route[lcrfailure]. Error code: $T_reply_code \n");
if(is_avp_set("$avp(i:709)")) { xlog("L_INFO",
"[$ci]|$si|Trying gateway ‘$avp(i:709)’\n"); } else
{ xlog("L_ERR", "[$ci]|$si|AVP is not
set\n"); }; if (next_gw())
{ xlog("L_INFO", "[$ci]|$si|New request URI built:
$ru . Relaying it (and arming backup destination if
needed)."); # Route to failure for
failover
t_on_failure("lcrfailure");
route(RELAY); } else { xlog("L_INFO",
"[$ci]|$si|No more gateways (after next_gw()). Goto route
NOTFOUND..."); route(NOTFOUND);
}; exit; };}*
Many thanks,
Regards.
I have multiple Kamailio servers in an Active/Active scenario (the database
is a MySQL server) using db_mode 3. But when the number of clients goes up
writes on the location table become too much and it causes database
problems. I even put my location table on a separate SSD disk on the server
to separate it's IO but still at times I have problems. How can I move
location table into memory? Is this a good solution? What other options do
I have?