O'Reilly logo

Practical VoIP Using VOCAL by Luan Dang, Cullen Jennings, David Kelly

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Weird Situations

Despite the best intentions of the developers, unusual situations occur that sometimes test the limits of the protocol and the patience of the customers.

Forking, call forwarding from two proxies to the same phone

Figure 7-11. Forking, call forwarding from two proxies to the same phone

Two Users Hang Up Simultaneously

Case #1, shown in Figure 7-12, is what usually happens.

Case #1, simultaneous hang-up

Figure 7-12. Case #1, simultaneous hang-up

BYE and CANCEL: Similar but Not Interchangeable

In Case #2 (Figure 7-13), when phone A receives the BYE, it may not know about the call anymore. It could return a 404 or 200 message. It’s weird because the 200 had to pass the BYE in the network. This seldom happens, but it is possible.

Hanging up a ringing call should cancel the INVITE and not send a BYE. In our testing, we have come across some buggy implementations where a phone would continue ringing long after the caller had sent a BYE. We would have to pick the phone up and hang it up to stop its ringing.

Case #2, simultaneous hang-up

Figure 7-13. Case #2, simultaneous hang-up

This is not a problem with the protocol. This was a problem with how the SIP User Agent was written. The point we’re making is that while the BYE and CANCEL messages might appear to have a similar purpose, they are not interchangeable. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required