Каталог решений - 1С + asterisk (автоматический обзвон) часть 2. Распознавание речи

1С + asterisk (автоматический обзвон) часть 2. Распознавание речи

1С + asterisk (автоматический обзвон) часть 2. Распознавание речи

В наличии

Пример реализации автообзвона (с распознаванием речи ответа отвечающей стороны) с использованием ami asterisk. Данная статья может быть полезна программистам, интеграторам, администраторам. Версия и релиз технологической платформы не имеет значения.

Категория:

Описание

Продолжение предыдущей статьи. (//sale.itcity.ru/public/954564/)

Пример применения распознавания речи в исходящих звонках asterisk.

 

Задача:

Получить (не) подтверждение о приезде клиента на определенный момент.

 

Общая логика решения задачи:

1. Дозвониться

2. Прочитать текст

3. Записать речь отвечающей стороны в файл

4. Выполнить распознавание речи

5. Попрощаться

6. В зависимости от результата распознавания принять решение

7. В зависимости от принятия решения выполнить некие действия в 1С(двинуть бп дальше, оповестить ответственных лиц, закрыть задачи, освободить занятое время, и тд)

8. Сохранить историю событий asterisk

 

Технологии:

1. 1С (выборка данных, инициализация вызова, обработка завершения, бизнес логика)

2. asterisk (ami сервер) (телефония)

3. python (бэк, прокси сервер между фронтом и телефонией, ami клиент)

4. Yandex.SpeechKit (распознавание речи)

5. php (agi)

 

Общая принцип работы:

Средствами 1С регламентное задание делает выборку по предварительно сформированным задачам, уведомление клиента за 24 часа. Из выборки берется телефон для набора, и определяется путь к файлу, который будет в дальнейшем воспроизводится. 1С делает гет запрос в бэк, передавая параметры (телефон, путь к файлу). Бэк получает запрос, парсит параметры, подключается к ами asterisk, вызывает действие "Originate" с указанием параметров(телефон, путь к файлу, контекс диалплана, канала вызывающей стороны), подписывается на события ами, подключается к kafka для отправки событий(на самом деле подключается при старте и держит соединение). Asterisk после успешного поднятия трубки на отвечающей стороне читает файл, где в конце файла будет что-то вроде "скажите да если вы приедете, скажите нет если не приедете" (ну условно). Asterisk записывает в файл разговор отвечающей стороны. Делает пост запрос в бэк, передавая файл и ид звонка(каллер ид), затем прощается, завершает вызов. Бэк получает файл, передает его на asr.yandex. asr.yandex распознает возвращает xml. Бэк парсит xml генерирует событие в kafka. kafka при получении событий отправляет в http сервис 1С, для дальнейшей обработки. 1С обрабатывает состояние, реализует бизнес логику.

Синтез речи (генерация файлов для воспроизведения) был описан в предыдущей статье.

В отличии от предыдущей статьи по астериску, здесь код:

1. будет адаптирован под работу в микросервисе (kafka, предыдущая статья по kafka)

2. web часть будет перенесена на flask

 

Шаг 1. диалплан

Инициализация исходящего звонка будет происходить через asterisk ami, далее звонок идет в dial plan.

Для реализации задачи был добавлен контекст и макрос.(да, снова не ari)

 

has been added to your cart:
Оформление заказа