# Авто-набор (Auto-dial) version 2.0

https://routee.sayqal.uz/dial

Sayqal Solutions

### Может применяться для решения следующих задач

- верификация в мобильных приложениях (коды подтверждения);
- информирование клиентов о всевозможных акциях, событиях, скидках и специальных предложениях;
- уведомления о новостях, анонсах мероприятий, приглашения;
- поздравления с праздниками, днями рождения, знаменательными событиями;
- отчетность клиентам о готовности или состоянии заказа или выполнения работ;
- возможность отправки заранее записанных звуковых файлов;
- автоматические рассылки по расписанию и периодические рассылки;
- автоматические рассылки с поздравлениями о днях рождения;
- Опросник

### Запрос на авто-набор

#### /transmitcall post

post

Отправить запрос для создания авто-набора. Пример: https://routee.sayqal.uz/dial/transmitcall

#### post /transmitcall

Отправить запрос для создания авто-набора. Пример: https://routee.sayqal.uz/dial/transmitcall

Secured by Auth TOKEN - Transmit

### Body

Media type: application/json

Type: object

Properties

- userName: required(string)

  User Name партнера

- requestId: required(integer)

  ИД (идентификация) запроса в системы партнера

- requestTime: required(string - pattern: yyyy-mm-dd hh24:mi:ss)

  Дата авто-набора

  Example:

      2015-07-04 21:00:00

- priority: required(integer)

  Приоритет авто-набора. Диапазон заранее обговаривается с Sayqal Solutions

- phoneNum: required(string - pattern: [0-9]+)

  Номер телефона абонента. Без указания "+".

- fileid: required(integer)

  ИД аудио файла, заранее формируется вместо с Sayqal Solutions

- lifeMinut: (integer - default: 10 - minimum: 5 - maximum: 1440)

  Время жизни (обработки) авто-набора в минутах.

- langs: (string - pattern: (ru|uz|en)+)

  Язык(и) проигрывания аудио файла, по умолчанию "uz,ru". Разделяется по ",".
  Проигрывается в том порядке которым быль указан в значении.

  - uz,ru - проигрывается сначала на узбекском потом на русском
  - ru,uz - проигрывается сначала на русском потом на узбекском
  - ru - проигрывается только на русском
- accessCode: (string)

  Код доступа, длинный код разделяется по ",", можно выставлят паузу.
  p1 (или p) означает паузу на одну секунду, p2 и p3 соотвтственно паузы на 2 и 3 секунды.

  - 123456 - сто двадцать три тысячи четыреста пятьдесят шесть
  - 12,34,56 - двенадьцать тридцать четыре пятьдесят шесть
  - 123,456 - сто двадцать три четыреста пятьдесят шесть
  - 1,2,3,4,5,6 - один два три четыре пять шесть
  - 71,p,202,p,14,p,0,4 - семьдесят один пауза двести два пауза четырнадцать пауза ноль четыре
- smsGenerate: (one of 0, 1)

  Герерировать СМС при не успешном звонке.

- smsService: (integer)

  При smsGenerate = 1, номер СМС сервиса

- smsNumberA: (string - pattern: [0-9]+)

  При smsGenerate = 1, Номер с которого отправляется СМС

- smsNickName: (string)

  При smsGenerate = 1, Альфа номер (nickname) с которого отправляется СМС

- smsMClass: (integer)

  При smsGenerate = 1, значания СМС параметра MClass

- smsMessage: (string)

  При smsGenerate = 1, Текст СМС сообщения

Example:

    {
        "userName":"testuser",
        "requestId":1001,
        "requestTime":"2020-05-22 11:41:05",
        "priority":1,
        "phoneNum":"981250765",
        "fileid":1,
        "lifeMinut":10,
        "langs":"ru,uz",
        "accessCode":"12,34",
        "smsGenerate":0
    }

## HTTP status code 200

### Body

Media type: application/json

Type: object

Properties

- status: required(integer)

  Код ошибки, 0 - успешно (без ошибок)

- message: required(string)

  Описание ошибки (информация о статусе)

- dialId: required(integer)

  ИД авто-набора в системе Sayqal Solutions

Example:

    {
        "status":"0",
        "message":"Success",
        "dialId":"16"
    }

## HTTP status code 403

При ошибке в TOKEN

# Secured by Auth TOKEN - Transmit

### Headers

- X-Access-Token: required(string)

      X-Access-Token: c7ee559506c1c07694bec475a6d508e7

  Передается только ТОКЕН, тип авторизации (Basic, Digest и тд) не передается.
  requestEpoch - UNIX time из requestTime
  ТОКЕН - создаеться следующему способу (Пример в PHP):

      function generateTransmitAuthToken($userName, $secretKey, $requestId, $requestEpoch, $phoneNum, $fileId)
      {
        $auth = "{$userName} {$secretKey} {$requestId} {$requestEpoch} {$phoneNum} {$fileId}";
        return md5($auth);
      }

## HTTP status code 403

Bad auth token.

### Получить статус авто-набора

#### /getcallstatus post

post

Отправить запрос для получения статуса авто-набора. Пример https://routee.sayqal.uz/dial/getcallstatus

#### post /getcallstatus

Отправить запрос для получения статуса авто-набора. Пример https://routee.sayqal.uz/dial/getcallstatus

Secured by Auth TOKEN - CallStatus

### Body

Media type: application/json

Type: object

Properties

- userName: required(string)

  User Name партнера

- dialId: required(integer)

  ИД авто-набора в системе Sayqal Solutions

- requestId: required(integer)

  ИД (идентификация) запроса в системы партнера

Example:

    {
        "userName":"testuser",
        "requestId":1001,
        "dialId":16
    }

## HTTP status code 200

### Body

Media type: application/json

Type: object

Properties

- status: required(integer)

  Код ошибки, 0 - успешно (без ошибок)

- message: required(string)

  Описание ошибки (информация о статусе)

- callInfo: (object)
  - callStatus: required(integer)

    Статус авто-набора, 0 - успешно (без ошибок)

    - 1 - ANSWERED
    - 2 - NOANSWERED
    - 3 - BUSY
    - 4 - CANCELLED
    - 5 - CALLREJECTED
    - 6 - CONGESTION
    - 7 - CHANUNAVAIL
  - callMessage: required(string)

    Описания статуса

    - ANSWERED - На вызов был получен ответ
    - NOANSWERED - На вызов не ответили
    - BUSY - Получен сигнал занято
    - CANCELLED - Вызов отменен
    - CALLREJECTED - вызов сброшен оборудованием принимающей стороны
    - CONGESTION - Канал перегружен
    - CHANUNAVAIL - Канал не доступен
  - dialTime: (string - pattern: yyyy-mm-dd hh24:mi:ss)

    Дата и время авто-набора

    Example:

        2015-07-04 21:01:00

  - answerTime: (string - pattern: yyyy-mm-dd hh24:mi:ss)

    Дата и время ответа на звонок

    Example:

        2015-07-04 21:01:20

  - duration: (integer)

    Длительность звонка, в секундах

  - abonChoice: (string)

    Выбор абонента (ответ абонента, подтверждения абонента)

Example:

    {
        "status":"0",
        "message":"Success",
        "callinfo":{
            "callStatus":"1",
            "callMessage":"ANSWERED",
            "dialTime":"2020-05-22 16:49:03",
            "answerTime":"2020-05-22 16:49:13",
            "duration":"19",
            "abonChoice":null
        }
    }

## HTTP status code 403

При ошибке в TOKEN

# Secured by Auth TOKEN - CallStatus

### Headers

- X-Access-Token: required(string)

      X-Access-Token: fda928dfb1a160617d52ad8a7a79daad

  Передается только ТОКЕН, тип авторизации (Basic, Digest и тд) не передается.
  requestEpoch - UNIX time из requestTime
  ТОКЕН - создаеться следующему способу (Пример в PHP):

      function generateCallStatusAuthToken($userName, $secretKey, $requestId, $dialId)
      {
        $auth = "{$userName} {$secretKey} {$requestId} {$dialId}";
        return md5($auth);
      }

## HTTP status code 403

Bad auth token.