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. ...

Get Practical VoIP Using VOCAL now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.