You are viewing an old version of this page. View the current version .
Compare with Current
View Page History
« Previous
Version 18
Next »
1.Описание Схема выполняет следующую задачу:
Задача:
При входящем вызове получить внутренний номер ответственного в Creatio, направить звонок на него (10 секунд), если нет ответа - направить на номер по умолчанию.
В случае, когда ответа не было, есть возможность перевода на конкретный номер, или на очередь.
1.1. Перевод на номер Пример схемы можно увидеть на рисунке 1.
Рис. 1. Схема входящего звонка с маршрутизацией на ответственного Creatio
1.1.1. Описание схемы Компонент Блок компонента Параметры компонента Описание Start Компонент начала схемы Компонент "Ringback" Настройка гудков, или звуковых файлов до начала разговора. Выбранный тон - %(1000,6000,425);loops=-1 Компонент "HTTP Request" Для выполнение HTTP REST запроса на авторизацию.
Для этого:
{ "UserName": "Supervisor", "UserPassword": "Supervisor" }
Компонент "String" Приведения номера в вид по которому будет происходить поиск в Creatio, а именно перевернуть номер. Для этого:
в поле "Set result to variable" записываем название переменной в которую будет записываться результат. К примеру: reverted_caller_id_number; в поле "Expression" указать переменную в которой указан id номер абонента - ${caller_id_number}; в поле "Method" выбрать метод reverse.
Компонент "Custom code" Обрезаем Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов
Компонент "HTTP Request" Поиск по номеру абонента ответственного оператора в Creatio (Рис.1 ) и получения внутреннего номера этого оператора(Рис.2 ).
Для этого необходимо:
Cookie - ${my_cookie}
Accept - application/json;odata=verbose
BPMCSRF - ${BPMCSRF}
в поле "Request data" указать код для поиска: { "QueryType": 0, "Columns": { "Items": { "Name": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "Name" } }, "AccountName": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "[Account:Id:Account].Name" } }, "OwnerLogin": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "[WebitelUserData:WtelContact:Owner].Extension" } }, "OwnerId": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "Owner.Id" } } } }, "AllColumns": false, "IsDistinct": false, "RowCount": 1, "Filters": { "FilterType": 6, "ComparisonType": 0, "LogicalOperation": 0, "IsNull": true, "IsEnabled": true, "IsNot": false, "Items": { "FilterByPhone": { "FilterType": 1, "ComparisonType": 9, "LogicalOperation": 0, "IsNull": true, "IsEnabled": true, "IsNot": false, "LeftExpression": { "ExpressionType": 0, "ColumnPath": "[ContactCommunication:Contact].SearchNumber" }, "RightExpression": { "ExpressionType": 2, "ColumnPath": null, "Parameter": { "DataValueType": 1, "Value": "${reverted_caller_id_number}" } } } } }, "RootSchemaName": "Contact", "OperationType": 0 }
в элементе "Export variables" добавить: Name - rows.0.Name
owner_caller_id_number - rows.0.OwnerLogin
Компонент "Set variables" Для назначения переменных, которые позже будут использованы.
Добавить:
continue_on_fail - true hangup_after_bridge - true ignore_early_media - true Перечень возможных параметров можно посмотреть здесь .
Компонент "If" Проверка наличия значения переменной owner_caller_id_number. Так можно узнать есть ли ответственный в Creatio по номеру звонящего абонента
Для этого в поле "Expression" указать переменную ${owner_caller_id_number}
Компонент "Bridge"
(ветка 1)
Соединяет с ответственным в Creatio.
Для этого:
поле "Bridge strategy" оставить пустым; в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную ${owner_caller_id_number} Компонент "Bridge"
(ветка 2)
Для соединения с номером по умолчанию.
Для этого:
поле "Bridge strategy" оставить пустым; в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать номер по умолчанию, к примеру, 205 Компонент "Hangup" Завершение звонка
Рис. 1. Карточка оператора
Рис. 2. Внутренний номер оператора на который система будет совершать звонок
1.2. Перевод в очередь Пример схемы можно увидеть на рисунке 2.
1.1.1. Описание схемы Компонент Блок компонента Параметры компонента Описание Start Компонент начала схемы Компонент "Ringback" Настройка гудков, или звуковых файлов до начала разговора. Выбранный тон - %(1000,6000,425);loops=-1 Компонент "HTTP Request" Для выполнение HTTP REST запроса на авторизацию.
Для этого:
{ "UserName": "Supervisor", "UserPassword": "Supervisor" }
Компонент "String" Приведения номера в вид по которому будет происходить поиск в Creatio, а именно перевернуть номер. Для этого:
в поле "Set result to variable" записываем название переменной в которую будет записываться результат. К примеру: reverted_caller_id_number; в поле "Expression" указать переменную в которой указан id номер абонента - ${caller_id_number}; в поле "Method" выбрать метод reverse.
Компонент "Custom code" Обрезаем Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов
Компонент "HTTP Request" Поиск по номеру абонента ответственного оператора в Creatio (Рис.1 ) и получения внутреннего номера этого оператора(Рис.2 ).
Для этого необходимо:
Cookie - ${my_cookie}
Accept - application/json;odata=verbose
BPMCSRF - ${BPMCSRF}
в поле "Request data" указать код для поиска: { "QueryType": 0, "Columns": { "Items": { "Name": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "Name" } }, "AccountName": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "[Account:Id:Account].Name" } }, "OwnerLogin": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "[WebitelUserData:WtelContact:Owner].Extension" } }, "OwnerId": { "OrderDirection": 0, "OrderPosition": 0, "Caption": null, "Expression": { "ExpressionType": 0, "ColumnPath": "Owner.Id" } } } }, "AllColumns": false, "IsDistinct": false, "RowCount": 1, "Filters": { "FilterType": 6, "ComparisonType": 0, "LogicalOperation": 0, "IsNull": true, "IsEnabled": true, "IsNot": false, "Items": { "FilterByPhone": { "FilterType": 1, "ComparisonType": 9, "LogicalOperation": 0, "IsNull": true, "IsEnabled": true, "IsNot": false, "LeftExpression": { "ExpressionType": 0, "ColumnPath": "[ContactCommunication:Contact].SearchNumber" }, "RightExpression": { "ExpressionType": 2, "ColumnPath": null, "Parameter": { "DataValueType": 1, "Value": "${reverted_caller_id_number}" } } } } }, "RootSchemaName": "Contact", "OperationType": 0 }
в элементе "Export variables" добавить: Name - rows.0.Name
owner_caller_id_number - rows.0.OwnerLogin
Компонент "Set variables" Для назначения переменных, которые позже будут использованы.
Добавить:
continue_on_fail - true hangup_after_bridge - true ignore_early_media - true Перечень возможных параметров можно посмотреть здесь .
Компонент "If" Проверка наличия значения переменной owner_caller_id_number. Так можно узнать есть ли ответственный в Creatio по номеру звонящего абонента
Для этого в поле "Expression" указать переменную ${owner_caller_id_number}
Компонент "Bridge"
(ветка 1)
Соединяет с ответственным в Creatio.
Для этого:
поле "Bridge strategy" оставить пустым; в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную ${owner_caller_id_number} Компонент "Bridge"
(ветка 2)
Для соединения с номером по умолчанию.
Для этого:
поле "Bridge strategy" оставить пустым; в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать номер по умолчанию, к примеру, 205 Компонент "Hangup" Завершение звонка