aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/ussd.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/libmsc/ussd.c')
-rw-r--r--openbsc/src/libmsc/ussd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/openbsc/src/libmsc/ussd.c b/openbsc/src/libmsc/ussd.c
index ac032439e..dd9503e1a 100644
--- a/openbsc/src/libmsc/ussd.c
+++ b/openbsc/src/libmsc/ussd.c
@@ -176,6 +176,7 @@ int on_ussd_response(struct gsm_network *net,
int rc = 0;
struct msgb *msg;
uint8_t *ptr8;
+ struct ss_header ssrep = *reqhdr;
switch (reqhdr->message_type) {
case GSM0480_MTYPE_REGISTER:
@@ -216,7 +217,8 @@ int on_ussd_response(struct gsm_network *net,
memcpy(ptr8, component, reqhdr->component_length);
msgb_put(msg, reqhdr->component_length);
- rc = gsm0480_send_component(trans->conn, msg, reqhdr);
+ ssrep.transaction_id = (trans->transaction_id << 4) ^ 0x80;
+ rc = gsm0480_send_component(trans->conn, msg, &ssrep);
if (reqhdr->message_type == GSM0480_MTYPE_RELEASE_COMPLETE) {
struct gsm_subscriber_connection* conn = trans->conn;