Pull to refresh

Comments 185

Какой радиус действия такой сети?

Возможности приема сильно ограничены, если не проводить замену RX фильтров. Точную цифру еще предстоит узнать, но на текущий момент могу сказать, что сигнал в пределах квартиры устойчивый

Метров 30 в диаметре? На практике где-то можно проверить/посмотреть работу такого комплекса?
Небольшая модификация фирмвари позволяет повысить мощность трансивера моторолы до 2х ватт (очень не советую). Такая мощность + хорошая антенна + замена входного фильтра — датют очень хороший эффект. При включении такого девайса поблизости от реальной БС на том же ARFCN вызывает неприятный эффект в виде отключения несущей БС до пропадения помехи.
повысить мощность трансивера моторолы до 2х ватт

За проходной ждали пилоты. Крепкие ребята с хорошей реакцией.
№-10054084 Хроники лаборатории. 10 июня. Запускали…
может кто-то подскажет, где о таком усилении можно почитать?
Делал через модификацию dsp_extcode. Если очень надо, покопаюсь в своих файлах, в осмокомовских репозитория этого нет.
Да, можно посмотреть на практике, см. UPD в конце статьи
А если я ваабще ни разу в жизни линукс не видел и не работал с ним, у меня получится? или можт есть возможность проделпать то же самое на Виндовс?? или использоваать андройд смартфон? (он же на сколько я знаю на ядре линукса)
Заодно и изучите немного линукс в процессе установки. Для Windows то же самое проделать не получится. Использовать телефоны, отличные от тех, что построены на чипсете TI Calypso, не получится, так как у нас нет доступа к сигнальному процессору и возможности его перепрограммировать.
В смысле? Все, что указано в категории Софт использует ресурсы того, что указано в категории Железо.
Где железо то?

Это все софт
Компьютер, телефоны, конвертеры, провода…

Школьнику не понятно что здесь происходит.

Эхъ, отличная статья! Такую-бы еще по пейджерам найти, ато валяются без дела (:
Быстро нагуглился протокол POCSAG
Если учесть, что Osmocom появился спустя более чем 10 лет после появления коммерческих GSM сетей, то самое время начать осваивать POCSAG :)
В этой статье все «как для дибилов» — ну вот я понял. А зная про протокол и с моими навыками гугления — найти статью «от и до» — так и не смог.
Спасибо за статью!
Несколько вопросов:
Имеет ли смысл построить на таком маленькую офисную сетку если нет денег на фемтосоту?
Сложно ли перенаправлять из такой сетки звонки в Asterisk?
Спасибо за вопрос!

Теоретически эта сеть будет хорошо работать в офисе, но есть два момента:

1. Телефон не может одновременно принимать и передавать данные, поэтому он постоянно переключается на прием и передачу. В результате этого усилитель телефона в обычном режиме работает только 50% времени. Когда мы используем телефоны как передатчики для OsmoBTS, они работают в режиме передачи по 3-4 таймслота подряд, что создает дополнительную нагрузку на усилитель. Теоретически, при долгой работе такой базовой станции, усилители могут испортиться. У меня до сих пор ничего не случилось, но и дольше часа я их включенными не держал.

2. Такая конфигурация из 2-х телефонов может поддерживать голосовой вызов одновременно только между двумя абонентами. Для получения нескольких TCH каналов нужна дополнительная разработка.

3. У такой сети отсутствует шифрование, т.е. используется A5/0.

Что касается Asterisk то есть готовое звено для роутинга звонков через Asterisk osmo-sip-connector. Раньше использовался LCR.
3. У такой сети отсутствует шифрование, т.е. используется A5/0.

Шифрование реализуется на программном уровне, в планировщике OsmoBTS.
Его можно без проблем активировать и в такой сети, на базе CalypsoBTS.
Спасибо за поправку. Буду знать!
Я тут размышлял и решил уточнить про шифрование все таки. Слабо себе представляю, как его можно реализовать, если OsmoBTS никогда не узнает Ki и не сможет сгенерировать Kc. Наверное axilirator имел в виду программируемые сим-карты и этот гайд?

Просто чтобы не вводить читающих в замешательство. Если вы не хотите покупать программируемые сим-карты для такой офисной сети, а использовать сим-карты коммерческих операторов, то шифрования не будет. Если я не прав, пожалуйста, поправьте меня.
Не будет голосовой связи на двух калипсах нужен третий канал, похорошему нужно на каждый подключенный телефон по одному калипсо и один дополнительный общий калипсо на служебный канал, короче эта связь канальная а не пакетная! Я внизу вопрос сформулировал более по теме
Ниже ответил, что это не совсем так. Одного таймслота в режиме TCH/H достаточно для поддержания голосового вызова между двумя абонентами.
На всякий случай перед реализацией нужно хорошенько подумать о мощности сигнала и занимаемых частотах, чтобы не получить вдруг по голове от надзорных органов. Имхо — максимум всё описанное можно использовать в личных целях и на небольшое время, для фирмы же — это может обернуться слишком большими проблемами.

Почему телефон должен быть на чипе TI Calypso? Есть возможность использовать другие телефоны?

Потому что для отправки сообщений на логических каналах SCH, FCCH (что делает обычно BTS) мы должны уметь передавать бурсты специального вида, чего телефон делать не умеет (ему это ни к чему). Чтобы передавать на SCH и FCCH применяется специальный патч на DSP телефона на чипсете Calypso и DSP может отправлять Synchronization и Frequency correction бурсты. Никто (пока) не знает как получить доступ к DSP других телефонов.
А можно на Oscom сделать «удлиннитель» для сотовой связи?
Один комплект возить с собой в отпуск (к нему будет подключаться телефон с реальной SIM картой), второй комплект оставить дома, он будет подключаться к сети сотового оператора. Данные передавать по IP.
Может проще позвонить домой по VoIP?

Сложно себе представляю необходимость такого рода устройства, если у Вас есть доступ к Интернету.
Теоретически что-то такое реализовать возможно, но затраты того не стоят, считаю.
Просто позвонить не сложно.
Сложно делать исходящие вызовы со своего номера (не все сервисы это позволят).
И очень сложно принимать бесплатно входящие звонки на свой номер.
Таки комплект SIM+Модем с возможностью делать голосовые вызовы+Asterisk помогут вам в этом
Рабочий вариант, но тогда нужно оставлять родную SIM карту в том самом модеме :(
Есть, конечно, вариант со штукой sim bank|sim server, но он промышленный и явно Вам не подойдет, как по размерам, так и по стоимости :)
Лучше всего оставлять сим-карту в шлюзе|модеме в родной стране и в роуминге пользоваться своим номером с любого софтфона на телефоне/компьютере.
Вы вполне сможете пользоваться этим шлюзом и в домашнем регионе, вплоть до того, как не доберётесь до дому. Ну и SMS, вроде как, можно тоже через SIP переправлять. А так — не вижу особой причины, почему эту SIM нельзя оставить дома.
WiFi Calling как раз для этого сделан, только телефон «в отпуске» подключается к сети сотового оператора не по GSM/UMTS/Whatsever, а, как понятно из названия, по WiFi. Возможно будет работать и через адаптер USB-Ethernet, надо попробовать.

Пользуюсь WiFi Calling уже несколько месяцев — активируется через несколько секунд после подключения к вайфаю с доступом в интернет, работает даже если раздать вайфай на другом телефоне или планшете (tethering) и подключиться к нему. Чтобы быть уверенным, что точно не попадёшь на роуминг, можно включить в телефоне режим самолёта, а потом активировать только вайфай. Только SMS не всегда доходят по вайфаю, так что ради активации воцапа или подтверждения оплаты по SMS придётся активировать сотовую связь.
А можно поподробнее?
Кто-либо из операторов «большой четвёрки» в России такое поддерживает?
Сейчам уже вроде бы все операторы поддерживают, но не на всех тарифах и не на всех телефонах.
Айфоны обычно все начиная с 6 и SE, самсунги последние, вроде бы ещё Huawei P9/10 и некоторые Sony.
Тут прошлогодний обзор: http://www.stevsky.ru/internet/wifi-calling-obzor-kak-vkliuchit-mts-iphone-samsung-tele2-v-rossii-spisok-telefonov
Но уточните у своего оператора.
UFO just landed and posted this here
Знаю, но это только мегафон.
И через него вроде бы нельзя отправлять исходящие SMS на короткие номера по своему тарифу (или уже можно?) — к примеру, отправка SMS на номер 900 (сбербанк).
UFO just landed and posted this here
можно, но на сервис номера типа 900, это не сработает github
> Инструкции на официальном сайте устарели и мне пришлось потратить
> довольно много времени на их адаптацию. К счастью все проблемы были
> решены, и, если вы будете строго следовать советам ниже, то и у Вас
> все получится.

Большая просьба потратить еще немного времени и указать ссылку
на эту самую инструкцию. А еще лучше — обновить Wiki проекта,
поскольку со временем и Ваша инструкция может стать неактуальной.
Я не буду указывать ссылку на нерабочую инструкцию. Я добавлю все на Wiki, когда будет время, как и собирался.
> В результате мы запустим экспериментальную 2G сотовую сеть в пределах
> комнаты с поддержкой СМС и голосовых вызовов, без GPRS. Ее можно будет
> использовать для изучения работы и взаимодействия устройств и компонентов
> GSM сети, не вмешиваясь в коммерческие сотовые сети.

Как ни крути, «не вмешиваться в коммерческие сотовые сети» получается
не всегда. Частотные диапазоны сотовых сетей требуют наличия лицензии
и, чаще всего, уже поделены между существующими операторами. Однако,
найти свободный (например, Guard) диапазон можно.

Можно уехать далеко от цивилизации и никто тебя не побеспокоит.

> Как и сказано в начале, я рекомендую использовать Ubuntu 14.04,
> именно 32-битную ее версию.

Что не так с 64-битной версией? Весь стек Osmocom прекрасно
собирается как на Linux-based дистрибутивах, так и на BSD-based
любой разрядности. Если что-то не получается на конкретном дистрибутиве,
значит, скорее всего, Вы не умеете им пользоваться.
Читайте внимательно текст. Если Вы будете ТОЧНО следовать шагам в этой инструкции для 64-битной Ubuntu 16.04, у Вас ничего не получится. Это 100% рабочая инструкция для 32-битной Ubuntu 14.04. За другие дистрибутивы я не ручаюсь. Отличия в сборках есть, в частности и для fftw и libdbi. Вторая работает без проблем на 64-битной системе, в то же время есть ошибка для 32-битной версии (segmentation fault при доступе к HLR), о которой я написал в статье.
Некоторые пакеты собирать не обязательно, например: fftw, libdbi,
ortp можно без проблем найти в репозиториях Ubuntu / Arch Linux.
> Настраиваем трансиверы на следование таймеру коммерческой BTS

Постараюсь внести немного ясности. GSM использует две технологии
разделения множественного доступа: FDMA и TDMA. Первая позволяет
изолировать каналы базовых станций друг от друга по частоте,
вторая — (частично) избежать интерференции между абонентами,
разделяя поток данных на временные интервалы. В TDMA-системах
требуется наличие опорного генератора, который имеет достаточную
точность (в идеале, равную длительность фреймов).

Сам по себе телефон не имеет столь точного оборудования, поэтому
при его штатной работе синхронизация опорного генератора и
коррекция счетчика фреймов выполняется по SCH-берстам BTS.

В данном же случае, когда телефон сам используется в качестве
BTS, возникает необходимость использования точного опорного
генератора, чтобы абоненты не «плавали» по времени. Можно
использовать специальные дорогие устройства, можно использовать
сигналы GPS или Iridium, ну или, проще всего, синхронизировать
CalypsoBTS с другой базовой станцией. А получаемыми отсчетами
текущего номера фрейма делиться с планировщиком OsmoBTS.
UFO just landed and posted this here
Надо было писать jumper, спасибо!
Неочевидная проблема
После покупки джека убедитесь, что он может быть вставлен в гнездо гарнитуры до конца. В противном случае вы можете получить ошибки из-за ненадежного соединения с телефоном или вовсе его не иметь.

За вот это отдельное спасибо. Впервые запустить осмоком я (долго)пытался еще полгода назад, но тогда по непонятным причинам любая прошивка отказывалась грузится. Я даже другой телефон купил, а оказалось надо просто поработать напильником.

В скрипте download.sh ошыбка
ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz

не загружается, надо исправить на
http://www.sourceware.org/pub/newlib/newlib-1.19.0.tar.gz


Есть ли вариант сделать такое самодельное решение, но на 300-400 человек? Нужно сделать свою соту в глухом лесу, где не ловится ни одна сеть, но есть оптика. Желательно еще чтобы работала передача данных по 3G. Фемтосоты не предлагать, тут чисто спортивный интерес именно свою сеть сделать. Понятно, что старые мотороллы такое не потянут, нужно другое железо, причем за приемлемые для «спортивного интереса» деньги.
Дело в том, что 3G — уже совсем другой разговор.
Нужно сделать все то же самое, что для GSM и даже больше, так как 3G сети еще более сложные.
Пока я знаю, что sysmocom предлагапт купить такой kit для 3G.
В глухом лесу есть и еще одна проблема — деревья, которые поглощают радиоволны.
На Амазоне цена такой рации с DMR стартует от 35 баксов за штутку. И нужно проверять согласится ли сервис-посредник ее везти. А в РФ такие наверное еще дороже.
UFO just landed and posted this here

Спасибо.У меня получилось, я поднял на одном осмофоне, правда есть ограничение на звонки, но общаться можно, передавая смски.Как пробросить трафик через voip? чтобы можно было звонить на внешний номер, вроде можно с помощью проекта asterisk, но я не знаю как настроить эту систему.

По asterisku есть много инструкций в интернете и на хабре в том числе. Поищите. Для соединения с asterisk нужно использовать osmo-sip-connector. Я уже отвечал на этот вопрос выше
ХМММ…
А если телефон с сим картой будет, подключится ли он автоматически к этой сети, если её сигнал будет сильнее чем у остальных сетей?
Будет ли в это время возможность отправить на этот телефон СМС с помощью базовой станции…
А если телефон с сим картой будет, подключится ли он автоматически к этой сети, если её сигнал будет сильнее чем у остальных сетей?
Как я понимаю — телефон в первую очередь подключается к тому оператору, который вшит в симку, и только если его не находит совсем — может воспользоваться роумингом, то есть другими найденными сетями(если это разрешено в настройках).
Если Вы сконфигурируете MCC, MNC и имя сети, как у коммерческой (что незаконно), то устройство, имеющее SIM-карту под эти MCC и MNC должно подключиться к Вашей БТС. Но я лично это не проверял.
Но тогда это отличная лазейка для мошенников…
Можно присылать поддельные СМС например от номера 900, или делать рассылку спама…
Но нужно помнить, что телефон подключится к такой BST, только если не будет сетей оператора, предоставляющих больше услуг, т.е. 3G или 4G. Либо в телефоне будет выставлено специально «Только GSM».
Так остальные можно еще и глушить, ведь можно же только определенных операторов глушить…
Вариант с внесением ошибок в другие сети, даже проще чем усиление сигнала…
Верно. Или поймать абонента в месте, где 3G и 4G просто нет. Таких мест гораздо больше, чем может показаться на первый взгляд.

Вот всё бы хорошо, но rx-фильтры невыносимо режут возможности. Пробовал перепаять — при напайке плывёт плата телефона, либо, при меньшей температуре, плывёт сам фильтр (и это я ещё не пробовал напаивать новые конденсаторы). Не знаете случайно чем помочь?

Сам пока не перепаивал. Не хочу до конференции все сжечь. Но обязательно попробую после и отпишусь о результатах! В моих планах аккуратно выпаять фильтры при помощи оплетки и качественного паяльника, после напаять новые с первого/второго раза.

Да выпаять-то их можно просто аккуратно ткнув в каждый из них жало. Самые сочные проблемы начинаются при перепайке конденсаторов, размеры которых как раз и причиняют наибольшее количество проблем.

А изначальное предназначение этих фильтров какое?
Читаем основы радиоэлектроники. В данном случае используется два полосовых
фильтра, которые ослабляют сигналы вне рабочих диапазонов. Если подавать
сигнал с антенны на усилитель напрямую, то на выходе будет много шума.
Ну я имел виду изначальное предназначение этих фильтров в телефоне. И почему для обычной работы телефона они полезны, а тут мешают?
Для обычной работы фильтры не позволяют UL трафику других телефонов создавать помехи.
В случае сниффинга или работы в качестве базовой станции, мы должны как раз слушать на UL (в нормальном режиме телефон слушает на DL), а сигнал UL частот рубится RX-фильтрами. Поэтому они могут мешать.
Чтобы гарантированно ограничить сигнал от своей базовой станции, Вы можете соорудить Клетку Фарадея.


По опыту во многих случаях достаточно проводить опыты в подвале дома с толстыми стенами и или железо-бетонной конструкцией.
В этих условиях CalypsoBTS не заработает — Вам неоткуда будет взять стабильный Clock Source.
Единственный выход в данной ситуации — использовать свой аппаратный генератор, либо изменить
исходный код так, чтобы задействовать дополнительный телефон снаружи исключительно для приема
GSM SCH, GPS или Iridium.
Перепаивал с помощью инфракрасной паяльной станции, все прошло без проблем!!!

Характеристики станции не подскажете случаем? Алсо, чем пользовались в качестве увеличителя?

Он вам не скажет.Он всегда молчит..

Спасибо за статью! С нетерпением жду про использование wireshark для сниффинга мобильного трафика.

Но как-то где-то я читал, что обычные мобилки невозможно использовать в качестве передатчика на частотах от базовой станции к мобильной. Вы точно все в статье рассказали? Неужели передача на даунлинк частоте осуществляется через выходной фильтр, настроенный на аплинк частоты? Может в этом причина нестабильной работы и скорого выхода из строя передатчика? Там и помехи разные вместе с нестабильным приемом запросто должны вылезти.
Все я рассказать не мог. Это же туториал, а не полноценная научная статья про физическое устройство телефона, работу его передатчика и распространение волн в воздухе.
Можете изучить устройство чипсета самостоятельно тут.
>Если Вы сконфигурируете MCC, MNC и имя сети, как у коммерческой (что незаконно), то устройство, имеющее >SIM-карту под эти MCC и MNC должно подключиться к Вашей БТС. Но я лично это не проверял.

Проводил опыт по вышеуказанному принципу все абоненты находящиеся в радиусе 30-45 метров подключались автоматически…
Вероятно, не все, а только те, которые в силу разных причин не сидели в этот момент в сетях 3G и 4G.
коих можно «автоматически» в 2Дж перевести с помощью глушилки, заглушив 3Дж и 4Дж диапазоны…
А как же аутентификация? Она же не должна была пройти, т.к. ваш «оператор» не знает секретного ключа SIM карты… или это односторонняя защита — сеть может защититься от поддельной SIM'ки, а SIM'ка от поддельной сети — нет?
Насколько я помню в 2G сетях авторизация происходит на базовой станции, телефон/симкарта не проверяют базовую станцию на «реальность». По этому, имси кетчеры и работают.
в 3G сетях, проверяется аутентичность базовой станции, поэтому такие трюки там не пройдут.
>коих можно «автоматически» в 2Дж перевести с помощью глушилки, заглушив 3Дж и 4Дж диапазоны…

Полностью с вами в этом солидарен…
Добавлю к словам автора статьи несколько нюансов, которые могут немного упростить жизнь исследователям.
1. Использование шнурков от ардуино отличная идея, особенно для тех, кто не силен в пайке. Поскольку гнездо для штекера в старых моторолах, в большинстве случаев в не очень хорошем состоянии, можно аккуратно припаяться к контактам от штекера непосредственно на плате телефона, такое соединение будет куда более стабильным, чем соединение на штекере, которое, по моему опыту очень часто отваливается.
2. Телефоны с качественно перепаянными фильтрами можно найти в продаже на ebay, где они продаются одним продавцом, который довольно известный в исследовательских кругах (цена, правда, немного кусается).
3. Если руки не очень прямые, то можно договориться о перепайке фильтров в небольших сервисных центрах по ремонту телефонов, стоимость, в большинстве случаев, довольно небольшая.
4. Также, телефоны можно приобрести на известной китайской онлайн площадке, часто, они продаются там с уже усиленной антенной.
Опишите пожалуйста настройку соединения между двумя телефонами подключенными к вашей бтс, чтобы сделать голосовой звонок? Я так понимаю понадобится третий телефон с калипсо, как насчет маштабирования на третий телефон в конфигах??? Я пробовал лет эдак 7 назад на BT5 x64 но кроме как хриплой музыки при ожидании из астериска ничего не услышал… Интересно насколько продвинулась эта тема
Добрый день,

Чтобы совершить голосовой звонок между двумя абонентами достаточно одного таймслота, на который мы меппим TCH/H логический канал. Т.о. один один голосовой канал делится между двумя абонентами.
Так что один телефон у нас может работать в режиме CCCH+SDCCH4, другой в режиме TCH/H.
Это указано в конфиге OpenBSC. У меня в конфиге астериска вообще нет, чистый GSM. Качество голоса отличное.

Что касается использования 3,4 и более телефонов, то в открытом доступе не встречал такого рода веток OsmocomBB. Может быть такое и есть, сам не пробовал модифицировать. Может быть товарищ axilirator смог что-то такое собрать. Я кажется встречал его обсуждение с Sylvain Munaut по этой теме на мейл-листе.

Так же (раньше так было по крайней мере) и один телефон в режиме BTS не на идеально работает, так как не умеет принимать несколько burst-ов подряд, плюс нужно время на переключение с DL на UL и проч.
У меня астериск соединял абонентов по номерам которые он присваивал т.е управлял вызовом, а у вас как номера присваиваются я че-то отстал, надо перечитать спасибо большое!
Так что один телефон у нас может работать в режиме CCCH+SDCCH4, другой в режиме TCH/H.
Не совсем так. CCCH+SDCCH4 является Combined Configuration, при который до 4-ех абонентов
могут использовать данный таймслот одновременно (в основном, для СМС). На второй доступный
таймслот можно назначить SDCCH8 (Non-combined Configuration) и в результате получить еще
восемь одновременных соединений. Голос по таким каналам не ходит.

Когда на второй таймслот назначен TCH/H, два абонента могут одновременно использовать данный
таймслот. Дело в том, что кроме таймслотов существуют сабслоты, и у TCH/H их два. Абоненту дается
не целый таймслот, а один сабслот. Сам сабслот определяется номером (мульти)фрейма, на котором
один абонент может принимать / передавать данные. Иными словами, на одном фрейме первый
абонент использует данный таймслот, на другом фрейме второй абонент использует тот же таймслот.

Что касается использования 3,4 и более телефонов, то в открытом доступе не встречал такого рода веток OsmocomBB. Может быть такое и есть, сам не пробовал модифицировать. Может быть товарищ axilirator смог что-то такое собрать. Я кажется встречал его обсуждение с Sylvain Munaut по этой теме на мейл-листе.
Я пробовал менять slotmask, которая передается прошивке и определяет, когда CalypsoBTS может принимать данные, а когда передавать. Однако, все мои попытки приводили к ошибкам DSP.

В качестве альтернативного решения, можно использовать еще одну пару телефонов как отдельную
базовую станцию на другой частоте (ARFCN). Там можно будет назначить еще два TCH/H канала, в
результате чего еще два абонента смогут одновременно разговаривать.

А вообще, для запуска нормальной стабильной сети, лучше использовать что-нибудь более серьезное,
например, USRP или UmTRX.
Вот перечитал извините за повтор хочу уточнить у вас голосовой звонок проходит с мобильного А на мобильный Б через вашу бтс с двумя калипсами на двух каналах, или голосовой звонок с мобильного А на базу и автоатветчик на базе?
Абоненту А выдается сабслот 1 в TCH/H, абоненту B выдается сабслот 2 того же канала TCH/H. Так они и слышат друг друга. Через отправку/получение burst-ов на своих таймслотах. Какая база?
Я так и не понял вы говорили между двумя абонентами на двух калипсах или нет? Потому что у меня грабли были в кодеке на полудуплекс как вы это решили?
В моем тексте нигде не фигурирует третий телефон. Все. Это нужно осознать и больше не возвращаться:)
Какой полудуплекс? Какие грабли? Вы используете один из двух сабслотов TCH/H на UL и DL диапазонах.
Кодек AMR. Эта конфигурация у меня выжает нестабильную связь на виртуалке. Стабильное соединение только на физической машине. Может и у Вас такая проблема… Сложно понять про какие грабли идет речь.
Обращаю Ваше внимание, что в инструкции указано все в точности, как у меня и конфиги приложены точно такие, как у меня.
Вот сложно ответить «да» был выполнен голосовой звонок соединяющий двух абонентов сети построенной на двух телефонах калипсо, все без обид, я этим увлекался когда калипсы в каждом ларьке по 300 руб лежали а ftdi выколупывали из преходников на com порт, вместо фильтров ставили кондеры, и была только openBTS, а в osmocom только появился режим tranceiver. Вообще это просто жсм снифер поэтому третий телефон все равно нужен как ни крути чтобы входящего абонента перепихнуть на реальную соту при mitm атаке…
Да, никаких обид. Этот текст не имеет никакого отношения к атакам. Не понимаю о каком митме Вы говорите.
В данном тексте чтобы смотреть, что ваша CalypsoBTS отправляет в сеть и что принимает. Для изучения работы стека протоколов GSM.
Вот это и называется термином «атака человек по середине» не имеющим ничего общего с атаками в прямом смысле этого слова
Эээ сложно это назвать mitm я бы даже сказал не корректно. Это называется sniffing
Ууу а я думал сетевой анализатор…

Мм… как реализовать атаку, если ты не можешь звонить на внешний номер, я не хочу пока платить за voip, да и особо он мне и не интересен.Есть другой выход?

Почему не можешь — можешь! читай! сейчас не знаю раньше было, автор показал только функцию передатчика, даже если чего-то нет сам допиши все коды открытые… Там на форумах поспрашивай если сам написать не в силах, денег там прям каждый второй предлагает немеряно за готовое решение, но в открытом доступе маштабирования на 3 и более каналов нет с 2010

Там совместно с сотой нужен ещё дешифратор kc, я так понимаю что его нужно синхронизировать с сотой.Всё же попробую с sip.Жду с Китая две USB-TTL.Надеюсь два телефона на это хватит.

Уважаемый Аxilirator! А Вы планируете продолжать свои статьи про OsmocomBB… Или уже потеряли интерес???
Ответ в самом низу первой части моих статей.
У меня лет 10 назад была идея для поиска потерявшихся туристов. Я даже письмо в МЧС писал. У туристов, как правило, с собой имеются мобильные телефоны, пусть и выключенные. Туристы теряются в тех местах, где связи нет, в противном случае они бы сами позвонили и сообщили, что с ними всё в порядке, или вызвали помощь. Так вот, идея заключается в том, что на легкомоторный самолёт или вертолёт, который используется в поисковой операции, устанавливается вот такая мини базовая станция и громкоговоритель, через который постоянно транслируется: «Потерявшаяся группа! Включите мобильный телефон!» Туристы включают мобильный телефон, базовая станция сразу сообщает, что есть соединение, оператор выясняет, что там с этими туристами, нужна ли им помощь и т.д.
Сейчас в каждом телефоне туриста есть навигатор со спутника, поэтому пока батарейка не сядет он не заблудится!!!
Это сейчас. Напоминаю — дело было лет 10 назад. Впрочем, и сейчас не во всех телефонах навигаторы есть, хотя и во многих имеются.

Ситуация: заболел или травма, идти не может, даже если у него навигатор есть. Сидит и ждёт помощи.
Да кстати есть такие одиночки альпинисты, у них рации мощные, помню были радио телефоны харвест до мобил они били километров на 100 а то и более в черте города, ну а в целом да ситуация не простая, ну думаю если туристы тогда должна быть группа в группе проводник имеющий лицензию и наверняка средство связи типа спутникового телефона, кстати давно не видел их в продаже. Ну а тогда наверно сигнальные ракеты спички сигнальный костер. Знаю что при запросе оператор может указать местонахождение с точностью до 300м значит это диапазон вещания соты, наверно костер эффективнее с точки зрения МЧС
Ну… альпинистов-то искать обычно не так трудно… но вот если сошла лавина и они где-то раскиданы по склону под снегом… и/или дети/подростки пропали в тайге с мобильником, то хорошее решение — искать по источнику радиосигнала например.
А рации на 100км, как я понимаю, жрут энергию как свинья помои и их не так много в пользовании как обычных мобилок, так что ваше решение, ИМХО, неплохой вариант. Хотя бы для простой пелегации. Особенно если на квадрокоптерах запускать.
А нужны ли SIM карты подключающимся? Насколько я понимаю, симка содержит ключ авторизации в сети, не?
Можно ли подключиться без симки вовсе? если да, то как?

И еще вопрос. Будет ли у подключившегося тот же номер, что «зашит» в симке? или там только ICCID, а номер назначается оператором?
Добрый день,

Номера, конечно, не будет того же, что назначает оператор, но Вы и сами это понимаете, судя по всему.

Что касается вопроса про SIM-карты, OsmoBSC имеет настройку, пускать в сеть только определенные IMSI, заранее занесенные в базу, или accept all, когда каждый, кто выберет нашу сеть, автоматически будет занесен в базу и авторизован.
Но Osmocom не знает Ki, зашитый в Вашей симке. Ki знает только оператор. Так что OsmoNTIB не может аутентифицировать Вас по SIM-карте другого оператора.

Можно купить SIM-карты от sysmocom и запрограммировать под Вашего «собственного» оператора, тогда Вы будете знать Ki.

Если же у вас вообще нет SIM-карты в телефоне, то Вы вряд ли сможете даже поиск сети выполнить на обычном телефоне и уж тем более подключиться к Calypso BTS.

В теории Вам нужно корректно пройти процедуру аутентификации в сети с использованием IMSI, Ki и проч.
Все это хранится на SIM-карте.

Возможно, если использовать телефон на основе OsmocomBB и приложения mobile, то можно задать IMSI без SIM-карты в настройках и процедура регистрации пройдет для Calypso BTS, но не пробовал. Это лишь мое предположение.
Спасибо!
Верно ли я понимаю, что вы использовали SIM-карты от sysmocom для тестов?
Можно ли купить dummy карты (вот такие, например) и перепрограммировать их?
Для тестов я использую собственный телефон или телефоны знакомых с коммерческими SIM-картами.
С ними и регистрируюсь в своей сети.
Если нужно изучать какие-то зашифрованные коммуникации, можно вставить симку в osmocombb-совместимый телефон и узнать Kc, чтобы расшифровывать свой трафик.

Есть программатор от Osmocom.
Но не все модели SIM-карт поддерживаются, насколько я понял.
Нужны, например, такие
Т.е. карта не связана с сетью никак и можно использовать любую, достаточно выбрать сеть вручную? Я был уверен, что карта — это идентификатор в сети. Т.е. в чужой сети она будет регистрироваться, только если сеть «принимает» карту. Не?

Или можно настроить BTS, чтобы та принимала все карты?
«Или можно настроить BTS, чтобы та принимала все карты?» — совершенно верно.

Обычная сеть не примет вашу карту, если с ней будет «что-то не так» (Роуминг не продоставляет оператор или еще что).

Карта — идентификатор сети, верно, она содержит ключ Ki, тот же, что и HLR оператора, т.о. сеть может опознать абонента.
Спасибо.Вопрос насчет сниффинга, когда я сканирую эфир, у меня в wireshark видны только пакеты GSMTAP, а где пакеты lapdm?
LAPDm должны быть вложены в GSMTAP. GSMTAP[LAPDm[L3]]] такое вложение.
Выйдет статья про сниффинг, там и будем разбирать такие вопросы.
Даже не знаю))у нас у друга одинаковые ОС (linux mint) с установленной osmocombb, и вот у него появляются пакеты lapdm и gsmtap тоже, а у меня только gsmtap, не знаю почему((( у меня трафик в файл не записывается.Хотя когда я снифферю с помощью свистка (tv tunner) то всё нормально, видны пакеты и lapdm и gsmtap, и траффик в файл записывается.Почему эти проблемы с motorol'koy c118…
Бесплатная связь получается? Остаётся вышки бесплатные расставить по миру
Кстати, на заглавном фото — силуэт одной из 4х башен радиоглушилки хрущёвских времён, такие глушилки тогда не давали слушать «Голос Америки».
Вот в Ростове на ул. Каяни ещё осталась:
https://fotki.yandex.ru/next/users/stalinets1/tag/радиоглушилка/album/1077/view/259?search-author=stalinets1&page=0
https://fotki.yandex.ru/next/users/stalinets1/tag/радиоглушилка/album/1077/view/203705?page=0&search-author=stalinets1
Правда, сейчас «крылья» на двух «крылатых» башнях уже демонтировали.
выпрыгивают ошибки во время сборки осмокомбб
может кто-то подсказать в чем причина и как их устранить?

Entering directory `/home/username/libosmocore/osmocombb/src/shared/libosmocore/build-target/src'
CC timer.lo
In file included from /usr/include/i386-linux-gnu/sys/types.h:216:0,
from /home/username/libosmocore/osmocombb/src/target/firmware/include/string.h:4,
from ../../src/timer.c:38:
/home/username/libosmocore/osmocombb/src/target/firmware/include/endian.h:5:24: fatal error: sys/_types.h: No such file or directory
#include <sys/_types.h>
^
compilation terminated.
make[4]: *** [timer.lo] Error 1
make[4]: Leaving directory `/home/username/libosmocore/osmocombb/src/shared/libosmocore/build-target/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/username/libosmocore/osmocombb/src/shared/libosmocore/build-target/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/username/libosmocore/osmocombb/src/shared/libosmocore/build-target'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/username/libosmocore/osmocombb/src/shared/libosmocore/build-target'
make: *** [shared/libosmocore/build-target/src/.libs/libosmocore.a] Error 2

Вы не установили какие-то зависимости в систему. Поищите в системе файл types.h в системе
sys/_types.h: No such file or directory
И установите пакет, чтобы он появился, может не поставили build-essential или еще что..

Много ошибок при сборке, например при сборке того же libdbi и FFT и osmocom'a)) пробовал на виртуальной машине (virtualBox) ОС:Ubuntu 14.04.5 может выложите свой образец? ^_^

Неделю назад я установил все на Debian 9 (32 бита) с использованием Nightly Builds пакетов. Попробуйте. См. UPD В начале этой статьи.

Ошибка при выполнении ./build.sh

gcc.info /root/gnu-arm-installer/src/gcc-4.5.2/gcc/doc/gcc.texi; \
fi
/root/gnu-arm-installer/src/gcc-4.5.2/gcc/doc/gcc.texi:89: warning: tex should only appear at the beginning of a line
/root/gnu-arm-installer/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end tex'
/root/gnu-arm-installer/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end multitable'
/root/gnu-arm-installer/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end titlepage'
Makefile:4052: recipe for target 'doc/gcc.info' failed
make[1]: *** [doc/gcc.info] Error 1
make[1]: Leaving directory '/root/gnu-arm-installer/build/gcc-4.5.2/gcc'
Makefile:5024: recipe for target 'all-gcc' failed
make: *** [all-gcc] Error 2
root@kali:~/gnu-arm-installer#

Да, верно. Нужно еще один патч использовать.
Добавьте строку в build.sh


patch -p < ../patch-gcc46-texi.diff

к остальным двум патчам.


Патч

— src/gcc-4.5.2/gcc/doc/gcc.texi.orig 2017-03-01 16:56:48.000000000 -0800
+++ src/gcc-4.5.2/gcc/doc/gcc.texi 2017-03-01 17:03:38.000000000 -0800
@@ -86,9 +86,15 @@
item GNU Press
tab Website: www.gnupress.org
item a division of the
-@tab General: tex press@@gnu.org end tex
+@tab General:
+@tex
+press@@gnu.org
+@end tex
item Free Software Foundation
-@tab Orders: tex sales@@gnu.org end tex
+@tab Orders:
+@tex
+sales@@gnu.org
+@end tex
item 51 Franklin Street, Fifth Floor
tab Tel 617-542-5942
item Boston, MA 02110-1301 USA
@@ -108,6 +114,7 @@
@sp 1
@insertcopying
end titlepage
+
@summarycontents
@contents
page

Я добавил строку в build.sh строку patch -p < ../patch-gcc46-texi.diff
но всё равно та же ошибка

/opt/osmocom/gnu-arm-toolchain/src/gcc-4.5.2/gcc/doc/gcc.texi:89: warning: tex should only appear at the beginning of a line
/opt/osmocom/gnu-arm-toolchain/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end tex'
/opt/osmocom/gnu-arm-toolchain/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end multitable'
/opt/osmocom/gnu-arm-toolchain/src/gcc-4.5.2/gcc/doc/gcc.texi:209: no matching `@end titlepage'
Makefile:4052: recipe for target 'doc/gcc.info' failed
make[1]: *** [doc/gcc.info] Error 1
make[1]: Leaving directory '/opt/osmocom/gnu-arm-toolchain/build/gcc-4.5.2/gcc'
Makefile:5024: recipe for target 'all-gcc' failed
make: *** [all-gcc] Error 2

а это куда добавить? — src/gcc-4.5.2/gcc/doc/gcc.texi.orig 2017-03-01 16:56:48.000000000 -0800
+++ src/gcc-4.5.2/gcc/doc/gcc.texi 2017-03-01 17:03:38.000000000 -0800
@@ -86,9 +86,15 @@ итд -это невозможно скопировать :)
Добавил.После запуска build.sh пишет:

— |--- ./gcc/doc/gcc.texi.orig 2017-03-01 16:56:48.000000000 -0800
|+++ ./gcc/doc/gcc.texi 2017-03-01 17:03:38.000000000 -0800
— File to patch:

Значит сделайте бекап файла gcc.texi.
И попробуйте в консоли выполнить команду patch -p < ../patch-gcc46-texi.diff
из каталога где лежит build.sh.
Патч должен примениться. Если нет, то нужно смотреть, почему. Патч должен "лечь" на файл.
В крайнем случае можно убрать все из build.sh до начала компиляции GCC, далее вручную исправить ошибки в gcc.texi, запустить build.sh и закончить процесс компиляции.

Ошибка при выполнении
cd osmocombb/src
make --при выполнении этой команды, лог:
configure: WARNING: syslog.h: section "Present But Cannot Be Compiled"
configure: WARNING: syslog.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for syslog.h... no
checking ctype.h usability... no
checking ctype.h presence... yes
configure: WARNING: ctype.h: present but cannot be compiled
configure: WARNING: ctype.h: check for missing prerequisite headers?
configure: WARNING: ctype.h: see the Autoconf documentation
configure: WARNING: ctype.h: section "Present But Cannot Be Compiled"
configure: WARNING: ctype.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for ctype.h... no
checking for size_t... no
checking for working alloca.h... no
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for doxygen... false
checking if gcc supports -fvisibility=hidden... yes
checking whether struct tm has tm_gmtoff member... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libosmocore.pc
config.status: creating libosmocodec.pc
config.status: creating libosmovty.pc
config.status: creating libosmogsm.pc
config.status: creating libosmogb.pc
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating src/vty/Makefile
config.status: creating src/codec/Makefile
config.status: creating src/gsm/Makefile
config.status: creating src/gb/Makefile
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating Doxyfile.core
config.status: creating Doxyfile.gsm
config.status: creating Doxyfile.vty
config.status: creating Doxyfile.codec
config.status: creating Makefile
config.status: creating config.h
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
cd shared/libosmocore/build-target && make
make[1]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
echo UNKNOWN > ../.version-t && mv ../.version-t ../.version
make all-recursive
make[2]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
Making all in include
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
GEN osmocom/core/crc16gen.h
GEN osmocom/core/crc16gen.h
GEN osmocom/core/crc32gen.h
GEN osmocom/core/crc32gen.h
GEN osmocom/core/crc64gen.h
GEN osmocom/core/crc64gen.h
GEN osmocom/core/crc8gen.h
GEN osmocom/core/crc8gen.h
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
Making all in src
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
GEN crc8gen.c
GEN crc16gen.c
GEN crc32gen.c
GEN crc64gen.c
make all-am
make[4]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
CC timer.lo
In file included from /usr/include/i386-linux-gnu/sys/types.h:216:0,
from /home/bart/osmocombb/src/target/firmware/include/string.h:4,
from ../../src/timer.c:38:
/home/bart/osmocombb/src/target/firmware/include/endian.h:5:24: fatal error: sys/_types.h: No such file or directory
#include <sys/_types.h>
^
compilation terminated.
make[4]: *** [timer.lo] Error 1
make[4]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make: *** [shared/libosmocore/build-target/src/.libs/libosmocore.a] Error 2
bart@bart-VirtualBox:~/osmocombb/src$ make
cd shared/libosmocore/build-target && ../configure \
--host=arm-none-eabi --enable-embedded --disable-shared \
--disable-tests ac_cv_header_sys_select_h=no \
--disable-tests ac_cv_header_sys_socket_h=no \
CFLAGS="-Os -ffunction-sections -I/home/bart/osmocombb/src/target/firmware/include -nostartfiles -nodefaultlibs"
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
../configure: line 1951: config.log: Permission denied
../configure: line 1961: config.log: Permission denied
make: *** [shared/libosmocore/build-target/Makefile] Error 1
bart@bart-VirtualBox:~/osmocombb/src$ sudo make
cd shared/libosmocore/build-target && ../configure \
--host=arm-none-eabi --enable-embedded --disable-shared \
--disable-tests ac_cv_header_sys_select_h=no \
--disable-tests ac_cv_header_sys_socket_h=no \
CFLAGS="-Os -ffunction-sections -I/home/bart/osmocombb/src/target/firmware/include -nostartfiles -nodefaultlibs"
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
checking for a BSD-compatible install...
/usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-none-eabi-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for arm-none-eabi-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... unsupported
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... arm-none-eabi
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... no
checking for arm-none-eabi-dumpbin... no
checking for arm-none-eabi-link... no
checking for dumpbin... no
checking for link... link -dump
configure: WARNING: using cross tools not prefixed with host triplet
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 805306365
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i686-pc-linux-gnu file names to arm-none-eabi format... func_convert_file_noop
checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for arm-none-eabi-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... unknown
checking for arm-none-eabi-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for arm-none-eabi-ar... no
checking for ar... ar
checking for archiver @FILE support... @
checking for arm-none-eabi-strip... strip
checking for arm-none-eabi-ranlib... no
checking for ranlib... ranlib
checking command to parse nm output from gcc object... ok
checking for sysroot... no
checking for arm-none-eabi-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for ANSI C header files... (cached) no
checking execinfo.h usability... no
checking execinfo.h presence... yes
configure: WARNING: execinfo.h: present but cannot be compiled
configure: WARNING: execinfo.h: check for missing prerequisite headers?
configure: WARNING: execinfo.h: see the Autoconf documentation
configure: WARNING: execinfo.h: section "Present But Cannot Be Compiled"
configure: WARNING: execinfo.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for execinfo.h... no
checking for sys/select.h... (cached) no
checking for sys/socket.h... (cached) no
checking syslog.h usability... no
checking syslog.h presence... yes
configure: WARNING: syslog.h: present but cannot be compiled
configure: WARNING: syslog.h: check for missing prerequisite headers?
configure: WARNING: syslog.h: see the Autoconf documentation
configure: WARNING: syslog.h: section "Present But Cannot Be Compiled"
configure: WARNING: syslog.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for syslog.h... no
checking ctype.h usability... no
checking ctype.h presence... yes
configure: WARNING: ctype.h: present but cannot be compiled
configure: WARNING: ctype.h: check for missing prerequisite headers?
configure: WARNING: ctype.h: see the Autoconf documentation
configure: WARNING: ctype.h: section "Present But Cannot Be Compiled"
configure: WARNING: ctype.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for ctype.h... no
checking for size_t... no
checking for working alloca.h... no
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for doxygen... false
checking if gcc supports -fvisibility=hidden... yes
checking whether struct tm has tm_gmtoff member... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libosmocore.pc
config.status: creating libosmocodec.pc
config.status: creating libosmovty.pc
config.status: creating libosmogsm.pc
config.status: creating libosmogb.pc
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating src/vty/Makefile
config.status: creating src/codec/Makefile
config.status: creating src/gsm/Makefile
config.status: creating src/gb/Makefile
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating Doxyfile.core
config.status: creating Doxyfile.gsm
config.status: creating Doxyfile.vty
config.status: creating Doxyfile.codec
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
cd shared/libosmocore/build-target && make
make[1]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make all-recursive
make[2]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
Making all in include
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
Making all in src
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make all-am
make[4]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
CC timer.lo
In file included from /usr/include/i386-linux-gnu/sys/types.h:216:0,
from /home/bart/osmocombb/src/target/firmware/include/string.h:4,
from ../../src/timer.c:38:
/home/bart/osmocombb/src/target/firmware/include/endian.h:5:24: fatal error: sys/_types.h: No such file or directory
#include <sys/_types.h>
^
compilation terminated.
make[4]: *** [timer.lo] Error 1
make[4]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make: *** [shared/libosmocore/build-target/src/.libs/libosmocore.a] Error 2
bart@bart-VirtualBox:~/osmocombb/src$
bart@bart-VirtualBox:~/osmocombb/src$ clear

bart@bart-VirtualBox:~/osmocombb/src$ sudo make
cd shared/libosmocore/build-target && ../configure \
--host=arm-none-eabi --enable-embedded --disable-shared \
--disable-tests ac_cv_header_sys_select_h=no \
--disable-tests ac_cv_header_sys_socket_h=no \
CFLAGS="-Os -ffunction-sections -I/home/bart/osmocombb/src/target/firmware/include -nostartfiles -nodefaultlibs"
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-none-eabi-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for arm-none-eabi-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... unsupported
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... arm-none-eabi
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... no
checking for arm-none-eabi-dumpbin... no
checking for arm-none-eabi-link... no
checking for dumpbin... no
checking for link... link -dump
configure: WARNING: using cross tools not prefixed with host triplet
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 805306365
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i686-pc-linux-gnu file names to arm-none-eabi format... func_convert_file_noop
checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for arm-none-eabi-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... unknown
checking for arm-none-eabi-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for arm-none-eabi-ar... no
checking for ar... ar
checking for archiver @FILE support... @
checking for arm-none-eabi-strip... strip
checking for arm-none-eabi-ranlib... no
checking for ranlib... ranlib
checking command to parse nm output from gcc object... ok
checking for sysroot... no
checking for arm-none-eabi-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for ANSI C header files... (cached) no
checking execinfo.h usability... no
checking execinfo.h presence... yes
configure: WARNING: execinfo.h: present but cannot be compiled
configure: WARNING: execinfo.h: check for missing prerequisite headers?
configure: WARNING: execinfo.h: see the Autoconf documentation
configure: WARNING: execinfo.h: section "Present But Cannot Be Compiled"
configure: WARNING: execinfo.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for execinfo.h... no
checking for sys/select.h... (cached) no
checking for sys/socket.h... (cached) no
checking syslog.h usability... no
checking syslog.h presence... yes
configure: WARNING: syslog.h: present but cannot be compiled
configure: WARNING: syslog.h: check for missing prerequisite headers?
configure: WARNING: syslog.h: see the Autoconf documentation
configure: WARNING: syslog.h: section "Present But Cannot Be Compiled"
configure: WARNING: syslog.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for syslog.h... no
checking ctype.h usability... no
checking ctype.h presence... yes
configure: WARNING: ctype.h: present but cannot be compiled
configure: WARNING: ctype.h: check for missing prerequisite headers?
configure: WARNING: ctype.h: see the Autoconf documentation
configure: WARNING: ctype.h: section "Present But Cannot Be Compiled"
configure: WARNING: ctype.h: proceeding with the compiler's result
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to openbsc@lists.osmocom.org ##
configure: WARNING: ## ---------------------------------------- ##
checking for ctype.h... no
checking for size_t... no
checking for working alloca.h... no
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for doxygen... false
checking if gcc supports -fvisibility=hidden... yes
checking whether struct tm has tm_gmtoff member... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libosmocore.pc
config.status: creating libosmocodec.pc
config.status: creating libosmovty.pc
config.status: creating libosmogsm.pc
config.status: creating libosmogb.pc
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating src/vty/Makefile
config.status: creating src/codec/Makefile
config.status: creating src/gsm/Makefile
config.status: creating src/gb/Makefile
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating Doxyfile.core
config.status: creating Doxyfile.gsm
config.status: creating Doxyfile.vty
config.status: creating Doxyfile.codec
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
cd shared/libosmocore/build-target && make
make[1]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make all-recursive
make[2]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
Making all in include
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/include'
Making all in src
make[3]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make all-am
make[4]: Entering directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
CC timer.lo
In file included from /usr/include/i386-linux-gnu/sys/types.h:216:0,
from /home/bart/osmocombb/src/target/firmware/include/string.h:4,
from ../../src/timer.c:38:
/home/bart/osmocombb/src/target/firmware/include/endian.h:5:24: fatal error: sys/_types.h: No such file or directory
#include <sys/_types.h>
^
compilation terminated.
make[4]: *** [timer.lo] Error 1
make[4]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/bart/osmocombb/src/shared/libosmocore/build-target'
make: *** [shared/libosmocore/build-target/src/.libs/libosmocore.a] Error 2
bart@bart-VirtualBox:~/osmocombb/src$


Вы все пытаетесь на Ubuntu 14.04 поставить? Тогда Вам нужно самостоятельно решить проблемы с отсутвием файлов в вашей ОС :)
Используйте apt-file, гугл и найдете нужные пакеты.

Да ubuntu.Вчера пробовал на debian 9, но я не знаю как установить deb Nightly Builds пакеты((

попробую разобраться.

Все очень просто. См. последнюю статью мою. Добавляете репозиторий и ключ. Потом apt-get update. Потом apt-get install libosmocore, например…
Но osmocombb нужно тулчейном собирать так же.

Обязательно, всё попробую)) скажите, не сталкивались ли с такой проблемой, при установке libosmo-dsp при выполнении команды make:

movsar-virtual-machine libosmo-dsp # make
make all-recursive
make[1]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp'
Making all in include
make[2]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include'
Making all in osmocom
make[3]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom'
Making all in dsp
make[4]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom/dsp'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom/dsp'
make[4]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom'
make[3]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include/osmocom'
make[3]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include'
make[2]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/include'
Making all in src
make[2]: Entering directory '/home/movsar/osmocombb/master/src/libosmo-dsp/src'
CCLD libosmodsp.la
/usr/bin/ld: /usr/local/lib/libfftw3f.a(apiplan.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libfftw3f.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:407: recipe for target 'libosmodsp.la' failed
make[2]: *** [libosmodsp.la] Error 1
make[2]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp/src'
Makefile:487: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/movsar/osmocombb/master/src/libosmo-dsp'
Makefile:373: recipe for target 'all' failed
make: *** [all] Error 2
movsar-virtual-machine libosmo-dsp #

Неправильно собрали libfftw3. Когда configure делали, не указали --enanle-float или что-то такое…
Или у вас 64 битная система. Там свои заморочки с fft.

Спасибо.Только что установил debian 9 x32 virtualbox, не можете подсказать как одним кликом скачать всю папку http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/ и произвести установку?

Вам это не нужно. Нужно добавить репозиторий в Debian осмокомовский и ставить через пакетный менеджер apk.

Нужно добавить репозиторий в Debian осмокомовский и ставить через пакетный менеджер apk.


Можете объяснить как?

Конечно.


Вот инструкция на английском
https://osmocom.org/projects/cellular-infrastructure/wiki/Nightly_Builds


Перевожу.


Открыли консоль под рутом.
Запускаете команды


wget http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/Release.key 
apt-key add Release.key
echo "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/ ./" > /etc/apt/sources.list.d/osmocom-nightly.list
apt-get update

Теперь можно устанавливать бОльшую часть осмокомовского софта так:
apt-get install libosomocore
apt-get install osmo или libosmo [Дважды нажали TAB] — видим список софта


И так далее...

Что то не получается, целый день пытаюсь… при установке libosmo-netif пишет: E: Не удалось найти пакет libosmo-netif.До этого еще были проблемы с рутом.Может всё таки поделитесь своим образом? ^_^

У меня нет образа, все стоит на реальной машине, не на виртуалке.
Выполните еще раз apt-get update, потом пробуйте установить пакеты.
Это точно работает. Боюсь, вам придется найти проблему самостоятельно.

root@debian:/home/movsar# apt-get install libosmo-netif
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
E: Не удалось найти пакет libosmo-netif
root@debian:/home/movsar# apt-get install libosmo-netif

Лучше я смерюсь с этим.У меня есть одна ОС… с установленным openbts, но на нем нельзя совершать и записывать звонки.Спасибо вам за поддержку!

Antgorka, если заглушить подавителем частоту 1800 и 1900мгц то телефон перейдет на GSM900 ?

antgorka, я подключил симку в моторолку и запустил интерфейс для взаимодействия с симкартой, запустил wireshark, узнал arfcn на котором сидит моторолка и отправил смс и я заметил, что после отправки смс на телефон kc ключ сразу меняется, а tmsi нет, не знаете из-за чего это, я хотел перехватить входящую смс-ку с заранее извлеченым ключом kc, но это не возможно, из-за обновления ключа, хотелось бы узнать, из-за какой причины этот ключ меняется.Спасибо.

Один и тот же Kc не должен использоваться дважды для получения сервиса.(но может быть иначе, тогда абоненты такого оператора уязвимы)
Вы сначала узнайте Kc, через приложение mobile и этот Kc будет использоваться для следующей входящей СМС.
Wireshark можно не запускать чтобы узнать arfcn. Это можно сделатл так же через mobile. Кажется show ms.

Wireshark я запускал чтобы узнать есть ли мой tmsi на этом arfcn, и его я увидел, после того как отправил смс'ку.Я подозреваю что это hopping во всем виноват, кстати… он включен на этом arfcn канале, на этот раз ключ не меняется, но… когда отправляю с кодом восстановления (вк) смс'ку то телефон перепрыгивает с канала 90 на 715, и вообще, он каждые 30 сек перепрыгивает на разные каналы, тут уже видимо мой свисток на 1700мгц за 600 руб бесполезен,hopping + gsm1800 гыы)) есть какая нибудь идея обойти эти «санкции»?

Хоппинг для отправки СМС не используется. СМС отправляется на сигнальном канале. ARFCN который Вы видите в mobile — это ARFCN, где транслируется BCCH. В момент получения СМС телефон будет слушать на другом канале, который Вы можете узнать из шифрованного сообщения, которое будет отправлено теоефонону сетью после успешного пейджинга. То что у Вас телефон постоянно прыгает может быть связано с тем, что у Вас виртуалка или плохой прием.

«В момент получения СМС телефон будет слушать на другом канале, который Вы можете узнать из шифрованного сообщения» можно подробнее? не очень понял.Как пакет называется?
Не удается совершить вызов, на консоле написано:
abis_rsl.c:1423 BTS 0 CHAN RQD: no resources for TCH/H 0x48
что делать?

Каналы неправильно настроены или с виртуалкой проблемы или с железом или собрали jolly ветку новым компилятором… вариантов много одним словом. Начните с проверки конфигов.

Спасибо.А можно позвонить на внешний номер? где настраивается sip конфиг?

Смотрите последнюю статью в цикле, про атаки. Там рассказываю, как можно. Но, возможно вам понадобится использовать TCH/F, т.е. больше чем 2 телефона.

То есть, звонить внутри своей сети мы можем, а чтобы позвонить на внешний номер нужно 3 телефона? в чем разница то ?

Внутри GSM сети Вы используете TCH/H (Half-Rate) и один телефон может быть отдан под канал TCH/H, а TCH/H, в свою очередь, может обслуживать двух абонентов или один звонок между ними. Если вы подключаете Asterisk через osmo-sip-connector, он может некорректно работать с TCH/H, а потребует TCH/F (тут используются "классические" GSM кодеки). Но один TCH/F может обеспечить один телефон, значит, для двух абонентов Вам понадобится 2 телефона с TCH/F и один с BCCH (Beacon channel). Как-то так. К тому же для создания сети на основе 3-х телефонов, вам понадобится использовать две BTS, подключить их к OpenBSC и так далее, так как transceiver приложение не позволяет 3 телефона подключить, а только 2. В общем, есть над чем работать :) Может быть, у Вас заработает и с TCH/H и кодеком AMR Asterisk, попробуйте.

Я устанавливаю следующие пакеты

libosmocore
libosmo-abis
libosmo-netif
libosmo-sccp
libsmpp34
openbsc
openggsn
osmo-ggsn
osmo-pcap
osmo-stp (cellmgr-ng)
osmo-bts
osmo-trx
osmo-pcu
osmo-sip-connector

командой apt-get install
но когда доходит до пакета libosmo-netif
у меня в консоле пишет
root@nike-VirtualBox:/home/nike# sudo apt-get install libosmo-netif
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libosmo-netif
root@nike-VirtualBox:/home/nike#
что делать?))

Установите libosmo-netif из исходников, как раньше

Я тут устанавливаю пакет FFT, когда я выполняю команду make
мне пишет nothing to be done for 'all'
Antgorka, я всё собрал.Прошивки обе загружаются, но… когда я выполняю команду

sudo osmo-nitb -c ~/.osmocom/open-bsc.cfg -l ~/.osmocom/hlr.sqlite3 -P -C --debug=DRLL:DCC:DMM:DRR:DRSL:DNM
я получаю ошибку:

There is no such command.
Error occurred during reading the below line:
timer t3103 0

% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level everything
<0005> bsc_init.c:536 Failed to parse the config file: '/root/.osmocom/open-bsc.cfg'
Reading config failed. Exiting.

конфиги ваши поставил в папку /root/.osmocom
и кстати у меня osmocom в папке /home/ и ветка trx тоже, не подскажите как решить проблему?

Уберите строки из файла конфигурации, на которые ругается osmo-nitb. Все таймеры попробуйте убрать вообще.

Antgorka, теперь при выполнении команды osmo-bts-trx --debug DRSL:DOML:DLAPDM -r 99

появляется это:
movsar-virtual-machine .osmocom # osmo-bts-trx --debug DRSL:DOML:DLAPDM -r 99
((*))
|
/ \ OsmoBTS
<0001> oml.c:1471 Initializing OML attribute definitions
There is no such command.
Error occurred during reading the below line:
fn-advance 30

% rtp bind-ip is now deprecated
Failed to parse the config file: 'osmo-bts.cfg'
movsar-virtual-machine .osmocom #

Не подскажите как решить?)
Я убрал эту строку из файла «fn-advance 30»
потом команда это жаловалась на другие команды и их я тоже убрал теперь пишет
You need to configure at least phy0

Уберите вообще все из файла. Потом запустите osmo-bts-trx, подключитесь к ней telnet-ом и настройте через CLI все, что нужно. Что нужно — можно посмотреть в моем конфиге и сделать по аналогии.

Не получается запустить osmo-bts-trx, пишет % rtp bind-ip is now deprecated
Failed to parse the config file: 'osmo-bts.cfg'

Здесь сказано, что параметр устарел. Сейчас в osmocom серьезные перемены происходят. Многие параметры могут не работать. Я говорил, что нужен пустой конфиг, а у Вас там как-то оказался устаревший параметр. Изучите работу в VTY osmobts и настройте минимум необходимых парасетров.

Ммм… да уж.Пробовал очистить, всё равно не то((
Sign up to leave a comment.