?

Log in

No account? Create an account
Epic technology fail - 'Twas brillig, and the slithy toves did gyre and gimble in the wabe [entries|archive|friends|userinfo]
Thomas

[ website | Beware the Jabberwock... ]
[ deviantArt | the-boggyb ]
[ FanFiction | Torkell ]
[ Tumblr | torkellr ]

Links
[Random links| BBC news | Vulture Central | Slashdot | Dangerous Prototypes | LWN | Raspberry Pi]
[Fellow blogs| a Half Empty Glass | the Broken Cube | The Music Jungle | Please remove your feet | A letter from home]
[Other haunts| Un4seen Developments | Jazz 2 Online | EmuTalk.net | Feng's shui]

Epic technology fail [Friday 8th July 2011 at 8:29 pm]
Thomas

boggyb
[Tags|, , ]
[Where |We are now approaching Amberly. Please mind the gap between the platform and the train.]
[Feeling |peacefulpeaceful]
[Playing |Mirrorshades radio]

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!
Link | Previous Entry | Share | Next Entry[ Penny for your thoughts? ]