summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/gsm48_cc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/src/mobile/gsm48_cc.c')
-rw-r--r--src/host/layer23/src/mobile/gsm48_cc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_cc.c b/src/host/layer23/src/mobile/gsm48_cc.c
index a64f0324..78313228 100644
--- a/src/host/layer23/src/mobile/gsm48_cc.c
+++ b/src/host/layer23/src/mobile/gsm48_cc.c
@@ -477,6 +477,17 @@ static int gsm48_cc_rx_status(struct gsm_trans *trans, struct msgb *msg)
LOGP(DCC, LOGL_INFO, "received STATUS (cause %d)\n", cause.value);
+ /* process cause 43 (user-user mesage could not be delivered) */
+ if (cause.value == 43) {
+ struct gsm_mncc user;
+
+ memset(&user, 0, sizeof(struct gsm_mncc));
+ user.callref = trans->callref;
+ user.fields |= MNCC_F_CAUSE;
+ memcpy(&user.cause, &cause, sizeof(user.cause));
+ mncc_recvmsg(trans->ms, trans, MNCC_USERINFO_IND, &user);
+ }
+
return 0;
}