Aastra XML

2017年11月18日 (土) 17:44時点におけるSysop (トーク)による版 (「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にドキュメントとサンプルコードがあります。