2017-04-24 111 views
2

我們在我們的基於java的客戶端使用TAPI技術連接到PBX硬件使用CTI操作(開始呼叫,處理接收呼叫等)。 要連接到TAPI,我們使用gjtapi項目。我們從我們的客戶gui開始撥打電話,我們可以監控這些事件,並查看與客戶端連接的電話設備上的事件。SIP替代TAPI?

作爲替代,我試過SIP協議,我們也可以開始通話,但是當我們連接使用SIP協議的電話裝置被旁路,我們沒有看到設備上的任何東西。例如,當使用TAPI並且我們接到一個電話時,我們看到電話和我們的gui上的來電,它們都是同步的。但是當我使用SIP連接並接聽電話時,電話設備上沒有任何反應。這是一個錯誤的設置/實現還是SIP的行爲,它提供了某種軟電話?

+1

使用SIP將始終繞過您的設備,因爲它會嘗試使用網卡上的IP堆棧連接到另一方。要使用你的硬件,你應該有一些特定的綁定(Windows TAPI的gjtapi或者其他專有的)。 SIP能夠管理呼叫會話並促進IP/RTP信道的SDP協商,但不知道硬件設備(調制解調器,CTI卡),因此它將繞過它們 –

回答

3

TAPI是第三方技術:意味着您的應用程序不執行「工作」,它將命令發送給PBX以您的名義執行「工作」。

在SIP中,您必須自己做所有事情:您可以在某處設置呼叫,但您在告訴其他事情要做什麼方面非常有限。

您可以從SIP獲得與TAPI類似的功能,但涉及範圍更廣。你需要把自己定位爲「中間人」。比如你想從設備到外部的呼叫:

  • 首先撥打電話(從您的應用程序)的設備
  • 其次撥打電話(從您的應用程序)的外部方
  • 三連接兩端

但是,如果您想在此之後使用類似TAPI的控件,則需要將應用程序保留在「循環中」。 SIP只能控制你直接參與這意味着你需要:。

  • 長號的電話(音頻通過您的應用程序)
  • 使用媒體旁路(聲音變兩方之間),但你保持信號

這也可能是危險的,因爲它意味着您的應用程序處於所有呼叫之間:意味着它是否崩潰,所有呼叫都將丟失!

我建議你不要低估使用這種方式正常工作所需的工作量。還有其他的選擇,例如CSTA,許多PBX支持他們自己的專有接口來進行這種控制。但在我看來,TAPI可能是第三方通話控制的更好選擇(特別是如果您想支持多於1個PBX供應商)

1

您可以將SIP和TAPI結合起來,而不必更改任何代碼。例如,您可以像現在一樣爲您的PBX使用TSP(電話服務提供商),並且很可能會處理您需要的一切。但是,您也可以通過SIP連接到集團電話。在調用方式上存在技術差異,但最終結果基本相同。您也可以繞過PBX並使用任何由PBX公開的SIP中繼線或SIP中繼線。要使用SIP,您可以使用我們的SIP Communication Server軟件,它是TAPI和SIP之間的橋樑。這是允許您使用所有現有TAPI代碼與SIP協同工作的選項。免責聲明:我爲製造和銷售TAPI/SIP組件和解決方案的ExceleTel工作。