2016-08-12 6 views
0

私は外部データベースにアスタリスクのダイヤルプランからアクセスしようとしていますが、「アプリケーションのMySQLに拡張子mycontextnameがありません」というエラーが表示されます。アスタリスクダイヤルプランから外部MYSQLデータベースにアクセスするにはどうすればよいですか?

私は "module show mysql"のようなコマンドを実行して、0モジュールを表示します。私はapp_addon_sql_mysql.soモジュールのようなmysqlアドオンを追加しなければならないというブログを読んだが、一度見つけたら状況を解決していない。私はまだ "mysqlのようなモジュールショー"コマンドの後に0モジュールを取得します。

私はアスタリスク13.10.0を使用していますが、mysqlモジュールは私のアスタリスクのバージョンでうまく動作しますか?

+0

アスタリスク13には、app_mysql.soモジュールがあります。 try:module load app_mysql.so – viktike

答えて

0

Mysqlは古くから追加のアプリケーションです。あなたはそれを使用すべきではありません。あなたが持っているなら、コンパイルする必要があります(makeの前にmenuconfigを作ってください)。

推奨の方法はfunc_odbcの使用またはREALTIME

-1

個人的にですが、私はアスタリスクのダイヤルプラン内のデータベースのものをやって好きではありません。私はそれが醜い、書き込み(引用)、維持するのが難しい、壊れやすいと脆いことがわかります。

私は、アプリケーション(ロジックとデータベースアクセス)をAGIに書き込むことをお勧めします。あなたはデータベースへの「完全な」アクセス権を持っており、あなたのコードが実際のコンパイラ(またはスクリプトインタープリタ)によってチェックできる素敵なブラックボックスにすべての詳細を隠すことができます。

+0

AGIは、使用するたびに新しいプロセスを実行します。確かにあなたが望むように書くことができますが、func_odbcの性能は、ほとんどの場合、はるかに良いでしょう。 – arheops

+0

はい、プロセスの作成はより高価ですが、スクリプト言語でAGIを作成し、呼び出し元とのやりとりの間に何十も実行しない限り、コストは非常に小さくなります。 – sedwards

+0

申し訳ありません。 '5分編集'タイマーでキャッチされました... はい、プロセスの作成はより高価ですが、スクリプト言語でAGIを作成し、呼び出し元とのやりとりの間に数十回実行しない限り、コストは非常に小さくなります何百もの同時通話を処理します。 ほとんどの自分のAGIをC言語で書いていますので、PerlやPHPで書かれたAGIを使ってインタープリタを読み込み、ソースを解析し、バイトコードを生成して実行するときにxxxを実行できます。 – sedwards

関連する問題