Aastra XML
Aastraの多くの電話機はXMLでの制御をサポートしていますが、機種によってサポートレベルは異なります。
- 9133i
- プログラマブルキー、状態によるXMLの実行
- テキストメッセージの表示
- LEDの制御は行えない
- 57i
- 最上位機種のため、ほぼフルコントロール
- メッセージ表示以外にもグラフィックも可能
- LEDの制御可能
XMLブラウザ
Aastra 57iはXMLブラウザの機能を持っているためXMLでのサービスを使用することができます。デモ用アプリケーションがAAstraから提供されています。
http://www.aastratelecom.com/cps/rde/xchg/SID-3D8CCB73-FF4FABF6/03/hs.xsl/23485.htm
設定方法は簡単でファンクションキーのひとつのTypeをXMLにし、ラベルを指定した後にValueにURLを設定します。
たとえばKey1のTypeをXML、LabelをCNN NewsとしValueに http://65.205.71.13/xml/rss/rss.php?feed=cnn を記述すれば電話機のボタンを押してCNN Newsを見ることができます。
XMLによる電話機制御
電話機に対してXMLを投げるとLEDが制御できたりメッセージが表示できたりします。HTTP POSTで投げるだけですが、どこから投げてもいいわけではなく、Configuration Server SettingsでXML Push Server List(Approved IP Addresses)の項目でPushするサーバのIPアドレスを設定しておきます。
LED制御(57i)
Softkey3(左下)のLEDを制御するにはperlではこんな感じで出来ます(デベロッパ・ガイドのコードを流用)。
#!/usr/bin/perl # Create a user agent object use LWP::UserAgent; use LWP::ConnCache; use HTTP::Request::Common; my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)'); $ua->conn_cache(LWP::ConnCache->new()); $ua->request( POST 'http://電話機のIPアドレス', Content_Type => 'application/x-www-form-urlencoded', Content => 'xml=<AastraIPPhoneExecute> <ExecuteItem URI="Led: softkey3=slowflash"/> </AastraIPPhoneExecute>');
softkey3=の部分はon,off,slowflash,fastflashが指定できます。
なお、制御できるLEDは、そのキーの設定が'XML'になっているものだけです。他の機能を割り当てている場合にはLEDは制御できません。
テキストメッセージ表示(57i,9113i)
これも割りと簡単です。
#!/usr/bin/perl # Create a user agent object use LWP::UserAgent; use LWP::ConnCache; use HTTP::Request::Common; my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)'); $ua->conn_cache(LWP::ConnCache->new()); $ua->request( POST 'http://電話機のIPアドレス', Content_Type => 'application/x-www-form-urlencoded', Content => 'xml=<AastraIPPhoneTextScreen beep="yes"> <Title>TEST</Title> <Text>This is Test</Text> </AastraIPPhoneTextScreen>');
電話機にダイヤルさせる(57i)
こんなこともできます。
#!/usr/bin/perl # Create a user agent object use LWP::UserAgent; use LWP::ConnCache; use HTTP::Request::Common; my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)'); $ua->conn_cache(LWP::ConnCache->new()); $ua->request( POST 'http://電話機のIPアドレス', Content_Type => 'application/x-www-form-urlencoded', Content => 'xml=<AastraIPPhoneExecute Beep="yes"> <ExecuteItem URI="Dial:300" interruptCall="no"/> </AastraIPPhoneExecute>');
ドキュメントではDial: 300のようにコロンの後ろに空白があるのですが、空白が入っていると' 300'にダイヤルしようとしてしまうようです。
ドキュメント
http://www.aastratelecom.com/cps/rde/xchg/SID-3D8CCB73-0B583F03/03/hs.xsl/21880.htm
この下の方にあるDevelopment Guideにドキュメントとサンプルコードがあります。