Мало известный за пределами телеком-тусовки факт: когда вы звоните куда-нибудь со своего телефона, ваш номер, который отображается для входящего звонка – это просто произвольная текстовая строка, которую подставил ваш оператор сотовой связи. И если между двумя устройствами есть что-нибудь интересное, к примеру, машина с Asterisk или облако с Voximplant, то эту строку можно поменять на любую другую. Ситуация, когда при звонке вместо номера звонящего человека «рисуется» совсем другой номер называется маскировка телеком-данных (Phone Number Masking). И этот прием широко используется для решения ряда интересных задач. Читайте о них под катом.

Такси и другие Uber-like решения


Давать водителю настоящий номер клиента – не самая лучшая идея. Потом водитель может позвонить не по делу, – вот это всё. Подмена номера работает так: как только водитель принял заказ, это становится известно backend'у сервиса такси. И если водителю нужно позвонить клиенту, то вместо этого он звонит на специальный сервисный номер. Звонок приходит в облако Voximplant, где из JavaScript делается HTTP-запрос к backend и получает информацию о заказе. После чего облако звонит клиенту, и, как только он берет трубку, соединяет его со входящим звонком от водителя. Если вам интересны подробности, почитайте, как это реализовано у Wheely.

Такой способ позволяет водителю и клиенту не знать номера друг друга: все звонки идут через облако. В исходящем звонке до клиента Caller ID устанавливается в номер контакт-центра. Благодаря этому, если клиент после поездки позвонит на “номер водителя”, его встретит голосовое меню и предложит связаться либо с водителем, либо с оператором контакт-центра. И если водитель не работает, то клиенту можно предложить что сервис сам ему перезвонит когда водитель выйдет на работу. Также все разговоры можно записать, запись распознать – для более быстрого контроля качества. Все эти функции можно реализовать в несколько строчек JavaScript-кода:


Доставка и курьерские службы


Похоже на сервисы такси, но со своими нюансами. Очень часто звонки делают не через сотовую связь, а с помощью приложений: курьеры звонят для согласования логистики, а интернет сейчас сильно дешевле даже оптовых предложений на сотовую связь для компаний. Выглядит это следующим образом: у курьера есть веб/android/ios-приложение с кнопкой «связаться с заказчиком». При нажатии на неё соответствующий SDK устанавливает TCP/WebSocket подключение к облаку Voximplant, сигнализирует звонок и передает голос по протоколу (S)RTP. При звонке обратно курьеру используется механизм Push-уведомлений, так что даже если приложение закрыто, это не помешает «достучаться» до службы доставки.

Если использовать одно облако для всей коммуникационной автоматики, то можно делать интересные интегрированные решения. Например, вызвав облачный JavaScript-сценарий через HTTP API можно подтвердить доставку. А с помощью голосового меню клиент может прямо из этого звонка связаться с курьером, если он сейчас доступен, или с контакт-центром. При этом маскировка номера делает клиенту «один номер» на который он «просто звонит». А под капотом JavaScript по положению звезд определяет, куда отправить звонок.


Веб интерфейсы систем управления заказами


Благодаря WebRTC (наша свежая статья про WebRTC) можно звонить с веб-страниц и на веб-страницы, а облако с JavaScript наперевес коммутирует эти звонки с традиционной телефонией. Маскировка номера работает и здесь. Откуда номер у веб страницы? Для всех исходящих звонков из CRM облако клиенты подставляют свой «внешний» номер телефона. Если на этот телефон позвонят, то дальнейшие действия со звонком просто прописывается в JavaScript-сценарии. Например, распределить на того оператора колл-центра, с которым клиент общался последний раз. Или автоматически рассказать о статусе заказа. Или эскалировать звонок на поддержку второго уровня, если это пятый звонок за час.

Зачем нужна маскировка номера


Многие компании, например Uber, напрямую связывают своих клиентов с водителями. Но по интернету гуляет много историй, когда сохранившийся в логах звонка номер затем использовался не по назначению, особенно в ночь с пятницы на понедельник, после тяжелых трудовых будней. Маскировка номера позволяет избежать случайностей и звонков в три часа ночи. А делается это одной строкой в JavaScript-коде.

Фотография до ката взята из блога.
Поделиться с друзьями
-->

Комментарии (21)


  1. mickvav
    24.07.2017 16:48
    +3

    То есть воткнув абстрактный asterisk между мной и трубкой и зная рабочий телефон кого-то важного, можно позвонить кому-то менее важному и при надлежащей актерской игре, принудить того сделать что-нибудь полезное, так?


    1. Simplevolk
      24.07.2017 20:09
      +5

      Хм… а не так ли разыгрывают депутатов пранкеры?


    1. easty
      24.07.2017 20:29
      +2

      Не совсем так. Чтобы воткнуть астериск и набрать абонанта, на этот самый астериск подключить к провайдеру. Провайдер добросрвестный не позволит подменить номер вызывающего не из его пула. Такое можно сделать если иметь например свою окс7 точку.


      1. varnav
        25.07.2017 12:17

        А недобросовестный? :)


        1. easty
          25.07.2017 12:19

          Думаю недобросовестного должны компетентные органы вычислять и принимать меры.
          А то получается какой размах для мошенничества)
          Хотя не уверен есть ли какие законодательные акты регулирующие ограничение подмены CALLER ID


        1. mva
          25.07.2017 14:57
          +2

          с SMS, кстати, такое можно даже вполне легально. Точнее можно БЫЛО.
          Сейчас абсолютное большинство сервисов заставляют таки регистрировать имя отправителя и по каждому отдельному подписывать гарантийное письмо (что обещаешь не хулиганить).


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


          Но текст гарантийного письма подразумевает что если тебя поймают на хулиганстве — вся ответственность (включая финансовую) на тебе.


    1. gionet
      25.07.2017 11:19
      +1

      Неужели вы про www.spoofcard.com не слышали?
      Аж приложение для телефона есть. Вбивай любой номер, и звони от имени кого угодно


  1. mkll
    24.07.2017 17:02
    +4

    Все-таки, когда облако звонит обоим абонентам, а потом внутри себя «закорачивает» их между собой — это вовсе не маскировка номера при звонке. Это вообще два разных звонка. Еще это похоже на конференц-вызов.


    1. aylarov
      24.07.2017 17:15
      -1

      Это callback, но при коллбэке тоже можно делать маскировку номера, так же как и при пробросе звонков через proxy-номера


    1. easty
      24.07.2017 20:31
      +2

      Вы правы. Автор лукавит, это не маскировка номера в том виде, в котором его знает телеком тусовка. Это всего лишь звонок через посредника.


      1. mkll
        24.07.2017 20:42

        Угу. Но при этом «звонке через посредника» используется маскировка номера, тут не поспоришь.


        1. Dreyk
          24.07.2017 20:51
          +1

          звонок через посредника — это всего лишь один из видов маскировки, да, но не совсем то, что ожидаешь после заголовка


    1. Dmitry_5
      25.07.2017 14:52

      Еще бы Скайп научился так делать


  1. nickkee
    24.07.2017 21:24
    +1

    У такой штуки есть и обратная сторона — есть у меня сервер на астериске и иногда его конкретно DDOS'ят кучей одновременных звонков и как показало расследование — все эти номера фейковые и концов не найти.

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


    1. Shvedov
      25.07.2017 18:09

      Не смешите, спокойно отслеживается всё. А если вы гостевые звонки разрешили и Вас бомбят по IP, то ССЗБ.

      З.Ы. Нормальные операторы всегда фильтруют АОНы на входе, если это не апстрим.


      1. nickkee
        25.07.2017 19:03

        >спокойно отслеживается всё
        Я готов предложить вам денег, если вы поможете разрешить мою проблему.

        >Нормальные операторы всегда фильтруют АОНы на входе
        А если оператор не нормальный и не фильтрует, то как отследить? Вы же пишете, что отслеживается всё.


        1. bravo-ej
          27.07.2017 01:48

          оператор обязан фиксировать, так как биллинг никто не отменял, даже для не нормальных. деньги всем посчитать хочется правильно, или как минимум не себе в убыток.
          а ещё есть СОРМ, который должен видеть пару номеров и их признаки.
          Всё это значит, что номера должны быть

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


  1. grieverrr
    25.07.2017 00:58

    Раскрыли великую тайну про групповой аон, с совершенно невнятной завязкой на самописный апи.

    Ваш коньтент непродающий.


  1. Sergey6661313
    26.07.2017 19:05

    Больше бесит когда САМ звонишь на известный номер, а андроид записывает этот звонок как на неизвестный номер… ЗАчем???


    1. nickkee
      26.07.2017 22:31

      А как позвонить на неизвестный номер и зачем?


      1. Sergey6661313
        27.07.2017 22:26

        Яж написал. Звонишь то на номер известный. Просто после того как звонок дошел до абонента телефон вдруг пишет — номер скрыт.