Hello,
I am opening this discussion to decide if there is need to adjust some
of the default values we have in Kamailio. Many of them were set even
like 10 years ago, so they might not be very actual anymore.
The main goal is to get the best possible settings for common usage.
To start with, here are some values that should be reviewed:
- default private memory is 4MB - if the config is not that small, it
might not be sufficient free pkg to play with (e.g., for sql_query()
result, storage of $var(...) values). Should it be increased to 8MB or
other value? Debian/Centos have startup script that sets its value to 8
via command line
- default shared memory is 32MB - for a decent deployment with tm,
location, lcr/dispatcher, permissions, and anti-flood, it might leave
not much free space. Should we double it or set to a different value
- usrloc - db_ops_ruid should enabled (1) - seems stable, without it
there are problems updating/deleting location records when UA changes
the call-id for same contact address.
- usrloc - hash_size - now is 9, which results in 512 slots, meaning is
ok for few thousands of registered users, for more, performance will
decrease when doing save/lookup location -- should it be made 10 (1024
slots for internal hash table)?
- auth_db - load_credentials defaults to 'rpid', meaning that the query
to get the password will retrieve also the rpid column. I haven't see
rpid being used that much lately (replaced by PAI/PPI). I would make
this parameter empty by default to avoid querying for an extra column
that is likely to be empty.
Perhaps there are more, I just wanted to get started. Reply with your
comments to above list as well as add new items you thinks their default
values should be adjusted.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Hello,
I'm having trouble with this scenario (Kamailio and Asterisk are working on
the same server, Asterisk listens on 4060 instead of 5060): the UAC sends an
ACK request with the following R-URI: sip:955*95%23@
<sip:955*95%23@%3cIP_ASTERISK/KAMAILIO%3e:4060> <IP_ASTERISK/KAMAILIO>:4060.
When I'm doing a capture on loopback interface, I just see an ACK request
from IP <IP_ASTERISK/KAMAILIO>:5060 to IP <IP_ASTERISK/KAMAILIO>:5060.
So the ACK seems to loop inside Kamailio.
What could explain that the good port defined by the UAC is deleted?
Regards,
Igor.
hi carlos,
i have a serial forking scenario to several providers as failover. and i
used cnxcc_set_max_credit to control the session credit/time.
just wanted to make sure it does what i think it should do so i made a
little experiment.
the logic goes this way.
1. cnxcc_set_max_credit -> $100, cost per second -> $1
2. call will fail, try the next provider
3. cnxcc_set_max_credit -> $200, cost per second -> $2
what i am expecting to see is, if i do
kamctl kamcmd cnxcc.active_clients
i would see $200 as the max_amount. but in kamailio 4.1.5, i still see
$100, should it
be updated to $200? is there an override in cnxcc_set_max_credit when
called twice or after failure_route?
Kelvin Chua
On 07/16/14 14:57:59, Richard Fuchs wrote:
> Hard to tell without further information. Perhaps dist-upgrade tried to
> upgrade the daemon after the kernel module was removed but before the
> new module was installed? Did you install the kernel module through
> dkms? Do you have the metapackage installed? You can check the dpkg.log
> and dkms log files for more info.
Richard,
Somehow I missed your above reply in July. I have the metapackage
installed.
Now I made another dist-upgrade upgrading rtpengine from
3.3.0.0+0~mr3.4.1.0 to 3.3.0.0+0~mr3.5.0. Indeed dist-upgrade tries to
setup daemon after the kernel module was removed but before new kernel
module was installed.
Should dependency on ngcp-rtpengine-kernel-dkms be added to
ngcp-rtpengine-daemon in control file?
-- Juha
-------------------------------------------------------
# apt-get dist-upgrade
...
Preparing to replace ngcp-rtpengine-daemon 3.3.0.0+0~mr3.4.1.0 (using .../ngcp-rtpengine-daemon_3.3.0.0+0~mr3.5.0.0_amd64.deb) ...
Unpacking replacement ngcp-rtpengine-daemon ...
Preparing to replace ngcp-rtpengine-iptables 3.3.0.0+0~mr3.4.1.0 (using .../ngcp-rtpengine-iptables_3.3.0.0+0~mr3.5.0.0_amd64.deb) ...
Unpacking replacement ngcp-rtpengine-iptables ...
Preparing to replace ngcp-rtpengine-kernel-dkms 3.3.0.0+0~mr3.4.1.0 (using .../ngcp-rtpengine-kernel-dkms_3.3.0.0+0~mr3.5.0.0_all.deb) ...
Stopping RTP/media proxy: rtpengine-daemon.
-------- Uninstall Beginning --------
Module: rtpengine
Version: 3.3.0.0+0~mr3.4.1.0
Kernel: 3.2.0-4-amd64 (x86_64)
-------------------------------------
Status: Before uninstall, this module version was ACTIVE on this kernel.
xt_MEDIAPROXY.ko:
- Uninstallation
- Deleting from: /lib/modules/3.2.0-4-amd64/updates/dkms/
- Original module
- No original module was found for this module on this kernel.
- Use the dkms install command to reinstall any previous module version.
depmod.........
DKMS: uninstall completed.
------------------------------
Deleting module version: 3.3.0.0+0~mr3.4.1.0
completely from the DKMS tree.
------------------------------
Done.
Unpacking replacement ngcp-rtpengine-kernel-dkms ...
Preparing to replace ngcp-rtpengine 3.3.0.0+0~mr3.4.1.0 (using .../ngcp-rtpengine_3.3.0.0+0~mr3.5.0.0_all.deb) ...
Unpacking replacement ngcp-rtpengine ...
Preparing to replace ngcp-rtpengine-dev 3.3.0.0+0~mr3.3.1.0 (using .../ngcp-rtpengine-dev_3.3.0.0+0~mr3.5.0.0_all.deb) ...
Unpacking replacement ngcp-rtpengine-dev ...
Preparing to replace ngcp-rtpengine-kernel-source 3.3.0.0+0~mr3.4.1.0 (using .../ngcp-rtpengine-kernel-source_3.3.0.0+0~mr3.5.0.0_all.deb) ...
Unpacking replacement ngcp-rtpengine-kernel-source ...
Setting up ngcp-rtpengine-daemon (3.3.0.0+0~mr3.5.0.0) ...
Restarting RTP/media proxy: ngcp-rtpengine-daemonFATAL: Module xt_MEDIAPROXY not found.
iptables: No chain/target/match by that name.
ip6tables: No chain/target/match by that name.
FAILED TO CREATE KERNEL TABLE 0, KERNEL FORWARDING DISABLED
invoke-rc.d: initscript ngcp-rtpengine-daemon, action "restart" failed.
dpkg: error processing ngcp-rtpengine-daemon (--configure):
subprocess installed post-installation script returned error exit status 255
Setting up ngcp-rtpengine-iptables (3.3.0.0+0~mr3.5.0.0) ...
Setting up ngcp-rtpengine-kernel-dkms (3.3.0.0+0~mr3.5.0.0) ...
Creating symlink /var/lib/dkms/rtpengine/3.3.0.0+0~mr3.5.0.0/source ->
/usr/src/rtpengine-3.3.0.0+0~mr3.5.0.0
DKMS: add completed.
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=3.2.0-4-amd64 -C /lib/modules/3.2.0-4-amd64/build M=/var/lib/dkms/rtpengine/3.3.0.0+0~mr3.5.0.0/build MEDIAPROXY_VERSION=3.3.0.0+0~mr3.5.0.0.......
cleaning build area....
DKMS: build completed.
xt_MEDIAPROXY:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.2.0-4-amd64/updates/dkms/
depmod....
DKMS: install completed.
...
I have a rtpproxy configuration that spawns several rtpproxy instances, using bridge mode. An example is shown below:
/usr/bin/rtpproxy -p /var/run/rtpproxy.pid-7723 -u rtpproxy -s udp:127.0.0.1 7723 192.168.2.18/127.0.0.1 -m 10000 -M 20000
Here, rtpproxy bridges between 192.168.2.18 and 127.0.0.1 .
Now I want to migrate to rtpengine with the rtpproxy-ng module in kamailio. However, I do not find an equivalent to bridge mode in the rtpengine command-line parameters. I see the --ip=IP parameter, but the source code expects a single IP address, and
cannot be specified more than once. The closest I see is the --advertised-ip=IP parameter, but I am not sure that it will do what I need.
Hi Gents,
We have created a small redirect server using the Lua API to get the
destinations.
Lets say that it takes some time while the script generates the answer,
during this time we got a CANCEL.
How we can handle this properly ? As far as I could see the TM module
always sends back the answer (302) and after that I get the "CANCEL" in
my script.
Here is my config: http://pastebin.com/7PyKBJyD
Here is my test Lua script: http://pastebin.com/6VXn5y8m
Could you please help me what is the best way to handle the CANCEL ?
Is it possible to do it properly ?
Thanks,
Misi
I am planing to implement mediaproxy so which NAT module will be good for
media proxy and why?
should i use nat_traversal ro nathelper ? I haven't see any example people
using nat_traversa. most of example i found on google are based on
nathelper so just want to make sure which one i should use and why?
Hello,
A question on Kamailio variables and using dispatcher:
When in failure_route I want to know if the request message was going to a
dispatcher ip or a sip client ip (as in any other than dispatcher ip), how
do I make an if statement for that?
If I use ds_is_from_list(), I get wrong results because in both cases the
request was sent by Kamailio. Also, I don't seem to be able to get the
source ip of the 4xx message (src_ip shows the source ip of the request
message).
cheers,
Olli