Dear group members,
I would like to ask you a question regarding the timeouts and initiating/allocating an SDCCH channel for a subscriber inside of the GSM network. I am trying to modify some parts of OpenBSC (/openbsc/src/libmsc/rrlp.c) and to implement the MS-based RRLP in OpenBSC (to send assistance data in form of almanac, ephemeris, BTS geolocation data and GPS reference time to the MS).
At the moment I use the silent sms to start an RRLP request (send RRLP request + assistance data and then send the silent sms). But if it takes too long to send the assistance data OpenBSC starts from the beginning (send rrlp request + assistance data + sms again). I think this is because OpenBSC waits for an ack from the MS for the silent sms (which has not been sent) and therefore it's a timeout issue. As a quick hack I have modified parts of the code and got the RRLP to work (sent successfully these data and I got a position from the MS).
Just for the curious one, I commented out three lines just before the return, in /openbsc/src/libmsc/gsm_04_11.c in the function, gsm411_rx_rp_ack, the following lines:
//else //gsm411_release_conn(trans->conn);
/* free the transaction here */ //trans_free(trans);
and I changed one timer value from 10 to 100, in /openbsc/src/libbsc/bsc_rll.c in the function, rll_establish to:
osmo_timer_schedule(&rllr->timer, 100, 0);.
As I know what I did was wrong (since changing the timers and not releasing the channel properly influences the whole system) but I just did it for the purpose of testing and to see do I send correct data and does the RRLP work at all.
I hope you can give me some hints and guides how to allocate a channel for around 130 seconds and to send the RRLP assistance data within that channel without doing the above tricks. Once everything works properly I will provide the RRLP code.
Best regards, Refik Hadzialic