Виртуальный номер и автоматизированный прием смс

Возврат к списку

Наверняка в жизни каждого из программистов стояла задача взаимодействия удаленных  пользователей с  программой автоматизации, например 1с, с наименьшими затратами. Если брать за основу 1с, то у нас есть несколько способов:  

- Доступ к программе через RDP. Для реализации подобного взаимодействия , нужен будет хороший канал интернета, выделенный IP, хороший сервер и User CAL

- Доступ через WEB интерфейс. Тема  на данный момент очень развивающаяся, 1с принимает немало усилий в доработке продукта, что бы 1с в облаке работало корректно. Но, на мой взгляд, подобная технология еще сыровата. Хотя есть организации, которые уже в облаке работают давно  и их все устраивает. Для выгрузки 1с в облако, нам потребуется хороший интернет канал, желательно мощный сервер. 

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

 Автоматизирвоанный прием смс

У последнего способа есть много достоинств:

- Не нужен мощный выделенный канал, подойдет простой USB модем.

- Нет необходимости докупать дополнительные клиентские лицензии для работы в 1с. Обмен может выполняться через регламентное задание под одним пользователем.

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

 

У каждого из нашего сотрудников есть мобильный телефон и мы будем конструировать связь с 1С посредством смс сообщений. Есть два способа реализации данной задачи: прием смс через USB модем или с помощью виртуального номера. Автоматизировать обмен посредством виртуального номера.

Погуглив нашел один из сервисов, который по приемлемой цене сдает в аренду виртуальные номера smsc.ru. Удобство этого сервиса в отлаженном API. На сайте есть библиотеки PHP, 1С, C++, Java и т.д.


Получение входящих сообщений

Для получения списка входящих сообщений необходимо вызвать методом GET или POST адрес:

http://smsc.ru/sys/get.php?get_answers=1&login=<login>&psw=<password>

Описание параметров, передаваемых Серверу:

Параметр Значение
login Логин Клиента.
psw Пароль Клиента или MD5-хеш пароля в нижнем регистре.
hour Период в часах, за который необходимо запросить входящие сообщения.
after_id Идентификатор сообщения, начиная с которого необходимо вернуть входящие сообщения, за исключением самого after_id.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

Значение Описание
1 Ошибка в параметрах.
2 Неверный логин или пароль.
4 IP-адрес временно заблокирован.
9 Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    id = <id>, received = <received>, phone = <phone>, message = <message>, to_phone = <to_phone>, sent = <sent>
    ...

  • при fmt = 1:
    <id>,<received>,<phone>,<message>,<to_phone>,<sent>
    ...

  • при fmt = 2:
    <sms_answers>
    <sms>
    <id>id</id>
    <received>received</received>
    <phone>phone</phone>
    <message>message</message>
    <to_phone>to_phone</to_phone>
    <sent>sent</sent>
    </sms>
    ...
    </sms_answers>

  • при fmt = 3:
    [{
    "id": <id>,
    "received": "<received>",
    "phone": "<phone>",
    "message": "<message>",
    "to_phone": "<to_phone>",
    "sent": "<sent>"
    },
    ...]

Где:
<id> – идентификатор входящего сообщения, назначаемый Сервером автоматически.
<received> – дата получения сообщения Сервером. Формат DD.MM.YYYY hh:mm:ss.
<phone> – номер телефона абонента.
<message> – входящее сообщение.
<to_phone> – номер телефона получателя.
<sent> – дата отправки сообщения. Формат DD.MM.YYYY hh:mm:ss.


Примеры:

Получение списка входящих сообщений за текущие сутки:

http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123
Получение списка входящих сообщений за последние 48 часов:

http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&hour=48
Получение списка входящих сообщений с идентификаторами, большими id="1234567":

http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&after_id=1234567

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка входящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

В следующей статье выложу  библиотеку для приема и обработкуи смс сообщений в 1с. 

>
ВасилийВасилий09.07.2013 в 13:49
0
Спасибо за статью, сейчас ищу всю информацию доступную по организации звонков и смс.
И ваще, полезный и удобный у вас блог.
Это вордпресс так кастомизирован?
ответная реплика
adminadmin09.07.2013 в 15:05
0
Нет, это Битрикс =)
ответная реплика
КолянКолян16.09.2014 в 10:22
0
На данный момент как раз пробую реализовать предложенный в статье метод. Думаю, все получится.
ответная реплика
КешаКеша18.09.2014 в 17:22
0
Много раз пробовал, постоянно путаюсь на том или ином пункте, не помешал бы видео-урок, если не трудно это. Благодарю зарание :)
ответная реплика


Возврат к списку