Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -

Overview

Kamailio - The Open Source SIP Server

Build Status Code Triage Badge

Project Website:

Overview

Kamailio is an open source implementation of a SIP Signaling Server. SIP is an open standard protocol specified by the IETF. The core specification document is RFC3261.

The Kamailio SIP server is designed for scalability, targeting large deployments (e.g. for IP telephony operators or carriers, which have a large subscriber base or route a big volume of calls), but can be also used in enterprises or for personal needs to provide VoIP, Instant Messaging and Presence. Kamailio is well known for its flexibility, robustness, strong security and the extensive number of features - for more information, please see:

Kamailio development was started back in 2001 by Fraunhofer Fokus, a research institute in Berlin, Germany. At that time the project name was SIP Express Router (aka SER). In 2005, a fork named OpenSER was created, which was renamed to Kamailio in July 2008 due to trademark issues. Starting in the autumn of 2008, Kamailio and SER initiated the process to merge the two projects. After the merge was complete, Kamailio became the main name of the project, being better protected in terms of trademarks.

Fraunhofer Fokus is no longer actively involved in the evolution of the project. Kamailio is now developed and managed by its world wide community. Fokus still uses Kamailio in its research projects (such as OpenIMSCore) and it is hosting events related to the project, such as developer meetings or the Kamailio World Conference.

For more information about Kamailio, see the website of the project, where you can find pointers to documentation, the project wiki and much more.

Contributions

Github pull requests are the recommended way to contribute to Kamailio source code or documentation:

To keep a coherent and consistent history of the development, the commit messages format and content must follow the rules detailed at:

Contributions must conform with licensing rules of the Kamailio project.

License

Main License: GPLv2.

Each source code file refers to the license and copyright details in the top of the file. Most of the code is licensed under GPLv2, some parts of the code are licensed under BSD.

License Of New Code Contributions

New contributions to the core and several main modules (auth, corex, sl, tls, tm) have to be done under the BSD license. New contributions under the GPL must grant the GPL-OpenSSL linking exception. Contributions to existing components released under BSD must be done under BSD as well.

Documentation

The main index for documentation is available at:

The online documentation for modules in the latest stable branch:

The wiki collects a consistent number of tutorials, the indexes for variables, functions and parameters:

Please read the README file in the source code, one per module.

Installation

Step by step tutorials to install Kamailio from source code are available at:

Please read the INSTALL file from the source code for more information.

Repositories for Linux packages:

Issues And Bug Reports

To report a bug or make a request for new features, use the Issues Page in the Kamailio Github project:

Open Support And Community Discussions

Mailing Lists

Mailing list for discussions regarding stable versions of Kamailio:

Mailing list for discussions regarding the development of Kamailio and the state of master (devel) branch:

Mailing list for discussions with commercial purpose:

For more information about the mailing lists, please see:

IRC Channel

An open IRC discussion channel is managed by the community:

  • irc server: irc.freenode.net
  • irc channel: #kamailio

Matrix Channel

An open Matrix discussion channel is managed by the community:

Useful Resources

News:

Travis-CI - Testing Build Environment

Thank you for flying Kamailio!

Issues
  • Database timeout over SSL?

    Database timeout over SSL?

    Hi,

    having some rare issues writing acc-data to a remote MySQL server. The connection is made using the MySQL SSL options. Most, 99,9%, of the writes work well.

    The error is:

    Nov 20 13:48:55 /usr/sbin/kamailio[28976]: WARNING: db_mysql [km_dbase.c:84]: db_mysql_submit_query(): driver error on ping: SSL connection error: socket layer receive error
    Nov 20 13:48:55 /usr/sbin/kamailio[28976]: ERROR: db_mysql [km_dbase.c:121]: db_mysql_submit_query(): driver error on query: SSL connection error: socket layer receive error
    Nov 20 13:48:55 /usr/sbin/kamailio[28976]: ERROR: <core> [db_query.c:235]: db_do_insert_cmd(): error while submitting query
    

    Apart from the connection details (using [mysql-ssl-conf] for the SSL config block) I have this config:

    modparam("db_mysql", "ping_interval", 30);
    modparam("db_mysql", "timeout_interval", 8);
    

    The documentation suggests that "ping_interval" is the "Time interval in seconds to send ping messages to MySQL server in order to keep the connection open." However, looking at the code this seems a bit misleading because it looks like the ping is only done on an actual query (db_mysql_submit_query), i.e. not with a regular interval/on a timer as suggested by the documentation?

    Also the "auto_reconnect" parameter is stated as default 1 (on), but in the code this is just used as a "retry" of the query itself and MYSQL_OPT_RECONNECT is never set on the connection (https://dev.mysql.com/doc/refman/5.5/en/auto-reconnect.html)? Maybe this is not necessary and it's enough to just re-try the query?

    EDIT: Kamailio 4.3 latest Debian package.

    opened by effeks 50
  • lreproxy module

    lreproxy module

    lreproxy: add new lreproxy module

    https://www.slideshare.net/mespio/lreproxy-module-for-kamailio-presenation https://ieeexplore.ieee.org/document/9303608

    Pre-Submission Checklist

    • [x] Commit message has the format required by CONTRIBUTING guide
    • [x] Commits are split per component (core, individual modules, libs, utils, ...)
    • [x] Each component has a single commit (if not, squash them into one commit)
    • [ ] No commits to README files for modules (changes must be done to docbook files in doc/ subfolder, the README file is autogenerated)

    Type Of Change

    • [ ] Small bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds new functionality)
    • [ ] Breaking change (fix or feature that would change existing functionality)

    Checklist:

    • [ ] PR should be backported to stable branches
    • [x] Tested changes locally
    • [ ] Related to issue #XXXX (replace XXXX with an open issue number)

    Description

    opened by mojtabaesfandiari 49
  • Transactions kept in memory, shared memory runs out and Kamailio gives up hope of life.

    Transactions kept in memory, shared memory runs out and Kamailio gives up hope of life.

    One server replicates to others with t_replicate_tcp. The connection was by mistake blocked by a firewall and after a few hours the memory of Kamailio ran out, with over 40000 open transactions in tm.stats on a server with around 300 registrations and no calls since restart.

    t_replicate transactions needs to time out somehow.

    opened by oej 45
  • v5.0.4: nathelper: dont ping replicated aor's

    v5.0.4: nathelper: dont ping replicated aor's

    Description

    We have 3 registrar servers storing location information in memory only. The registrations are replicated between each other using DMQ/DMQ USRLOC. When one of these registrars processes a registration it is saved and then replicated to the remaining two nodes.

    When nat pinging is enabled then all three of these registrars attempt to send options pings to the endpoints. Ideally, only the registrar that serviced the registration should be sending the ping out.

    I see that there is a core parameter to set the server_id for each server, and I also see that nathelper has a "filter_server_id" parameter as well, however, this appears to only work in database mode, it does not work with in memory mode. Would it be possible to extend this to work for in-memory mode too?

    NOTE: [1] This issue is related to #1298

    Troubleshooting

    Module definitions

    registrar

    modparam("registrar", "method_filtering",  1)
    modparam("registrar", "case_sensitive",    1)
    modparam("registrar", "append_branches",   0)
    modparam("registrar", "use_path",          1)
    modparam("registrar", "path_mode",         0)
    modparam("registrar", "path_use_received", 1)
    modparam("registrar", "path_check_local",  1)
    modparam("registrar", "max_contacts",      1)
    

    usrloc

    modparam("usrloc", "db_mode",              0)
    modparam("usrloc", "use_domain",           1)
    modparam("usrloc", "timer_interval",       60)
    modparam("usrloc", "timer_procs",          4)
    modparam("usrloc", "nat_bflag",            6)
    

    nathelper NOTE: force_socket is set to match each registrar server

    modparam("nathelper", "natping_interval",   20)
    modparam("nathelper", "natping_processes",  4)
    modparam("nathelper", "ping_nated_only",    0)
    modparam("nathelper", "sipping_from",       "sip:[email protected]")
    modparam("nathelper", "sipping_method",     "OPTIONS")
    modparam("nathelper", "sipping_bflag",      6)
    modparam("nathelper", "force_socket",       "10.7.0.189:5060")
    modparam("nathelper", "udpping_from_path",   1)
    

    Kamailio listen directives: NOTE: These are set to match the interfaces on each registrar

    listen=udp:10.6.0.189:5060
    listen=udp:10.7.0.189:5060
    listen=tcp:10.6.0.189:80
    

    dmq

    modparam("dmq", "server_address", DMQ_ADDRESS)
    modparam("dmq", "notification_address", DMQ_NOTIFY_ADDRESS)
    modparam("dmq", "multi_notify", 1)
    modparam("dmq", "num_workers", 4)
    

    dmq_usrloc

    modparam("dmq_usrloc", "enable", 1)
    

    Reproduction

    Using the settings above, when the location information is replicated to a server, the servers that are replicated to should not send options messages for that AOR, only the registrar that serviced the registration should send nat keepalives out.

    Log Messages

    SIP Traffic

    Here is the traffic from the registrar that serviced the registration, this is expected and working:

    U 2017/11/02 07:50:54.191717 10.7.0.190:5060 -> 10.7.0.186:5062
    
    OPTIONS sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP SIP/2.0.
    Via: SIP/2.0/UDP 10.7.0.190:5060;branch=z9hG4bK5526436.
    Route: <sip:10.7.0.186:5062;lr;received=sip:212.2.172.228:39808>.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781.
    To: sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    
    
    U 2017/11/02 07:50:54.192896 194.213.29.33:5062 -> 212.2.172.228:39808
    
    OPTIONS sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP SIP/2.0.
    Max-Forwards: 10.
    Record-Route: <sip:194.213.29.33:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Record-Route: <sip:10.7.0.186:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Via: SIP/2.0/UDP 194.213.29.33:5062;branch=z9hG4bK13ab.9ccb0733fcecc331893d95f2e09485ee.0.
    Via: SIP/2.0/UDP 10.7.0.190:5060;rport=5060;branch=z9hG4bK5526436.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781.
    To: sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    
    
    U 2017/11/02 07:50:54.248234 212.2.172.228:39808 -> 194.213.29.33:5062
    
    SIP/2.0 200 OK.
    Via: SIP/2.0/UDP 194.213.29.33:5062;branch=z9hG4bK13ab.9ccb0733fcecc331893d95f2e09485ee.0.
    Via: SIP/2.0/UDP 10.7.0.190:5060;rport=5060;branch=z9hG4bK5526436.
    Record-Route: <sip:194.213.29.33:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Record-Route: <sip:10.7.0.186:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Contact: <sip:192.168.1.64:39808>.
    To: <sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP>;tag=726ffa30.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Accept: application/sdp, application/sdp.
    Accept-Language: en.
    Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
    Supported: replaces, norefersub, extended-refer, timer, outbound, path, X-cisco-serviceuri.
    User-Agent: Z 3.15.40006 rv2.8.20.
    Allow-Events: presence, kpml, talk.
    Content-Length: 0.
    .
    
    
    U 2017/11/02 07:50:54.248922 10.7.0.186:5062 -> 10.7.0.190:5060
    
    SIP/2.0 200 OK.
    Via: SIP/2.0/UDP 10.7.0.190:5060;rport=5060;branch=z9hG4bK5526436.
    Record-Route: <sip:194.213.29.33:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Record-Route: <sip:10.7.0.186:5062;r2=on;lr;ftag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781>.
    Contact: <sip:192.168.1.64:39808>.
    To: <sip:[email protected]:39808;rinstance=d74acdb581467154;transport=UDP>;tag=726ffa30.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-711-3-9968b2da-c2c36781.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Accept: application/sdp, application/sdp.
    Accept-Language: en.
    Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
    Supported: replaces, norefersub, extended-refer, timer, outbound, path, X-cisco-serviceuri.
    User-Agent: Z 3.15.40006 rv2.8.20.
    Allow-Events: presence, kpml, talk.
    Content-Length: 0.
    .
    

    Here is a ping attempt from a server replicated to (we should not be pinging from this registrar)

    U 2017/11/02 08:37:59.426608 10.6.0.189:5060 -> 10.7.0.186:5062
    
    OPTIONS sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP SIP/2.0.
    Via: SIP/2.0/UDP 10.6.0.189:5060;branch=z9hG4bK8416926.
    Route: <sip:10.7.0.186:5062;lr;received=sip:212.2.172.228:39808>.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-714-17-9968b2da-13812ff4.
    To: sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    
    
    U 2017/11/02 08:38:19.431937 10.6.0.189:5060 -> 10.7.0.186:5062
    
    OPTIONS sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP SIP/2.0.
    Via: SIP/2.0/UDP 10.6.0.189:5060;branch=z9hG4bK8345318.
    Route: <sip:10.7.0.186:5062;lr;received=sip:212.2.172.228:39808>.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-714-17-9968b2da-23812ff4.
    To: sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    

    Here is a ping attempt from the last server replicated to (we should not be pinging from this registrar)

    U 2017/11/02 08:53:06.927374 10.6.0.191:5060 -> 10.7.0.186:5062
    
    OPTIONS sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP SIP/2.0.
    Via: SIP/2.0/UDP 10.6.0.191:5060;branch=z9hG4bK8539212.
    Route: <sip:10.7.0.186:5062;lr;received=sip:212.2.172.228:39808>.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-714-17-9968b2da-a25dfc84.
    To: sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    
    
    U 2017/11/02 08:53:26.931991 10.6.0.191:5060 -> 10.7.0.186:5062
    
    OPTIONS sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP SIP/2.0.
    Via: SIP/2.0/UDP 10.6.0.191:5060;branch=z9hG4bK7581592.
    Route: <sip:10.7.0.186:5062;lr;received=sip:212.2.172.228:39808>.
    From: sip:[email protected];tag=uloc-2-59fa1f9d-714-17-9968b2da-b25dfc84.
    To: sip:[email protected]:39808;rinstance=ed8aa63e90f53e97;transport=UDP.
    Call-ID: [email protected]
    CSeq: 1 OPTIONS.
    Content-Length: 0.
    .
    

    Possible Solutions

    Unknown

    Additional Information

    • Kamailio Version - output of kamailio -v
    version: kamailio 5.0.4 (x86_64/linux) 
    flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, 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 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: unknown 
    compiled on 10:57:22 Oct 26 2017 with gcc 4.8.5
    
    • Operating System:
    CentOS Linux release 7.4.1708 (Core) 
    Linux localhost 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    
    enhancement 
    opened by 00Asgaroth00 37
  • Kamailio memory leak - versions 5.1.4 and 5.1.7

    Kamailio memory leak - versions 5.1.4 and 5.1.7

    Description

    Kamailio runs out of memory and stops processing requests.

    ERROR: <core> [core/tcp_main.c:973]: tcpconn_new(): mem. allocation failure
    ERROR: <core> [core/tcp_main.c:4042]: handle_new_connect(): tcpconn_new failed, closing socket
    ERROR: uac [uac_reg.c:533]: reg_ht_add(): no more shm
    ERROR: uac [uac_reg.c:1347]: uac_reg_load_db(): Error adding reg to htable
    

    Troubleshooting

    Restarting the Kamailio process resolves the issue

    Reproduction

    The issue occurs every 48 hours or so on the Kamailio instance

    Debugging Data

    #kamcmd mod.stats all pkg
    Module: core
    {
    	init_io_wait(475): 6480
    	init_dst_set(83): 32208
    	init_io_wait(524): 3576
    	yyparse(1782): 8
    	mk_new_net(52): 48
    	fix_param(1196): 128
    	route_new_list(200): 352
    	fix_expr(541): 616
    	exp_optimize_right(411): 40
    	fixup_regexp_null(213): 216
    	fix_param(1257): 352
    	yyparse(2729): 4872
    	mk_rval_expr1(2616): 68256
    	mk_elem(90): 976
    	mk_rval_expr2(2674): 321160
    	mk_rval_expr_v(2548): 768
    	mk_rval_expr_v(2537): 808136
    	mk_action(118): 196384
    	parse_params2(585): 560
    	set_mod_param_regex(121): 848
    	set_mod_param_regex(110): 264
    	tr_table_add(1875): 400
    	sr_cmd_exports_convert(235): 34160
    	register_module(280): 6192
    	load_module(496): 2072
    	new_sock_info(235): 176
    	new_sock_info(230): 3640
    	yyparse(642): 352
    	yyparse(1732): 288
    	add_alias(93): 80
    	add_alias(91): 128
    	yyparse(1446): 8
    	yyparse(2262): 296
    	yyparse(661): 416
    	subst_str(514): 416
    	subst_parser(301): 264
    	subst_parser(291): 2384
    	subst_parser(274): 960
    	pp_subst_add(57): 312
    	pp_define(1766): 1096
    	addstr(1399): 261168
    	str_hash_alloc(59): 512
    	pv_table_add(236): 22616
    	parse_pvname_list(1515): 2496
    	tr_new(1646): 1512
    	fix_match_rve(3028): 2152
    	pv_cache_add(347): 20664
    	fix_param(1162): 18936
    	init_modules(1026): 16
    	cnt_hash_add(383): 2048
    	db_do_init2(299): 336
    	dupl_string_name(72): 32
    	dupl_string(48): 144
    	new_db_id(272): 288
    	get_abs_pathname(262): 80
    	rpc_hash_add(146): 2048
    	pv_parse_format(1150): 40592
    	get_hdr_field(116): 232
    	parse_headers(320): 64
    	register_select_table(458): 104
    	rpc_hash_add(100): 26264
    	add_callback(59): 288
    	sr_wtimer_init(308): 136
    	cfg_new_group(79): 1160
    	cfg_declare(50): 4120
    	fix_socket_list(1509): 96
    	fix_sock_str(420): 912
    	fix_hostname(1301): 160
    	grp_hash_add(234): 952
    	pv_init_buffer(2055): 163840
    	pv_init_buffer(2045): 320
    	init_nonsip_hooks(43): 24
    	init_rlist(146): 40
    	route_add(124): 1784
    	str_hash_alloc(59): 768
    	rval_get_str(1256): 33648
    	init_counters(122): 128
    	cnt_hash_add(332): 26352
    	str_hash_alloc(59): 1280
    	Total: 2138200
    }
    
    Module: ndb_redis
    {
    	redis_parse_index(627): 88
    	pv_parse_redisc_name(704): 16496
    	redisc_add_server(257): 24064
    	Total: 40648
    }
    
    Module: pv
    {
    	tr_parse_string(2340): 64
    	tr_parse_string(2310): 192
    	tr_parse_string(2300): 192
    	tr_parse_string(2360): 32
    	tr_parse_string(2264): 544
    	add_var(65): 512
    	add_var(58): 2080
    	tr_parse_string(2275): 496
    	tr_parse_paramlist(2668): 32
    	Total: 4144
    }
    
    Module: sqlops
    {
    	sql_get_result(200): 64
    	pv_parse_dbr_name(134): 864
    	sql_init_con(83): 240
    	sqlops_tr_buffer_init(46): 2048
    	Total: 3216
    }
    
    Module: textops
    {
    	tr_txt_parse_re(212): 96
    	hname_fixup(2819): 616
    	fixup_method(2889): 1256
    	Total: 1968
    }
    
    Module: xhttp_rpc
    {
    	child_init(789): 832
    	Total: 832
    }
    
    Module: db_mysql
    {
    	db_mysql_new_connection(75): 4088
    	db_mysql_new_connection(65): 96
    	Total: 4184
    }
    
    Module: auth
    {
    	generate_random_secret(239): 32
    	generate_random_secret(238): 32
    	Total: 64
    }
    
    Module: htable
    {
    	pv_parse_ht_name(158): 160
    	fixup_ht_key(339): 88
    	Total: 248
    }
    
    Module: xlog
    {
    	xlog_fixup_helper(535): 17472
    	mod_init(214): 4104
    	xdbg_fixup_helper(500): 3352
    	Total: 24928
    }
    
    Module: cnxcc
    {
    	__alloc_redis(149): 24
    	__alloc_redis(146): 40
    	Total: 64
    }
    
    Module: rtpengine
    {
    	build_rtpp_socks(1611): 8
    	child_init(1768): 240
    	Total: 248
    }
    
    Module: mangler
    {
    	compile_expresions(557): 64
    	compile_expresions(541): 64
    	Total: 128
    }
    
    Module: acc
    {
    	parse_acc_extra(116): 672
    	Total: 672
    }
    
    Module: rr
    {
    	register_rrcb(61): 32
    	Total: 32
    }
    
    Module: dialog
    {
    	dlg_bridge_init_hdrs(66): 80
    	Total: 80
    }
    
    Module: tm
    {
    	Total: 0
    }
    
    Module: uac
    {
    	Total: 0
    }
    
    Module: tls
    {
    	Total: 0
    }
    
    Module: sl
    {
    	Total: 0
    }
    
    Module: tmx
    {
    	Total: 0
    }
    
    Module: kex
    {
    	Total: 0
    }
    
    Module: usrloc
    {
    	Total: 0
    }
    
    Module: pike
    {
    	Total: 0
    }
    
    Module: websocket
    {
    	Total: 0
    }
    
    Module: cfgutils
    {
    	Total: 0
    }
    
    Module: nathelper
    {
    	Total: 0
    }
    
    Module: dispatcher
    {
    	Total: 0
    }
    
    
    

    Log Messages

    kamailio[6722]: ERROR: <core> [core/tcp_main.c:973]: tcpconn_new(): mem. allocation failure
    kamailio[6722]: ERROR: <core> [core/tcp_main.c:4042]: handle_new_connect(): tcpconn_new failed, closing socket
    kamailio[6722]: ERROR: tm [t_msgbuilder.c:1594]: build_uac_req(): no more shared memory (544)
    
    

    Possible Solutions

    Restarting Kamailio

    Additional Information

    • Kamailio Version - output of kamailio -v
    
    version: kamailio 5.1.7 (x86_64/linux) 567df3
    flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, 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_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: 567df3
    compiled on 04:30:41 Mar 14 2019 with gcc 7.3.0
    
    
    • Operating System:
    cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=18.04
    DISTRIB_CODENAME=bionic
    DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"
    
    4.15.0-1034-aws #36-Ubuntu SMP Tue Mar 5 23:17:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
    
     cat /proc/meminfo
    MemTotal:        4038176 kB
    MemFree:          130020 kB
    MemAvailable:     747324 kB
    Buffers:           15136 kB
    Cached:          2851248 kB
    SwapCached:            0 kB
    Active:           930936 kB
    Inactive:        2672836 kB
    Active(anon):     737672 kB
    Inactive(anon):  2097272 kB
    Active(file):     193264 kB
    Inactive(file):   575564 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:               120 kB
    Writeback:             0 kB
    AnonPages:        734064 kB
    Mapped:          2180672 kB
    Shmem:           2097544 kB
    Slab:             154288 kB
    SReclaimable:     101108 kB
    SUnreclaim:        53180 kB
    KernelStack:        4176 kB
    PageTables:        81940 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:     2019088 kB
    Committed_AS:    4529756 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:           0 kB
    VmallocChunk:          0 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:         0 kB
    ShmemHugePages:        0 kB
    ShmemPmdMapped:        0 kB
    CmaTotal:              0 kB
    CmaFree:               0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:      221184 kB
    DirectMap2M:     3973120 kB
    

    Also, here is the output of "grep alloc qm_status.txt | awk '{ print substr( $0, 16, length($0) ) }' | sort | uniq -c | sort -k1n" (as per https://www.kamailio.org/wiki/tutorials/troubleshooting/memory):

    https://www.dropbox.com/s/act3whe6gumyzvj/alloc.txt?dl=1

    opened by Jaykah 36
  • Kamailio Crash

    Kamailio Crash

    Hello All,

    Kamailio instance just crashed with the following logs:

    May 13 06:05:34 P172 /usr/local/kamailio/sbin/kamailio[12693]: CRITICAL: <core> [pass_fd.c:275]: receive_fd(): EOF on 10
    May 13 06:05:34 P172 /usr/local/kamailio/sbin/kamailio[12667]: ALERT: <core> [main.c:739]: handle_sigs(): child process 12671 exited by a signal 11
    May 13 06:05:34 P172 /usr/local/kamailio/sbin/kamailio[12667]: ALERT: <core> [main.c:742]: handle_sigs(): core was generated
    May 13 06:05:34 P172 /usr/local/kamailio/sbin/kamailio[12667]: INFO: <core> [main.c:754]: handle_sigs(): terminating due to SIGCHLD
    ....
    ....
    
    May 13 06:05:34 P172 /usr/local/kamailio/sbin/kamailio[12667]: INFO: <core> [mem/f_malloc.c:598]: fm_free(): freeing a free fragment (0x7f23ff39cb88/0x7f23ff39cbd0) - ignore
    

    the gdb traces are as below,

    (gdb) bt
    #0  0x0000000000000000 in ?? ()
    #1  0x00007f23facf0f86 in run_create_callbacks (dlg=0x7f23ff849b18, msg=0x7f24201ead80) at dlg_cb.c:230
    #2  0x00007f23fad0cedf in dlg_new_dialog (req=0x7f24201ead80, t=0x7f23ff848488, run_initial_cbs=1) at dlg_handlers.c:869
    #3  0x00007f23fad0b80e in dlg_onreq (t=0x7f23ff848488, type=1, param=0x7f241feabc60 <params>) at dlg_handlers.c:722
    #4  0x00007f241fbe4b25 in run_reqin_callbacks_internal (hl=0x7f23ff3536e8, trans=0x7f23ff848488, params=0x7f241feabc60 <params>) at t_hooks.c:360
    #5  0x00007f241fbe4c31 in run_reqin_callbacks (trans=0x7f23ff848488, req=0x7f24201ead80, code=1) at t_hooks.c:385
    #6  0x00007f241fba0e63 in build_cell (p_msg=0x7f24201ead80) at h_table.c:373
    #7  0x00007f241fbf6e8c in new_t (p_msg=0x7f24201ead80) at t_lookup.c:1269
    #8  0x00007f241fbf8194 in t_newtran (p_msg=0x7f24201ead80) at t_lookup.c:1409
    #9  0x00007f241fbc9f8c in t_relay_to (p_msg=0x7f24201ead80, proxy=0x0, proto=0, replicate=0) at t_funcs.c:242
    #10 0x00007f241fc0c9e8 in _w_t_relay_to (p_msg=0x7f24201ead80, proxy=0x0, force_proto=0) at tm.c:1425
    #11 0x00007f241fc0dc6d in w_t_relay (p_msg=0x7f24201ead80, _foo=0x0, _bar=0x0) at tm.c:1626
    #12 0x000000000041f71f in do_action (h=0x7ffd11757ce0, a=0x7f2420089228, msg=0x7f24201ead80) at action.c:1054
    #13 0x000000000042c5aa in run_actions (h=0x7ffd11757ce0, a=0x7f2420089228, msg=0x7f24201ead80) at action.c:1549
    #14 0x000000000042cc6a in run_actions_safe (h=0x7ffd1175b210, a=0x7f2420089228, msg=0x7f24201ead80) at action.c:1614
    #15 0x000000000055a40a in rval_get_int (h=0x7ffd1175b210, msg=0x7f24201ead80, i=0x7ffd117580d4, rv=0x7f2420087d88, cache=0x0) at rvalue.c:912
    #16 0x000000000055ea84 in rval_expr_eval_int (h=0x7ffd1175b210, msg=0x7f24201ead80, res=0x7ffd117580d4, rve=0x7f2420087d80) at rvalue.c:1910
    #17 0x000000000055eee6 in rval_expr_eval_int (h=0x7ffd1175b210, msg=0x7f24201ead80, res=0x7ffd11758238, rve=0x7f2420089430) at rvalue.c:1918
    #18 0x000000000041f1ca in do_action (h=0x7ffd1175b210, a=0x7f2420089e68, msg=0x7f24201ead80) at action.c:1030
    #19 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f2420075ef0, msg=0x7f24201ead80) at action.c:1549
    #20 0x000000000041f68e in do_action (h=0x7ffd1175b210, a=0x7f242008a0c8, msg=0x7f24201ead80) at action.c:1045
    #21 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f2420046f50, msg=0x7f24201ead80) at action.c:1549
    #22 0x000000000041bee8 in do_action (h=0x7ffd1175b210, a=0x7f242002e2d0, msg=0x7f24201ead80) at action.c:678
    #23 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f242002df30, msg=0x7f24201ead80) at action.c:1549
    #24 0x000000000041f68e in do_action (h=0x7ffd1175b210, a=0x7f2420030280, msg=0x7f24201ead80) at action.c:1045
    #25 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f242002b418, msg=0x7f24201ead80) at action.c:1549
    #26 0x000000000041f68e in do_action (h=0x7ffd1175b210, a=0x7f2420031a10, msg=0x7f24201ead80) at action.c:1045
    #27 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f2420031a10, msg=0x7f24201ead80) at action.c:1549
    #28 0x000000000041bee8 in do_action (h=0x7ffd1175b210, a=0x7f241ff08e60, msg=0x7f24201ead80) at action.c:678
    #29 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f241ff083c8, msg=0x7f24201ead80) at action.c:1549
    #30 0x000000000041f68e in do_action (h=0x7ffd1175b210, a=0x7f241ff090c0, msg=0x7f24201ead80) at action.c:1045
    #31 0x000000000042c5aa in run_actions (h=0x7ffd1175b210, a=0x7f241feff908, msg=0x7f24201ead80) at action.c:1549
    #32 0x000000000042cd53 in run_top_route (a=0x7f241feff908, msg=0x7f24201ead80, c=0x0) at action.c:1635
    #33 0x000000000051d57a in receive_msg (
        buf=0xabb500 <buf> "INVITE sip:[email protected] SIP/2.0\r\nVia: SIP/2.0/UDP sunilmore.in:6000;rport;branch=z9hG4bK87avNBSpD6ajB\r\nMax-Forwards: 69\r\nFrom: \"\" <sip:[email protected]>"..., len=1972, rcv_info=0x7ffd1175b580) at receive.c:240
    #34 0x00000000006302f1 in udp_rcv_loop () at udp_server.c:495
    #35 0x00000000004b3062 in main_loop () at main.c:1600
    #36 0x00000000004ba772 in main (argc=13, argv=0x7ffd1175ba88) at main.c:2616
    

    The version i am using is

    version: kamailio 4.4.1 (x86_64/linux) 90be8b
    
    flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, 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 8MB
    
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    
    
    id: 90be8b 
    
    4.4 
    opened by WhoSunilMore 35
  • kamailio 4.3 crash in update_dialog_vars_dbinfo

    kamailio 4.3 crash in update_dialog_vars_dbinfo

    Commit is the latest for 4.3: 48d78ce87e2f42bdc77e688a0f45ff725ea97de5

    Here is the backtrace:

    Program terminated with signal 11, Segmentation fault.
    #0  0x00007f3b4fd779da in update_dialog_vars_dbinfo (cell=0x7f3b3c3aa958, var=0x3433) at dlg_db_handler.c:651
    651     SET_STR_VALUE(values+2, var->key);
    Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.el6_0.x86_64 db4-4.7.25-19.el6_6.x86_64 elfutils-libelf-0.161-3.el6.x86_64 glibc-2.12-1.166.el6_7.1.x86_64 keyutils-libs-1.4-5.el6.x86_64 krb5-libs-1.10.3-42.el6.x86_64 libacl-2.2.49-6.el6.x86_64 libattr-2.4.44-7.el6.x86_64 libcap-2.16-5.5.el6.x86_64 libcom_err-1.41.12-22.el6.x86_64 libgcc-4.4.7-16.el6.x86_64 libselinux-2.0.94-5.8.el6.x86_64 lm_sensors-libs-3.1.1-17.el6.x86_64 lua-5.1.4-4.1.el6.x86_64 mysql-libs-5.1.73-5.el6_6.x86_64 net-snmp-libs-5.5-54.el6_7.1.x86_64 nspr-4.10.8-1.el6_6.x86_64 nss-3.19.1-3.el6_6.x86_64 nss-softokn-freebl-3.14.3-22.el6_6.x86_64 nss-util-3.19.1-1.el6_6.x86_64 openssl-1.0.1e-42.el6.x86_64 pcre-7.8-7.el6.x86_64 perl-libs-5.10.1-141.el6.x86_64 popt-1.13-7.el6.x86_64 rpm-libs-4.8.0-47.el6.x86_64 tcp_wrappers-libs-7.6-57.el6.x86_64 xz-libs-4.999.9-0.5.beta.20091007git.el6.x86_64 zlib-1.2.3-29.el6.x86_64
    (gdb) bt
    #0  0x00007f3b4fd779da in update_dialog_vars_dbinfo (cell=0x7f3b3c3aa958, var=0x3433) at dlg_db_handler.c:651
    #1  0x00007f3b4fd78511 in update_dialog_dbinfo_unsafe (cell=0x7f3b3c3aa958) at dlg_db_handler.c:718
    #2  0x00007f3b4fd79afc in update_dialog_dbinfo (cell=0x7f3b3c3aa958) at dlg_db_handler.c:861
    #3  0x00007f3b4fdb93dc in set_dlg_variable (dlg=0x7f3b3c3aa958, key=0x7f3b508b8760, val=0x7fff7efaae60) at dlg_var.c:305
    #4  0x00007f3b50696a9c in set_start_time (dialog=0x7f3b3c3aa958) at acc_cdr.c:523
    #5  0x00007f3b5069c932 in cdr_on_create (dialog=0x7f3b3c3aa958, type=2, params=0x7f3b4ffda0a0) at acc_cdr.c:790
    #6  0x00007f3b4fd68398 in run_create_callbacks (dlg=0x7f3b3c3aa958, msg=0x7f3b530498f0) at dlg_cb.c:230
    #7  0x00007f3b4fd82590 in dlg_new_dialog (req=0x7f3b530498f0, t=0x7f3b3c7b89a8, run_initial_cbs=1) at dlg_handlers.c:865
    #8  0x00007f3b4fd81006 in dlg_onreq (t=0x7f3b3c7b89a8, type=1, param=0x7f3b52df2760) at dlg_handlers.c:717
    #9  0x00007f3b52b36c3a in run_reqin_callbacks_internal (hl=0x7f3b3b7eb480, trans=0x7f3b3c7b89a8, params=0x7f3b52df2760) at t_hooks.c:360
    #10 0x00007f3b52b36d48 in run_reqin_callbacks (trans=0x7f3b3c7b89a8, req=0x7f3b530498f0, code=1) at t_hooks.c:385
    #11 0x00007f3b52af7b58 in build_cell (p_msg=0x7f3b530498f0) at h_table.c:356
    #12 0x00007f3b52b48283 in new_t (p_msg=0x7f3b530498f0) at t_lookup.c:1269
    #13 0x00007f3b52b494b3 in t_newtran (p_msg=0x7f3b530498f0) at t_lookup.c:1409
    #14 0x00007f3b52b1de9c in t_relay_to (p_msg=0x7f3b530498f0, proxy=0x0, proto=0, replicate=0) at t_funcs.c:236
    #15 0x00007f3b52b5cbbb in _w_t_relay_to (p_msg=0x7f3b530498f0, proxy=0x0, force_proto=0) at tm.c:1476
    #16 0x00007f3b52b5dd20 in w_t_relay (p_msg=0x7f3b530498f0, _foo=0x0, _bar=0x0) at tm.c:1677
    #17 0x000000000041ddad in do_action (h=0x7fff7efabc80, a=0x7f3b52efc9b8, msg=0x7f3b530498f0) at action.c:1053
    #18 0x000000000042a4c3 in run_actions (h=0x7fff7efabc80, a=0x7f3b52efc9b8, msg=0x7f3b530498f0) at action.c:1548
    #19 0x000000000042ab28 in run_actions_safe (h=0x7fff7efac8a0, a=0x7f3b52efc9b8, msg=0x7f3b530498f0) at action.c:1613
    #20 0x0000000000543c94 in rval_get_int (h=0x7fff7efac8a0, msg=0x7f3b530498f0, i=0x7fff7efac158, rv=0x7f3b52efd008, cache=0x0) at rvalue.c:912
    #21 0x0000000000547ecc in rval_expr_eval_int (h=0x7fff7efac8a0, msg=0x7f3b530498f0, res=0x7fff7efac158, rve=0x7f3b52efd000) at rvalue.c:1906
    #22 0x00000000005482c2 in rval_expr_eval_int (h=0x7fff7efac8a0, msg=0x7f3b530498f0, res=0x7fff7efac5e0, rve=0x7f3b52efd700) at rvalue.c:1914
    #23 0x000000000041d897 in do_action (h=0x7fff7efac8a0, a=0x7f3b52efccb0, msg=0x7f3b530498f0) at action.c:1029
    #24 0x000000000042a4c3 in run_actions (h=0x7fff7efac8a0, a=0x7f3b52e45308, msg=0x7f3b530498f0) at action.c:1548
    #25 0x000000000042abf0 in run_top_route (a=0x7f3b52e45308, msg=0x7f3b530498f0, c=0x0) at action.c:1634
    #26 0x000000000050a938 in receive_msg (
        buf=0xa6fee0 "INVITE sip:[email protected]:5060 SIP/2.0\r\nVia: SIP/2.0/UDP 192.168.0.186:5010;rport;branch=z9hG4bK-13146-256700-4\r\nFrom: \"user1\" <sip:[email protected]>;tag=13146SIPpTag00256700\r\nTo: <sip:09011"..., len=947, rcv_info=0x7fff7efacb90) at receive.c:196
    #27 0x000000000060a3ea in udp_rcv_loop () at udp_server.c:495
    #28 0x00000000004a7ef7 in main_loop () at main.c:1573
    #29 0x00000000004ae2d2 in main (argc=7, argv=0x7fff7efacfc8) at main.c:2533
    
    opened by MayamaTakeshi 33
  • Kamailio-5.4.0 : Crashes from keepalive module

    Kamailio-5.4.0 : Crashes from keepalive module

    Description

    I am using keepalive module to send keepalives to all the destinations registered with an application server which sits behind kamailio. When Kamailio recieves 200 Ok. I take URI contact from 200 OK and pass it as a param to ka_add_destination function.Most of the time it works fine but sometimes kamailio crashes when it recieves 200 OK of OPTIONS.

    Troubleshooting

    Reproduction

    I am able to reproduce it easily in below scenario : All the URIs which we are feeding to KA module has this syntax : sip:[email protected]:9090;alias=10.50.8.1~5060~1;pb-ip=35.185.177.49;pb-pt=5060;tp=udp

    1. So request will be generate by KA module and it will be send to 10.50.8.11:9090 ( which is another port of same kamailio instance ) via UDP protocol.
    2. On recieving OPTION on 9090 port , - We are calling handle_ruri_alias() function which will set $du =sip:10.50.8.1:5060;transport=udp - Modify RURI from sip:[email protected]:9090;alias=10.50.8.1~5060~1;pb-ip=35.185.177.49;pb-pt=5060;tp=udp to sip:[email protected]:5060;pb-ip=35.185.177.49;pb-pt=5060;transport=udp - and relay to 10.50.8.1
    3. 10.50.8.1 is another instance of Kamailio which will relay OPTION packet to final destination

    Debugging Data

    [[email protected] /]# gdb kamailio core.67771
    GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-110.el7                                                                                                  
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-redhat-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /usr/local/sbin/kamailio...done.
    [New LWP 67771]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib64/libthread_db.so.1".
    Core was generated by `/usr/local/sbin/kamailio -m 5000 -M 500 -P /run/kamailio/kamailio.pid'.
    Program terminated with signal 11, Segmentation fault.
    #0  0x00000000abcdefed in ?? ()
    Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.26-23.el7.x86_64 glibc-2.17-222.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-19.el7.x86_64 libcom_err-1.42.9-12.el7_5.x86_64 libcurl-7.29.0-51.el7.x86_64 libevent-2.0.21-4.el7.x86_64 libgcc-4.8.5-36.el7_6.2.x86_64 libidn-1.28-4.el7.x86_64 libselinux-2.5-12.el7.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64 libstdc++-4.8.5-36.el7_6.2.x86_64 libuuid-2.23.2-52.el7_5.1.x86_64 mariadb-libs-5.5.64-1.el7.x86_64 nspr-4.19.0-1.el7_5.x86_64 nss-3.36.0-5.el7_5.x86_64 nss-softokn-freebl-3.36.0-5.el7_5.x86_64 nss-util-3.36.0-1.el7_5.x86_64 openldap-2.4.44-15.el7_5.x86_64 openssl-libs-1.0.2k-16.el7_6.1.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64
    (gdb) bt full
    #0  0x00000000abcdefed in ?? ()
    No symbol table info available.
    #1  0x00007f931dc69c7e in ka_options_callback (t=0x7f91e58f05c0, type=1024, ps=0x7ffda0977bd0) at keepalive_core.c:126
            uri = {
              s = 0x7f91e58f63f0 "sip:[email protected]:9090;alias=10.50.8.1~5060~1;pb-ip=35.185.177.49;pb-pt=5060;tp=udp>\r\nFrom: <sip:[email protected]>;tag=c7bfd876be500fff196414658218fc27-d6989f6d\r\nCSeq: 10 OPTIONS\r\nCall-ID: 3f2c3c7c"..., len = 85}
            msg = 0x0
            state = 2
            state_routes = {0x7f931dc6f844 "", 0x7f931dc6f93d "keepalive:dst-up", 0x7f931dc6f94e "keepalive:dst-down"}
            ka_dest = 0x7f91e5898988
            __FUNCTION__ = "ka_options_callback"
    #2  0x00007f9324bfddd8 in run_trans_callbacks_internal (cb_lst=0x7f91e58f0638, type=1024, trans=0x7f91e58f05c0, params=0x7ffda0977bd0)
        at t_hooks.c:258
            cbp = 0x7f91e58f6590
            backup_from = 0xb2a750 <def_list+16>
            backup_to = 0xb2a758 <def_list+24>
            backup_dom_from = 0xb2a760 <def_list+32>
            backup_dom_to = 0xb2a768 <def_list+40>
            backup_uri_from = 0xb2a740 <def_list>
            backup_uri_to = 0xb2a748 <def_list+8>
            backup_xavps = 0xb29fd0 <_xavp_list_head>
            backup_xavus = 0xb29fd8 <_xavu_list_head>
            backup_xavis = 0xb29fe0 <_xavi_list_head>
            __FUNCTION__ = "run_trans_callbacks_internal"
    #3  0x00007f9324bfdf0a in run_trans_callbacks (type=1024, trans=0x7f91e58f05c0, req=0x0, rpl=0xffffffffffffffff, code=408) at t_hooks.c:285
            params = {req = 0x0, rpl = 0xffffffffffffffff, param = 0x7f91e58f65a0, code = 408, flags = 0, branch = 0, t_rbuf = 0x0, dst = 0x0, 
              send_buf = {s = 0x0, len = 0}}
    #4  0x00007f9324b943f1 in local_reply (t=0x7f91e58f05c0, p_msg=0xffffffffffffffff, branch=0, msg_status=408, cancel_data=0x7ffda0977d50)
        at t_reply.c:2265
            local_store = 0
            local_winner = 0
            reply_status = RPS_COMPLETED
            winning_msg = 0xffffffffffffffff
            winning_code = 408
            totag_retr = 0
    ---Type <return> to continue, or q <return> to quit---
            __FUNCTION__ = "local_reply"
    #5  0x00007f9324bcc9fd in fake_reply (t=0x7f91e58f05c0, branch=0, code=408) at timer.c:290
            cancel_data = {cancel_bitmap = 0, reason = {cause = 0, u = {text = {s = 0x0, len = -443611712}, e2e_cancel = 0x0, packed_hdrs = {s = 0x0, 
                    len = -443611712}}}}
            do_cancel_branch = 0
            reply_status = 67771
    #6  0x00007f9324bcce95 in final_response_handler (r_buf=0x7f91e58f0860, t=0x7f91e58f05c0) at timer.c:462
            silent = 0
            branch_ret = 0
            prev_branch = 0
            now = 0
    #7  0x00007f9324bccf56 in retr_buf_handler (ticks=112894435, tl=0x7f91e58f0880, p=0xfa0) at timer.c:518
            rbuf = 0x7f91e58f0860
            fr_remainder = 1
            retr_remainder = 32657
            retr_interval = 3847088576
            new_retr_interval_ms = 6989250208
            crt_retr_interval_ms = 140264594074048
            t = 0x7f91e58f05c0
            __FUNCTION__ = "retr_buf_handler"
    #8  0x00000000004b7bcd in slow_timer_main () at core/timer.c:1105
            n = 12
            ret = 4294967295
            tl = 0x7f91e58f0880
            i = 700
            __FUNCTION__ = "slow_timer_main"
    #9  0x000000000042a4c3 in main_loop () at main.c:1737
            i = 16
            pid = 0
            si = 0x0
            si_desc = "udp receiver child=15 sock=10.50.8.11:9090\000:0:0:11]:5060\000\061:5060)\000\000\000\000\000\000\000\000\000\000F\345\221\177\000\000\000\000\000\000\000\000\000\000\bLv\345\221\177\000\000P\201\227\240\375\177\000\000\210\212K\000\000\000\000\000\260\270A\000\000\000\000\000\b{\017(\223\177\000"
            nrprocs = 16
            woneinit = 1
    ---Type <return> to continue, or q <return> to quit---
            __FUNCTION__ = "main_loop"
    #10 0x0000000000433a66 in main (argc=7, argv=0x7ffda09786b8) at main.c:2856
            cfg_stream = 0x27e7010
            c = -1
            r = 0
            tmp = 0x7ffda0979f26 ""
            tmp_len = 0
            port = 0
            proto = 0
            ahost = 0x0
            aport = 0
            options = 0x7d2498 ":f:cm:M:dVIhEeb:l:L:n:vKrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:x:X:Y:"
            ret = -1
            seed = 791137056
            rfd = 4
            debug_save = 0
            debug_flag = 0
            dont_fork_cnt = 0
            n_lst = 0x7f934718ea00 <intel_02_known>
            p = 0x0
            st = {st_dev = 23, st_ino = 30676, st_nlink = 2, st_mode = 16877, st_uid = 0, st_gid = 5001, __pad0 = 0, st_rdev = 0, st_size = 40, 
              st_blksize = 4096, st_blocks = 0, st_atim = {tv_sec = 1597841333, tv_nsec = 176009291}, st_mtim = {tv_sec = 1597841333, 
                tv_nsec = 166009247}, st_ctim = {tv_sec = 1597841333, tv_nsec = 176009291}, __unused = {0, 0, 0}}
            tbuf = "\377\377\377\377", '\000' <repeats 12 times>, "\340\263\001G\223\177\000\000\310T\320G\223\177", '\000' <repeats 90 times>, "p\342\252\000\000\000\000\000\260\270A\000\000\000\000\000\260\206\227\240\375\177", '\000' <repeats 26 times>, "\036_\260G\223\177\000\000\001", '\000' <repeats 23 times>...
            option_index = 0
            long_options = {{name = 0x7d468f "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x7cfc94 "version", has_arg = 0, flag = 0x0, 
                val = 118}, {name = 0x7d4694 "alias", has_arg = 1, flag = 0x0, val = 1024}, {name = 0x7d469a "subst", has_arg = 1, flag = 0x0, 
                val = 1025}, {name = 0x7d46a0 "substdef", has_arg = 1, flag = 0x0, val = 1026}, {name = 0x7d46a9 "substdefs", has_arg = 1, flag = 0x0, 
                val = 1027}, {name = 0x7d46b3 "server-id", has_arg = 1, flag = 0x0, val = 1028}, {name = 0x7d46bd "loadmodule", has_arg = 1, flag = 0x0, 
                val = 1029}, {name = 0x7d46c8 "modparam", has_arg = 1, flag = 0x0, val = 1030}, {name = 0x7d46d1 "log-engine", has_arg = 1, flag = 0x0, 
                val = 1031}, {name = 0x7d46dc "debug", has_arg = 1, flag = 0x0, val = 1032}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
            __FUNCTION__ = "main"
    (gdb) 
    
    

    Log Messages

    Aug 19 12:58:26 SBC-4-2 /usr/local/sbin/kamailio[67772]: CRITICAL: <core> [core/mem/q_malloc.c:138]: qm_debug_check_frag(): BUG: qm: fragm. 0x7f91e5898950 (address 0x7f91e5898988) end overwritten (c0c0c0c1, abcdefed)! Memory allocator was called from core: core/usr_avp.c:626. Fragment marked by core: core/usr_avp.c:175. Exec from core/mem/q_malloc.c:511.
    Aug 19 12:58:38 SBC-4-2 /usr/local/sbin/kamailio[67793]: CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 94
    

    SIP Traffic

    (paste your sip traffic here)
    

    Possible Solutions

    Additional Information

    • Kamailio Version - output of kamailio -v
    [[email protected] /]# kamailio -v
    version: kamailio 5.4.0 (x86_64/linux) 6c4fce                                                                                                         
    flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, 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_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: 6c4fce 
    compiled on 14:16:47 Aug 14 2020 with gcc 4.8.5
    
    • Operating System:
    [[email protected] /]# uname -a
    Linux SBC-4-2.netcarrier.net 5.1.0 #1 SMP Mon May 6 13:44:38 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux
    
    bug 
    opened by sagarmalam 33
  • registrar: fix xavp_rcd memory consumption

    registrar: fix xavp_rcd memory consumption

    xavp_rcd keeps accumulating values leading to shm exaustion

    opened by lazedo 33
  • RPM repos at  https://rpm.kamailio.org

    RPM repos at https://rpm.kamailio.org

    Build own repositories for RPM packages for various distros: CentOS, RedHate, OpenSuse ...

    feature-request pkg 
    opened by miconda 33
  • dialog: Add dlg_get_matches function

    dialog: Add dlg_get_matches function

    Pre-Submission Checklist

    • [X] Commit message has the format required by CONTRIBUTING guide
    • [X] Commits are split per component (core, individual modules, libs, utils, ...)
    • [X] Each component has a single commit (if not, squash them into one commit)
    • [X] No commits to README files for modules (changes must be done to docbook files in doc/ subfolder, the README file is autogenerated)

    Type Of Change

    • [ ] Small bug fix (non-breaking change which fixes an issue)
    • [X] New feature (non-breaking change which adds new functionality)
    • [X] Breaking change (fix or feature that would change existing functionality)

    Checklist:

    • [ ] PR should be backported to stable branches
    • [X] Tested changes locally
    • [ ] Related to issue #XXXX (replace XXXX with an open issue number)

    Description

    I've marked this as a "breaking change" only because it slightly alters the error handling of the RPC dlg.list_match command, to draw attention to it. But the actual functionality is unchanged.

    This PR adds a new script function to the dialog module: dlg_get_matches. This has the same behaviour as the RPC dlg.list_match command, but allows use in scripts. The results are returned in an XAVP of a specified name, as an array of fields.

    dlg_get_matches(mkey, mop, mval, xavp_name[, max_results]);
    
    Returns number of matches found. Or -1 if there's an error.
    

    An example of use would be:

            xlog("Extension is: $var(ext)\n");
    
            $avp(dlg_count) = dlg_get_matches("turi", "sw", "sip:nexusone$var(ext)@", "dlg_matches");
    
            xlog("Got $avp(dlg_count) matches.\n");
            $var(i) = 0;
            $var(matched) = 0;
            while ($var(i) < $avp(dlg_count))
            {
                    //Skip dialogs that are not early state
                    if ($xavp(dlg_matches[$var(i)]=>state) == 2)
                    {
                            xlog("Found matching dlg[$var(i)]: $xavp(dlg_matches[$var(i)]=>from_uri)\n");
                    }
            }
    

    Some things to get feedback on

    • Right now I am parsing pvar inputs outside of the "fixup" function. Is this required/suggested to be in fixup? I tried doing it this way but was getting random segfaults because the pv_elem_t ptr was getting corrupted somehow, so I removed this and do it all in the main function.
    • Initially I just implemented dlg_get_matches on it's own and was torn on whether to refactor to avoid duplicating the matching logic in rpc_dlg_list_match_ex. As there's been a recent enhancement here, this pushed me to go ahead and refactor to share the common logic as much as possible in dlg_list_matches. Are there any issues with how I've approached this? Still slightly concerned it adds more complexity than it removes, but overall I think it's the right choice.
    • In terms of my code in dlg_list_matches, I've tried to copy the dialogs as safely as possible but a second set of eyes would be great to make sure I am not missing anything that might cause corruption of the actual dialogs.
    opened by rhys-hanrahan 0
  • xHTTP_PROM does not include metric_type

    xHTTP_PROM does not include metric_type

    Description

    We have a couple of Kamailio containers running on AWS ECS Fargate. Using a Cloudwatch Agent sidecar container I should be able to collect metrics from the Kamailio containers and push them to Cloudwatch for monitoring.

    xHTTP_PROM exposes the metrics like this:
    # Kamailio whole internal statistics
    kamailio_app_python3_traced_replies 0 1640265350616
    kamailio_app_python3_traced_requests 0 1640265350616
    kamailio_core_bad_URIs_rcvd 0 1640265350616
    kamailio_core_bad_msg_hdr 0 1640265350616
    

    While other prometheus metrics I have seen are throwing metrics like this:

    # HELP kamailio_shmmem_free_size Free shared memory.
    # TYPE kamailio_shmmem_free_size gauge
    kamailio_shmem_free_size {value} {timestamp}
    

    Troubleshooting

    Cloudwatch error:

    2022-01-12T21:16:38Z E! metric_type ERROR: kamailio_shmem_free_size|cwagent-ecs-file-sd-config|10.102.99.61:8080|  
    

    Possible Solutions

    Have a look at the exporter Callr: https://github.com/florentchauveau/kamailio_exporter

    Additional Information

    Latest Kamailio built from source on a Debian base image

    feature-request 
    opened by mneirynck 3
  • http_async_client module crashing kamailio v5.5 on startup (macos 12)

    http_async_client module crashing kamailio v5.5 on startup (macos 12)

    Description

    Hello, Loading http_async_client module causes kamailio to crash on startup with the following errors:

     0(60541) INFO: http_async_client [async_http.c:85]: async_http_init_worker(): started worker process: 1
    [warn] kevent: Bad file descriptor
    16(60557) CRITICAL: <core> [core/pt.c:405]: fork_tcp_process(): called from a non "main" process
    16(60557) ERROR: <core> [core/tcp_main.c:5121]: tcp_init_children(): fork failed: Bad file descriptor
     0(60541) ALERT: <core> [main.c:786]: handle_sigs(): child process 60557 exited normally, status=255
     0(60541) INFO: <core> [main.c:813]: handle_sigs(): terminating due to SIGCHLD
     1(60542) INFO: <core> [main.c:868]: sig_usr(): signal 15 received
     5(60546) INFO: <core> [main.c:868]: sig_usr(): signal 15 received
    

    Issue reproduced with kamailio sample configuration + loadmodule "http_async_client.so"

    Additional Information

    • Kamailio Version *
    kamailio -v
    version: kamailio 5.5.3 (x86_64/darwin) b42dfd
    flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
    ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, select, kqueue.
    id: b42dfd 
    compiled on 22:25:21 Jan  6 2022 with gcc Apple clang version 13.0.0 (clang-1300.0.29.30)
    
    • Operating System:
    MacOS
    
    portability 
    opened by joeygo 5
  • secfilter: Wrong format on RPC response data

    secfilter: Wrong format on RPC response data

    secfilter RPC functions to get statistics use a console format to printing data, suitable for kamcmd but not for any RPC method. This should be converted to a machine-parsable data structure (much like dispatcher, usrloc and htable data dumps).

    enhancement 
    opened by oej 1
  • Kafka: Wrong format on RPC responses

    Kafka: Wrong format on RPC responses

    The kafka module use printf-like message to print statistics in rpc_kafka_stats() which doesn't follow the style for other RPC commands that produce data structures parsable as data, like when using jsonrpc.

    	if (rpc->rpl_printf(ctx, "Total messages: %" PRIu64 "  Errors: %" PRIu64,
    						msg_total, msg_error) < 0) {
    		rpc->fault(ctx, 500, "Internal error showing total statistics");
    		return;
    	}
    

    I think this is a bug, but easy to fix.

    enhancement 
    opened by oej 0
  • WebSocket keepalive logging

    WebSocket keepalive logging "forcibly closing connection" with TCP connection errors

    Description

    Similar to issue #1886, we have Kamailio receiving WebRTC connections from clients and we see many errors related to connections being forcibly closed. We see two cases where this occurs, the former of which occurs much more often.

    Dec 29 01:12:43.909934 tlx-dal-ecv2-staging kamailio_edge[14813]: WARNING: websocket [ws_frame.c:810]: ws_keepalive(): forcibly closing connection
    Dec 29 01:12:43.910179 tlx-dal-ecv2-staging kamailio_edge[14813]: ERROR: websocket [ws_conn.c:375]: wsconn_close_now(): getting TCP/TLS connection while trying to close. src_ip:src_port=x.x.x.x:49319, dst_port=443
    
    Dec 29 00:53:28.110949 tlx-dal-ecv2-staging kamailio_edge[14817]: WARNING: websocket [ws_frame.c:227]: encode_and_send_ws_frame(): TCP/TLS connection get failed
    Dec 29 00:53:28.111187 tlx-dal-ecv2-staging kamailio_edge[14817]: ERROR: websocket [ws_frame.c:761]: ping_pong(): sending keepalive. src_ip:src_port=x.x.x.x:46712, dst_port=443
    

    Troubleshooting

    There seems to be a common occurrence where the WebSocket keepalive will not receive a pong and close the websocket connection. While closing, we see that the underlying TCP connection has already been closed. While that may be harmless, I am concerned there is a race condition that could lead to other problems.

    Additional Information

    • Kamailio Version - output of kamailio -v
    version: kamailio 5.3.1 (x86_64/linux) d68f5c
    flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
    ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: d68f5c
    compiled on 07:32:16 Dec 29 2021 with gcc 8.3.0
    
    • Operating System:
    > lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 10 (buster)
    Release:	10
    Codename:	buster
    
    > uname -a
    Linux tlx-dal-ecv2-staging 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux
    
    opened by maxdialpad 3
  • The acc modules writes a random string into the sip_reason field for an ACK message (FAKED_REPLY)

    The acc modules writes a random string into the sip_reason field for an ACK message (FAKED_REPLY)

    Description

    While upgrading to kamailio version 5.5.2 I noticed that the sip reason is not always filled in correctly. In our current setup with kamailio version 4.4 the acc module writes the INVITE, ACK end BYE messages to a postgres database. Also the missed calls are logged. With version 5.5.2 but also with version 5.5.3 the sip reason seems to contain a random 2 digits. It gets even worse when a call is missed and kamailio generates a 408 timeout. Then a random string of 15 characters is written to the database. Sometimes this results in a fatal error because the postgres driver can't escape the string.

    Troubleshooting

    The relevant part in de code is in the function env_set_code_status in file acc_logic.c

    if (reply==FAKED_REPLY || reply==NULL) {
        /* code */
        acc_env.code_s.s =
            int2bstr((unsigned long)code, code_buf, &acc_env.code_s.len);
        /* reason */
        if (acc_env.reason.len == 0) { /* already extracted in case of locally generated replies */
            acc_env.reason.s = error_text(code);
            acc_env.reason.len = strlen(acc_env.reason.s);
        }
    

    The sip reason is only filled in when the len is 0, but once the length is set it looks like it's not being reset to 0 again somewhere. I can fix the problem by removing the if statement, but that is probably not the intention of the programmer.

    Reproduction

    The wrong reason in the ACK can probably be reproduces with any call, but in my test setup an Asterisk system answers the call. After the "OK" an ACK is received which is seen as a FAKED_REPLY. The reason.len however is still 2 and the reason is not set. The new function "env_set_reason" is not being called in this case.

    The issue with the 408 can be reproduced by calling an endpoint and let kamailio timeout. This has to be done twice to reproduce the error. This time kamailio wants to write the missed INVITE to the database with a random string of 15 characters for the sip reason. To me it looks like the length of 15 comes from the length of the "Request Timeout" string but the pointer reason.s point to a memory part of a previous transaction which is already gone ?

    Debugging Data

    Log Messages

    SIP Traffic

    Possible Solutions

    Additional Information

    • Kamailio Version - output of kamailio -v
    version: kamailio 5.5.2 (x86_64/linux) 55e232
    flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
    ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: 55e232 
    compiled on 15:45:52 Dec  9 2021 with gcc 8.3.0
    
    • Operating System:
    Linux  4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
    
    bug 
    opened by CFrits 1
  • db_redis: cluster support

    db_redis: cluster support

    Description

    At the moment db_redis driver does not support interfacing with a redis cluster. This is a proposal to add support to it. The db_redis module will get a new module parameter to enable cluster support (with default 0 - disabled):

    modparam("db_redis", "cluster", 1)
    

    The redis url used by other modules needs to specify all nodes in the cluster, and must NOT include redis database number (since it's not supported in cluster mode):

    #!define DBURL_USRLOC "redis://10.0.1.1:6379,10.0.1.2:6379,10.0.1.3:6379"
    

    The implementation is going to use the hiredis-cluster library (BSD license). If cluster mode is not enabled the module will behave like before, i.e. all calls to redis will use hiredis library directly.

    If you find this proposal sensible, I'll start coding it.

    Feedback is welcome, of course!

    enhancement 
    opened by Riccardo-78 3
  •  RPC command dlg.profile_get_size with per_value response

    RPC command dlg.profile_get_size with per_value response

    Hello,

    I would like to suggest you an implementation of the rpc command dlg.profile_get_size (on a valued profile) that would return a list of values and the number of current dialogs for any of them . This could be usefull if you want to get stats per customer_id/trunks/ips or whatever and don't want to get the whole table but only the size.

    Regards, David

    feature-request 
    opened by dvillaume 1
  • ims_ipsec_pcscf crashes after the call

    ims_ipsec_pcscf crashes after the call

    Description

    Hi, I am a junior with Kamailio, if I show you where I am wrong, I will. Often during a call between two sip clients (located on the same subnet with pcscf) Kamailio P-CSCF crashes with a core dump. But sometimes the call goes through normally, I can’t see why this is happening.

    Troubleshooting

    Reproduction

    It is reproduced often, the error is most likely somewhere with me.

    Debugging Data

    GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
    Copyright (C) 2021 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "i686-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <https://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
        <http://www.gnu.org/software/gdb/documentation/>.
    
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from /usr/sbin/kamailio...
    (No debugging symbols found in /usr/sbin/kamailio)
    
    warning: Can't open file /dev/zero (deleted) during file-backed mapping note processing
    [New LWP 14196]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
    Core was generated by `/usr/sbin/kamailio -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg'.
    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  0xb6f1eab9 in ?? () from /usr/lib/i386-linux-gnu/kamailio/modules/ims_ipsec_pcscf.so
    (gdb) bt full
    #0  0xb6f1eab9 in ?? () from /usr/lib/i386-linux-gnu/kamailio/modules/ims_ipsec_pcscf.so
    No symbol table info available.
    #1  0xb6f25b1e in ipsec_forward () from /usr/lib/i386-linux-gnu/kamailio/modules/ims_ipsec_pcscf.so
    No symbol table info available.
    #2  0xb6f2901a in ?? () from /usr/lib/i386-linux-gnu/kamailio/modules/ims_ipsec_pcscf.so
    No symbol table info available.
    #3  0x004bc49d in do_action ()
    No symbol table info available.
    #4  0x004bae10 in run_actions ()
    No symbol table info available.
    #5  0x004ca3a0 in run_top_route ()
    No symbol table info available.
    #6  0xb73c1695 in reply_received () from /usr/lib/i386-linux-gnu/kamailio/modules/tm.so
    No symbol table info available.
    #7  0x0052fa14 in ?? ()
    No symbol table info available.
    #8  0x005b9170 in receive_msg ()
    No symbol table info available.
    #9  0x006bb830 in udp_rcv_loop ()
    No symbol table info available.
    #10 0x004b74e8 in main_loop ()
    No symbol table info available.
    #11 0x004ab0f1 in main ()
    No symbol table info available.
    

    Log Messages

    Dec 10 15:33:07 pcscf /usr/sbin/kamailio[14194]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:33:07 pcscf /usr/sbin/kamailio[14194]: ERROR: rtpengine [rtpengine.c:3236]: set_rtpengine_set_from_avp(): could not locate engine set 2
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14204]: ERROR: <script>: INVITE (sip:[email protected] (192.168.56.1:55149) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14204]: ERROR: ims_ipsec_pcscf [cmd.c:806]: ipsec_forward(): Contact doesn't exist
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14204]: ERROR: ims_ipsec_pcscf [cmd.c:806]: ipsec_forward(): Contact doesn't exist
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14193]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14195]: ERROR: <script>: INVITE (sip:[email protected] (192.168.56.106:6060) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14195]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14195]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14195]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14195]: ERROR: rtpengine [rtpengine.c:3236]: set_rtpengine_set_from_avp(): could not locate engine set 2
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14205]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14205]: ERROR: rtpengine [rtpengine.c:3236]: set_rtpengine_set_from_avp(): could not locate engine set 2
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14210]: ERROR: ims_ipsec_pcscf [cmd.c:252]: fill_contact(): Reply No contact headers
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14210]: ERROR: ims_ipsec_pcscf [cmd.c:799]: ipsec_forward(): Error filling in contact data
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14201]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14201]: ERROR: rtpengine [rtpengine.c:3236]: set_rtpengine_set_from_avp(): could not locate engine set 2
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14274]: CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 22
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14191]: ALERT: <core> [main.c:782]: handle_sigs(): child process 14196 exited by a signal 11
    Dec 10 15:35:14 pcscf /usr/sbin/kamailio[14191]: ALERT: <core> [main.c:785]: handle_sigs(): core was generated
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14324]: WARNING: <core> [core/daemonize.c:596]: mem_lock_pages(): failed to lock the memory pages (disable swap): Cannot allocate memory [12]
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14324]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14324]: WARNING: tm [tm.c:521]: fixup_routes(): t_on_failure("NATMANAGE"): empty/non existing route
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14324]: ERROR: <script>: event_route[htable:mod-init] {
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14324]: ERROR: ims_ipsec_pcscf [cmd.c:950]: ipsec_destroy(): Contact doesn't exist
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14400]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14406]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14403]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14405]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14401]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14404]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14402]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14399]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14396]: WARNING: ims_usrloc_pcscf [usrloc_db.c:67]: connect_db(): DB connection already open... continuing
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14334]: ERROR: <script>: PRACK (sip:[email protected] (192.168.56.1:55149) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14334]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14334]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14337]: ERROR: <script>: PRACK (sip:[email protected] (192.168.56.106:6060) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14337]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14337]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14329]: ERROR: <script>: PRACK (sip:[email protected] (192.168.56.1:55149) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14329]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14329]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14341]: ERROR: <script>: PRACK (sip:[email protected] (192.168.56.106:6060) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14341]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:15 pcscf /usr/sbin/kamailio[14341]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14328]: ERROR: <script>: ACK (sip:[email protected] (192.168.56.1:55149) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14328]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14328]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14326]: ERROR: <script>: ACK (sip:[email protected] (192.168.56.106:6060) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14326]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:17 pcscf /usr/sbin/kamailio[14326]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14327]: ERROR: <script>: BYE (sip:[email protected] (192.168.56.1:55149) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14327]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14327]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14325]: ERROR: <script>: BYE (sip:[email protected] (192.168.56.106:6060) to sip:[email protected], dca98f98-8bb9-c01d-ff0c-e55794e9bcaa)
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14325]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14325]: ERROR: ims_ipsec_pcscf [cmd.c:816]: ipsec_forward(): No security parameters found in contact
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14325]: ERROR: rtpengine [rtpengine.c:2957]: select_rtpp_set():  script error-invalid id_set to be selected
    Dec 10 15:35:26 pcscf /usr/sbin/kamailio[14325]: ERROR: rtpengine [rtpengine.c:3236]: set_rtpengine_set_from_avp(): could not locate engine set 2
    Dec 10 15:35:30 pcscf /usr/sbin/kamailio[14396]: ERROR: <script>: Preloading NAT-PING. Rows: 921
    Dec 10 15:35:30 pcscf /usr/sbin/kamailio[14396]: ERROR: <script>: OPTIONS to sip:[email protected]:57838;transport=udp via sip:192.168.56.107:57838...
    

    SIP Traffic

    (paste your sip traffic here)
    
    
    
    

    pcscf_dump.zip

    Possible Solutions

    Additional Information

    • Kamailio Version - output of kamailio -v
    version: kamailio 5.4.4 (i386/linux) 
    flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
    ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
    poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
    id: unknown 
    compiled with gcc 10.2.1
    
    • Operating System:
    Linux pcscf.ims.mnc001.mcc001.3gppnetwork.org 5.10.0-9-686-pae #1 SMP Debian 5.10.70-1 (2021-09-30) i686 GNU/Linux
    

    kamailio_cfg.zip kamailio_log.zip

    opened by Dgeka25594 18
Owner
Kamailio
The Open Source SIP Server for large VoIP and real-time communication platforms
Kamailio
Open Source VoIP Billing Solution http://www.astppbilling.org | Report a bug https://jira.astppbilling.org

ASTPP ASTPP is an Open Source VoIP Billing Solution for Freeswitch. It supports prepaid and postpaid billing with call rating and credit control. It a

iNextrix Technologies Pvt. Ltd. 122 Dec 25, 2021
Routr: Next-generation SIP Server

Table of Content About Community Deployment Snaps Microsoft Azure DigitalOcean droplet Docker Kubernetes Google Cloud Shell Custom Features Documentat

Fonoster 869 Jan 16, 2022
The core of an open-source, distributed, highly scalable platform designed to provide robust telecom services

Kazoo See current announcements for updates on KAZOO master / 5.x work below Periodically check our announcements for important developer updates!

2600Hz KAZOO and Monster UI 860 Jan 5, 2022
Official FusionPBX - A full-featured domain based multi-tenant PBX and voice switch for FreeSwitch.

What is FusionPBX? FusionPBX can be used as a single or domain based multi-tenant PBX, carrier grade switch, call center server, fax server, VoIP serv

FusionPBX 534 Jan 10, 2022
Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -

Kamailio - The Open Source SIP Server Project Website: http://www.kamailio.org Overview Kamailio is an open source implementation of a SIP Signaling S

Kamailio 1.6k Jan 20, 2022
HOMER - 100% Open-Source SIP / VoIP Packet Capture & Monitoring

HOMER 7.7 (Seven) 100% Open-Source VoIP & RTC Capture, Troubleshooting & Monitoring HOMER is a robust, carrier-grade, scalable Packet and Event captur

SIPCAPTURE 1.1k Dec 29, 2021
HOMER - 100% Open-Source SIP / VoIP Packet Capture & Monitoring

HOMER 7.7 (Seven) 100% Open-Source VoIP & RTC Capture, Troubleshooting & Monitoring HOMER is a robust, carrier-grade, scalable Packet and Event captur

SIPCAPTURE 1.1k Jan 18, 2022
:speech_balloon: Real-time xmpp chat application with video calls, file transfer and encrypted communication.

JavaScript XMPP Client Real-time chat app. This app requires an external XMPP server (openfire, ejabberd etc.). ?? Features JSXC provides the followin

JavaScript XMPP Client 655 Jan 12, 2022
MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

Copyright (c) 2000, 2021, Oracle and/or its affiliates. This is a release of MySQL, an SQL database server. License information can be found in the

MySQL 7.3k Jan 1, 2022
A damn-sexy, open source real-time dashboard builder for IOT and other web mashups. A free open-source alternative to Geckoboard.

freeboard free·board (noun) *\ˈfrē-ˌbȯrd* the distance between the waterline and the main deck or weather deck of a ship or between the level of the w

freeboard 6.2k Jan 15, 2022
A damn-sexy, open source real-time dashboard builder for IOT and other web mashups. A free open-source alternative to Geckoboard.

freeboard free·board (noun) *\ˈfrē-ˌbȯrd* the distance between the waterline and the main deck or weather deck of a ship or between the level of the w

freeboard 6.2k Jan 15, 2022
ONLYOFFICE 2.4k Jan 2, 2022
IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.

About IanniX IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) ev

Buzzing Light 259 Jan 4, 2022
Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.

OpenRA A Libre/Free Real Time Strategy game engine supporting early Westwood classics. Website: http://www.openra.net IRC: #openra on irc.freenode.net

OpenRA 10.4k Jan 24, 2022
RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform.

RetroShare RetroShare is a decentralized, private, secure, cross-platform, communication toolkit. RetroShare provides file sharing, chat, messages, fo

RetroShare 1.4k Dec 29, 2021
Open Source VoIP Billing Solution http://www.astppbilling.org | Report a bug https://jira.astppbilling.org

ASTPP ASTPP is an Open Source VoIP Billing Solution for Freeswitch. It supports prepaid and postpaid billing with call rating and credit control. It a

iNextrix Technologies Pvt. Ltd. 122 Dec 25, 2021
Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.

?? Introduction Directus is a real-time API and App dashboard for managing SQL database content. Free & open-source. No artificial limitations, vendor

Directus 13.5k Jan 21, 2022
Command the forces of The Project in a battle to rebuild the world after mankind has been nearly destroyed by nuclear missiles. A 100% free and open source real-time strategy game for Windows, macOS, Linux, BSD+

Warzone 2100 Homepage of the Warzone 2100 Project Origins Warzone 2100, released in 1999 and developed by Pumpkin Studios, was a ground-breaking and i

The Warzone 2100 Project 2.1k Jan 19, 2022
Scalable real-time messaging server in language-agnostic way. Set up once and forever.

Centrifugo is a scalable real-time messaging server in language-agnostic way. Centrifugo works in conjunction with application backend written in any

Centrifugal 5.7k Jan 18, 2022
A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)

gotify/server Intro We wanted a simple server for sending and receiving messages (in real time per WebSocket). For this, not many open source projects

Gotify 6.9k Jan 13, 2022
A distributed approximate nearest neighborhood search (ANN) library which provides a high quality vector index build, search and distributed online serving toolkits for large scale vector search scenario.

SPTAG: A library for fast approximate nearest neighbor search SPTAG SPTAG (Space Partition Tree And Graph) is a library for large scale vector approxi

Microsoft 4.1k Jan 17, 2022
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)

ejabberd Community Edition ejabberd is a distributed, fault-tolerant technology that allows the creation of large-scale instant messaging applications

ProcessOne 5.1k Jan 21, 2022
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)

ejabberd Community Edition ejabberd is a distributed, fault-tolerant technology that allows the creation of large-scale instant messaging applications

ProcessOne 5.1k Jan 19, 2022
TOROS N2 - lightweight approximate Nearest Neighbor library which runs fast even with large datasets

N2 Lightweight approximate Nearest Neighbor algorithm library written in C++ (with Python/Go bindings). N2 stands for two N's, which comes from 'Appro

kakao 500 Dec 22, 2021
Routr: Next-generation SIP Server

Table of Content About Community Deployment Snaps Microsoft Azure DigitalOcean droplet Docker Kubernetes Google Cloud Shell Custom Features Documentat

Fonoster 869 Jan 16, 2022
CodiMD - Realtime collaborative markdown notes on all platforms.

CodiMD CodiMD lets you collaborate in real-time with markdown. Built on HackMD source code, CodiMD lets you host and control your team's content with

HackMD 7.6k Dec 30, 2021
A tool for automating the installation of the Microsoft Windows operating system on various device platforms.

Glazier Support Python Tests Go Tests Contributing Open Issues License Gla·zier /ˈɡlāZHər/ noun: a person who installs windows. Glazier is a tool deve

Google 1.1k Jan 10, 2022
Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

Dolphin - A GameCube and Wii Emulator Homepage | Project Site | Buildbot | Forums | Wiki | Issue Tracker | Coding Style | Transifex Page Dolphin is an

Dolphin Emulator 8.1k Jan 11, 2022
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

GoAccess What is it? GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal on *nix systems or through y

Gerardo O. 14.2k Jan 14, 2022