代码之家  ›  专栏  ›  技术社区  ›  Rob

与*nix的电话系统接口

  •  1
  • Rob  · 技术社区  · 16 年前

    有人知道有什么“标准”的方式来与电话系统(思科CCM)从一个C/C++应用程序在*NIX?我过去使用过TAPI,但这只是Windows,不想去JTAPI(Java)路由,这似乎是唯一的选择。

    我想监控电话系统以便记录(这样我就知道用户何时打过电话、接到过电话等)。Tapi擅长这种事情,但我不能成为第一个不使用Windows服务器就想做类似事情的人。

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

    3 回复  |  直到 16 年前
        1
  •  1
  •   Henk    16 年前

    我有两个电话标准TAPI和CSTA的经验,据我所知,供应商(如Cisco、Nortel、NEC)之间没有关于标准API的协议。

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

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

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

        2
  •  0
  •   Kluge    16 年前

    这是SMDR的另一张选票。我见过的所有电话系统都提供了通过电话箱上的串行端口登录SMDR的选项。只需从串行端口捕获文本并根据需要进行分析。

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

        3
  •  0
  •   isapir    8 年前

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

    我创建了一个小的bash脚本,通过telnet连接到松下KX PBX,并计划运行 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
    
    推荐文章