summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2016-03-26 06:20:54 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2016-03-26 06:22:06 +0100
commit71fbe870d896bfc2f6032b932254aac01b841fd1 (patch)
tree292d6a399908cd5b7a789ad6a5018b2c734a8d4c
parentd3d8348c6233302a3655b28ad4afc276202d030a (diff)
mncc: In case of a disconnect.ind inform the other leg
In case the call got disconnected propagate it to the other leg of the call.
-rw-r--r--src/mncc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mncc.c b/src/mncc.c
index a4ef191..b144a06 100644
--- a/src/mncc.c
+++ b/src/mncc.c
@@ -401,6 +401,7 @@ static void check_disc_ind(struct mncc_connection *conn, char *buf, int rc)
{
struct gsm_mncc *data;
struct mncc_call_leg *leg;
+ struct call_leg *other_leg;
leg = find_leg(conn, buf, rc, &data);
if (!leg)
@@ -411,6 +412,10 @@ static void check_disc_ind(struct mncc_connection *conn, char *buf, int rc)
leg->base.in_release = true;
start_cmd_timer(leg, MNCC_REL_CNF);
mncc_send(leg->conn, MNCC_REL_REQ, leg->callref);
+
+ other_leg = call_leg_other(&leg->base);
+ if (other_leg)
+ other_leg->release_call(other_leg);
}
static void check_rel_ind(struct mncc_connection *conn, char *buf, int rc)