summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-01-06 10:02:18 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2013-01-06 10:02:18 +0100
commitdb536954528ad3c9344444f26181898175fc77a5 (patch)
tree47e0f11473a94b7d629fe1d6956b725998830e44
parent99d83d18eb0e0f004c85d613e37719de2c9cb562 (diff)
mobile: Display progress message, if received
-rw-r--r--src/host/layer23/src/mobile/mnccms.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c
index 2db81672..75cde8e4 100644
--- a/src/host/layer23/src/mobile/mnccms.c
+++ b/src/host/layer23/src/mobile/mnccms.c
@@ -32,6 +32,15 @@
#include <osmocom/bb/mobile/mncc.h>
#include <osmocom/bb/mobile/vty.h>
+/* FIXME: move this to libosmocore gsm_04_08.h */
+#define GSM48_PI_NOT_END_TO_END_ISDN 1
+#define GSM48_PI_DEST_ADDR_NOT_ISDN 2
+#define GSM48_PI_ORIG_ADDR_NOT_ISDN 3
+#define GSM48_PI_CALL_RETURNED_ISDN 4
+#define GSM48_PI_INBAND_INFO 8
+#define GSM48_PI_END_TO_END_ISDN 32
+#define GSM48_PI_QUEUEING 64
+
void *l23_ctx;
static uint32_t new_callref = 1;
static LLIST_HEAD(call_list);
@@ -373,6 +382,42 @@ int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg)
data->cause.value);
free_call(call);
break;
+ case MNCC_PROGRESS_IND:
+ vty_notify(ms, NULL);
+ switch (data->progress.descr) {
+ case GSM48_PI_NOT_END_TO_END_ISDN:
+ vty_notify(ms, "Call is in progress: "
+ "Not end-to-end PLMN/ISDN\n");
+ break;
+ case GSM48_PI_DEST_ADDR_NOT_ISDN:
+ vty_notify(ms, "Call is in progress: "
+ "Destination address not PLMN/ISDN\n");
+ break;
+ case GSM48_PI_ORIG_ADDR_NOT_ISDN:
+ vty_notify(ms, "Call is in progress: "
+ "Originating address not PLMN/ISDN\n");
+ break;
+ case GSM48_PI_CALL_RETURNED_ISDN:
+ vty_notify(ms, "Call is in progress: "
+ "Returned to PLMN/ISDN\n");
+ break;
+ case GSM48_PI_INBAND_INFO:
+ vty_notify(ms, "Call is in progress: "
+ "Inband information available\n");
+ break;
+ case GSM48_PI_END_TO_END_ISDN:
+ vty_notify(ms, "Call is in progress: "
+ "End-to-end PLMN/ISDN\n");
+ break;
+ case GSM48_PI_QUEUEING:
+ vty_notify(ms, "Call is in progress: Queueing\n");
+ break;
+ default:
+ vty_notify(ms, "Call is in progress\n");
+ }
+ LOGP(DMNCC, LOGL_INFO, "Call is in progress (descr=%d)\n",
+ data->progress.descr);
+ break;
case MNCC_CALL_PROC_IND:
vty_notify(ms, NULL);
vty_notify(ms, "Call is proceeding\n");