Взаимодействие с телефонными системами от * nix

StackOverflow https://stackoverflow.com/questions/86219

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

Я создал небольшой скрипт 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top