From 8156494f36e2ef8f388aeb698baf964b5e3eb349 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Mon, 20 Jan 2014 10:43:37 +0100 Subject: BS11: send MRPCI message after HANDOVER COMPLETE and ASSIGNMENT COMPLETE This message is required for each activated channel. It is sent after activating channel, due to IMMEDIATE ASSIGNMENT already (after paging response or CM service request). Also it is required for the activated channel after late assignment or handover. It has been successfully tested with late assignment and handover to the same BTS. --- src/libbsc/bsc_api.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c index 271eb4a7b..a321669e8 100644 --- a/src/libbsc/bsc_api.c +++ b/src/libbsc/bsc_api.c @@ -485,12 +485,27 @@ int gsm0808_page(struct gsm_bts *bts, unsigned int page_group, unsigned int mi_l return rsl_paging_cmd(bts, page_group, mi_len, mi, chan_type); } +static void send_siemens_mrpci_after_ass_ho(struct gsm_subscriber *subscr, + struct gsm_lchan *lchan) +{ + struct gsm_equipment *equipment = &subscr->equipment; + uint8_t classmark2_lv[equipment->classmark2_len + 1]; + + classmark2_lv[0] = equipment->classmark2_len; + memcpy(classmark2_lv + 1, equipment->classmark2, classmark2_lv[0]); + + send_siemens_mrpci(lchan, classmark2_lv); +} + static void handle_ass_compl(struct gsm_subscriber_connection *conn, struct msgb *msg) { struct gsm48_hdr *gh; struct bsc_api *api = conn->bts->network->bsc_api; + if (is_siemens_bts(conn->bts)) + send_siemens_mrpci_after_ass_ho(conn->subscr, msg->lchan); + if (conn->ho_lchan) { struct lchan_signal_data sig; struct gsm48_hdr *gh = msgb_l3(msg); @@ -655,6 +670,10 @@ static void handle_rr_ho_compl(struct msgb *msg) osmo_signal_dispatch(SS_LCHAN, S_LCHAN_HANDOVER_COMPL, &sig); /* FIXME: release old channel */ + if (is_siemens_bts(msg->lchan->conn->bts)) + send_siemens_mrpci_after_ass_ho(msg->lchan->conn->subscr, + msg->lchan); + /* send pending messages, if any */ flush_assignment_queue(msg->lchan->conn, 1); } -- cgit v1.2.3