2012-03-07 67 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