2016-12-09 4 views
0

アスタリスクIVRを使用して誰かがAまたはBまたはC(私は既にグーグルでこれを行いました)を呼び出すことができますが、私がブロックしているのは選択を記録することだけですMySQLのデータベースで。どうすればいいですかアスタリスクIVRレコードの選択

答えて

0

最初に理解しておきたいことは、Asterisk Gateway Interface(AGI)の仕組みです。 AGIは基本的に、スクリプト間の通信のために双方向のテキストチャネルを実装します。このテキストチャネルの通信に基づいて何が起こる必要があるかを実装することができます。スクリプトは、DTMF値を検出するアスタリスクに基づいて選択された番号を取得し、適切な応答を返すことができます。

あなたが作業している言語を指定していません。そこから選択を記録して次のステップに戻します。あなたの言語に応じて、これを別のスレッドに渡して、バックグラウンドでレコードコマンドを実行させることさえできます。

それ以外の場合は、選択した言語でコードを記述し、AGIライブラリを使用してAsteriskサーバーからの入力と出力を提供してください。

0

この簡単なタスクでは、AGI(追加のプロセスを生成する)を使用する必要はありません。

ivrを選択した後、func_odbcを使用して必要なテーブルに記録してください。 func_odbc.conf

[save_record] 
dsn=mysql1 
writesql=insert into SAVE_TABLE_HERE (uniqueid,cid,result) values('${ARG1}','${ARG2}','${VAL1}'); 

[ivr] 
exten => s,1,Background(press-1-or-2-or-3) 
same => n,Wait(20); 

exten =>1,1,Set(ODBC_save_record(${CDR(uniqueid)},${CALLERID(num)})=1); 
same =>n,Dial(SIP/101,,or); 

exten =>2,1,Set(ODBC_save_record(${CDR(uniqueid)},${CALLERID(num)})=2); 
same =>n,Dial(SIP/102,,or); 

exten =>3,1,Set(ODBC_save_record(${CDR(uniqueid)},${CALLERID(num)})=3); 
same =>n,Dial(SIP/103,,or); 

は確かにあなたもsomethignをチェックし、res_config_odbc.confを変更し、acordinly

不要維持conenctionを/etc/odbc.ini必要です。 dialplanでその関数を使用するだけです。

関連する問題