[for Canopus MTV users only] MTVシリーズ用留守録システム Ver. 0.00-α2 SystemVer: 0.00α2 LastUpdate: 2002/08/25(Sun) Author: inokuchi 目的: 携帯電話機から簡易な方法で自宅にあるソフトウェアを操作することを目的とする ここで操作するソフトウェアとは具体的にはMTV1000の予約機能である。 つまり、外出中に携帯電話機からMTV1000の留守録機能を設定可能とすることを目的 とする インストール: 添付のnCmd-install.txtをご覧ください。 必要システム: WindowsNT系OS NT4.0はSP3以降が必要と思われる(未確認) POP3 サーバはUIDL コマンドに対応していなければなりません Active Perl (要NET::POP3ライブラリ) 動作確認用環境: Windows2000 SP2 MTV1000, Driver Version 1.16 Active Perl 5.6.0 Build 623 制限: たくさんあると思います。 現状では メール受信から 自動的に タスクへの登録をしていません ->user.envの$lunch_task_commandで変更出来ます 配付について: 実験システムのため配付禁止とします。 履歴: 2002/08/25 - 0.00-α2 (1)バグ修正 ・録画予約パラメータファイル(nnnnn.pra)が指定できていなかったのを修正 (2)仕様変更 ・タスクのジョブ名を"TvrMan 録画予約 (xxxxx)"に変更 MTV Driver Ver1.16のスケジュール一覧で編集可能にするための変更(デバッグにも都合がよいため) ・予約タイトルを追加 予約タイトルは "nCmd - received at MM/DD hh/mm" とする ->タスクにコメントとして追加 ->録画予約パラメータファイルに追加 [TvrManでパラメータ編集すると強制的に変更される動作への対応] (3)実験的要素変更 ・npop3.plからcreate_task.exeを起動するための設定を追加(user.env) 2002/07/28(Sun) - 0.00-α ・テストリリース ========================================================================= 以下内部資料-メモ: (1) 自宅マシン(MTV1000装着マシン) ネットワークに常時接続している。 メールアカウント(A)を持つ (2) 携帯電話機(メール機能あり) (A)に対してメール送信可能とする やること: ・(1)マシンから対象メールを取り出す   取り出す際には特定のメールサブジェクトだけ取り出せる必要がある。 -> 専用のメールアカウントとは限らないため。 また一度処理したメールを再受信した際には無視できる必要がある。 -> 同様の理由 ・メール内容の処理 スケジューラへの録画予約の追加 処理済みメールの送信 ・メール受信処理について POP/APOP対応 ->なにかコマンドを駆使すればできそう INU(WinPopup Biffの後継)のソースとか参考になりそう できればコマンド受信後の受け付け完了メールも送りたいね ・メールコマンド体系 録画予約する番組に関する情報をどうするのか?。 Gコード -> デコード機能が必要 fmt: Gxxxxxxxxxxxx 独自(開始日+開始時間+何分予約+チャンネル番号) -> fmt: DDHHMMhhmmCC CC:チャンネル 上記2方式の切り分けは先頭文字がGであるかどうか。 またGを省略しても桁数的に独自フォーマットに一致しない場合には Gコードと認識する。 Gコードのデコードコードは公には存在しない模様 ->有料で配っている怪しい(?)ページは存在する 携帯電話機 メールサーバ 自宅マシン -------->SMTP--->SPOOL----->POP/APOP-->タスクスケジューラ ->MTV1000 ^- Subject Filtering Security ISSUE: コマンド体系が安直なので外部アタックを受け易い ->SMTP Authを使う? -> 携帯はきっと対応していないよね サーバ側がある程度受け付け拒否しないとどうしようもない どれもいまいちか?。 Envelope FromもFromも偽造は容易。 ->ないよりはましなレベルの防御 Subjectフィルタリング Fromフィルタリング Body内ユーザ認証コマンド ->パスワードが平文(と同等)の状態で流れる メールを出すのが面倒になるかもしれない ユーザ認証モードを使用するかどうかはPC側の設定に依存する ->結局決定打は無いような気がする。メールサーバも運用すればいいのかもしれないけど Command Mail Example: Header) From: "foo" To: "foo" Subject: registered subject Body) User: name Pass: name's password Code: reserved program data Code: reserved program data Code: reserved program data ..... Codeは複数記述可能である(<- すみません、できません)。 nCmd System Design (1) pop3 client program, convert mail_body and mail_header from iso-2022-jp to shift_jis. Yet most command mail consist of ascii charset. (2) task scheduler client program, and interpret command mail. -> included user authentification (3) smtp client program [optional] -> notify command response. nCmd System Files... Schedule Files are: $(MTV)\Schedule\_$10000n.pra MTV1000 録画予約 (10000n).job Manual Command Parameter file is: $(MTV)\Schedule\MANUAL.DAT Mail Spool Directory: $(nCmd)\spool\server\n ※ MTV1000 Ver1.10βドライバではIDの割り当てをジョブ名から算出している模様 そしてジョブ名のMTV1000の部分が一致するかどうかも見ていると思われる。 つぅか、きっとこんなコードになっているんだな。 int i= 0; for (i= 0; ; ++i) { char job[1024]; sprintf(job, "MTV1000 録画予約 (%d).job", i); if (create_task_item(job) == OK) break; } タスクスケジューラ MTVシリーズの予約の概要 $(mtv): MTV-xx00のドライバインストールディレクトリ コマンド:TvMan TvManに対するパラメータ: /id=n nにより録画パラメータファイルを指定している 録画パラメータファイルは $(mtv)\Schedule\_$00000n.pra (6桁)である。 その他はしらない。たぶんお決まりだと思う 録画パラメータファイルの元になるのは $(mtv)\\Schedule\MANUAL.DAT である。 nCmdによる録画はidを100000からの連番とする。TvrManがバグってなければ問題ないでしょう。