有没有人知道通过*nix中的C/C++应用程序与电话系统(比如Cisco CCM)进行交互的“标准”方法?我过去用过MS,但这只是Windows,不想走jTAPI (Java)路线,这似乎是表面上的唯一选择。
我想要监控电话系统以进行日志记录(这样我就可以知道用户何时拨打电话、接听电话等)。TAPI擅长这类事情,但如果没有Windows服务器,我不可能是第一个想做类似事情的人。
请注意,我需要与现有的PABX系统集成,尤其是Cisco CCM和Nortel BCM。
发布于 2008-09-17 20:16:55
我有两个电话标准TAPI和CSTA的经验,据我所知,供应商(例如Cisco、Nortel、NEC)之间没有关于标准API的协议。
假设不需要呼叫/设备控制,我建议您在目标用户小交换机平台上查看SMDR (Station Messaging Detail Recording,站点消息详细记录)的可用性。这将允许您以文本流的形式访问PBX活动,并且您可以解析数据以进行进一步的操作,以满足您的目的。
PBX供应商之间的格式很可能是不同的,但希望这种格式可以被抽象出来,以便核心应用程序功能可以重用。
这可能是一个更便携的选择,同样假设不需要呼叫/设备控制,因为您不依赖于在您选择的平台上提供CTI连接的供应商。
发布于 2008-09-18 20:01:34
这是对SMDR的另一次投票。我见过的所有电话系统都提供了通过电话盒上的串行端口进行SMDR记录的选项。只需从串口捕获文本并根据需要对其进行解析。
我编写了一个服务器进程来捕获SMDR输出,解析它并将结果保存在数据库中,我们的其他应用程序可以使用该数据库来查看每个电话呼叫的分机、电话号码、时间和时长。
发布于 2016-11-01 02:40:00
这是一个老问题,但仍然出现在搜索结果中,所以我想我应该在这里发布我的解决方案:
我创建了一个通过远程登录连接到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 $FILEhttps://stackoverflow.com/questions/86219
复制相似问题