Hi,
First of all say that I'm new to Kamailio. I've been working with asterisk
for a while now and it's time to get started with the sip router project.
My idea for a start is to reduce the load of our asterisk servers and once
we have good knowledge on how kamailio works, migrate some of our services.
I've setup a server in our lab with kamailio 3.3.0 and siremis
3.3.0, created a user (subscriber) and registered with a softphone. So far
OK.
Now I'm trying to make a call and route it through one of our asterisk
servers for testing. To do this I need LCR module (thanks Sébastien, I
wasn't subscribed to this list yet) and configure it.
After reading
http://kamailio.org/docs/modules/stable/modules/lcr.html#id2553110 I've
added in kamailio.cfg:
#!define WITH_LCR
#!ifdef WITH_LCR
loadmodule "lcr.so"
#!endif
#!ifdef WITH_LCR
# ----- lcr params -----
modparam("lcr", "db_url", DBURL)
modparam("lcr", "gw_uri_avp", "$avp(i:709)")
modparam("lcr", "ruri_user_avp", "$avp(i:500)")
modparam("lcr", "tag_avp", "$avp(lcr_tag)")
#!endif
And now I see LCR module being loaded at startup. But, I don't understand
what gw_uri_avp, ruri_user_avp or tag_avp mean. Where can I find some
doc/manual to understand what AVP means and does? (For example the
$avp(i:709), etc.)
I've added a LCR GW, LCR TARGET and LCR RULE with the following data (I
have no idea if it's completely wrong):
mysql> select * from lcr_gw;
+----+--------+---------+--------------+--------------------------+------+--------+------------+-----------+-------+--------+------+-------+---------+
| id | lcr_id | gw_name | ip_addr | hostname | port |
params | uri_scheme | transport | strip | prefix | tag | flags | defunct |
+----+--------+---------+--------------+--------------------------+------+--------+------------+-----------+-------+--------+------+-------+---------+
| 1 | 0 | TEST | XX.XXX.XXX.X | test12345678.testing.com | 5060 |
NULL | 1 | 1 | NULL | NULL | NULL | 0 | NULL |
+----+--------+---------+--------------+--------------------------+------+--------+------------+-----------+-------+--------+------+-------+---------+
1 row in set (0.00 sec)
mysql> select * from lcr_rule;
+----+--------+--------+----------+-------------+---------+---------+
| id | lcr_id | prefix | from_uri | request_uri | stopper | enabled |
+----+--------+--------+----------+-------------+---------+---------+
| 1 | 1 | .* | | | 0 | 1 |
+----+--------+--------+----------+-------------+---------+---------+
1 row in set (0.00 sec)
mysql> select * from lcr_rule_target;
+----+--------+---------+-------+----------+--------+
| id | lcr_id | rule_id | gw_id | priority | weight |
+----+--------+---------+-------+----------+--------+
| 1 | 1 | 1 | 1 | 1 | 1 |
+----+--------+---------+-------+----------+--------+
1 row in set (0.00 sec)
mysql>
Am I still missing basic stuff to be able to place a call ? (To get started
I'd like to route all calls to our Asterisk server)
I'm glad to read documentation so If all of this is already somewhere
please guide me cause I haven't found too much...
Thanks in advanced.
Regards,
Joel.
I'd be curious to know if your performance might actually be higher, owing to improved CPUs since the study was done, hyperthreading, more frames per NIC interrupt, etc.
-- Alex
--
Sent from my Samsung mobile, and thus lacking in the refinement one might expect from a proper keyboard.
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
Tel: +1-678-954-0670
Web: http://www.evaristesys.com/Mino Haluz <mino.haluz(a)gmail.com> wrote:Thank you, setting ulimits worked! And the performance is the same as
stated in the document I mentioned! :)
One more thing, I found these errors in syslog:
Sep 13 18:38:18 perftest kamailio[5268]: ERROR: <core>
[parser/sdp/sdp.c:211]: Invalid payload location
Sep 13 18:38:18 perftest kamailio[5268]: ERROR: <core>
[parser/sdp/sdp.c:227]: Invalid payload location
Sep 13 18:38:18 perftest kamailio[5270]: ERROR: <core>
[parser/sdp/sdp.c:227]: Invalid payload location
This is possibly something related to my sipp scenario, this is the
INVITE sent from sipp
<![CDATA[
INVITE sip:800@perftest.vm SIP/2.0
Via: SIP/2.0/[transport] 10.0.2.36:[local_port];branch=[branch]
From: "700" <sip:500@10.0.2.36>;tag=[call_number]
To: <sip:800@perftest.vm>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: "700" <sip:700@10.0.2.36:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] 10.0.2.36
s=-
c=IN IP[local_ip_type] 10.0.2.36
t=0 0
m=audio [auto_media_port] RTP/AVP 8
a=rtpmap:8 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11,16
]]>
Do you see something that could cause this error ? Otherwise the call
is initiated ok, but I really dont understand what is so strange to
kamailio in this INVITE.
On Thu, Sep 13, 2012 at 6:37 PM, Peter Lemenkov <lemenkov(a)gmail.com> wrote:
> 2012/9/13 Mino Haluz <mino.haluz(a)gmail.com>:
>> You mean on the proxy side? I'm running rtpproxy as root, limits are
>> still applied ? ulimit -s unlimited should do the trick ?
>
> Yes, they usually applied even for superuser, and yes - this should
> help (if that's the issue).
>
>
> --
> With best regards, Peter Lemenkov.
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users(a)lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Friends,
Dispatcher has a mode 8 - "use first destination" which makes sense for a textfile driven dispatcher configuration.
Now if I use a database - will dispatcher first sort on priority, then take the first?
It seems so from the documentation of the text file:
priority: sets the priority in destination list (based on it is done the initial ordering inside the set)
Which one is top priority - lowest or highest value?
I can update the docs to clarify if someone helps me with the answer :-)
/O
Hi,
I have a scenario where I got a firewall with 3 interfaces: internal, DMZ and external. All the traffic from internal going to external is NATed. However, the traffic between internal and DMZ is NOT NATed. The external and DMZ are using public IP addresses. On the DMZ I have a Kamailio server running with RTPProxy + NAT Helper.
Everything works fine when public (from the internet) users (UAs) are behind NAT as Kamailio will force the RTP to go via RTPProxy. However, when the public user has a public IP, it will fail to establish the RTP to a user who registered on Kamailio coming from the internal firewall interface.
The reason is that, as I don't do NAT between internal and DMZ firewall interfaces, Kamailio will not RTPRroxy in between the UAs because, from the way Kamailio detects NAT, they are not behind NAT. So the public user UA tries to reach a private IP address. If the "inside" user tries to call a public user (a user on the Internet with a public IP), it works.
Yes, I could do NAT in between the internal and DMZ firewall interfaces. However, this would force all RTP traffic of my UAs at the LAN go to Kamailio RTPProxy, an bad effect that I would like to avoid.
So my question is: what would be the best approach to solve this issue using Kamailio and RTPProxy in such scenario?
Cheers!
Moacir
Hi,
do you know what happens if the database for siptrace is not reachable ? I
assume siptrace is non-blocking in new versions of kamailio, but is there
any buffer? Or insert queries are discarded when timed out ?
Mino
Dear All
I have modified kamailio,cfg and compiled all the modules with TLS enabled,
and able to bring up the kamailio proxy properly.
Kamailio proxy will receive the REGISTER message from endpoints in UDP ,
and want to send this REGISTER message to another intermediate proxy in
TLS. For this purpose, I have added few lines in kamailio.cfg file as below.
I have created the certificates, private keys as explained by README file
in kamailio-3.1.5/modules/tls/ path.
if(is_method("REGISTER"))
{
t_relay_to("tls:115.114.48.75:443");
exit();
}
Looks like this is taking effect. When Kamailio receives REGISTER message
it is trying to do handshake with intermediate proxy.
I used wireshark to see the handshake messages.
1. From Kamailio proxy, a TCP SYNC message is going to intermediate proxy.
2. intermediate proxy sends SYNC + ACK
3. Kamailio sends CLIENT HELLO
4. intermediate proxy sends SERVER HELLO, CERTIFICATE and SERVER HELLO DONE
5. The Kamailio sends ALERT (Level: Fatal, Description: Unknown CA) --->
IS something going wrong here..............
6. Then Kamailio sends FIN + ACK
Can somebody please let me know why the certificate verification fails (I
get this log in console).
How can I put a work around to avoid certification verification failure.
Best Regards
kamal
Hi,
I installed kamailio 3.2.x a few times before and they were really fine. I
decided to install a fresh one and followed the instructions on
http://www.kamailio.org/wiki/install/3.3.x/git. However there is a problem:
clients cannot register to kamailio. Each registration attempt produces the
following error in the syslog:
Oct 29 20:07:38 ubuntu /usr/local/kamailio-3.3/sbin/kamailio[32421]: :
<core> [tcp_main.c:3578]: BUG: handle_ser_child: fd -1 for 0 (pid 32414)
Oct 29 20:07:38 ubuntu /usr/local/kamailio-3.3/sbin/kamailio[32421]: :
<core> [pass_fd.c:103]: ERROR: recv_all: 1st recv on 56 failed: Bad file
descriptor
Oct 29 20:07:38 ubuntu /usr/local/kamailio-3.3/sbin/kamailio[32421]: :
<core> [tcp_main.c:3363]: ERROR: handle_tcp_child: read from tcp child 0
(pid 0, no 0) Bad file descriptor [9]
Oct 29 20:07:38 ubuntu /usr/local/kamailio-3.3/sbin/kamailio[32421]: :
<core> [pass_fd.c:209]: ERROR: send_fd: sendmsg failed sending 17 on 56:
Bad file descriptor (9)
Oct 29 20:07:38 ubuntu /usr/local/kamailio-3.3/sbin/kamailio[32421]: ERROR:
<core> [tcp_main.c:4006]: ERROR: send2child: send_fd failed for
0x7f510bc41588 (flags 0x4018), fd 17
What could be the problem? Any suggestion?
In case you need, the server is ubuntu server 11.10, and I installed
including mysql and tls modules.
Hello All,
I am hoping the authors of the RLS/PUA modules can answer this
question since I am not sure what's going on. I have the rls module
enabled, with the following config spec:
# ------rls module params ------
modparam("rls", "db_url", DBURL)
modparam("rls", "db_mode", 2)
modparam("rls", "integrated_xcap_server", 1)
modparam("rls", "to_presence_code" ,10)
modparam("rls", "server_address", "sip:rls@ip:5060")
#!endif
and
modparam("pua_reginfo", "default_domain", "ip")
modparam("pua_reginfo", "server_address", "sip:reginfo@ip")
modparam("pua", "db_mode", 2)
So for both I have DB_MODE set to DB ONLY. For whatever reason, even
though all I am doing is bringing up my client I see over 250+ entries
in the rls_watchers table for the same watcher and over 100 entries in
the pua list table for the same presentity?
Anyone have any idea what would be triggering this. There is
definitely not anymore more than the normal messaging going on between
the client and the server.
Only error I see in the syslog:
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11745]: ERROR:
db_mysql [km_dbase.c:122]: driver error on query: Duplicate entry
'1350937406' for key 'expires_idx'
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11744]: DEBUG:
presence [subscribe.c:1216]: subs->contact= sip:rls@ip:5060 - len = 25
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11761]: DEBUG:
<core> [db_val.c:117]: converting STRING [8475551001]
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11746]: DEBUG:
<core> [parser/msg_parser.c:626]: method: <SUBSCRIBE>
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11745]: ERROR:
<core> [db_query.c:210]: error while submitting query
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11744]: DEBUG:
rls [rls.h:241]: did=
41826031568472f9-11752@127.0.0.1;533cb9e91f4b999cf76861cbb9ed54ed-93a3;a6a1c5f60faecf035a1ae5b6e96e979a-464d
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11761]: DEBUG:
<core> [db_val.c:117]: converting STRING [10.50.251.12]
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11746]: DEBUG:
<core> [parser/msg_parser.c:628]: uri: <sip:8475551001@ip>
Oct 22 15:22:22 RCS-Presence /usr/local/sbin/kamailio[11745]: ERROR:
pua [pua_db.c:1149]: DB insert failed
--
Sangeeta Shah
Hello,
I followed the instruction mentioned in Kamailio website. When I do a make
all, I get the error. Please let me know how to fix this. I am new to
Kamailio.
-------------------
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
CC (gcc) [M app_mono.so] app_mono_api.o
In file included from app_mono_api.c:37:
app_mono_api.h:27:26: warning: mono/jit/jit.h: No such file or directory
app_mono_api.h:28:39: warning: mono/metadata/environment.h: No such file or
directory
In file included from app_mono_api.c:37:
app_mono_api.h:35: error: expected specifier-qualifier-list before
‘MonoDomain’
app_mono_api.c:39:39: warning: mono/metadata/mono-config.h: No such file or
directory
app_mono_api.c:49: error: expected specifier-qualifier-list before
‘MonoDomain’
app_mono_api.c: In function ‘sr_mono_load_script’:
app_mono_api.c:93: error: ‘sr_mono_load_t’ has no member named ‘next’
app_mono_api.c: In function ‘mono_sr_init_load’:
app_mono_api.c:139: warning: implicit declaration of function
‘mono_config_parse’
app_mono_api.c:141: error: ‘sr_mono_load_t’ has no member named ‘domain’
app_mono_api.c:148: error: ‘sr_mono_load_t’ has no member named ‘domain’
app_mono_api.c:148: warning: implicit declaration of function
‘mono_jit_init’
app_mono_api.c:149: error: ‘sr_mono_load_t’ has no member named ‘domain’
app_mono_api.c:157: error: ‘sr_mono_load_t’ has no member named ‘assembly’
app_mono_api.c:157: warning: implicit declaration of function
‘mono_domain_assembly_open’
app_mono_api.c:157: error: ‘sr_mono_load_t’ has no member named ‘domain’
app_mono_api.c:158: error: ‘sr_mono_load_t’ has no member named ‘assembly’
app_mono_api.c:162: error: ‘sr_mono_load_t’ has no member named ‘next’
app_mono_api.c: In function ‘mono_sr_initialized’:
app_mono_api.c:208: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c: In function ‘app_mono_exec’:
app_mono_api.c:230: error: ‘sr_mono_env_t’ has no member named ‘msg’
app_mono_api.c:237: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:246: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c:246: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:247: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c:256: warning: implicit declaration of function
‘mono_jit_exec’
app_mono_api.c:256: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:256: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c:257: warning: implicit declaration of function
‘mono_environment_exitcode_get’
app_mono_api.c:261: warning: implicit declaration of function
‘mono_jit_cleanup’
app_mono_api.c:261: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c: In function ‘app_mono_run’:
app_mono_api.c:282: error: ‘sr_mono_env_t’ has no member named ‘msg’
app_mono_api.c:284: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:284: error: ‘sr_mono_load_t’ has no member named ‘domain’
app_mono_api.c:285: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c:285: error: ‘sr_mono_load_t’ has no member named ‘assembly’
app_mono_api.c:286: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c:291: warning: implicit declaration of function
‘mono_domain_set’
app_mono_api.c:291: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:298: error: ‘sr_mono_env_t’ has no member named ‘domain’
app_mono_api.c:298: error: ‘sr_mono_env_t’ has no member named ‘assembly’
app_mono_api.c: At top level:
app_mono_api.c:310: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘*’ token
app_mono_api.c:314: error: expected declaration specifiers or ‘...’ before
‘MonoString’
app_mono_api.c: In function ‘sr_mono_log’:
app_mono_api.c:316: warning: implicit declaration of function
‘mono_string_to_utf8’
app_mono_api.c:316: error: ‘text’ undeclared (first use in this function)
app_mono_api.c:316: error: (Each undeclared identifier is reported only once
app_mono_api.c:316: error: for each function it appears in.)
app_mono_api.c:316: warning: assignment makes pointer from integer without
a cast
app_mono_api.c:318: warning: implicit declaration of function ‘mono_free’
app_mono_api.c: At top level:
app_mono_api.c:321: error: expected ‘)’ before ‘*’ token
app_mono_api.c:328: error: expected ‘)’ before ‘*’ token
app_mono_api.c:338: error: expected ‘)’ before ‘*’ token
app_mono_api.c:408: error: ‘sr_mono_api_version’ undeclared here (not in a
function)
app_mono_api.c:410: error: ‘sr_mono_err’ undeclared here (not in a function)
app_mono_api.c:411: error: ‘sr_mono_dbg’ undeclared here (not in a function)
app_mono_api.c:412: error: ‘sr_mono_modf’ undeclared here (not in a
function)
app_mono_api.c: In function ‘sr_mono_load_class_core’:
app_mono_api.c:420: warning: implicit declaration of function
‘mono_add_internal_call’
app_mono_api.c: At top level:
app_mono_api.c:427: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘*’ token
app_mono_api.c:478: error: expected ‘)’ before ‘*’ token
app_mono_api.c:530: error: expected ‘)’ before ‘*’ token
app_mono_api.c:579: error: expected ‘)’ before ‘*’ token
app_mono_api.c:632: error: expected ‘)’ before ‘*’ token
app_mono_api.c:679: error: expected ‘)’ before ‘*’ token
app_mono_api.c:729: error: ‘sr_mono_pv_gets’ undeclared here (not in a
function)
app_mono_api.c:729: error: initializer element is not constant
app_mono_api.c:729: error: (near initialization for
‘_sr_M_export_pv[0].method’)
app_mono_api.c:730: error: ‘sr_mono_pv_geti’ undeclared here (not in a
function)
app_mono_api.c:730: error: initializer element is not constant
app_mono_api.c:730: error: (near initialization for
‘_sr_M_export_pv[1].method’)
app_mono_api.c:731: error: ‘sr_mono_pv_seti’ undeclared here (not in a
function)
app_mono_api.c:731: error: initializer element is not constant
app_mono_api.c:731: error: (near initialization for
‘_sr_M_export_pv[2].method’)
app_mono_api.c:732: error: ‘sr_mono_pv_sets’ undeclared here (not in a
function)
app_mono_api.c:732: error: initializer element is not constant
app_mono_api.c:732: error: (near initialization for
‘_sr_M_export_pv[3].method’)
app_mono_api.c:733: error: ‘sr_mono_pv_unset’ undeclared here (not in a
function)
app_mono_api.c:733: error: initializer element is not constant
app_mono_api.c:733: error: (near initialization for
‘_sr_M_export_pv[4].method’)
app_mono_api.c:734: error: ‘sr_mono_pv_is_null’ undeclared here (not in a
function)
app_mono_api.c:734: error: initializer element is not constant
app_mono_api.c:734: error: (near initialization for
‘_sr_M_export_pv[5].method’)
app_mono_api.c:750: error: expected ‘)’ before ‘*’ token
app_mono_api.c:801: error: expected ‘)’ before ‘*’ token
app_mono_api.c:850: error: expected ‘)’ before ‘*’ token
app_mono_api.c:895: error: expected ‘)’ before ‘*’ token
app_mono_api.c:930: error: ‘sr_mono_hdr_append’ undeclared here (not in a
function)
app_mono_api.c:930: error: initializer element is not constant
app_mono_api.c:930: error: (near initialization for
‘_sr_M_export_hdr[0].method’)
app_mono_api.c:931: error: ‘sr_mono_hdr_remove’ undeclared here (not in a
function)
app_mono_api.c:931: error: initializer element is not constant
app_mono_api.c:931: error: (near initialization for
‘_sr_M_export_hdr[1].method’)
app_mono_api.c:932: error: ‘sr_mono_hdr_insert’ undeclared here (not in a
function)
app_mono_api.c:932: error: initializer element is not constant
app_mono_api.c:932: error: (near initialization for
‘_sr_M_export_hdr[2].method’)
app_mono_api.c:933: error: ‘sr_mono_hdr_append_to_reply’ undeclared here
(not in a function)
app_mono_api.c:933: error: initializer element is not constant
app_mono_api.c:933: error: (near initialization for
‘_sr_M_export_hdr[3].method’)
make[1]: *** [app_mono_api.o] Error 1
make: *** [modules] Error 1
Regards
Selvam