Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[db_text] In a case of using dispatcher from db_text, only first entry in table is processed #2465

Closed
igorolhovskiy opened this issue Sep 2, 2020 · 7 comments

Comments

@igorolhovskiy
Copy link
Contributor

Description

I have list of dispatchers in db_text. But only first is processed.

Reproduction

Create dispatcher table in a case of db_text

id(int,auto) setid(int) destination(string) flags(int) priority(int) attrs(string) description(string)
2:1:sip\:asterisk_2\:5060:2:0::asterisk_2
1:1:sip\:asterisk_1\:5060:2:0::asterisk_1

Start Kamailio

Run kamctl dispatcher dump

# kamctl dispatcher dump
{
  "jsonrpc":  "2.0",
  "result": {
    "NRSETS": 1,
    "RECORDS":  [{
        "SET":  {
          "ID": 1,
          "TARGETS":  [{
              "DEST": {
                "URI":  "sip:asterisk_2:5060",
                "FLAGS":  "AP",
                "PRIORITY": 0
              }
            }]
        }
      }]
  },
  "id": 124
}

Only the first entry is processed.

On running

# kamctl dispatcher reload

nothing is changed.

Possible Solutions

Adding other dispatchers via kamcmd

Additional Information

  • Kamailio Version - output of kamailio -v
/# kamailio -v
version: kamailio 5.4.1 (x86_64/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 8.3.0
  • Operating System:

Debian 10/Docker.

# uname -a
Linux 9b7efa852274 5.3.18-lp152.36-default #1 SMP Tue Aug 18 17:09:44 UTC 2020 (885251f) x86_64 GNU/Linux
@grumvalski
Copy link
Contributor

Which mode are you using for db_test? http://www.kamailio.org/docs/modules/devel/modules/db_text.html#idm136
If you're using the default 0 then the tables are only read once at startup so a dispatcher.reload would not have any effect.

@igorolhovskiy
Copy link
Contributor Author

I'm using mode '0', but only one dispatcher is created on Kamailio start.
Also just tested with mode 1 - same effect.

@igorolhovskiy
Copy link
Contributor Author

As a future investigation

kamcmd> db_text.query 'select * from version'
error executing sql statement

But usloc module successfully writes into it.

@miconda
Copy link
Member

miconda commented Sep 2, 2020

Provide all logs printed by kamailio at startup with debug=3 in kamailio.cfg.

@igorolhovskiy
Copy link
Contributor Author

https://pastebin.com/GtgBdzn5

dispatcher:

id(int,auto) setid(int) destination(string) flags(int) priority(int) attrs(string) description(string)
2:1:sip\:asterisk_2\:5060:2:0::asterisk_2
1:1:sip\:asterisk_1\:5060:2:0::asterisk_1

@igorolhovskiy
Copy link
Contributor Author

Ok. I think I found an issue.
Mandatory CRLF at the end of 2nd string

@miconda
Copy link
Member

miconda commented Sep 2, 2020

Indeed, I was leading to it by looking at log messages, a row ends by end of line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants