Введение
Писать программы для системы 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.
3. Загрузите 3CX API Documentation Package. Вам потребуется файл 3CXObjectModel.2.0.0.0_v15.chm из архива, в котором содержится описание классов, методов и свойств объектов 3CX.
4. Загрузите Visual Studio Code. Это небольшой, интеллектуальный редактор кода. При установке можно установить отмеченные опции для упрощения дальнейшей работы.
5. Установите .NET Core SDK и .NET 4.6.1 SDK
6. Скачайте ZIP архив с демо-скриптом C# по этой ссылке. В архиве содержится файл проекта Project1.csproj, который в основном похож на файл OMSamples.csproj из загруженного ранее архива документации 3CX API. Разархивируйте и кликните на файле Project1.csproj, который откроется в приложении VS Code.
7. В среде VS Code установите расширение для C#. Для этого нажмите Show Recommendation.
Затем установите все рекомендуемые расширения. После установки не забудьте нажать голубую кнопку Reload.
8. На последнем этапе необходимо установить некоторые зависимости C#. Перейдите в Explorer > Libraries > Project1.cs, и они установятся автоматически.
А теперь можно начинать программировать. Во время создания приложения среда разработки будет автоматически исправлять ваши ошибки, дополнять операторы и т.п.
Если вы никогда не занимались программированием, и, в частности, на C#, могу порекомендовать этот учебник.
Демо-приложение 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 содержится в руководстве пользователя и статье в этом блоге.
1. Сделайте копию папки демо-проекта CFD DateTimeRouting, которая находится в папке Documents3CX Call Flow Designer Demos, чтобы экспериментировать на копии оригинального приложения, поставляемого с дистрибутивом.
2. Скопируйте скрипт C# (в нашем случае Project1.cs) в папку Libraries CFD проекта и дайте ему узнаваемое имя, например, QueueAdjust.cs.
3. Модифицируйте исходный проект, оставив два ветвления и добавив в каждое из них компонент LaunchExternalScript.
4. В первом компоненте LaunchExternalScript1 установите свойства в соответствии с нашей задачей и семантикой C# скрипта.
5. Во втором компоненте LaunchExternalScript2 также установите свойства для второго ветвления (временного диапазона).
6. Скомпилируйте и разместите приложение в служебной Очереди вызовов, как описано в последнем разделе предыдущей статьи.
Заключение
3CX Call Control API, для которого ведется разработка, — мощный инструмент управления вызовами в АТС, и самой АТС. Например, API позволяет программно управлять текущими вызовами (выполнять, отключать, переводить, записывать и т.п), создавать и изменять пользователей (добавочные номера), управлять правилами переадресации и статусами пользователей, создавать конференции, администрировать IP-телефоны и многое другое. Подробнее о нем можно узнать здесь. Однако обратите внимание, что для интеграции 3CX V15.5 с CRM системой сейчас используется отдельный серверный REST API. Например, здесь приведен пример серверной CRM интеграции с Bitrix24.
Автор: Игорь Снежко