Как управлять RanCOM с помощью PowerShell

Довольно часто возникает задача автоматизировать какие-либо действия с АТС для выполнения типовых операций. Обычно для этого нужно покупать дорогое программное обеспечение или заказывать его разработку. На это уходит много времени и денег. А как сделать это оптимальным способом с небольшими затратами? Ответ на этот вопрос можно найти, если вспомнить о скриптовом языке Windows PowerShell. Его можно использовать для управления АТС, которая подключена к серверу Rander. PowerShell будет взаимодействовать с модулем интеграции с внешними приложениями RanCOM Plus, который входит в состав семейства программ Rander Plus. Поскольку RanCOM после своей установки на компьютер создает COM объект, стало быть этим COM объектом можно управлять с помощью различных механизмов, в том числе и с помощью скриптового языка PoweShell.


Пример совершения звонка из командной строки PowerShell

Исходная конфигурация: АТС Panasonic KX-NCP500RU, Rander Server Plus Ver.5, RanCOM Plus Ver.5, Rander Client Ver.5, TSP драйвер Ver.4.2.12, Windows 8.1, PowerShell ISE.

Попробуем посмотреть как это возможно на конкретном примере. В нашем случае мы используем АТС Panasonic KX-NCP500RU и программное обеспечение Rander Server Plus с модулем интеграции RanCOM Plus. Это программное обеспечение уже установлено, TSP драйвер так же установлен и мы можем убедиться, что вся система работает исправно, если запустим клиент Rander и выполним все необходимые "Настройки". Теперь, когда мы убедились, что система полностью работоспособна, можем приступать к изучению возможностей управления сервером Rander и АТС с помощью PowerShell.

  • Запускаем командную строку от имени администратора и вводим команду regedit, в результате чего открывается содержание системного реестра. Ищем в системном реестре записи, имеющие отношение к RanCOM. Как видим, в реестре имеется запись RanderCOM.RanCOM.1 Запомним это имя для использования его в командах PowerShell.

    Окно системного реестра


  • Запускаем от имени администратора Windows Powershell ISE. Это очень удобный механизм для написания скриптов. Создаем новый объект и присваиваем ему имя $r

    PS C:\WINDOWS\System32> $r = New-Object -ComObject RanderCOM.RanCOM.1


  • Если объект создался успешно, мы сможем посмотреть методы, доступные для этого объекта. Для этого вводим команду

    PS C:\WINDOWS\System32> $r | Get-Member

    И получаем следующий результат:

    Перечень доступных методов



  • Далее необходимо подключиться к серверу с именем "ctiserver" (можно использовать IP-адрес), а так же логином "admin" и паролем "1234". Для этого вводим команду

    PS C:\WINDOWS\System32> $r.Connect("ctiserver","admin","1234")


  • Открываем линию для управления. В нашем случае это телефон с номером 103.

    PS C:\WINDOWS\System32> $r.OpenLine("103")

    В ответ на это действие будет выдан ID линии. В нашем случае это 73207

  • Теперь можем выполнить звонок на любой номер, который не запрещен правилами набора при программировании АТС. В нашем случае набираем номер 114.

    PS C:\WINDOWS\System32> $r.Dial2("73207","114")

    Телефон звонит! Все работает! Ура!

  • Еще одна очень интересная возможность это смена категории обслуживания абонента в зависимости от определнных событий, произошедших в компьютере. Мы можем создать файл скрипта примерно следующего содержания:

    $r = New-Object -comobject RanderCOM.RanCOM.1

    $r.Connect("ctiserver","admin","1234")

    $d = $r.OpenLine("303")

    $r.SetCOS($d,"02")

    Здесь мы создаем объект, подключаемся к серверу, открываем линию, чтобы узнать ее идентификатор, и устанавливаем для этой линии COS=2. Этот механизм можно использовать, например для ограничения выхода на внешние линии в соответсвии с данными биллинговой программы или Radius сервера, просто запустив данный файл скрипта.

Выводы

Таким образом, мы видим, что из скриптового языка можно открыть COM объект и управлять им, используя доступные методы. Тем, кто владеет скриптовыми языками, не составит труда написать нужный скрипт и использовать его регулярно для своих нужд. Кроме того, необходимо отметить, что язык PowerShell не единственный скриптовый язык, доступный в среде MS Windows. Использование языка Java Script может дать еще более широкие возможности при использовании RanCOM в WEB приложениях.

г.Пермь, 28.08.2014 г. Рабчевский Андрей Николаевич