[OpenSIPS-Users] Matching problem in dialog module

opensipslist at encambio.com opensipslist at encambio.com
Sat Jan 23 15:35:24 CET 2010


Hello list,

I send a INVITE over TLS and it is routed properly (I can call
normally.) The validate_dialog() is failing to match routesets.

I use the function like this:

    if ($DLG_status != NULL) {
        if (!validate_dialog()) {
            xlog("L_WARN", "$rm: In dialog bogus request\n");
        }
    }

My UA -> OpenSIPS -> Callee  ...all TLS:5061 except Callee UDP:5060
INVITE ----->|-------->|
  |<---------|<------- OK
 ACK ------->|-------->|   ...ACK is failed by validate_dialog()
  |<---------|<------- BYE ...BYE is failed by validate_dialog()

The call to validate_dialog() fails to match the ACK (and BYE) with
their associated dialog. The log shows:

debug> opensips[2815]: DBG:dialog:dlg_validate_dialog: route check failed req=[<sip:128.111.222.333;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7>] dlg=[<sip:128.111.222.333:5061;transport=tls;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7>,<sip:128.111.222.333;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7>]

Here's a simplification of the log entry.

Request route identifier:
  128.111.222.333;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7

Dialog route identifier:
  128.111.222.333:5061;transport=tls;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7

SIP route identifier:
  128.111.222.333;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7

...so you see that really they are equivalent, only the dialog route
identifier has the port and transport appended. Here's the route set
that I read from my UAS after sending the INVITE:

SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.130.131:3651;received=86.81.28.62;branch=4bKz9hG-i7nhmjfdnqmf;rport=3651
Record-Route: <sip:128.111.222.333;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7>
Record-Route: <sip:128.111.222.333:5061;transport=tls;r2=on;lr=on;ftag=qpii9b4zsg;did=bbc.9ae7>
From: "User Me" <sip:Myself-OSIPS at name.host.tld>;tag=qpii9b4zsg

Can it be that the dialog module is not correctly matching the route
set? Or is it wrong that one of the entries in the route set doesn't
have the TLS port and transport appended?

Why is the matching not working?

Regards,
Brian



More information about the Users mailing list