diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-01-14 11:13:18 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2013-01-14 11:13:18 +0100 |
commit | 73a15c630043221aa7753e000f02bdaa48b4debc (patch) | |
tree | 0ce55bcb5506e2e756a244182ad648884911f501 /src/host/layer23/src/mobile/gsm48_cc.c | |
parent | e627eee596b6d54d6e2c5393b88a4f0dea364175 (diff) |
mobile: addition to 47f05aefdf4eac7332aa4aa32238225e1c98aedbjolly/useruser
Fix for user-user message during call. If not delivered, the network sends
a status message with cause 43. This is now indicated to sending user.
Diffstat (limited to 'src/host/layer23/src/mobile/gsm48_cc.c')
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_cc.c | 11 |
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; } |