Двусторонняя СМС - отправка / получение
Я хочу отправлять получать SMS-сообщения, используя SMS-шлюз.
При отправке сообщения я собираюсь задать некоторый вопрос, и получатель должен ответить.
Мне нужно добавить какой-то уникальный идентификатор при отправке SMS и вернуть его при получении.
Я знаю, что есть способ сделать это, как ICQ и Google Vois 2 способ смс. Получатель возвращает сообщение на тот же номер, но только отправитель получает его обратно.
Может ли кто-нибудь помочь с этим?
Спасибо Лиор
1 ответ
Почти все SMS-шлюзы позволяют отправлять и получать сообщения. Наиболее распространенный метод отправки сообщений - через своего рода HTTP API (SOAP, REST, RPC). Например, чтобы отправить сообщение с использованием Twilio (где я работаю), вы бы отправили запрос POST нашему API с тремя параметрами: To
(получатель), From
(ваш номер Twilio), и Body
(что включить в сообщение). Многие другие шлюзы используют аналогичные методы.
Из-за ограничений системы SMS по всему миру нет возможности однозначно идентифицировать сообщения. Это означает, что, если получатель сообщения вручную не содержит идентификатор, невозможно связать ответ с исходным сообщением, не сопоставив номера телефонов отправителя и получателя. Это может усложнить обработку случаев, когда существует несколько невыполненных запросов к одному получателю. Есть несколько стратегий, которые вы можете использовать, чтобы обойти это ограничение.
Запрос уникальных токенов ответа - для каждого запроса, отправляемого получателю, необходимо, чтобы ответ был уникальным для этого запроса. Например, в первом сообщении используйте что-то вроде "Чтобы подтвердить, ответьте с помощью A1", а в последующих невыполненных запросах используйте другой уникальный ответ.
Используйте разные телефонные номера "От" - для каждого запроса, отправленного получателю, отправляйте с другого номера. Затем вы можете сопоставить ответ с номером телефона, на который ответили. Во многих случаях это не оптимальная система, так как вам нужно больше телефонных номеров, и пользователи могут получать сообщения с разных номеров, что может привести к путанице.
Срок действия невыполненных запросов - если ответы на каждый запрос не важны, просто предположите, что они отвечают на самые последние запросы, или попросите их уточнить после ответа.
Что касается получения сообщений, большинство шлюзов будут уведомлять вас по HTTP. Например, когда на ваш номер Twilio приходит сообщение, мы отправляем запрос POST на URL, который вы указываете с помощью To
, From
а также Body
параметры включены. Вы обрабатываете это, как любая другая форма подачи заявки в вашем приложении. Другие шлюзы используют аналогичные методы, но я не могу засвидетельствовать детали.