[Serusers] ACKs not getting routed?

Chris St Denis chris at aebc.com
Mon Aug 22 20:16:29 CEST 2005

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
        if ( msg:len > max_len ) {
                sl_send_reply("513", "Message too big");

        # we record-route all messages -- to make sure that
        # subsequent messages will go through our proxy for accounting

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

        # 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");

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

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)

More information about the sr-users mailing list