2008-09-17 30 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