2008-09-17 35 views
0

与电话系统进行接口有谁知道任何'标准'方式与电话系统(思科CCM)通过* nix中的C/C++应用接口吗?我过去使用过MS TAPI,但这仅仅是Windows,不想去看看它的唯一选项jTAPI(Java)路线。从* nix

我想监视电话系统的记录目的(所以我知道用户何时打过电话,接到过电话等)。 TAPI善于处理这类事情,但我不能成为第一个想在没有Windows服务器的情况下做类似事情的人。

请注意,我需要与现有的PABX系统集成 - 特别是Cisco CCM和Nortel BCM。

+0

退房[星号](http://www.asterisk.org/)。 – Ferruccio 2008-09-17 18:44:27

回答

1

据我所知,在两个电话标准TAPI和CSTA方面有经验,供应商(如思科,北电,NEC)之间在标准API方面没有这样的协议。

假设不需要呼叫/设备控制,我建议您在目标PBX平台上查看SMDR(站点消息详细记录)的可用性。这将允许您以文本流的形式访问PBX活动,并且可以解析数据以进一步操作以适合您的目的。

PBX供应商之间的格式最有可能会有所不同,但希望这可以被抽象掉,以便核心应用程序功能可以重复使用。

这可能是更便携的选择,再次假设不需要呼叫/设备控制,因为您不依赖于供应商在您选择的平台上提供CTI连接。

0

这是SMDR的另一个投票。我见过的电话系统都提供了通过电话盒上的串行端口进行SMDR记录的选项。只需从串口捕获文本并根据需要进行解析即可。

我写了一个服务器进程,捕获SMDR输出,解析并将结果保存在数据库中,我们的其他应用程序可以使用该数据库查看每部电话的分机号码,电话号码,时间和长度。

0

这是一个老问题,但仍显示在搜索结果中,所以我想我会后我的解决方案在这里:

我创建了一个通过telnet连接到松下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