eCGI и CGI для сетей LTE и GSM
Я пытаюсь определить CGI (глобальный идентификатор ячейки), к которому подключено UE.
Из спецификаций 3GPP это определяется следующим образом:
- 3G: CGI = PLMN-ID + код LA + CID
- 4G: ЭКГ = PLMN-ID + ECI
Я уже могу получить LAC (код зоны расположения) и CID (идентификатор ячейки) из системы. И я могу генерировать PLMN-ID из MCC (код страны мобильной связи) и MNC (код мобильной сети).
У меня вопрос, могу ли я также получить CGI из системы?
1 ответ
CGI (2G и 3G) и eCGI (ofr 4G) всегда представляют собой 15-значный десятичный код
Для сетей 2G 3G и 4g пять первых цифр - это MCC (код страны мобильной связи) и MNC (код мобильной сети).
Для сетей 2G и 3G следующие 5 цифр - это LAC (код зоны расположения), а последние пять - идентификатор соты в LAC.
Для сетей 4G 10 цифр затем eNB и делятся на 7-значный код плюс 3-значный код для идентификатора ячейки.
Дело в том, что некоторые системы или приложения работают с целым CGI или eCGI, а другие системы работают со спаратными блоками: (MCC-MNC-LAC-CID или MCC-MCC-eNB)
Преобразование из 15-значного кода в блоки требует знания технологии ячейки, чтобы узнать, нужно ли разбивать 10-значные цифры на два 5-значных блока или на 7- и 3-значные блоки.
С другой стороны, если вы хотите "перевести" блоки в 15-значный код, вы должны дополнить блоки, чтобы достичь длины 15-значный, поэтому если у вас есть 213-01-123-5, это может быть 213010012300005 (2G или 3G) или 21301000012305
В Google API of geolocation есть необязательное поле для технологии, но я думаю, что оно должно быть обязательным.
Я боюсь, что это действительно будет проблемой.