From f815b6decec7fe093d8dbcd9f1aa50c01a1b94f4 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 22 Apr 2014 17:44:04 +0200 Subject: [PATCH] sip: In case the redirect does not return a call release the other end Deal with a possible failure in the redirect case. Release the remoteLeg if no new B-leg could be selected. --- src/call/SIPMTCall.st | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/call/SIPMTCall.st b/src/call/SIPMTCall.st index 5e33ea2..cd23cfb 100644 --- a/src/call/SIPMTCall.st +++ b/src/call/SIPMTCall.st @@ -58,8 +58,12 @@ Osmo.SIPCall subclass: SIPMTCall [ self releaseMscIdentity. newLeg := msc selectRedirectFor: self to: aContact. - remoteLeg changeRemoteLeg: newLeg. - remoteLeg := nil. + newLeg isNil + ifTrue: [ + self terminateRemote] + ifFalse: [ + remoteLeg changeRemoteLeg: newLeg + remoteLeg := nil]. ] sessionNew [