Good day, ladies and gentlemen
that's a great community you have. Mobile communications programming is a demanding field requiring best developers.
I would be extremely grateful if you find time to answer a couple of my simple questions.
I found myself reading the code of OsmoHLR project in order to understand how it works and how the GSUP protocol works (it seems that the only example of the GSUP-server is OsmoHLR). How do you understand the code when you need to modify it or accomplish other things that programmers usually do? It seems to not be documented much.
Though I feel fluent in C, I find it hard to understand what is going on there. I've come up with an idea of running the OsmoHLR with a debugger. But in order to see what actually happens in the code when the location update is being performed (for example) I need to have the real phone and the real BTS, don't I? How do you check that the code is working as intended?
Thank you very much!
Kind regards, Mykola Shchetinin
Hi Mykola,
As far as I followed the mailing list it looks like there is complete testing done with virtualized components, e.g. virtual phone or virtual BTS. Maybe check into those topics to see if you can run stuff without any equipment.
Cheers, Domi
- máj. 14. dátummal, 14:08 időpontban Mykola Shchetinin mykola@razormaker.com írta:
Good day, ladies and gentlemen
that's a great community you have. Mobile communications programming is a demanding field requiring best developers.
I would be extremely grateful if you find time to answer a couple of my simple questions.
I found myself reading the code of OsmoHLR project in order to understand how it works and how the GSUP protocol works (it seems that the only example of the GSUP-server is OsmoHLR). How do you understand the code when you need to modify it or accomplish other things that programmers usually do? It seems to not be documented much.
Though I feel fluent in C, I find it hard to understand what is going on there. I've come up with an idea of running the OsmoHLR with a debugger. But in order to see what actually happens in the code when the location update is being performed (for example) I need to have the real phone and the real BTS, don't I? How do you check that the code is working as intended?
Thank you very much!
Kind regards, Mykola Shchetinin
Hello Domi,
As far as I followed the mailing list it looks like there is complete testing done with virtualized components, e.g. virtual phone or virtual BTS.
Are you sure it was on this mailing list? I have looked through the mails for this year and haven't managed to find any mail on this topic.
Kind regards, Mykola
It seems like I found the software I can use to test this stuff - Virtual Um.
Links for osmo-newbies like me: https://osmocom.org/projects/cellular-infrastructure/wiki/Virtual_Um https://osmocom.org/projects/baseband/wiki/Mobile
Kind regards, Mykola
On Mon, May 14, 2018 at 6:35 PM, Mykola Shchetinin mykola@razormaker.com wrote:
Hello Domi,
As far as I followed the mailing list it looks like there is complete testing done with virtualized components, e.g. virtual phone or virtual BTS.
Are you sure it was on this mailing list? I have looked through the mails for this year and haven't managed to find any mail on this topic.
Kind regards, Mykola
Hi Mykola,
Here is the announcement http://lists.osmocom.org/pipermail/baseband-devel/2017-July/005341.html
See also:
https://osmocom.org/projects/cellular-infrastructure/wiki/Virtual_Um https://osmocom.org/projects/baseband/wiki/FakeTRX http://blog.ptsecurity.com/2018/03/how-to-assemble-gsm-phone-based-on-sdr.ht...
Regards Vasil
На 14.05.2018 в 18:35, Mykola Shchetinin написа:
Hello Domi,
As far as I followed the mailing list it looks like there is complete testing done with virtualized components, e.g. virtual phone or virtual BTS.
Are you sure it was on this mailing list? I have looked through the mails for this year and haven't managed to find any mail on this topic.
Kind regards, Mykola
On Mon, May 14, 2018 at 03:08:04PM +0300, Mykola Shchetinin wrote:
Though I feel fluent in C, I find it hard to understand what is going on there.
osmo-hlr is receiving GSUP requests and replies to them. In hlr.c you will see osmo_gsup_server_create() putting in place the read_cb() you'll find in the same file, the main entry point. The read_cb will be invoked by the osmo_select_main() loop whenever a GSUP client connects and sends a request. That should get you started with the code.
Testing wise, we have https://git.osmocom.org/osmo-ttcn3-hacks/tree/hlr/HLR_Tests.ttcn which you can run from https://git.osmocom.org/docker-playground/tree/ttcn3-hlr-test in docker images with fairly minimal effort and without any cellular hardware.
You can also look at the real-hardware tests at https://jenkins.osmocom.org/jenkins/view/osmo-gsm-tester/job/osmo-gsm-tester... which have detailed logs and network traces taken with actual modems and BTS equipent, e.g. at https://jenkins.osmocom.org/jenkins/view/osmo-gsm-tester/job/osmo-gsm-tester...
Of course really understanding in depth what is going on is not trivial; osmo-hlr is but a tiny component of a cellular network. Why are you particularly interested in the HLR?
~N
Dear Neels,
Thank you very much for the links.
osmo-hlr is receiving GSUP requests and replies to them. In hlr.c you will see osmo_gsup_server_create() putting in place the read_cb() you'll find in the same file, the main entry point. The read_cb will be invoked by the osmo_select_main() loop whenever a GSUP client connects and sends a request. That should get you started with the code.
Thank you. The thing that made me confused at first is the linked list (g_lu_ops) which contains lu_operations. But it seems I am gradually beginning to understand what is going on. Currently, I am compiling Osmocom-BB to test all the stuff with Virtual Um. I am going to set a few breakpoints in OsmoHLR to see how it goes :)
Why are you particularly interested in the HLR?
We are going to write a simple proxy which converts from GSUP to MAP and vice versa. While that is not going to be easy, we have enough time and motivation for that.
King regards, Mykola
Hi Mykola,
On Tue, May 15, 2018 at 04:49:01PM +0300, Mykola Shchetinin wrote:
We are going to write a simple proxy which converts from GSUP to MAP and vice versa. While that is not going to be easy, we have enough time and motivation for that.
Great! I sincerely hope you will be releasing related software as free / open source software. Osmocom can only live if people contribute to it. We have a severe shortage of contributions, and a project with an enormously wide scope.
On 15. May 2018, at 21:49, Mykola Shchetinin mykola@razormaker.com wrote:
Why are you particularly interested in the HLR?
We are going to write a simple proxy which converts from GSUP to MAP and vice versa. While that is not going to be easy, we have enough time and motivation for that.
https://github.com/moiji-mobile/sgsn-mapproxy. It is for osmo-sgsn to HLR, has a reasonable amount of tests and is used in production (normal usage and ireg tests).
Great! I sincerely hope you will be releasing related software as free / open source software. Osmocom can only live if people contribute to it. We have a severe shortage of contributions, and a project with an enormously wide scope.
Anyway, if we reuse the osmocom code, then we have to use the same license :)
https://github.com/moiji-mobile/sgsn-mapproxy. It is for osmo-sgsn to HLR, has a reasonable amount of tests and is used in production (normal usage and ireg tests).
Wow, thank you very much. Actually, I thought that Smalltalk is dead (Or I was narrow-minded?). But it seems to be alive! :)
On Wed, May 16, 2018 at 2:02 PM, Holger Freyther holger@freyther.de wrote:
On 15. May 2018, at 21:49, Mykola Shchetinin mykola@razormaker.com wrote:
Why are you particularly interested in the HLR?
We are going to write a simple proxy which converts from GSUP to MAP and vice versa. While that is not going to be easy, we have enough time and motivation for that.
https://github.com/moiji-mobile/sgsn-mapproxy. It is for osmo-sgsn to HLR, has a reasonable amount of tests and is used in production (normal usage and ireg tests).
On 16. May 2018, at 19:17, Mykola Shchetinin mykola@razormaker.com wrote:
Wow, thank you very much. Actually, I thought that Smalltalk is dead (Or I was narrow-minded?). But it seems to be alive! :)
Hehe. Well, it is not as hyped as PHP or NodeJS but that is not a bad thing. ;)
From Harald: Great! I sincerely hope you will be releasing related software as free / open source software. Osmocom can only live if people contribute to it. We have a severe shortage of contributions, and a project with an enormously wide scope.
From Neels: Is your MAP proxy going to be Free Software? Since Osmocom lives from contribution, we would highly welcome you sharing your progress and code base with the Osmocom community. (It might even be hosted by osmocom.org??)
We have such plans indeed. I forgot to mention that it is related to Pentonet. I guess some of you've already had a conversation about this project with some of our guys.
On Tue, May 15, 2018 at 04:49:01PM +0300, Mykola Shchetinin wrote:
We are going to write a simple proxy which converts from GSUP to MAP and vice versa.
GSUP was/is specifically intended to be a simpler subset of MAP that should be easily compatible with MAP. An Open Source MAP proxy to SGSN exists, if that is of interest to you: https://github.com/moiji-mobile/sgsn-mapproxy
Anecdotal: GSUP came about because we wanted to connect osmo-sgsn to a 3rd party MAP. I wasn't around at the time, but as far as I understand, we invented GSUP to have a less complex C implementation that talks a leaner protocol over an expensive/slow link, and to convert to MAP closer to the core network and talk to the third party HLR. It was first called "GPRS Subscriber Update Protocol". Now we've started to use the same to talk between osmo-msc and osmo-hlr, and interface osmo-sgsn directly to osmo-hlr, hence now we renamed it to "General Subscriber Update Protocol".
So your plan indeed matches what above sgsn-mapproxy was intended for. I'm personally not familiar with MAP though, not sure what effort might be required to proxy for CS as well. And it's written in SmallTalk.
...just thought I'd mention this.
Is your MAP proxy going to be Free Software? Since Osmocom lives from contribution, we would highly welcome you sharing your progress and code base with the Osmocom community. (It might even be hosted by osmocom.org??)
~N