From: Damien Wedhorn Date: Tue, 14 Jan 2014 03:27:47 +0000 (+0000) Subject: Skinny: do not add call to missed calls list if answered elsewhere. X-Git-Tag: 13.0.0-beta1~656 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ec4d15c8e20aa010754980bd01dcc5abfa5801e;p=thirdparty%2Fasterisk.git Skinny: do not add call to missed calls list if answered elsewhere. 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 --- diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index c78a047822..35889748ee 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -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);