スクリプトの一連の入力から、ルーチンとサブルーチンを含むスクリプト (アスタリスク 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