2012-03-07 60 views
3

我有一個Cisco IP電話7945,我想從我的CLI控制它。例如,我要像如何從CLI控制Cisco IP電話?

call start 12345 #12345 is the number I want to call 

call cancel 

任何人都知道的工具或類似的東西開始的命令?

我正在寫一個rails應用程序,並且我想在應用程序執行某個操作後開始一個調用。

回答

5

7945有一個web界面,允許由認證用戶執行命令,包括「撥號」命令。

你的Rails應用程序將連接到手機在http://phone-ip-address/CGI/ExecutePOST一些XML,看起來像這樣:

<CiscoIPPhoneExecute> 
    <ExecuteItem URL="Dial:12345" /> 
</CiscoIPPhoneExecute> 

認證所使用的HTTP基本驗證和後端認證所做的是通過什麼手機系統確定你的7945已連接到。如果Cisco呼叫管理器使用分配的呼叫管理器用戶信息。

有關詳細信息,請參閱cisco.com上的IP電話服務指南。快速鏈接:

簡短的回答:它不是一個CLI,但它是直接通過交互來撥號程序通過HTTP的電話。

+0

添加相關鏈接 – yarek 2012-11-02 11:03:44

3

我知道這是一個古老的線程,但認爲我會在Ruby中發佈這個工作代碼示例。在CP-8941手機上測試。用戶名&密碼方案會有所不同。我們的系統設置爲與Active Directory連接,所以用戶名和密碼是我們Windows登錄的用戶名和密碼。

require "net/http" 
require "uri" 

phone = "ip-of-your-phone" 
user = "your-username-goes-here" 
secret = "your-password-goes-here" 
prefix = "91" 
todial = "number-to-dial-goes-here" 



uri = URI.parse("http://#{phone}/CGI/Execute") 

http = Net::HTTP.new(uri.host, uri.port) 

request = Net::HTTP::Post.new(uri.request_uri) 

http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Post.new(uri.request_uri) 
request.basic_auth(user, secret) 

request.set_form_data({"XML" => %(<CiscoIPPhoneExecute><ExecuteItem URL="Dial:#{prefix}#{todial}" /></CiscoIPPhoneExecute>) }) 

response = http.request(request) 
+0

謝謝大衛的答案和代碼示例。我不再在這個項目上工作了,所以我無法測試它。但希望別人會發現這有幫助。 – Daniel 2014-08-23 13:23:53