Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Here is an interesting one, I have a SIP VoIP application which is able to register to the PBX server, and I can invite and see the user call on the callee end receiving an Invite, and on the caller end I see the Ringing response... now here is interesting part, if I close my application with out any notification to the server my router disconnects and restart, after a short while (30 - 150 sec). I could fix that if I would complete the ACK BYE process, but I'm just wondering why does my router hangs up?

any ideas?

My Router is TNN-Siemens SL2-141, thought this might matter

Update: this is what I found:

SIP ALG allows two or more simultaneous VoIP phone calls made by VoIP clients through this router.

which means that if I disable it I would not be able to do the testing I'm trying so badly to do, and since I don't have access to another router, I must handle it with the bug then...

I can say that this never happened to me with one user connecting, but then again I didn't have anyone to invite then, I received from the SIP UAS 503 when I tried to invite an imaginary user. This bug only occur after I connected the second SIP UAC and invited it and closed the application.

Adam.

share|improve this question

migrated from stackoverflow.com Jun 8 '10 at 1:43

This question came from our site for professional and enthusiast programmers.

1 Answer 1

up vote 4 down vote accepted

The only thing I can think of is if your router has a SIP ALG and is crashing because of some bug in it when it doesn't get the ACK. If your router does have a SIP ALG you should try and find a way to turn it off. It's generally accepted now that SIP ALG's are bad news and cause far more problems than they ever solve.

Update: If you're writing your own SIP application and you're behind an ALG then you will have a hard time tracking down issues as you won't ever be sure that the SIP packet you're sending is the one that's being received. Try turning off your SIP ALG and making sure the SIP devices on the iside of your network use a different port, i.e. set them up so they aren't using port 5060 as their local port. That way the router shouldn't have to get involved in any specific behaviour in order to allow the SIP traffic to work for multiple devices.

share|improve this answer
    
Badly-written SIP ALGs might be bad news, but the concept is sound. But I suspect you might well be right in your diagnosis here. –  Frank Shearar Jun 6 '10 at 8:18
1  
The general consensus on the SIP implementor's list (lists.cs.columbia.edu/pipermail/sip-implementors) that I have observed and also agree with is the SIP ALGs are bad news and should be completely phased out. –  sipwiz Jun 6 '10 at 9:26
    
thank you both for your responses, I think this would fix the problem but will prevent me from performing the testings I need. BTW this error didn't happened with one UAC connecting to the server, so the ALG does work when it comes to a single SIP UAC. –  TacB0sS Jun 6 '10 at 9:55
    
sipwiz, I've followed sip-implementors for years. (Had to, being a SIP implementor.) Complaining about ALGs is much like complaining about NATs - they're still there. But perhaps Iñaki Baz Castillo's detector might help in debugging: dev.sipdoc.net/wiki/sip-stuff/SIP-ALG-Detector –  Frank Shearar Jun 6 '10 at 13:39
1  
@Frank I take your point, no point moaning :). However the difference between NATs and ALGs is you can often turn the ALG off. As far as implementing SIP goes with NATs you know the limits of their behaviour, IP and port transaltion. With ALGs you don't, they could go screwing with every SIP header in your messages. As Iñaki himself recently said in a post "ALG's just must dissapear ASAP". –  sipwiz Jun 6 '10 at 22:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.