2012-03-07 8 views
3

私はCisco IP-Phone 7945を使用しており、CLIから制御したいと考えています。たとえば、私はCLIからcisco IP-Phoneを制御する方法はありますか。

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

または

call cancel 

誰もがツールまたは似何かを知っているようなコマンドを開始したいですか?

私はレールアプリを書いています。特定の操作の後にアプリ内から電話をかけたいと思います。

答えて

5

7945には、認証されたユーザーによる「ダイヤル」コマンドを含むコマンドの実行を許可するWebインターフェイスがあります。

あなたのレールのアプリはhttp://phone-ip-address/CGI/ExecutePOSTで電話に次のようになり、いくつかのXMLを接続します:

認証はHTTPベーシック認証およびバックエンド認証で行われ
<CiscoIPPhoneExecute> 
    <ExecuteItem URL="Dial:12345" /> 
</CiscoIPPhoneExecute> 

は、どのような電話システムによって決定されます7945が接続されています。 Cisco Call Managerの場合、割り当てられたCall Managerユーザ情報が使用されます。

詳細については、cisco.comのIP Phoneサービスガイドを参照してください。クイックリンク:

短い答え:それはCLIではないのですが、と相互作用することによって、ダイヤラをプログラムすることは容易ですHTTP経由の電話。

+0

関連リンク – yarek

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

答えとコードの例はDavidにありがとうございます。私はもうプロジェクトに取り組んでいないので、テストできません。しかし、うまくいけば誰かがこれが役に立つと思うでしょう。 – Daniel

関連する問題