문제

*nix의 C/C++ 앱에서 전화 통신 시스템(Cisco CCM 등)과 인터페이스하는 '표준' 방법을 아는 사람이 있습니까?나는 과거에 MS TAPI를 사용해 본 적이 있지만 이것은 Windows에만 해당되며 표면적으로는 유일한 옵션인 것처럼 보이는 jTAPI(Java) 경로로 가고 싶지 않습니다.

로깅 목적으로 전화 시스템을 모니터링하고 싶습니다(사용자가 언제 전화를 걸고, 전화를 받았는지 등을 알 수 있도록).TAPI는 이런 종류의 작업에 능숙하지만 Windows 서버 없이 비슷한 작업을 수행하려는 최초의 사람은 될 수 없습니다.

기존 PABX 시스템, 특히 Cisco CCM 및 Nortel BCM과 통합해야 합니다.

도움이 되었습니까?

해결책

저는 두 가지 전화 통신 표준인 TAPI와 CSTA에 대한 경험이 있지만 공급업체 간에 그러한 합의가 없는 것으로 알고 있습니다(예:표준 API에 관한 Cisco, Nortel, NEC).

이용 가능 여부를 살펴보는 것이 좋습니다. SMDR (스테이션 메시징 세부 녹음)은 통화/장치 제어가 필요하지 않다는 가정 하에 대상 PBX 플랫폼에서 수행됩니다.이를 통해 PBX 활동을 텍스트 스트림으로 액세스할 수 있으며 목적에 맞게 추가 조작을 위해 데이터를 구문 분석할 수 있습니다.

PBX 공급업체 간의 형식은 다를 가능성이 높지만 이를 추상화하여 핵심 애플리케이션 기능을 재사용할 수 있기를 바랍니다.

선택한 플랫폼에서 CTI 연결을 제공하는 공급업체에 의존하지 않기 때문에 통화/장치 제어가 필요하지 않다고 가정하면 이는 보다 이식성이 뛰어난 옵션일 가능성이 높습니다.

다른 팁

여기 SMDR에 대한 또 다른 투표가 있습니다.내가 본 전화 통신 시스템은 모두 전화 상자의 직렬 포트를 통해 SMDR 로깅 옵션을 제공합니다.직렬 포트에서 텍스트를 캡처하고 필요에 따라 구문 분석하면 됩니다.

나는 SMDR 출력을 캡처하고 구문 분석한 후 다른 응용 프로그램이 내선 번호, 전화 번호, 각 전화 통화 시간 및 길이를 확인하는 데 사용할 수 있는 데이터베이스에 결과를 저장하는 서버 프로세스를 작성했습니다.

이것은 오래된 질문이지만 여전히 검색 결과에 표시되므로 여기에 솔루션을 게시할 것이라고 생각했습니다.

Telnet을 통해 Panasonic KX PBX에 연결하는 작은 bash 스크립트를 만들고 다음과 같이 실행되도록 예약했습니다. 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