[Serusers] sl_send_reply: I won't send a reply for ACK!! - ProblemIdentified

Greger V. Teigre greger at teigre.com
Sat Sep 10 09:51:54 CEST 2005


This is a known problem. It is your responsibility to detect invalid numbers 
before sending them to the GW...
However, you should catch the bad ACK earlier (not wait until the loop has 
occurred).  You didn't include the full, original ACK that starts the loop, 
but I assume you should be able to detect the 404 from your GW. I must admit 
I'm not really able to picture the dialog that occurs, but I assume the loop 
is between SER and the GW or is it a loop within SER itself?
g-)

Corey S. McFadden wrote:
> Guys,
>
> I was able to figure out why I was getting occasional sl_send_reply
> errors with some ACK messages.  I don't know if this is something
> that needs to
> be corrected at a deeper level, but I'll give you the rundown:
>
> 1. UA Makes a call to a bad number
> 2. Bad number is actually valid so it gets routed to the GW
> 3. GW responds 404
> 4. ACK loop occurs.
>
> When the ACK loop happens, SIP captures reveal the following (watch
> the Max-Forwards):
>
> #1
> ..
> Max-Forwards:  9
> Record-Route: <sip:ser;ftag=0014a934057d001145ed0fa2-6f6f2e8e;lr=on>
> Via: SIP/2.0/UDP ser;branch=0
> Via: SIP/2.0/UDP
> 192.168.249.83:5060;received=otherip;branch=z9hG4bK140d833e ..
> #2
> ..
> Record-Route: <sip:ser;ftag=0014a934057d001145ed0fa2-6f6f2e8e;lr=on>
> Max-Forwards:  8
> Record-Route: <sip:ser;ftag=0014a934057d001145ed0fa2-6f6f2e8e;lr=on>
> Via: SIP/2.0/UDP ser;branch=0
> Via: SIP/2.0/UDP ser;branch=0
> Via: SIP/2.0/UDP
> 192.168.249.83:5060;received=otherip;branch=z9hG4bK140d833e
> ..
>
>
> Etc. etc. until Max Forwards counts down to 0, at which point:
>
>        if (!mf_process_maxfwd_header("10")) {
>                sl_send_reply("483", "Too Many Hops");
>                break;
>        };
>
> And naturally:
> sl_send_reply: I won't send a reply for ACK!!
>
>
> So, I've obviously been able to avoid this by changing to:
>
> if (!mf_process_maxfwd_header("10")) {
> if (method!="ACK") {
> sl_send_reply("483", "Too Many Hops");
> };
> break;
> };
>
>
> Now, the greater question: is the ACK loop being generated by a
> defective message.  If so, is it anything to worry about?  And in
> either case is putting the method check in there a valid solution?
>
> Can anyone advise?
>
> Thanks,
> -Corey
>
>
> *********************************************
> This message has been scanned for viruses and
> dangerous content, and is believed to be clean.
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers 




More information about the sr-users mailing list