[Serusers] ACKs not getting routed?

Chris St Denis chris at aebc.com
Wed Aug 24 20:06:56 CEST 2005


Trying again with some additional info

Full sip dialog from ngrep running on he proxy below. IPs replaced with
PSTN_GATEWAY, SER_PROXY, and PHONE and phone numbers replaced with
SOURCE_NUMBER and DEST_NUMBER and the phone’s username changed to
PHONE_USERNAME for privacy and to increase readability.

http://pastebin.ca/21005

-----Original Message-----
From: serusers-bounces at iptel.org [mailto:serusers-bounces at lists.iptel.org] On
Behalf Of Chris St Denis
Sent: Monday, August 22, 2005 11:16 AM
To: serusers at lists.iptel.org
Subject: [Serusers] ACKs not getting routed?

I am having a problem with incoming calls where ACK messages don’t seem to
be getting (loose) routed.

Here is the relevant part of my config

======================
route {
        xlog("L_ERR", "time [%Tf] method <%rm> r-uri <%ru> - %tu\n");

        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops -- probebly a loop or
something");
                break;
        };
        if ( msg:len > max_len ) {
                sl_send_reply("513", "Message too big");
                break;
        };

        # we record-route all messages -- to make sure that
        # subsequent messages will go through our proxy for accounting
purposes
        record_route();

        #Accounting if a call is started or ended
        if (method=="INVITE" || method=="BYE" || method=="CANCEL") {
                acc_rad_request("200");
        }

        # grant Route routing if route headers present
        # loose-route processing. Decreases security slightly regarding
        # forged messages, but decreases load.
        if (loose_route()) {
                xlog("L_NOTICE", "Loose Routing\n");
                t_relay();
                break;
        };
======================

My understand is this should cause the ACK messages that are part of the
transaction to get routed. They should not pass beyond this block of code
right?

However, the SIP conversation goes as follows.

Gateway invites proxy
Proxy says 100 trying
Proxy says 100 trying
Proxy invites user
User says 100 trying
User says 180 Ringing
User says 180 Ringing

Thus far all is well

When the user picks up the phone

User tells proxy 200 ok
Proxy tells gateway 200 ok
Gateway tells proxy ACK

At this point the proxy should be relaying the ACK to the user, but it does
not. Instead due to timeout the user sends another 200 ok and that last
block of conversation repeats. 


Any ideas why this would not be working?

(I tried to send this with a full SIP dialog but it got rejected as being
too big so this email is the chopped down version)

_______________________________________________
Serusers mailing list
serusers at lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers




More information about the sr-users mailing list