0

スクリプトの一連の入力から、ルーチンとサブルーチンを含むスクリプト (アスタリスク OBD スクリプト)、一種のシェル スクリプトを生成する必要があります。Javaで行う必要があります。コード生成に使用する設計パターンは? テンプレートパターンとコマンドパターンを試しましたが、中途半端に迷ってやめました。アイデア、デザイン、ドキュメントなどをいただければ幸いです。

以下はサンプルコードです。注 1: <> は、入力として提供されるパラメーターです。注 2: サブルーチンがコーディングされている場合は、ネストされた dtmf 情報。さらに説明が必要な場合はお知らせください。

[<context_name>]
exten => answered,1,set(actionid=actionid:${ACTIONID})
same => n, wait(1)
same => n, read(input,<file path>/<file>,1,,,10)
same => n, gotoif($[${input}=1]?1pressed,1)
same => n, gotoif($[${input}=2]?2pressed,1)
same => n, noop("No/Invalid input")
same => n,hangup

exten => 1pressed,1,read(inputsub,<file path>/<play1>,1,,,10)
same => n, gotoif($[${input}=1]?1subpressed,1)
same => n, gotoif($[${input}=2]?2subpressed,1)
same => n, noop("No/Invalid input")
same => n,hangup
same => n(1subpressed),playback(<file path>/<playsub11>)
same => n,hangup
same => n(2subpressed),playback(<file path>/<playsub12>)
same => n,hangup

exten => 2pressed,1,playback(<file path>/<play2>)
same => n,hangup


exten =>h,1, set(CDR(userfield)=$actionid)
same => n, hangup
4

1 に答える 1

0

これはやり過ぎかもしれませんが、モデル駆動型プロジェクトでは、Eclipse M2T ( http://www.eclipse.org/modeling/m2t/ )を使用して EMF モデルに基づいた拡張コード ジェネレーターをいくつか実装しました。当時は openArchitectureWare と呼ばれていましたが。

ただし、入力はモデルとして利用できる必要があり、XPand などのコードを生成するために M2T 内で使用される言語に慣れる必要があります。

于 2013-09-25T10:06:27.973 に答える