Hi,

I can see that it works properly on kamailio v5.0.7, I've no instances of v5.1.x. It may just be related to master branch, however, in this instance I'm trying to use the presence dmq features that are in master at the moment. It might be that I pulled an in-flight bug on master, not sure.



On 31/07/18 18:08, Joel Serrano wrote:
Hi Asgaroth, 

I'm using dmq and I haven't seen a msg get passed this:

    # Handles DMQ messages
    if (is_method("KDMQ")) {
        dmq_handle_message();
    }

That said, just to make sure it's not some work-in-progress happening on master branch, give it a try on latest stable release (v5.1.4) to see if you find the same behavior. I haven't tried on master but on v5.1.4 I'm not seeing that behavior.

Are you manually replicating stuff using dmq functions or are you taking advantage of auto-replication using modparam enable_dmq=1 on certain modules?

Joel.




On Tue, Jul 31, 2018 at 9:01 AM, Asgaroth <00asgaroth00@gmail.com> wrote:
Hi All,

I've come across and oddity whereby my is_method("KDMQ") checks are not matching.

I'm testing with kamailio master:

version: kamailio 5.2.0-dev6 (x86_64/linux) a16272
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, 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: a16272
compiled on 15:27:21 Jul 31 2018 with gcc 7.3.1

Sample routing logic:

request_route {
    route("InitialMessageChecks");
    exit;
}


route[InitialMessageChecks] {
    xlog("L_INFO", "Received message type $rm from $si:$sp on $Ri:$Rp");

    if ( is_method("KDMQ") ) { xlog("L_INFO", "KDMQ check passed."); }
    if ( is_method("OPTIONS") ) { xlog("L_INFO", "OPTIONS check passed."); }
    if ( is_method("SUBSCRIBE") ) { xlog("L_INFO", "SUBSCRIBE check passed."); }

}

In the logs I am only receiving the 1st log line in the initial message checks route for message types of KDMQ, eg:

INFO: <script>: Received message KDMQ from 1.1.1.1:5060 on 1.1.1.2:5060
INFO: <script>: Received message KDMQ from 1.1.1.3:5060 on 1.1.1.2:5060

I never seem to hit the is_method check log line when the method type is KDMQ.

I do see the options/subscribe logs though:

INFO: <script>: OPTIONS check passed.
INFO: <script>: SUBSCRIBE check passed.

nothing for KDMQ.

Reason for asking is: this check never matches and breaks the dmq bus:

if ( is_method("KDMQ") ) {
    if ( dmq_is_from_node() ) {
        dmq_handle_message();
        exit;
    } else {
        exit;
    }
}

Any thoughts, or am I going crazy :)

Thanks


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users