summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/mnccms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/src/mobile/mnccms.c')
-rw-r--r--src/host/layer23/src/mobile/mnccms.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c
index c61ddc03..c4fee26e 100644
--- a/src/host/layer23/src/mobile/mnccms.c
+++ b/src/host/layer23/src/mobile/mnccms.c
@@ -408,9 +408,11 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
&& data->progress.descr == 8) {
vty_notify(ms, "Please hang up!\n");
call->call_state = CALL_ST_DISC_RX;
+ gui_notify_call(ms);
break;
}
free_call(call);
+ gui_notify_call(ms);
cause = GSM48_CC_CAUSE_NORM_CALL_CLEAR;
goto release;
case MNCC_REL_IND:
@@ -423,11 +425,13 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
LOGP(DMNCC, LOGL_INFO, "Call has been released (cause %d)\n",
data->cause.value);
free_call(call);
+ gui_notify_call(ms);
break;
case MNCC_CALL_PROC_IND:
vty_notify(ms, NULL);
vty_notify(ms, "Call is proceeding\n");
call->call_state = CALL_ST_MO_PROC;
+ gui_notify_call(ms);
LOGP(DMNCC, LOGL_INFO, "Call is proceeding\n");
if ((data->fields & MNCC_F_BEARER_CAP)
&& data->bearer_cap.speech_ver[0] >= 0) {
@@ -438,12 +442,14 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
vty_notify(ms, NULL);
vty_notify(ms, "Call is alerting\n");
call->call_state = CALL_ST_MO_ALERT;
+ gui_notify_call(ms);
LOGP(DMNCC, LOGL_INFO, "Call is alerting\n");
break;
case MNCC_SETUP_CNF:
vty_notify(ms, NULL);
vty_notify(ms, "Call is answered\n");
call->call_state = CALL_ST_ACTIVE;
+ gui_notify_call(ms);
LOGP(DMNCC, LOGL_INFO, "Call is answered\n");
break;
case MNCC_SETUP_IND:
@@ -550,6 +556,7 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
call->call_state = CALL_ST_MT_KNOCK;
}
update_ringer(call);
+ gui_notify_call(ms);
memset(&mncc, 0, sizeof(struct gsm_mncc));
mncc.callref = call->callref;
mncc_tx_to_cc(ms, MNCC_ALERT_REQ, &mncc);
@@ -568,24 +575,28 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
vty_notify(ms, "Call is on hold\n");
LOGP(DMNCC, LOGL_INFO, "Call is on hold\n");
call->call_state = CALL_ST_HOLD;
+ gui_notify_call(ms);
break;
case MNCC_HOLD_REJ:
vty_notify(ms, NULL);
vty_notify(ms, "Call hold was rejected\n");
LOGP(DMNCC, LOGL_INFO, "Call hold was rejected\n");
call->call_state = CALL_ST_ACTIVE;
+ gui_notify_call(ms);
break;
case MNCC_RETRIEVE_CNF:
vty_notify(ms, NULL);
vty_notify(ms, "Call is retrieved\n");
LOGP(DMNCC, LOGL_INFO, "Call is retrieved\n");
call->call_state = CALL_ST_ACTIVE;
+ gui_notify_call(ms);
break;
case MNCC_RETRIEVE_REJ:
vty_notify(ms, NULL);
vty_notify(ms, "Call retrieve was rejected\n");
LOGP(DMNCC, LOGL_INFO, "Call retrieve was rejected\n");
call->call_state = CALL_ST_HOLD;
+ gui_notify_call(ms);
break;
case MNCC_FACILITY_IND:
LOGP(DMNCC, LOGL_INFO, "Facility info not displayed, "
@@ -671,6 +682,7 @@ int mncc_call(struct osmocom_ms *ms, char *number)
}
}
call->call_state = CALL_ST_MO_INIT;
+ gui_notify_call(ms);
return mncc_tx_to_cc(ms, MNCC_SETUP_REQ, &setup);
}
@@ -709,6 +721,7 @@ int mncc_hangup(struct osmocom_ms *ms, int index)
}
call->call_state = CALL_ST_DISC_TX;
+ gui_notify_call(ms);
memset(&disc, 0, sizeof(struct gsm_mncc));
disc.callref = call->callref;
@@ -765,6 +778,7 @@ int mncc_answer(struct osmocom_ms *ms, int index)
}
call->call_state = CALL_ST_ACTIVE;
update_ringer(call);
+ gui_notify_call(ms);
memset(&rsp, 0, sizeof(struct gsm_mncc));
rsp.callref = call->callref;