summaryrefslogtreecommitdiff
path: root/channels/chan_skinny.c
diff options
context:
space:
mode:
authorDamien Wedhorn <voip@facts.com.au>2014-01-14 03:27:47 +0000
committerDamien Wedhorn <voip@facts.com.au>2014-01-14 03:27:47 +0000
commit9ec4d15c8e20aa010754980bd01dcc5abfa5801e (patch)
treef378bbfedbea90a831f51d8bd720f69ee8ad104c /channels/chan_skinny.c
parent545593fe7ba1881a36c70140799e20f84d4ef425 (diff)
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
Diffstat (limited to 'channels/chan_skinny.c')
-rw-r--r--channels/chan_skinny.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index c78a04782..35889748e 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);