質問

私は、Asterisk と Ruby を使用して、スケーラブルな通信グレードのアプリケーションの作成を始めようとしています。当初はこれに Adhearsion フレームワークを使用する予定でしたが、必要な成熟度を備えておらず、ドキュメントも大幅に不足しています。AsteriskRuby は十分に文書化されており、Vonage によって書かれているようであるため、良い代替手段と思われます。

AGI ベースの IVR アプリケーションを導入した経験のある人はいますか?使用している場合、どのようなフレームワークを使用しましたか?正当であれば、Ruby 以外のものも検討します。ありがとう!

役に立ちましたか?

解決

Adhearsion は v0.8.1 がリリースされており、最近ドキュメントが大幅に改善されているので、再度アクセスしてください。ここを見てください:

http://adhearsion.com http://docs.adhearsion.com http://api.adhearsion.com

他のヒント

SipX は本当に間違った答えです。私は SipX 3.10.2 で非常に複雑な VoiceXML を作成しましたが、SipX 4 では IVR を JAR としてコンパイルする必要があるインターフェイス用の SipXVXML が削除されて以来、すべて無駄になってしまいました。これに加えて、Nortel の破産申請、オープンソース バージョンに関するドキュメントの極めて貧弱さ、VXML 2.0 (3.10.2 時点) および SIP 標準 (3.10.2 時点では ITSP とのトランクがうまく機能していない) への準拠が不十分であることが挙げられます。PBX として設計されたことを見事に遂行したことを私は称賛します。しかし、IVR として、もう一度やり直さなければならないとしたら、私は別のことをするでしょう。確かなことは分かりませんが、何かが違います。私は現在 Trixbox CE をいじっており、それを JVoiceXML または VoiceGlue に結び付けることに取り組んでいます。

また、SipX wiki のくだらない記事は読まないでください。SipX 3.10、AsteriskNOW 1、Trixbox 1 を比較しています。来て。Mac OS X と Win95 を比較するようなものです。より現実的な比較としては、SipX 4 (2009 年第 1 四半期リリース予定) と Asterisk 1.6 および Trixbox 2.6 が挙げられます。これは、スケーラビリティと高可用性の領域を除いて、ほぼ同一の結果を達成していることを示しています。SipX はその点で勝ちます。しかし、成熟度と安定性を考えると、私は Asterisk を推奨します。

また、SipXVXML を使用した実際のパフォーマンス結果は次のとおりです。
Dell PowerEdge R200、Xeon デュアル コア 3.2GHz は、ジッターが発生する前に 17 回のコールを処理します。
HP DL380 G4、デュアル Xeon HT 3.2 GHz は、長い一時停止の前に 30 件の通話を処理します。

VoiceGlue と JVoiceXML の評価が完了したら、調査結果を投稿する予定ですが、すべてのツールが Asterisk にネイティブであるため、最終的には AGI から呼び出されるカスタム PHP を作成することになると思います。

「通信グレード」のアプリケーションを探している場合は、アスタリスクの代わりに SipXecs を検討するとよいでしょう。これは機能が豊富で、無料のオープンソースであり、Nortel から商用サポートが提供されます。Ruby (またはその他の言語) の Web サービス API を介して対話できます。

を参照してください。 SipXec ウィキ 詳細については。そのサイトには、AsteriskNOW と TrixBox の機能を比較する比較表があります。

実際には他にフレームワークはありません。もちろん、あらゆる言語に AGI バインディングはありますが、テレフォニー アプリケーションを開発するための本格的なフレームワークに関しては、まだそこまで到達していません。少なくともオープンソースの世界では。

多少関連した質問をしました ここ, ここ, 、 そして ここ. 。私は Microsoft の Speech Server を使用していますが、世にある代替手段、特にオープンソースのものについて学ぶことに非常に興味があります。これらの質問の 1 つに対する答えから、良い情報が見つかるかもしれません。

私が使用した JAGIサーバー 現在は開発中ではありませんが、非常に優れており、使いやすいです。これは FastAGI 用のインターフェイスであり、単純な AGI の代わりに使用することをお勧めします。

このフレームワークの新しいバージョンは、 秩序ある呼び出し 他にもたくさんの機能があるようですが、私はそれらを必要としていないので、試していません。

すべては AGI で何をしたいかによると思います。通常、すべてのユーザー入力を収集して検証するためのやや複雑なダイヤルプランがあり、AGI を使用して Java アプリケーションに接続するだけで、変数を読み取り、それを使って何らかの処理 (操作、クエリなどの実行) を実行し、さらにいくつかの設定を行います。 AGI チャネル上の変数が無効になり、切断されます。この時点で、Java アプリによって設定された変数の結果に応じてダイヤルプランが続行されます。

これは、Java アプリに ServerSocket があり、AGI からの受信接続を受け取り、新しいソケットと JAGIProcessor の新しいインスタンスを使用して JAGIClient を作成するため、非常に高速に動作します (これは作成する必要があり、すべての処理を実行するオブジェクトです)。処理)、スレッド プール内で JAGIClient を実行します。JAGIProcessor は processCall メソッドを実装し、必要なすべての作業を実行し、パラメーターとして渡された JAGIClient と対話して、変数の読み取りと設定、または AGI インターフェイスで許可されるあらゆる処理を実行します。

したがって、Java アプリが常に実行されており、それがコンテナ上の単純な J2SE アプリであっても、EE アプリであっても問題ありません。一度実行すると、新しいプロセスを開始する必要がないため、AGI リクエストを非常に高速に処理します (AGI 呼び出しごとにプログラムを実行する単純な AGI とは対照的)。

またまたスミー。PHPAGI を利用してクライアントの IVR を SipX から Asterisk に移行した後、これほどシンプルで機能的なアーキテクチャには出会ったことがないと言わざるを得ません。今日は、以前に SipX をテストしたのと同じハードウェアで Trixbox CE 2.8 のストレス テストを行います。しかし、IVR に PHPAGI を使用し、デバッグに Asterisk CLI を使用したことは完璧に機能し、他のどの企業よりもはるかに速く IVR を開発できたと言わざるを得ません。現在、TTS と ASR の実装に取り​​組んでおり、可能であればストレス テストの結果を投稿する予定です。

PHP で書かれたシンプルで小さく柔軟な Asterisk AGI IVRhttp://freshmeat.net/projects/phpivr

小規模で簡単なアプリケーションには、perl の Asterisk::AGI を使用します。Fast AGI の拡張機能もあります。VoIP オペレーターのバックエンドなど、より大きなアプリケーションの場合は、Java で書かれた OrderlyCalls に似たもの (私自身のコード) を使用します。OrderlyCalls は、Java fastagi エンジンから始めてニーズに合わせて拡張するのに最適です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top