![画像](https://habrastorage.org/getpro/habr/post_images/e27/dae/e2a/e27daee2a3dde79b9cd0300671fa366c.gif)
シスコのIP電話、たとえば、人気の7911G(Anigifにあります)および古いモデルは、http要求を実行してサービス、特に組織の電話帳を作成する機能をサポートしています。
仕組み Webサーバーでスクリプトを構成します。このサーバーは、電話からのGETリクエストに応答して、電話で表示された厳密に定義されたXMLを返します。 電話帳の場合、最初に部門のリストが表示されます。
<CiscoIPPhoneMenu> <MenuItem> <Name>管理</ Name> <URL> http://webserver/phone/telbook.asp?Depid = 10 </ URL> </ MenuItem> </ CiscoIPPhoneMenu>
部門を選択すると、電話はURLから住所に2回目の要求を行い、従業員とその電話のリストを表示します。
公式ヘルプのリストの画像と構造の例を次に示します 。
<CiscoIPPhoneDirectory> <タイトル>タイトル</タイトル> <プロンプト>ヒント/サブタイトル</プロンプト> <DirectoryEntry> <Name>名前</ Name> <電話>電話</電話> </ DirectoryEntry> </ CiscoIPPhoneDirectory>
![](https://habrastorage.org/getpro/habr/post_images/11f/ba6/aec/11fba6aec587450e326db633e5b61584.jpg)
電話管理者の側では、キーのいずれかを押すか、メニュー項目を選択したときにスクリプトへの呼び出しを登録する必要があります。具体的には、7911Gでは[アプリケーション]-> [ヘルプ]を使用します。 電話の設定では、通話は<InformationURL> webserver / phone / directory.asp </ InformationURL>として設定されます。 しかし、7965Gモデルには電話帳用の個別のキーがあり、それを押すと<DirectoryURL>からアドレスが呼び出されます。 したがって、すべての電話機で、すべての* URLは同じスクリプトを指しているだけです。
戻るボタンや、インデックスによる部門または電話の選択など、小さなアメニティが利用できます。 重要な利便性は、電話自体がフォーム8(495)555-11-22のレコードをダイヤル番号84955551122に変換することです。これにより、人々が読みやすい番号を表示できます。
スクリプトが必要なXMLを正確に生成する方法は、誰でも選択できます。 XSLを使用して、ブラウザーで電話帳を表示するために使用するのと同じスクリプトがあります。 これを行うには、生成されたXMLに1行追加します
<?xml-stylesheet type = "text / xsl" href = "http:// <%= servernamepath%> /telbook.xsl"?>さらに、ロシア語のスペル名を持つ要素RusNameを出力します。 RusNameは構造上のエラーとして電話によって認識され、スクリプトは1つしかないため、誰がスクリプトを呼び出したのかを決定的に決定します。
InStr(1、Request.ServerVariables( "http_user_agent")、 "allegro"、1)> 0の場合、isphone = 1
そして、電話はユーザーからデータを受信することができます。内部コードで相手の電話を試してみましたが、機能は動作しましたが、ルートを取得しませんでした。
<CiscoIPPhoneInput> <タイトル> Vuz検索</タイトル> <プロンプト> vuz kodを入力:</プロンプト> <URL> http://webserver/phone/search.asp?Type = vuz </ URL> <InputItem> <DisplayName> KOD </ DisplayName> <QueryStringParam> kod </ QueryStringParam> <InputFlags> T </ InputFlags> </ InputItem> </ CiscoIPPhoneInput>
CiscoIPPhoneInput自体の呼び出しはメインCiscoIPPhoneMenuの別の行であり、ユーザーが番号を入力すると、電話機はパラメータKODをスクリプトに渡し、CiscoIPPhoneDirectoryで見つかった電話機のリストを表示します。
さらに、理論的には、電話機はアイドルモードでスクリプト要求を行うことができます。また、リフレッシュヘッダーを使用して、定期的に新しいデータを自動的に要求することもできます。 少なくとも数値形式でサーバーの負荷を監視したいのですが、ドルの為替レートである可能性があります。電話を見ると、誰かがすべてのカーネルを取得していることがすぐにわかります。