]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Skinny: do not add call to missed calls list if answered elsewhere.
authorDamien Wedhorn <voip@facts.com.au>
Tue, 14 Jan 2014 03:27:47 +0000 (03:27 +0000)
committerDamien Wedhorn <voip@facts.com.au>
Tue, 14 Jan 2014 03:27:47 +0000 (03:27 +0000)
Patch updates skinny devices with a SKINNY_CONNECTED callstate if an
inbound ringing or callwaiting call is answered elsewhere.
........

Merged revisions 405367 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@405369 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_skinny.c

index c78a0478226baf362251818b989c9e3cfb2f9fc2..35889748eeb01a4fefe1c9fb63d718a1a7f36ed5 100644 (file)
@@ -68,6 +68,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/manager.h"
 #include "asterisk/say.h"
 #include "asterisk/astdb.h"
+#include "asterisk/causes.h"
 #include "asterisk/pickup.h"
 #include "asterisk/app.h"
 #include "asterisk/musiconhold.h"
@@ -5772,6 +5773,10 @@ static void setsubstate(struct skinny_subchannel *sub, int state)
                        sub->related->related = NULL;
                }
 
+               if ((sub->substate == SUBSTATE_RINGIN || sub->substate == SUBSTATE_CALLWAIT) && ast_channel_hangupcause(sub->owner) == AST_CAUSE_ANSWERED_ELSEWHERE) {
+                       transmit_callstate(d, l->instance, sub->callid, SKINNY_CONNECTED);
+               }
+
                if (sub == l->activesub) {
                        l->activesub = NULL;
                        transmit_closereceivechannel(d, sub);