Я вот что подумал.
Бывают ситуации, когда неплохо бы организовать слежку за собой-любимым. Например, иногда я работаю в офисе, иногда - из дома. При этом хочется, чтобы меня всегда могли найти по некому единому "внутреннему" номеру телефона. Имеется в виду SIP-телефон, который подключен к Asterisk-у, который я сам и администрирую. То есть коллеге не надо думать-вспоминать-гадать где же я в данный момент времени нахожусь. Он набирает с любого офисного телефона, скажем, "666", и автоматически перенаправляется либо на такой же офисный телефон, либо на домашний телефон, либо на мобильный (если я в дороге), либо соединяется с аццким сотоной (если я помер).
Или, например, жена постоянно желает знать не пошёл ли я по бабам где я нахожусь. Теоретически можно сделать некий сервис а-ля веб-страничка либо приватный твиттер, в котором всегда будет отображаться моё текущее местоположение: в офисе, дома, в пути. Ага, заходишь туда, а там написано "Sergeich lost in transit".
Чисто технически в этом нет ничего сложного. Вопрос только в том, как осуществлять собственно отслеживание. Варианты могут быть следующими.
- Заходить самому на некую наперёд заданную веб-страничку и переключать ручками. Просто в реализации. Плохо то, что я буду стабильно забывать это делать.
- GPS / ГЛОНАСС. С одной стороны, это круто. С другой стороны - мне придётся с собой таскать аккумулятор от UPSы, ибо GPS весьма
жручпрожорлив. - Подключить соответствующую услугу у ОПСОСа. Во-первых, я не уверен что для неё существует API. Во-вторых, ОПСОС за это захочет денег, причём не всегда разумных. В-третьих, точность оставляет желать лучшего. В-четвёртых, таким образом нельзя различить ситуации "рядом с объектом" и "внутри объекта". В-пятых, я хочу следить за собой сам, а не привлекать к этому третьих лиц.
- Путём опроса подконтрольных мне Wi-Fi маршрутизаторов на предмет зарегистрированного в беспроводной сети смартфона.
Последний способ мне импонирует больше всего. Действительно, мой смартфон обычно всегда со мной. Если я его и забываю дома, то крайне редко, не чаще одного-двух раз в год. Если я покидаю какую-либо локацию, то устройство автоматически отцепляется от сети по тайм-ауту, если прихожу куда-то, где меня "знают", то прицепляется.
Вроде бы всё хорошо и вообще шоколадно, только на данный момент я пока что плохо себе представляю каким именно способом получать необходимые события. Тупо пинговать? Плохо. Тот же андроид, когда засыпает, перестаёт отвечать на пинги. По SNMP? Далеко не всякое сетевое оборудование его умеет.
К тому же, не уверен насчет андроидов, а вот айфно точно отцепляется и от вай-фая тоже когда уходит в спячку. То есть при таком раскладе даже SNMP не даст достаточной точности определения наличия-отстутствия.
Логичнее, конечно, было бы "стучать" на себя с самого смартфона, периодически проверяя наличие известных Wi-Fi сетей рядом. Но это надо собственное приложение писать, я такое ниасилю.
Если у вас, дорогие мои технари, есть ещё какие-нибудь мысли по данному поводу, прошу в комменты.