Задача

Абонент находится в очереди ожидания. Необходимо предложить нажать "1" для заказа встречного звонка. Встречный звонок создается в виде активности в bpm'online.

Реализация

  1. В разделе с public маршрутами создаем схему с очередью ожидания ACD (6 строка)
  2. В очереди на 60 секунде (либо другое время) запускаем таймер (10 строка)
  3. В таймер помещаем проигрывание звукового файла (14) с предложением нажать "1" для заказа обратного звонка
  4. Проверяем, если абонент нажал "1" (33) делаем авторизацию в bpm'online (36) и создаем активность (62)
  5. Проигрываем файл абоненту (112), что с ним свяжутся и завершаем звонок.

Пример схемы

[
    {
        "answer": ""
    },
    {
        "queue": {
            "name": "myACD_queue",
            "timer": [
                {
                    "interval": 60,
                    "tries": 1,
                    "actions": [
                        {
                            "playback": {
                                "getDigits": {
                                    "setVar": "getIvrDigit",
                                    "min": 1,
                                    "max": 1,
                                    "tries": 1,
                                    "timeout": 4000,
                                    "flushDTMF": true
                                },
                                "files": [
                                    {
                                        "name": "Press_1_for_callback.wav",
                                        "type": "wav"
                                    }
                                ]
                            }
                        },
                        {
                            "if": {
                                "expression": "${getIvrDigit} == '1'",
                                "then": [
                                    {
                                        "httpRequest": {
                                            "url": "https://005544-sales-team.bpmonline.com/ServiceModel/AuthService.svc/Login",
                                            "method": "POST",
                                            "timeout": 3000,
                                            "exportCookie": "my_cookie",
                                            "headers": {
                                                "Content-Type": "application/json"
                                            },
                                            "data": {
                                                "UserName": "Jons Jhone",
                                                "UserPassword": "Jons Jhone"
                                            }
                                        }
                                    },
                                    {
                                        "string": {
                                            "data": "${my_cookie}",
                                            "fn": "replace",
                                            "setVar": "BPMCSRF",
                                            "args": [
                                                "/.*BPMCSRF=([-._A-Za-z0-9\/]{22});/",
                                                "$1"
                                            ]
                                        }
                                    },
                                    {
                                        "httpRequest": {
                                            "url": "https://005544-sales-team.bpmonline.com/0/dataservice/json/reply/InsertQuery",
                                            "method": "POST",
                                            "timeout": 2000,
                                            "exportCookie": "",
                                            "headers": {
                                                "Cookie": "${my_cookie}",
                                                "BPMCSRF": "${BPMCSRF}",
                                                "Accept": "application/json;odata=verbose",
                                                "Content-Type": "application/json"
                                            },
                                            "data": {
                                                "ColumnValues": {
                                                    "Items": {
                                                        "ActivityCategory": {
                                                            "ExpressionType": 2,
                                                            "Parameter": {
                                                                "DataValueType": 0,
                                                                "Value": "E52BD583-7825-E011-8165-00155D043204"
                                                            }
                                                        },
                                                        "RemindToOwner": {
                                                            "ExpressionType": 2,
                                                            "Parameter": {
                                                                "DataValueType": 12,
                                                                "Value": true
                                                            }
                                                        },
                                                        "Title": {
                                                            "ExpressionType": 2,
                                                            "Parameter": {
                                                                "DataValueType": 1,
                                                                "Value": "Заказ встречного звонка - ${caller_id_number}"
                                                            }
                                                        },
                                                        "Type": {
                                                            "ExpressionType": 2,
                                                            "Parameter": {
                                                                "DataValueType": 0,
                                                                "Value": "E1831DEC-CFC0-DF11-B00F-001D60E938C6"
                                                            }
                                                        }
                                                    }
                                                },
                                                "OperationType": 1,
                                                "RootSchemaName": "Activity"
                                            }
                                        }
                                    },
                                    {
                                        "playback": {
                                            "files": [
                                                {
                                                    "name": "Thank_You.wav",
                                                    "type": "wav"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        "hangup": "ORIGINATOR_CANCEL"
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    },
    {
        "hangup": ""
    }
]

Созданная активность в bpm'online