Взаимодействие с системами телефонии от * nix - PullRequest
1 голос
/ 17 сентября 2008

Кто-нибудь знает какой-либо «стандартный» способ взаимодействия с телефонной системой (например, Cisco CCM) из приложения C / C ++ в * nix? Я использовал MS TAPI в прошлом, но это только для Windows, и я не хочу идти по пути jTAPI (Java), который, по-видимому, является единственным вариантом.

Я хочу отслеживать телефонную систему для регистрации (поэтому я знаю, когда пользователи звонили, принимали звонки и т. Д.). TAPI хорош в таких вещах, но я не могу быть первым человеком, который хочет сделать что-то подобное без сервера Windows.

Обратите внимание, что мне нужно интегрироваться с существующими системами УАТС, в частности с Cisco CCM и Nortel BCM.

Ответы [ 3 ]

1 голос
/ 18 сентября 2008

У меня есть опыт работы с двумя стандартами телефонии TAPI и CSTA, насколько я знаю, что между поставщиками (например, Cisco, Nortel, NEC) нет такого соглашения относительно стандартного API.

Я бы порекомендовал проверить наличие SMDR (Подробная запись сообщений станции) на целевых платформах УАТС, предполагая, что управление вызовами / устройствами не требуется. Это позволит вам получать доступ к действиям УАТС в виде текстового потока и анализировать данные для дальнейших манипуляций в соответствии с вашими целями.

Скорее всего, формат между поставщиками УАТС будет другим, но, надеюсь, его можно будет абстрагировать, чтобы основные функциональные возможности приложения можно было повторно использовать.

Вероятно, это будет более переносимый вариант, опять же при условии, что управление вызовом / устройством не требуется, поскольку вы не полагаетесь на поставщика, обеспечивающего подключение CTI на выбранной платформе.

0 голосов
/ 31 октября 2016

Это старый вопрос, но он все еще отображается в результатах поиска, поэтому я решил опубликовать свое решение здесь:

Я создал небольшой скрипт bash, который подключается к УАТС Panasonic KX через telnet, запланировал его запуск с crontab и написал код моего приложения, чтобы получить файлы журнала и проанализировать их.

Вот мой bash-скрипт:

#!/bin/sh

HOST="192.168.0.200"
PORT="2300"
USER="SMDR"
PASS="PCCSMDR"

FILE=/var/smdr/smdr-`date +%F`.log
TS=`date +"%F %T"`

echo "### ${TS}" >> $FILE

(
  echo open $HOST $PORT
  sleep 2
  echo $USER
  sleep 2
  echo $PASS
  sleep 150
  echo "quit"
) | telnet | tee -a $FILE
0 голосов
/ 19 сентября 2008

Вот еще один голос за SMDR. Все системы телефонии, которые я видел, предлагают возможность регистрации SMDR через последовательный порт на телефонной будке. Просто захватите текст с последовательного порта и проанализируйте его при необходимости.

Я написал серверный процесс, который захватывает выходные данные SMDR, анализирует их и сохраняет результат в базе данных, которую наши другие приложения могут использовать, чтобы увидеть добавочный номер, номер телефона, время и продолжительность каждого телефонного звонка.

...