Hi All,
I have 2 interfaces - External A (behind NAT) and Internal B (LAN) in
Kamailio Load Balance, and enable Multi-Homing function "mhomed=1".
Load Balance dispatches to Kamailio SIP Servers via the Internal B (LAN)
(each Kamailio SIP server has both proxy and registrar in one box). For RTP
relay, I use RTPproxy in other server, has 2 interfaces A&B like Load
Balance.
If using 2 interfaces in Load Balance, Registration and calling NORMAL with
2 users behind NAT, but the call will be interrupted after 30 seconds due to
the ACK message (after Ringing, 200 OK) STOP in Load Balance in return and
not relayed to other UA . CANCEL and BYE have same error like ACK.
I tried using only one interface for load balancing (External = Internal
IP), and SIP Server binds to Load Balance in the same network, EVERYTHING IS
OK. ACK, CANCEL and BYE are not missing behind NAT.
For NAT Traversal I use PATH Module in Load Balance, and add "Received" like
this:
...
modparam("path", "use_received", 1)
..
..
record_route();
add_path_received();
force_rport();
t_relay;
..
..
And in SIP Server enable Path Parameter for Registrar:
modparam("registrar", "use_path", 1)
modparam("registrar", "path_mode", 1)
modparam("registrar", "path_use_received", 1)
Enable "#!define WITH_NAT" in default kamailio.cfg for RTP Controlling, but
I removed all fix_nated_register and fix_nated_contact in SIP Server,
because using PATH module.I try enable both fix_nat_register and
fix_nated_contact, or only fix_nat_register but NOT SOLVE Problem "missing
ACK,CANCEL, and BYE in Load Balance" behind NAT.
Best Regard,
Tuan.
Hi Peter
Great work on this! We'd like to help you test.
The test I have in mind, which we could create using SIPp, would be to
register multiple contacts with the same instance-id (i.e. "sip.instance"
param) but different reg-id params. Then send an INVITE to that AoR and
make sure the forking is only per instance-id and not per reg-id. This
could be repeated in multiple permutations of instance-ids and reg-ids.
This would be a test of save() and lookup() more than anything else. Is
that what you had in mind?
Richard
On 3 January 2013 14:13, Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>wrote:
> I hope to get the outbound edge proxy and flow timer stuff into master by
> Monday, but it could really do with some additional testing especially in
> conjunction with the reg-id stuff in registrar/usrloc (which I have no idea
> how to use).
>
> Peter
>
>
Hi,
I was configuring the modparams for LCR and Dialplan, I taken from
kamailio web site, but I think the params are outdated, because we need to
erase some lines to match with the tables in the DB, Im using Kamailio
3.3.3 and Siremis 3.3
Please can you give 1 example about how to make outbounds calls with
siremis 3.3 (send calls to gateway)? I already have the lcr and dialplan
module loaded with params.
Where can I get update documentation about Siremis 3.3 and Kamailio 3.3.3.
Thanks for your help.
Hello,
a (26-hours before) reminder that development for next major release
v4.0.0 will be frozen tomorrow, Thursday, January 10, 2013, at 23.59 GMT.
If any developer has new features to push in the git master branch,
please do it before. After that, for a while, the master should get only
bug fixes and improvements to documentation and addition tools (e.g.,
bringing kamctl up to date). New features have to be kept in personal
branches until the master branch is open again.
The focus should be on testing from the day after tomorrow on, I hope
the users community will help us here as well.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
On Tue, Jan 8, 2013 at 9:21 AM, Olle E. Johansson <oej at edvina.net>
wrote:
>>>> Is there a way to read modparam config from a database?
> In most cases, there should be no need to change modparams at
> runtime.
>
> Can you tell us more about which parameter you want to change during
> runtime that doesn't have a mI/rpc reload command?
Hi Olle!
The module we have been using, and wanted database configuration for
was the pike module. But and after spending some more time looking at
alternative modules, I see that we can use other modules to help us with
traffic control/blocking, like the pipelimit and the ratelimit (both
these modules have some sort of database integration, need to look more
into this).
I was so focused on the pike module, that I didn't see these other
modules.. :)
--
mvh
Glenn O Larsen
Hello Everyone,
While creating an account on Kamailio Sip server (I am running the command
"kamctl add test test1"), it is asking for password of MySQL Server and
after entering the password, I am getting following errors :-
- ERROR 1045 (28000): Access denied for user 'openser'@'localhost'
(using password: YES)
- ERROR: introducing the new user 'test' to the database failed
Please help me in resolving this issue.
Thanks in anticipation.
--
Best Regards
Shreyansh Purwar
Hi,
Since there is no way to limit the result set to 1, I tried to use
raw_query inside msilo module. Everytime it executes, it is crashing. The
same query if I run in mysql shell, it is returning successfully.
Here is the code That I added:
query_len = snprintf(query, 2048, "SELECT * FROM %.*s WHERE %.*s='%.*s'
AND %.*s='%.*s' AND %.*s!=%i AND %.*s<%i LIMIT 1;", ms_db_table.len,
ms_db_table.s, sc_uri_touser.len, sc_uri_touser.s, puri.user.len,
puri.user.s, sc_uri_tohost.len, sc_uri_tohost.s, puri.host.len,
puri.host.s, sc_status.len, sc_status.s, 200, sc_status.len, sc_status.s,
MSG_NOTIFY_OFFSET);
if (query_len < 0) {
LM_ERR("error in sql snprintf");
goto error;
}
LM_DBG("m_dump_msg: Query=%s\n", query);
query_str.s = query;
query_str.len = query_len;
if (msilo_dbf.raw_query(db_con, &query_str, &db_res) < 0) {
LM_ERR("Failed to query database. Query = %s\n", query);
goto error;
}
The Debug Log at Level 4 shows following:
11(7520) DEBUG: msilo [msilo.c:1120]: m_dump_msg: Query=SELECT * FROM silo
WHERE tousername='968257197' AND todomain='50.62.1.7' AND status!=200 AND
status<1000 LIMIT 1;
11(7520) DEBUG: <core> [db_res.c:118]: allocate 48 bytes for result set at
0x7fdd4b605540
11(7520) DEBUG: db_mysql [km_res.c:68]: 16 columns returned from the query
11(7520) DEBUG: <core> [db_res.c:155]: allocate 128 bytes for result names
at 0x7fdd4b5d8dc0
11(7520) DEBUG: <core> [db_res.c:165]: allocate 64 bytes for result types
at 0x7fdd4b5d8e60
11(7520) DEBUG: db_mysql [km_res.c:85]: allocate 16 bytes for RES_NAMES[0]
at 0x7fdd4b5d8d90
11(7520) DEBUG: db_mysql [km_res.c:92]: RES_NAMES(0x7fdd4b5d8d90)[0]=[id]
11(7520) DEBUG: db_mysql [km_res.c:100]: use DB1_INT result type
11(7520) DEBUG: db_mysql [km_res.c:85]: allocate 16 bytes for RES_NAMES[1]
at 0x7fdd4b5d8d60
11(7520) DEBUG: db_mysql [km_res.c:92]:
RES_NAMES(0x7fdd4b5d8d60)[1]=[src_addr]
11(7520) DEBUG: db_mysql [km_res.c:136]: use DB1_STRING result type
11(7520) DEBUG: db_mysql [km_res.c:85]: allocate 16 bytes for RES_NAMES[2]
at 0x7fdd4b5d8d30
11(7520) DEBUG: db_mysql [km_res.c:92]:
RES_NAMES(0x7fdd4b5d8d30)[2]=[dst_addr]
11(7520) DEBUG: db_mysql [km_res.c:136]: use DB1_STRING result type
<skip>
11(7520) DEBUG: <core> [db_val.c:117]: converting STRING
[ac3aeddd9b6f45e6822c824aa2c133b2]
11(7520) DEBUG: <core> [db_val.c:73]: converting INT [0]
11(7520) DEBUG: <core> [db_val.c:73]: converting INT [1]
26(7552) : <core> [pass_fd.c:293]: ERROR: receive_fd: EOF on 22
26(7552) DEBUG: <core> [tcp_main.c:3592]: DBG: handle_ser_child: dead child
11, pid 7520 (shutting down?)
26(7552) DEBUG: <core> [io_wait.h:617]: DBG: io_watch_del (0x842d20, 22,
-1, 0x0) fd_no=44 called
26(7552) DEBUG: <core> [tcp_main.c:3353]: DBG: handle_tcp_child: dead tcp
child 1 (pid 7520, no 11) (shutting down?)
26(7552) DEBUG: <core> [io_wait.h:617]: DBG: io_watch_del (0x842d20, 25,
-1, 0x0) fd_no=43 called
0(7509) ALERT: <core> [main.c:787]: child process 7520 exited by a signal
11
0(7509) ALERT: <core> [main.c:790]: core was not generated
0(7509) INFO: <core> [main.c:802]: INFO: terminating due to SIGCHLD
As you can see something happening to Database connection. Not sure why I
am unable to use raw_query. Normal API query from msilo works just fine.
What am I doing wrong to make it crash?
Thanks
Krish Kura
Hi guys,
I have tried to Google this for some time now, but can't seem to find an answer.
Is there a way to read modparam config from a database?
--
Best regards,
Glenn Larsen
Hello.
I have a doubt about the WEIGHT value in the LCR module. In the past we
used the Kamailio version 1.5.2 and in that version LCR weight was
calculated by a little script called lcr_weight_script.php. There was not
“percent” values like 50% and 50% for two gateways despite that the
probabilities were numbers calculated by the script. My question is : For
Kamailio version 3.2.4 do I have to use the same script to calculate the
weight?? I was almost sure that the weight column was a probability value.
For example if I have 3 gateways, with 50% 25% and 25%
The weight column should be : 50, 25 and 25 ? or 45, 32 and 32 as the
script indicates???
[root@vlcr utils]# ./lcr_weight_test.sh 45 32 32
weight 45 probability 0.5235
weight 32 probability 0.2352
weight 32 probability 0.2413
Please enlighten me here.
Thanks
Ricardo.-