Thomas (boggyb) wrote,
Thomas
boggyb

Epic technology fail

By unaminious demand (even the spambot voted for it!), you get a tale of epic technology fail. Actually, it's not all that epic. But that didn't make it any less annoying.

Today's fail involves a collection of SIP phones, along with a B2BUA (which pretends to be two more SIP phones stuck together). The call scenario is a reasonably simple one: SIP phone A calls the B2BUA. The B2BUA does a blind transfer to SIP phone B, which diverts to SIP phone C.

The part of the SIP phones will be played by a collection of lolcats, while the B2BUA is played by a much more intelligent fox. Now, this is what's supposed to happen...

LolcatSIP signalling 
SIP phone AOh hai B2BUA, I can has call?INVITE to B2BUA
 B2BUASure thing200 OK to phone A
SIP phone AI has call!ACK to B2BUA
 B2BUAOk, go ahead and call phone B nowREFER to phone B
SIP phone AI has redirect!200 OK to B2BUA
SIP phone A Oh has SIP phone B, I can has call?INVITE to phone B
SIP phone BWaah! Give SIP phone C call!302 Temporary Redirect to phone A
SIP phone A Oh has SIP phone C, I can has call?INVITE to phone C
SIP phone CRing ring!180 Alerting to phone A
SIP phone AI'm in ur network making a callNOTIFY to B2BUA
 B2BUAGood, good200 OK to phone A
SIP phone CYou can has call!200 OK to phone A
SIP phone AI has call!ACK to phone C
SIP phone AI'm in ur network with a callNOTIFY to B2BUA
 B2BUAExcellent!200 OK to phone A
 B2BUAOkay, you can get rid of the call leg nowBYE to phone A 
SIP phone ABye!200 OK to B2BUA 

Of course, it turned out that SIP phone A has a glorious bug when handling REFERs...

LolcatSIP signalling 
SIP phone AOh hai B2BUA, I can has call?INVITE to B2BUA
 B2BUASure thing200 OK to phone A
SIP phone AI has call!ACK to B2BUA
 B2BUAOk, go ahead and call phone B nowREFER to phone B
SIP phone AI has redirect!200 OK to B2BUA
SIP phone A Oh has SIP phone B, I can has call?INVITE to phone B
SIP phone BWaah! Give SIP phone C call!302 Temporary Redirect to phone A
SIP phone A Oh has SIP phone C, I can has call?INVITE to phone C
SIP phone CRing ring!180 Alerting to phone A
SIP phone CYou can has call!200 OK to phone A
SIP phone AI has call!ACK to phone C
Some time later
 B2BUAHey, what's happening?

If phone A receives a REFER, and the REFER target sends a 3xx-class response, then phone A stops sending NOTIFYs. Which means whatever initiated the REFER has absolutely no clue as to what's going on.

Phones B and C aren't bug-free either - both of those fail miserably at codec renegotiation, especially when being taken off-hold. Phone B apparently decided to send but not receive audio, and phone C seemed to decide that because the last codec negotiation was for on-hold, that's obviously what this negotiation must be trying to achieve.

The best bit? I'm not even testing these phones! All I'm trying to do is test various scenarios involving the B2BUA, and I keep on tripping across bugs in everything else!
Tags: computing, fail, sip
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments