電話番号からFreePBXのContactManagerグループ名を取得するAGIスクリプトです。
Dynamic Routesと組み合わせることで、特定グループの着信を自由にルーティングすることができます。
例えば、迷惑電話を掛けてくるグループを一括で拒否したり、FAX専用ダイヤルの着信をFAX受信先に送ったり、
相手が分かっている着信を最初から特定部署のキューに回したりといった使い方が出来ます。
直接SQLを実行しているため、ContactManagerのDB構造が変わった場合は使えないと思います。
ContactManagerのAPIを使用したかったのですが、GroupNameを取得する方法が見つかりませんでした。
インストールはagi-binディレクトリにコピーし、パーミッションを設定するだけです。
/var/lib/asterisk/agi-binなどですが、各環境に合わせて配置してください。
使い方の一例として、まず下記画像のようにFreePBXのコンタクトマネージャー、Externalにテストというグループを作成し番号を登録します。
次に、Dynamic Routesを下記画像のように構成します。
AGI Lookupはggbn.agiまでのパスと引数です。
引数は番号からグループ名を取得するため[NUMBER]となっています。
AGI Result Variableはggbn.agiに記述されている結果を格納する変数名です。
スクリプトをそのまま使用する場合はgnとなります。
Matchにグループ名を記述することで、そのグループからの着信をルーティングできます。
参考画像では作成したグループ、テストに登録された番号からの着信はすべてTerminate Callに飛ばされるようになります。
こちらのコードを書くにあたって、下記のお二方のコードを多大に参考にさせていただきました。
この場を借りて感謝申し上げます。
lgaetz様 https://gist.github.com/lgaetz/7cab1bc6b6266ba658d5dd90d2e919eb https://community.freepbx.org/t/using-dynamic-routes-with-an-agi-file/77968