mobile: addition to 47f05aefdf
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.
This commit is contained in:
parent
e627eee596
commit
73a15c6300
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -207,6 +207,15 @@ static void display_useruser(struct osmocom_ms *ms, struct gsm_mncc *data)
|
|||
{
|
||||
const char *text;
|
||||
|
||||
/* if a status message is received with cause 43 */
|
||||
if ((data->fields & MNCC_F_CAUSE) && data->cause.value == 43) {
|
||||
vty_notify(ms, "Network say that user-user message cannot be "
|
||||
"delivered\n");
|
||||
LOGP(DMNCC, LOGL_INFO, "Network say that user-user message "
|
||||
"cannot be delivered\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* if not user-user message is present, we are done */
|
||||
if (!(data->fields & MNCC_F_USERUSER))
|
||||
return;
|
||||
|
@ -475,6 +484,7 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
|
|||
vty_notify(ms, "Call is answered\n");
|
||||
LOGP(DMNCC, LOGL_INFO, "Call is answered\n");
|
||||
display_useruser(ms, data);
|
||||
call->connect = 1;
|
||||
break;
|
||||
case MNCC_SETUP_IND:
|
||||
vty_notify(ms, NULL);
|
||||
|
|
Loading…
Reference in New Issue