diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2018-11-29 01:20:58 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-02-13 12:50:14 +0000 |
commit | f20c6b7bd5200ed09d1563a1e61a5b62b033eeff (patch) | |
tree | eed7ddaba870735ce4cbdd0a478d1f20416be72e | |
parent | 896950ab82729e7ef5b57057aff797519d603b7f (diff) |
libmsc/gsm_04_80.c: use gsm0480_create_release_complete()
The previous implementation of msc_send_ussd_release_complete() was
based on gsm0480_create_ussd_release_complete(), that doesn't
allow to specify GSM 04.07 transaction identifier.
The ability to specify particular transaction identifier
is required for handling multiple SS/USSD transactions.
Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb
Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7
-rw-r--r-- | include/osmocom/msc/gsm_04_80.h | 3 | ||||
-rw-r--r-- | src/libmsc/gsm_04_80.c | 5 | ||||
-rw-r--r-- | src/libmsc/msc_vty.c | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index 29b800bad..073794b06 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -10,4 +10,5 @@ int msc_send_ussd_reject(struct ran_conn *conn, int msc_send_ussd_notify(struct ran_conn *conn, int level, const char *text); -int msc_send_ussd_release_complete(struct ran_conn *conn); +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id); diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 119f0e10f..502848f0e 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -78,9 +78,10 @@ int msc_send_ussd_notify(struct ran_conn *conn, int level, const char *text) return msc_tx_dtap(conn, msg); } -int msc_send_ussd_release_complete(struct ran_conn *conn) +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id) { - struct msgb *msg = gsm0480_create_ussd_release_complete(); + struct msgb *msg = gsm0480_create_release_complete(transaction_id); if (!msg) return -1; return msc_tx_dtap(conn, msg); diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index e1019a287..078b83aea 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -1149,7 +1149,9 @@ DEFUN(subscriber_ussd_notify, } msc_send_ussd_notify(conn, level, text); - msc_send_ussd_release_complete(conn); + /* FIXME: since we don't allocate a transaction here, + * we use dummy GSM 04.07 transaction ID. */ + msc_send_ussd_release_complete(conn, 0x00); vlr_subscr_put(vsub); talloc_free(text); |