written on Saturday, March 24, 2012
Телекомщики - мерзостные люди. Жадные пидарасы, предоставляющие хуевые услуги за ебанутые деньги, GSM - ебланская технология, замкнутая сама не себя, без возможности вытащить что-то наружу когда нужно. Самый правильный вариант - вообще не пользоваться этим говном, но он не всегда работает. У меня есть банк, у банка есть веб-интерфейс. При перетыкивании денег с одного счета на другой, мне на телефон приходит СМС с кодом подтверждения. Банк в хохляндии, а я в Бангкоке. Банк не умеет (или не хочет) слать номера на нехохлянские номера. Я не хочу таскать с собой украинскую симку и проебать доступ к деньгам, если симка потеряется, сломается, спиздится. Кроме того, перетыкивать симки мне западло - можно проебать обе. Кроме того, ебучие телекомщики-пидарасы, снимут с меня за одну СМС больше, чем я перекину денег.
Поскольку телекомщики - пидарасы, то выгружать СМС через няшный RESTовый апи они мне не разрешают. Отправлять со своего номера через интернет - разрешают ( с вводом капчи и ебаного пароля ), а принимать - нет. При том, что СМС все равно хранятся на сервере, пока телефон выключен, технология авторизации абонента у них есть и входящие СМС - бесплатны. Просто всем похуй на проблемы маргиналов, которые зачем-то выезжают из страны. Потомучто в системе ценностей хохла, быть умным - стыдно, хотеть чего-то - стыдно, иметь денег и выезжать заграницу - смертный грех. А решать чужие проблемы, да еще и за деньги - вообще нерелизуемый творческий концепт.
Окей, я выяснил, кто все эти люди, но пожаловаться - не значит решить проблему. Для решения проблем у меня есть руки, фрираннер и документация на апи freesmartphone.org. Если для приема СМС нужна симка и телефон, значит нужно взять симку и телефон, оставить в хохляндии включенные в розетку и получать на него СМС. Дальше СМС можно читать, заходя по ssh или редиректить на другой номер.
Фрираннер - это такой телефон, который лет пять назад хотели сделать адские опенсорц-задроты, причастные к проекту OpenEZX, немецкому хаос-компутинг, реализации опенсорцного GSM-стека и прочим тусовочкам маргиналов-специалистов. Аппарат сделали более-менее, но софт не осилили. Три раза все переписывали - от внутреннего апи (енжой ер дбас) до юзер-интерфейса, но все так и осталось говном даже спустя пять лет. Проект провалился, но телефон у меня остался и оказался вполне рабочим на тот момент, когда мне нужно было делать пересылку смс. Конструкция выглядит достаточно просто - телефон, на котором крутится питоновый скрипт из 30 строк, ловящий евент прихода новой СМС и пишущий текст смс в логи, после чего отправляющий эту же смс на дргой номер, указанный в конфигурации (сорцы есть на гитхабе).
Почему фрираннер - говно? Наверное потому, что его делали не для использования нормальными людьми, даже не для использования гиками, вроде меня, в своих странных целях, а просто чтобы попереться от процесса создания. Все что мне нужно было - оставить аппарат включенным в розетку и иметь возможность заходить на него по ssh. Но телефон уходит в слип каждые пять минут. У телефона есть настройка, которая контроллирует, уходить в слип или нет. Настройка работает, для ее изменения есть гуй, но после ребута она сбрасывается в дефолт, потомучто сохранение настроек никто так и не сделал за все пять лет дроча на чистоту апи и тридцать разных видом интерфейса. С лучших традициях "нового дизайна" линупсового софта, нет никакого /etc/power.d/, в котором можно было бы отменить саспенд. В лучших традициях того же самого, ни один параметр длиннющего конфига той хуйни, которая уводит телефон в саспенд, не документирован. Через какое-то время я или прохакал нужный кусок питонового кода (повезло, что демон написан на питоне) или нашел в какой-то wiki-помойке нужный ключик для конфига и саспенд перестал вылезать.
Аналогичную проблему пришлось решать и с wifi. Как сделать, чтобы современный линупс, со всеми его нетворк-менеджерами, сразу после загрузки подключился к нужной wifi-сети? Ответ - никак. Нужно вынести нетворк-менеджер, написать конфиг wpa_supplicant и засунуть в /etc/rc.local, после чего заставить все это барахло запускать DHCP клиент при получении сети, а в случае фрираннера, нужно еще написать десяток строчек, включающих питание wifi-чипа. Естественно, нихуя из этого не документировано и отняло у меня пару дней ковыряния - совершенно на ровном месте.
Когда я сделал гейт, мне понадобилось сделать еще один. Второго фрираннера у меня не, поэтому пришлось реанимировать A1200 и ставить FS.O на него. После чего оказалось, что между той версией, которая стоит на моем фрираннере и той, что поставилась на A1200, охуенно изменили АПИ. Поменяли названия сигналов, поменяли порядок аргументов вообще везде, поменяли incoming на INCOMING. В документации одно, на фрираннере - другое, а интроспекция на A1200 показывает третее. Второй девайс у меня сделать не удалось - пока я боролся с установкой fs.o и угадыванием различий апи, оказалось, что девайс просто уходит в панику от сильного трафика на модеме, а поднимать версию ядра я уже не успел.
UPS: фрираннер заебал глючить и зависать, забрал симку из Одессы и таскаю с собой два телефона через всю ЮВА