Приложение для двустороннего обратного вызова

S
Автор Sergiiy
Обновлено 1 год назад

Принцип действия

Это приложение, которое пользователь не может использовать напрямую, позвонив по какому-либо номеру. Для инициации приложения следует либо использовать интерфейс XML-RPC , либо использовать специальное правило трансляции CLD при соединении, либо запись A должна быть вставлена ​​непосредственно в таблицу callback_requests .        

Основной вариант использования приложения заключается в следующем.

  1. Запись  через тр. правило или другими способами создается в таблице callback_requests .  
  2. Монитор обратного вызова обнаруживает запись и инициирует этап вызова на номер original_cli с заданным идентификатором ( original_cli как CLI, имя пользователя или имя авторизации как имя аутентификации и md5secret ).        
  3. Пользователь берет свой телефон.
  4. Приложение 2 Way Callback запускается и инициирует вызов фактического номера CLD с заданным идентификатором ( имя пользователя в виде CLI, authname и md5secret ). Каждое из значений идентификатора может быть дополнительно переопределено явным указанием в соответствующих полях twoway_cli , twoway_authname и twoway_md5secret .          
  5. Телефон берут в пункте назначения.
  6. Происходит разговор.

Используя специальное правило трансляции CLD, вы можете инициировать двусторонний обратный вызов.

Вы можете использовать правило перевода для создания двустороннего запроса обратного вызова.

Настройка маршрутизации звонков

  1. Добавить связь с поставщиком. Установите хост/порт Asterisk в поле Destination в Vendor Connection (например: 192.168.0.100:5062 ). 
  2. Установите правило трансляции CLD для соединения со значением: s/.*/ani_2way_<actual CLD>/ 
  3. Добавьте маршрут к этому соединению.

* Например, если пользователю необходимо перезвонить, а затем подключиться к внутреннему номеру 12345, то правило преобразования CLD должно выглядеть следующим образом: s/.*/ani_2way_12345/

Непосредственное использование таблицы callback_requests

Давайте просмотрим таблицу callback_requests , только значимые поля. 

  • username , authname и md5secret — это идентификационные данные пользователя, которые следует использовать при создании обеих ветвей вызова. md5secret — это значение HA1 в шестнадцатеричном представлении . HA1 рассчитывается как MD5 строки «<имя пользователя>:<область>:<пароль>» (без кавычек).      
  • twoway_cli , twoway_authname и twoway_md5secret являются необязательными частями идентификатора, используемыми при создании второй ветви вызова.    
  • original_cli  — CLI пользователя, запросившего обратный вызов.
  • original_set_cli  — используйте этот CLI при создании ветви обратного вызова.
  • original_cld  — это поле должно содержать значение в форме «2way_<actual CLD>» . 
  • next_call  — в этом поле отображается время следующей попытки звонка. Это может быть полезно для планирования обратного вызова в будущем.
  • call_id  — это поле может быть предварительно установлено на некоторое значение, и в этом случае обратный вызов будет использовать этот Call-ID. Если поле содержит NULL, то случайное значение генерируется и помещается в это поле во время вызова.
  • twoway_call_id  — в этом поле может быть задано некоторое значение, и в этом случае вызов к месту назначения будет использовать этот Call-ID. Если поле содержит NULL, то значение по умолчанию создается на основе call_id и помещается в это поле во время вызова.  
  • status and result - содержат текущий статус звонка.  

Например, если пользователю 801 нужно перезвонить по добавочному номеру 87654321, а затем соединиться с добавочным номером 12345, тогда соответствующий SQL-запрос должен выглядеть следующим образом:

INSERT INTO callback_requests ( username, authname, md5secret, original_cli, original_cld ) VALUES ( '801', '902', '<md5secret>', '87654321', '2way_12345' )


NOTE:
The authname value can be omitted in which case the username value will be used as
Оцените эту статью