自作アプリケーション

概要   Asteriskのextensions.confに自分で勝手に作ったコマンドを登録して
実行してみようという試みです・・・。
拡張機能の一種だと思えばいいのかな・・・

ソース置き場
作成したソースは、Asteriskのソースフォルダのappsの下に入れます。

コンパイル方法(準備)
asteriskが起動していないことを確認してください。
コンパイル準備は、appsフォルダ下のMakefileの『APPS=』に自分の
アプリケーションのファイルを追加するだけです。

コンパイル方法(コンパイル)
asteriskフォルダに戻って、make

インストール
asteriskフォルダでmake install

サンプル   概要
変数名とその内容を指定すると、指定された名前の変数に
指定された内容を書き込み、
更に『FUNCTIONSTATUS』という名前の変数に『OK』と
書き込むというアプリケーションです。

利用例
こんな感じで使います。
[macro-IVR-05-TESTAPP]
exten => s,1,NoOp("macro-IVR-05-TESTAPP")
exten => s,n,myappsample1(TVAL,TDATA)
exten => s,n,NoOp(${TVAL})
exten => s,n,NoOp(${FUNCTIONSTATUS})
exten => s,n,HangUp
上記の例では、自作した『myappsample1』に『TVAL』という名前の変数に『TDATA』という文字列を書き込むように
パラメータ設定しています。
同処理実行後に、変数『TVAL』と変数『FUNCTIONSTATUS』を表示させています。

実行結果
上記のサンプルを実行すると以下のようになります。
  == Spawn extension (macro-IVR-05-TESTAPP, s, 5) exited non-zero on 'SIP/5004-2
    -- Executing Macro("SIP/5004-294d", "IVR-05-TESTAPP") in new stack
    -- Executing NoOp("SIP/5004-294d", ""macro-IVR-05-TESTAPP"") in new stack
    -- Executing myappsample1("SIP/5004-294d", "TVAL|TDATA") in new stack
    -- Executing NoOp("SIP/5004-294d", "TDATA") in new stack
    -- Executing NoOp("SIP/5004-294d", "OK") in new stack
    -- Executing Hangup("SIP/5004-294d", "") in new stack
  == Spawn extension (macro-IVR-05-TESTAPP, s, 5) exited non-zero on 'SIP/5004-2

ダウンロード   サンプルソースのダウンロードはここ→

C言語で書かれています。
パラメータのアクセスなどに専用のマクロが用意されており、それらを利用しています。