Список регионов у связистов

Недавно столкнулся по работе с такой штукой как — определение региона и времени по DEF коду (по номеру телефона). Очень полезная штука при смс рассылке, что бы клиенты вас не ненавидели. К сожалению, точно определить время абонента по базам не представляется возможным, люди перемещаются и путешествуют. Но региональное распределение телефонных емкостей в большинстве соответствует текущему положению абонентов.

Базы DEF кодов доступны бесплатно в публичном доступе у ЦНИИС и Россвязи. Но оказывается, что по этим спискам какие-то странные номера регионов — Крым 84, Воронеж 39, Липецк 50. Единственное упоминание почему это так я нашел в статье на хабре

Забегая вперед, скажу, что краеугольным камнем всей логики обработки вызовов является роутинговый номер RN, который имеет следующий формат: DXXYY, где: D – всегда символ «D» XX – код региона согласно Конституции. Похож на код ГИБДД, но для многих регионов он не совпадает. Например, для RN код 55 – относится к Новгородской области, хотя у ГИБДД в Новгороде код 53.

Но вот проблема, коды регионов согласно конституции сейчас другие — какие-то области объединялись, приняли в свой состав Крым и т.д. и номера сместились. Перестроить же маршрутизацию из-за юридических движняков не возможно. Весь мир не будет перенастраивать оборудование из-за того, что в Крыму произошел референдум, а одна область перестала существовать.

Решил я получить обновленный список временных зон и кодов из имеющихся файлов и данных. Для этого потребуется еще 2 источника: список таймзон tzdata и Часовые пояса России. Еще скрипт и день или два времени, что бы ручками проставить пояса. Часовые пояса проставлены по большей части верно (TZ менее верно), UTC более. Чукотский автономный округ например имеет 3 пояса, у меня 1 (я адаптировал список для своей системы под свои нужды). Результат перед вами (актуален на начало мая 2016 года):

Наименование субъекта Идентификатор региона Номер субъекта согласно конституции Код ОКАТО Гост TZ UTC
Республика Адыгея 1 01 79 RU-AD Europe/Moscow +4
Республика Алтай 2 04 84 RU-AL Asia/Krasnoyarsk +7
Республика Башкортостан 3 02 80 RU-BA Asia/Yekaterinburg +5
Республика Бурятия 4 03 81 RU-BU Asia/Irkutsk +8
Республика Дагестан 5 05 82 RU-DA Europe/Moscow +3
Республика Ингушетия 6 06 26 RU-IN Europe/Moscow +3
Кабардино-Балкарская Республика 7 07 83 RU-KB Europe/Moscow +3
Республика Калмыкия 8 08 85 RU-KL Europe/Moscow +3
Карачаево-Черкесская Республика 9 09 91 RU-KC Europe/Moscow +3
Республика Карелия 10 10 86 RU-KR Europe/Moscow +3
Республика Коми 11 11 87 RU-KO Europe/Moscow +3
Республика Марий Эл 12 12 88 RU-ME Europe/Moscow +3
Республика Мордовия 13 13 89 RU-MO Europe/Moscow +3
Республика Саха (Якутия) 14 14 98 RU-SA Asia/Yakutsk +10
Республика Северная Осетия — Алания 15 15 90 RU-SE Europe/Moscow +3
Республика Татарстан 16 16 92 RU-TA Europe/Moscow +3
Республика Тыва 17 17 93 RU-TY Asia/Krasnoyarsk +7
Республика Удмуртская 18 18 94 RU-UD Europe/Samara +4
Республика Хакасия 19 19 95 RU-KK Asia/Krasnoyarsk +7
Республика Чеченская 20 20 96 RU-CE Europe/Moscow +3
Чувашская Республика 21 21 97 RU-CU Europe/Moscow +3
Алтайский край 22 22 01 RU-ALT Asia/Krasnoyarsk +7
Забайкальский край 23 75 76 RU-ZAB Asia/Yakutsk +8
Камчатский край 24 41 30 RU-KAM Asia/Kamchatka +12
Краснодарский край 25 23 03 RU-KDA Europe/Moscow +3
Красноярский край 26 24 04 RU-KYA Asia/Krasnoyarsk +7
Пермский край 27 59 57 RU-PER Asia/Yekaterinburg +5
Приморский край 28 25 05 RU-PRI Asia/Vladivostok +10
Ставропольский край 29 26 07 RU-STA Europe/Moscow +3
Хабаровский край 30 27 08 RU-KHA Asia/Vladivostok +10
Амурская область 31 28 10 RU-AMU Asia/Yakutsk +9
Архангельская область и Ненецкий автономный округ 32 29 11 RU-ARK Europe/Moscow +3
Астраханская область 33 30 12 RU-AST Europe/Samara +4
Белгородская область 34 31 14 RU-BEL Europe/Moscow +3
Брянская область 35 32 15 RU-BRY Europe/Moscow +3
Владимирская область 36 33 17 RU-VLA Europe/Moscow +3
Волгоградская область 37 34 18 RU-VGG Europe/Moscow +3
Вологодская область 38 35 19 RU-VLG Europe/Moscow +3
Воронежская область 39 36 20 RU-VOR Europe/Moscow +3
Ивановская область 40 37 24 RU-IVA Europe/Moscow +3
Иркутская область 41 38 25 RU-IRK Asia/Irkutsk +8
Калининградская область 42 39 27 RU-KGD Europe/Kaliningrad +2
Калужская область 43 40 29 RU-KLU Europe/Moscow +3
Кемеровская область 44 42 32 RU-KEM Asia/Krasnoyarsk +7
Кировская область 45 43 33 RU-KIR Europe/Moscow +3
Костромская область 46 44 34 RU-KOS Europe/Moscow +3
Курганская область 47 45 37 RU-KGN Asia/Yekaterinburg +5
Курская область 48 46 38 RU-KRS Europe/Moscow +3
Липецкая область 50 48 42 RU-LIP Europe/Moscow +3
Магаданская область 51 49 44 RU-MAG Asia/Srednekolymsk +11
Мурманская область 53 51 47 RU-MUR Europe/Moscow +3
Нижегородская область 54 52 22 RU-NIZ Europe/Moscow +3
Новгородская область 55 53 49 RU-NGR Europe/Moscow +3
Новосибирская область 56 54 50 RU-NVS Asia/Omsk +6
Омская область 57 55 52 RU-OMS Asia/Omsk +6
Оренбургская область 58 56 53 RU-ORE Asia/Yekaterinburg +5
Орловская область 59 57 54 RU-ORL Europe/Moscow +3
Пензенская область 60 58 56 RU-PNZ Europe/Moscow +3
Псковская область 61 60 58 RU-PSK Europe/Moscow +3
Ростовская область 62 61 60 RU-ROS Europe/Moscow +3
Рязанская область 63 62 61 RU-RYA Europe/Moscow +3
Самарская область 64 63 36 RU-SAM Europe/Samara +4
Саратовская область 65 64 63 RU-SAR Europe/Moscow +3
Сахалинская область 66 65 64 RU-SAK Asia/Srednekolymsk +11
Свердловская область 67 66 65 RU-SVE Asia/Yekaterinburg +3
Смоленская область 68 67 66 RU-SMO Europe/Moscow +3
Тамбовская область 69 68 68 RU-TAM Europe/Moscow +3
Тверская область 70 69 28 RU-TVE Europe/Moscow +3
Томская область 71 70 69 RU-TOM Asia/Omsk +6
Тульская область 72 71 70 RU-TUL Europe/Moscow +3
Тюменская область 73 72 71 RU-TYU Asia/Yekaterinburg +5
Ульяновская область 74 73 73 RU-ULY Europe/Samara +4
Челябинская область 75 74 75 RU-CHE Asia/Yekaterinburg +5
Ярославская область 76 76 78 RU-YAR Europe/Moscow +3
г. Москва 77 77 45 RU-MOW Europe/Moscow +3
г. Москва и Московская область 77 50 46 RU-MOS Europe/Moscow +3
г. Санкт — Петербург 78 78 40 RU-SPB Europe/Moscow +3
г. Санкт — Петербург и Ленинградская область 78 47 41 RU-LEN Europe/Moscow +3
Еврейская автономная область 79 79 99 RU-YEV Asia/Vladivostok +10
Ханты — Мансийский — Югра АО 81 86 7110 RU-KHM Asia/Yekaterinburg +5
Чукотский АО 82 87 77 RU-CHU Asia/Kamchatka +12
Ямало — Ненецкий АО 83 89 7114 RU-YAN Asia/Yekaterinburg +5
Севастополь 84 92 67 RU-SEV Europe/Moscow +3
Республика Крым 84 91 35 RU-CR Europe/Moscow +3
Written on May 13, 2016