Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

1.Описание

Схема выполняет следующую задачу:

Задача:

При входящем вызове получить внутренний номер ответственного в Creatio, направить звонок на него (10 секунд), если нет ответа - направить на номер по умолчанию.

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

1.1. Перевод на номер

Пример схемы можно увидеть на рисунке 1.

Рис. 1. Схема входящего звонка с маршрутизацией на ответственного Creatio

Для удобства пользования можно скачать готовый json-файл, который прикреплен ниже, и импортировать. Больше информации о импорте json-файла можно посмотреть здесь.

1.1.1. Описание схемы

Компонент Блок компонентаПараметры компонентаОписание
Start


Компонент начала схемы
Компонент "Ringback"

Настройка гудков, или звуковых файлов до начала разговора. Выбранный тон -  %(1000,6000,425);loops=-1
Компонент "HTTP Request"

Для выполнение HTTP REST запроса на авторизацию.

Для этого:

  • в поле "Url" указывается url-адрес на который делать запрос - https://example-service-enterprise.terrasoft.ua/ServiceModel/AuthService.svc/Login . Необходимо заменить ссылку на ваш сайт;
  • в поле "Methods" выбрать метод POST;
  • в поле "Cookie to variable" указать  название переменной - my_cookie, в которую будут сохраняться cookie из ответа сервиса;
  •  в поле "Request data" указать логин и пароль. Как пример:

{
                "UserName": "Supervisor",
                "UserPassword": "Supervisor"
            }


Компонент "String"

Приведения номера в вид по которому будет происходить поиск в Creatio, а именно перевернуть номер. 
Для этого:

  • в поле "Set result to variable" записываем название переменной в которую будет записываться результат. К примеру: reverted_caller_id_number;
  • в поле "Expression" указать переменную в которой указан id номер абонента - ${caller_id_number};
  • в поле "Method" выбрать метод reverse.


Компонент "Script"

Обрезает Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов.

Для этого:

  •  в поле "
  • в поле "Script" указать следующий код:

return ${my_cookie}.replace(/.*BPMCSRF=([-._A-Za-z0-9/]{22});.*/, '$1')


Компонент "HTTP Request"

Поиск по номеру абонента  ответственного оператора в Creatio (Рис.2) и получения внутреннего номера этого оператора(Рис.3).

Для этого необходимо:

  • в поле "Url" указывается url-адрес на который делать запрос - https://example-service-enterprise.terrasoft.ua/0/dataservice/json/reply/SelectQuery . Необходимо заменить ссылку на ваш сайт;
  • ;
  • в поле "Methods" выбрать метод POST;
  • в элементе Headers", согласно с требованиями сервера добавить:

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.

Для этого:

  • поле "
  • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную  ${owner_caller_id_number}

Компонент "Bridge"

(ветка 2)

Для перенаправления с номером по умолчанию.

Для этого:

  • поле "
  • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать номер по умолчанию, к примеру,  205
Компонент "Hangup"

Завершение звонка

Рис. 2. Карточка оператора

Рис. 3. Внутренний номер оператора на который система будет совершать звонок

1.2. Перевод в очередь

Пример схемы можно увидеть на рисунке 4.

Рис. 4. Схема входящего звонка с маршрутизацией на ответственного Creatio с возможностью переадресации в очередь

Для удобства пользования можно скачать готовый json-файл, который прикреплен ниже, и импортировать. Больше информации о импорте json-файла можно посмотреть здесь.

1.2.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.


Компонент "Script"

Обрезает Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов.

Для этого:

  •  в поле "
  • в поле "Script" указать следующий код:

return ${my_cookie}.replace(/.*BPMCSRF=([-._A-Za-z0-9/]{22});.*/, '$1')


Компонент "HTTP Request"

Поиск по номеру абонента  ответственного оператора в Creatio (Рис.2) и получения внутреннего номера этого оператора(Рис.3).

Для этого необходимо:

  • в поле "Url" указывается url-адрес на который делать запрос - https://example-service-enterprise.terrasoft.ua/ServiceModel/AuthService.svc/Login . Необходимо заменить ссылку на ваш сайт;
  • ;
  • в поле "Methods" выбрать метод POST;
  • в поле "Cookie to variable" указываем название переменной - my_cookie, в которую сохраняем Cookie из ответа сервиса;
  • в элементе Headers", согласно с требованиями сервера добавить:

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.

Для этого:

  • поле "
  • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную  ${owner_caller_id_number}

Компонент "Join Queue"

(ветка 2)

Для перенаправления абонента в очередь "Магазин"

Для этого поле "

Компонент "Hangup"

(ветка 2)

Завершение звонка
  • No labels