- PVSM.RU - https://www.pvsm.ru -

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer

Введение

Писать программы для системы 3CX на C# может быть несколько непривычным занятием для начинающего IT-специалиста или человека, не сталкивающимся ранее с написанием кода. Однако этот навык окажется весьма полезным и востребованным, если перед вами будет стоять задача создания действительно сложных, функциональных или заказных голосовых приложений.

Существует ряд мощных сред быстрой разработки, но все они требуют профессиональной предварительной настройки и занимают изрядное место на диске. Поэтому я стремился ограничиться каким-то компактным решением, но с поддержкой функции IntelliSense. Microsoft IntelliSense хорошо выделяет ошибки в коде и автоматически дополняет выражения. Конечно, если вы уже являетесь гуру C#, эта статья может быть вам не столь интересна. Профессионалу хватит и блокнота!

Подготовка среды разработки C# на основе Visual Studio Code

1. Установите .NET через апплет Turn Windows features on or off или Windows Update.

2. Установите 3CX Call Flow Designer [1].

3. Загрузите 3CX API Documentation Package [2]. Вам потребуется файл 3CXObjectModel.2.0.0.0_v15.chm из архива, в котором содержится описание классов, методов и свойств объектов 3CX.

4. Загрузите Visual Studio Code [3]. Это небольшой, интеллектуальный редактор кода. При установке можно установить отмеченные опции для упрощения дальнейшей работы.

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 1

5. Установите .NET Core SDK [4] и .NET 4.6.1 SDK [5]

6. Скачайте ZIP архив с демо-скриптом C# по этой ссылке [6]. В архиве содержится файл проекта Project1.csproj, который в основном похож на файл OMSamples.csproj из загруженного ранее архива документации 3CX API. Разархивируйте и кликните на файле Project1.csproj, который откроется в приложении VS Code.

7. В среде VS Code установите расширение для C#. Для этого нажмите Show Recommendation.

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 2

Затем установите все рекомендуемые расширения. После установки не забудьте нажать голубую кнопку Reload.

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 3

8. На последнем этапе необходимо установить некоторые зависимости C#. Перейдите в Explorer > Libraries > Project1.cs, и они установятся автоматически.

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 4

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

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 5

Если вы никогда не занимались программированием, и, в частности, на C#, могу порекомендовать этот учебник [7].

Демо-приложение Project1 выполняет кастомные настройки параметров Очереди вызовов. Функция

public void SetQueueParams(string strQueueNumber, bool bPosAnnounce, ushort usTimeout)

использует три параметра

strQueueNumber — добавочный номер Очереди вызовов, с параметрами которой мы работаем.
bPosAnnounce — включение или выключение сообщения абонентам об их месте в Очереди.
usTimeout — таймаут ожидания в Очереди.

Классы описаны в документации 3CX Call Control API, которую мы загружали ранее. Программа выполняет следующие действия с параметрами Очереди (добавочный номер 801):

  • С 00:00 до 11:59 проговаривается номер абонента в Очереди, а таймаут ожидания абонента составляет 5 мин.
  • С 12:00 до 23:59 номер абонента не проговаривается, а таймаут ожидания составляет 2 мин.

Если в редакторе VS Code ничего не подсвечено красным — формальных ошибок нет, и программу можно использовать в 3CX Call Flow Designer.

Использование скрипта C# в 3CX Call Flow Designer  

Общая информация об использовании 3CX Call Flow Designed содержится в руководстве пользователя [8] и статье в этом блоге [9].

1. Сделайте копию папки демо-проекта CFD DateTimeRouting, которая находится в папке Documents3CX Call Flow Designer Demos, чтобы экспериментировать на копии оригинального приложения, поставляемого с дистрибутивом.

2. Скопируйте скрипт C# (в нашем случае Project1.cs) в папку Libraries CFD проекта и дайте ему узнаваемое имя, например, QueueAdjust.cs.

3. Модифицируйте исходный проект, оставив два ветвления и добавив в каждое из них компонент LaunchExternalScript.

4. В первом компоненте LaunchExternalScript1 установите свойства в соответствии с нашей задачей и семантикой C# скрипта.

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 6

5. Во втором компоненте LaunchExternalScript2 также установите свойства для второго ветвления (временного диапазона).

Программирование для 3CX на C#: используем 3CX Call Control API в среде разработки Call Flow Designer - 7

6. Скомпилируйте и разместите приложение в служебной Очереди вызовов, как описано в последнем разделе предыдущей статьи [9].

Заключение

3CX Call Control API, для которого ведется разработка, — мощный инструмент управления вызовами в АТС, и самой АТС. Например, API позволяет программно управлять текущими вызовами (выполнять, отключать, переводить, записывать и т.п), создавать и изменять пользователей (добавочные номера), управлять правилами переадресации и статусами пользователей, создавать конференции, администрировать IP-телефоны и многое другое. Подробнее о нем можно узнать здесь [10]. Однако обратите внимание, что для интеграции 3CX V15.5 с CRM системой сейчас используется отдельный серверный REST API. Например, здесь [11] приведен пример серверной CRM интеграции с Bitrix24.

Автор: Игорь Снежко

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/c-2/266500

Ссылки в тексте:

[1] 3CX Call Flow Designer: http://downloads.3cx.com/downloads/3CXCallFlowDesigner.exe

[2] 3CX API Documentation Package: http://downloads.3cx.com/downloads/misc/callcontrolapi/3CXCallControlAPI_v15.zip

[3] Visual Studio Code: https://code.visualstudio.com/

[4] .NET Core SDK: https://go.microsoft.com/fwlink/?linkid=848827

[5] .NET 4.6.1 SDK: http://www.microsoft.com/en-us/download/details.aspx?id=49978

[6] этой ссылке: https://www.3cx.com/community/attachments/project1-zip.5860/

[7] этот учебник: https://www.microsoftpressstore.com/store/begin-to-code-with-c-sharp-9781509301157

[8] руководстве пользователя: https://www.3cx.com/docs/manual/#section6

[9] статье в этом блоге: https://habrahabr.ru/company/3cx/blog/339694/

[10] здесь: https://www.3cx.com/docs/call-control-api/

[11] здесь: https://www.3cx.com/docs/bitrix24-crm-integration/

[12] Источник: https://habrahabr.ru/post/340780/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best