пятница, 26 сентября 2014 г.

«AlphaSMS» - сервис доставки SMS-сообщений

UPD: В настоящее время сервис закрыт по юридическим причинам (невозможность удовлетворить все требования новых поправок к Закону о связи РФ) и выставлен на продажу в виде исходного кода. По вопросам приобретения кода и прав на него связываться с Manoul Carnell в SL.

Как видно из названия, «AlphaSMS»доставляет sms-сообщения, отправленные из Second Life на мобильные телефоны. Более того, сервис доставит вам ответное сообщение обратно, в уютненький Second Life. «Надо же, как просто! Но я могу и так отправить sms, с телефона, зачем оно мне нужно?» - спросит иной пользователь и я отвечу.

Во-первых, API сервиса, которое было разработано, позволяет использовать его в различных прикладных решениях. Например, это может быть нотификация о каких-либо событиях, например, администрации сима о гриферской атаке; или же сообщения, посылаемые вендорами производителей; или же, как сделано сейчас, построен пейджер, который позволяет обмениваться смсками.

Думаете, это настолько банально? Вот уж, раз отвлеклись изначально от технической стороны, то давайте рассмотрим чисто житейскую ситуацию.

Мальчику нравится девочка, мальчик дарит девочке пейджер и сообщает свой номер телефона. Теперь девочка, заметьте, не оставляя своего номера мальчику (будем надеятся, до поры), может слать ему всякие романтические глупости. И мальчик может отвечать ей. Не это ли прекрасно?

Итак, теперь немного картинок, показывающих, как все просто на самом деле.

Рис.1

Итак, HUD очень прост и изящен - функционально мигающая лампочка, показывающая состояние сети и текстовое оповещение. Чтобы отправить сообщение, нужно по нему кликнуть. К слову сказать, пейджер активируется только будучи надетым как HUD. Выложенный на землю он отключается, будучи же приаттаченым к другим частям аватара, выдаст сообщение о правильном расположении, после чего отцепится и упадет обратно в инвентарь.

Рис.2

Все меню русифицированы изначально, поэтому сложностей ожидать не приходится - надписи на кнопках говорят сами за себя. "Баланс" показывает текущий баланс, "Обновить" вызывает принудительный сеанс передачи актуальных данных с сервера (в обычном режиме пейджер постоянно, через равные промежутки времени обменивается данными, но мы же понимаем, что SL тормозит там, где не глючит, и наоборот), "Пополнить" - понятно зачем, ну и самая главная кнопка - "Отправить"!

Рис.3

При нажатии на нее появляется окно отправки сообщения, где нужно указать телефон и сообщение. К сообщениям применяются все те правила, которые применяются к обыкновенным смс. На этом рисунке я не стал тянуть кота за хвост и сразу разместил скриншот с телефона. Сообщения доставляются относительно быстро, однако следует понимать, что операторов хватает и у каждого свои очереди доставки и другие странности, поэтому на разные операторы сообщения будут ходить каждое по-своему. Да и обычные смски ходят тоже точно таким же макаром.
Ну и хотелось бы коснуться вопроса пополнения баланса. Как все понимают, только коммерческая составляющая заставляет работать что-либо пресловутым "должным образом", поэтому в системе «AlphaSMS» все сообщения платные. Стоимость сообщения вычисляется в реальном режиме на основании запрошенных данных от оператора, сколько будет стоить вот такая длина текста на вот такой номер. Минимальная цена у нас получилась 8 за сообщение на телефон МТС. Однако, я бы все же отдал предпочтение минимальной стоимости в 10 при отправке на телефоны РФ и СНГ, за границу же стоимость может достигать и 40. В дальнейшем, с выпуском международной версии, возможно удастся цены как-то нивелировать.

Рис.3

Как же пополнить баланс? Для этого были разработаны специальные карты пополнения баланса на 100, 250, 500 и 1500. Несмотря на номинал, принцип использования карт един - ее просто нужно выложить на землю там, где работа скриптов не запрещена. В углу появится меню, предлагающее пополнить баланс. Если отвечаем положительно, карта превращается в тыкву, а на ваш счет в системе поступает указанная в номинале сумма. Если же вы откажетесь, тогда карта напомнит вам сохранить ее в инвентарь.
Карты можно передавать, поэтому их можно запросто дарить. Как в нашем примере - мальчик дарит карту девочке на 8 марта, а 9 марта она ему выносить мозг смсками ;) Жуть.

Что же касается технологии, будет некрасиво не сказать ни слова о ней... Казалось бы, простая задача за многие годы, которые прошли со времен первых симов, так никто и не представил подобного решения. Видел решения с бесплатными email-sms шлюзами, но это, как вы сами понимаете, совершенно не гарантирует доставку, не говоря уже о каком-то адекватном времени, которое она занимает.

На проверку оказалось, что анархия с кодировками текста до сих пор, в эпоху интернетов и юникодов, остается проблемой. Поэтому был написан довольно хитрый модуль определения кодировок и превращению зюк в буквы. Еще одна проблема подстерегала на этапе стабильного линка гаджета к серверам системы - все-таки СЛ есть СЛ, сами знаете. Ну и третья, серьезная проблема, с которой пришлось столкнуться, является культура пользователей. Так как законы РФ с некоторых пор ополчились на старый добрый мат, то операторы так и ждут, чтобы оштрафофать контрагента за шалости его клиентов. Так как люди из СЛ очень любят литературно шалить в стиле Луки Мудищева, пришлось поставить мат-фильтр и запретить мат, вкупе с рекламой, пунктом в Договоре-оферте.

Осталось самое-самое - сообщить, где же можно пробрести пейджер. Учитывая гон и фокусы с банами за трансферы с ворованными линден-долларами, продажи пейджера и карт пополнения происходят только через маркет; никаких вендоров in-world, во всяком случае, моих. Поэтому все желающие могут пройти по ссылке и приобрести безопасно и с гарантией через официальный сайт - https://marketplace.secondlife.com/stores/9085

Покупая пейджер, вы уже имеете на счету  50 и сразу можете отправлять сообщения. Пейджер не стоит ничего - вы платите только за свои SMS.

Наслаждайтесь! ;)

P.S. Всё-таки этот материал нельзя считать полноценной технической статьёй, понимаю. Что ж, в следующий раз я расскажу тогда что-нибудь более интересное, например, как устроен эпический транклюкатор, который я так и не успел доделать на Плюке, но есть шанс, что сделаю на Техлабе.