Hello,
I am planing to release Kamailio v4.0.4 this week on Wednesday, Sep 2.
If anyone has patching to push in branch 4.0, do it before noon GMT in
that day. Also, if any developer is preferring another release day, just
present the option on the mailing lists.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28; Miami, Nov 18-20, 2013
- more details about Kamailio trainings at http://www.asipto.com -
I'm trying to implement a load balancer for asterisk servers using
kamailio and the tutorial at
http://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb
I must fit the balancer in an infrastructure without touching the
other media servers (asterisk) which require a username/password
authentication.
The sample implementation constructs a register request from scratch,
but does not handle authorization and thus fails. I cannot change the
current sip servers and their configuration as these are a live system
and I'm not allowed to touch it.
I would really appreciate some hints on how to proceed.
# Forward REGISTER to Asterisk
route[REGFWD] {
if(!is_method("REGISTER"))
{
return;
}
$var(rip) = $sel(cfg_get.asterisk.bindip);
$uac_req(method)="REGISTER";
$uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);
$uac_req(furi)="sip:" + $au + "@" + $var(rip);
$uac_req(turi)="sip:" + $au + "@" + $var(rip);
$uac_req(hdrs)="Contact: <sip:" + $au + "@"
+ $sel(cfg_get.kamailio.bindip)
+ ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";
if($sel(contact.expires) != $null)
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $sel(contact.expires) + "\r\n";
else
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $hdr(Expires) + "\r\n";
uac_req_send();
}
Thank you,
Paul.
Hello,
When adding rows to the dispatcher table, the table in memory needs to be refreshed. Since we have multiple Kamailio instances running on different machines, I'd like to automate the process of reloading the table.
Is there an easy way of doing this with an already existing module, which provides easy connectivity from the outside?
Or do I need to write an application which basically sets up a SSH socket connection with the machine and sends the command "kamctl dispatcher reload" then exit? Not that hard either, but there might be a finer solution available.
Regards,
Grant
Ing. Pablo Digonzelli
Sofware Solutions
IP Soluciones SRL
25 de Mayo 521. Entrepiso A
email: pdigonzelli(a)softsargentina.com
email: pdigonzelli(a)gmail.com
twitter: @pdigonzelli
Tel: 0381 4227378
Cel: 0381 155982714
Hello
We've put Kamailio on a machine with a SIP-Proxy role, we replaced another SIP proxy implementation.
We started with the default 4Mb of PKG Memory and 1024 Mb of Shared Memory but we had messages like these in the logs:
2013-09-26 13:48:26,939 ERROR: app_perl [kamailioxs.xs:371]: pv_sprintf(): pv_sprintf: Memory exhausted!
2013-09-26 13:48:50,267 ERROR: app_perl [kamailioxs.xs:371]: pv_sprintf(): pv_sprintf: Memory exhausted!
2013-09-26 13:48:51,822 ERROR: <core> [data_lump.c:197]: insert_subst_lump_after(): ERROR: insert_new_lump_after: out of memory
2013-09-26 13:48:51,823 ERROR: <core> [parser/contact/contact.c:194]: parse_contacts(): parse_contacts(): No memory left
2013-09-26 13:48:51,823 ERROR: memcached [../../parser/../ut.h:736]: pkg_str_dup(): could not allocate private memory from available pool
2013-09-26 13:48:51,823 ERROR: <core> [data_lump.c:373]: anchor_lump(): ERROR: anchor_lump: out of memory
2013-09-26 13:48:51,823 ERROR: <core> [dset.c:525]: rewrite_uri(): No memory left to rewrite r-uri
2013-09-26 13:48:51,823 ERROR: <core> [action.c:810]: do_action(): ERROR: do_action: memory allocation failure
2013-09-26 13:48:51,823 ERROR: <core> [msg_translator.c:2164]: build_res_buf_from_sip_req(): ERROR: build_res_buf_from_sip_req: out of memory ; needs 357
2013-09-26 13:48:51,823 ERROR: <core> [msg_translator.c:2164]: build_res_buf_from_sip_req(): ERROR: build_res_buf_from_sip_req: out of memory ; needs 376
Then we started kamailio like below, with 1024Mb of private memory (per process) :
/opt/kamailio/sbin/kamailio -f /opt/kamailio/etc/kamailio//kamailio.cfg -w /opt/kamailio/core_dir/corefiles -P /opt/kamailio/var/run//kamailio.pid -m 1024 -M 1024 -u kamailio -g kamailio
Then after about 4 days we realized that we have a steady increase of used memory ( in the output of free command the '-/+ buffers/cache:' row ), and we simply restarted the kamailio process.
The machine has 12 Gb of RAM , we run with children=32 . 1gb of memory per process x 32 child processes means that we are over the physical capacity of the machine.
The question is , are we in any danger of running out of memory on this box where we only run kamailio ? We don't want to reach the point where the kernel starts killing processes.
Shall we suspect some memory leak in the app_perl module ? (we do some http queries over SSL from a perl script)
Thank you.
Regards,
Dragos Oancea
Hello,
I'm considering to have a new IRC devel meeting to plan a bit the
development for the near future (among them, nail down goals and dates
for next major release). The proposed date is next week on Thursday, at
14:00UTC, on #kamailio channel from irc.freenode.net.
I create a wiki page for it at:
- https://www.kamailio.org/wiki/devel/irc-meetings/2013b
First thing to decide is the date and time, if it is something
convenient for many people. If not, propose other dates and we will
chose the one when most of the people are available.
Also, feel free to add to agenda. For now I just created a basic list, I
will add more myself as well.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Oct 21-24; Miami, Nov 11-13, 2013
- more details about Kamailio trainings at http://www.asipto.com -
Hi,
I'm having problems connecting to a videoservice at seevia.no, because
they have no NAPTR nor _sip._udp.seevia.no entry. They do have for
tcp and sips:
% host -t NAPTR seevia.no
seevia.no has no NAPTR record
% host -t SRV _sip._udp.seevia.no
Host _sip._udp.seevia.no not found: 3(NXDOMAIN)
% host -t SRV _sip._tcp.seevia.no
_sip._tcp.seevia.no has SRV record 1 0 5060 vcse.vcn.no.
% host -t SRV _sips._tcp.seevia.no
_sips._tcp.seevia.no has SRV record 1 0 5061 vcse.vcn.no.
% host -t A vcse.vcn.no.
vcse.vcn.no has address 85.19.200.18
vcse.vcn.no has address 62.92.46.211
% host -t A seevia.no
seevia.no has address 93.89.34.42
Ref an old thread on sr-dev,
<http://lists.sip-router.org/pipermail/sr-dev/2012-October/016969.html>
this should have been fixed by
<http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=63ef5f0…>.
From tcpdump:
65177+ NAPTR? seevia.no. (27)
65177 0/1/0 (86)
31896+ SRV? _sip._udp.seevia.no. (37)
31896 NXDomain 0/1/0 (96)
54304+ A? seevia.no. (27)
54304 1/2/2 A 42.93-89-34.enivest.net (119)
Trivial to see it does not attempt to lookup anything after a NXDOMAIN
for _sip._udp.seevia.no.
% host -t A 42.93-89-34.enivest.net42.93-89-34.enivest.net has address 93.89.34.42
Any idea why my INVITEs are being sent to 93.89.34.42
instead one of vcse.uio.no's IPs?
My dns settings:
use_dns_cache=on
use_dns_failover=on
dns_try_ipv6=no
dns_retr_time=1
dns_retr_no=2
dns_use_search_list=no
dns_try_naptr = yes
dns_srv_lb = yes
I'm running latest 4.0:
% kamailio -V
version: kamailio 4.0.3 (i386/linux) a331af
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER,
USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: a331af
compiled on 11:30:24 Sep 17 2013 with gcc 4.1.2
--
Øyvind Kolbu
Hi!
Question to the experts: Is keep-alive for the Websockets TCP connection
automatically done by the Websockets Layer (client or server), or do I
have to do it manually (nathelper pinging).
Thanks
Klaus