| 3CX Voice Application позволяет получать доступ к Web – сервисам. Нужно указать только URL и имя сервиса, чтобы Автосекретарь мог взаимодействовать с Web – сервисами.
Создание приложение с помощью VAD.
Для начала нужно создать новый проект Автосекретаря. Запустите VAD, перейдите “File -> New -> Project”, выберите имя и папку, в которую нужно сохранить этот проект. В этом примере мы назовем проект “WebServiceTest”. Наша задача создать приложение, которое будет запрашивать у покупателя ПИН код, и проверять его с помощью web - сервиса. Для начала установите элемент “User Input” в поле Автосекретаря, просто перетащив этот элемент из меню в поле. Назовите его “requestPIN”. Загрузите голосовое сообщение, которое будет проиграно при поступлении звонка к этому объекту. Предположим, что ПИН код покупателя состоит из 10 цифр, задайте в свойствах максимальное и минимальное число символов – MaxDigits и MinDigits – 10.
 Если покупатель введет 10 цифр, то следующим шагом в компоненте requestPIN сработает действие “Valid Input”. Это действие произведет проверку введенного кода (только по количеству цифр). Чтобы произвести проверку введенного ПИНа нужно добавить компоненту “Web Services Interaction”, перетащив ее из меню в поле “Valid Input” , о котором мы говорили выше. Переименуйте эту компоненту в «validatePIN» и двойным кликом откройте диалоговое окно с настройками компоненты. Заполните все поля, как написано: • В поле “URI” введите URI web – сервиса. Например, http://localhost:8080/ValidationWebService.asmx. Этот URI для обращения к web – сервису, который установлен на компьютере с 3CX Phone System. Localhost – это общая команда, для обращения к собственному компьютеру. Вводить нужно только действительные адреса (использовать различные формулы нельзя). • В графе “Web Service Name” введите имя web – сервиса, к которому вы собираетесь обращаться. Например, “ValidatePIN”. Вводить нужно только действительные адреса и имена(использовать различные формулы, ставить пробелы, вводить специальные символы нельзя). • Можете оставить таймаут в 30 секунд или изменить значение, если оно вам не подходит. • Теперь нужно добавить параметр ввода ПИНа в список параметров. Этот параметр будет отправлен web – сервису. Введите “CustomerPIN” в поле Name и выражение “requestPIN.Buffer” в поле Value.

Теперь этот компонент настроен. Дальше нужно настроить проверку введенного кода, web – сервис должен ответить – правильный введенный код или нет (1 или 0). Для этого используйте компоненту “Conditional” с двумя ветками, одну для удачной проверки кода (1), вторую при ошибке ввода (0). Добавить компоненту “Conditional” можно, перетащив мышкой элемент из меню. Дальше переименуйте компоненту в “validateWebServiceResult”. Переименуйте обе ветви в “success” и “error” для двух случаев – удачно и неудачно соответственно. Проект Автосекретаря в VAD должен выглядеть так:

Чтобы произошел переход к “success” ветви, веб – сервис должен сообщить, что введенное покупателем значение кода верно (например, отправить цифру 1), т.е. условие выполнено, для этого нужно вписать в Expression Editor ветви выражение:
EQUAL(validatePIN.Result,1)
Когда все условия прописаны, остается только записать голосовое сообщение (при ошибочном вводе и при верном вводе) и переадресовать звонок на оператора в случае удачного ввода кода.

Создание Web – сервиса
В этом примере мы создадим web – сервис на C# в Visual Studio 2008, но вы можете использовать и другие инструменты. Для создания проекта в Visual Studio 2008 перейдите “File -> New -> Project”, выберите “Visual C# -> Web -> ASP .NET Web Service Application”. Введите имя сервиса, например, “ValidationWebService” или переименуйте web – сервис добавленный по умолчанию под именем “Service1», назовите его “ValidationWebService”. Измените метод “HelloWorld” и назовите его “ValidatePIN”, выберите целые числа и прием цифр для проверки ПИНа пользователя. Код должен выглядеть так:
[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class ValidationWebService : System.Web.Services.WebService { [WebMethod] public int ValidatePIN(string customerPIN) { return customerPIN == “1234567890″ ? 1 : 0; } }
Этот простой пример, показывает, что web –сервис проверяет ПИН “1234567890” (сравнивает все входящие значения, со значением внутренним) и отвергает несовпадающие значения. Чтобы web – сервис заработал, VAD должен отослать к нему веб - запрос по протоколу POST HTTP. Если web – сервис написан на .NET framework, как в этом примере, и если есть необходимость удаленного доступа (например, 3CX Phone System установлен на компьютере А, а веб-сервис на компьютере Б), то вам нужно разрешить использование протокола HTTP POST в конфигурационном файле “web.config”. Для этого, проследуйте приведенным настройкам:
<configuration>
<system.web>
<webServices>
<protocols>
<add name=”HttpPost”/>
</protocols>
</webServices>
</system.web>
</configuration>
По умолчанию, протокол HTTP POST работает только в рамках одной машины.
|