これは非常に初心者の質問です。
VOIPプロトコルを使用して電話をかけるためのWebアプリの作成方法を知りたいです。
クライアント側とサーバー側のどちらのプログラミング言語を学ぶ必要がありますか?
始めるために答える必要がある主な質問は、コンピューターからコンピューターへの通話を探しているのですか、それともアプリから電話番号に電話をかけたいですか?
「Webアプリで電話をかける」ことを指定したので、ユーザーの電話に自動通話を発信する方法を探しているのではないでしょうか。その場合は、いくつかのオプションがあります。
AsteriskやFreeswitchのようなVoIPサーバーをインストールし、Webアプリとやり取りするコードを記述します。 Asteriskの場合、AdhearsionプロジェクトはRubyでAsterisk統合を記述できるようにすることで役立ちます。 http://adhearsion.com/
または、CloudvoxやTropoなどのクラウドテレフォニーサービスを使用することもできます http://tropo.com (開示、私はTropoの背後にある会社であるVoxeoで働いています)。これらのサービスを使用すると、Webプログラミング言語とWebサービスを使用して電話システムと通信できます。それを実現するためにVoipについて何も知る必要はありません。 Tropoスクリプトの例...
<?php
answer();
say('Yes, it really is this easy.');
hangup();
?>
クラウドサービスの副次的な利点は、それらの多くがアプリを他の通信チャネルで実行できることです(TropoはIMとSMSも実行します)。
3番目のオプションは、音声アプリを作成するためのW3C標準であるVoiceXMLを調べることです。 Voxeoは http://vxml.org/ で詳細なドキュメントとVoiceXMLチュートリアルを提供しています。 VoiceXML(VXMLと呼ばれることもある)アプリケーションでは、VoiceXMLサーバーと関連するVoIPビットをインストールするか、VoiceXMLホスティングプロバイダーを使用できます。 Voxeoは、ダウンロード可能なサーバーとホスティングの両方を提供します(どちらも開発者は無料です)。または、VoiceXMLホスティングを検索すると、多数のオプションが表示されます。
あなたの質問への答えは、あなたがそれをどうしたいかによります。ここに私がそれについてどのように行ったかの2つの例があります:
私はGo2Call.Com(現在は Deltathree が所有)のソフトウェアを開発し、PCから電話への通話に使用しました。 Go2Callの場合、それはWindowsを呼び出すJavaダイヤラフロントエンドのアプレットでしたDLL C++で書かれています。そこから、独自のプロトコルを話して話しました次に、サーバーは通常の固定電話に通話を送りました。
数年後、PCからPCまたはPCから電話への通話を可能にするWebベース(ActiveXコントロール)を作成し、標準の H.32 プロトコルを使用しました。
まず、最終目標を理解し、それを達成するために必要なプロトコルとテクノロジーを調べることから始めることをお勧めします。
PC-to-PCの場合、両方の人があなたのソフトウェアを使用すれば、何でも好きなことができます。その場合、VOIPがどのように機能するか(圧縮コーデックなどを含む)を把握し、必要に応じて実装できます。
PC-to-Phoneの場合、または他の人のソフトウェアを呼び出したい場合は、おそらく最も人気のあるプロトコルであるため、 [〜#〜] sip [〜#〜] をお勧めします。 H.323はまだ普及していますが、SIPが引き継いでいるようです。
申し訳ありませんが、これですべてがわかるわけではありませんが、たくさんあります。うまくいけば、これで正しい方向に進むことができます。
更新:PC-to-PCについて説明したので、 Packetizer には標準のリストと、多くのVoIPプログラミングを行ったときに使用したかなりの情報があります。
本に関して言えば、これまでに見た本はプログラミング関連ではなく、VoIPソフトウェアの使用とVoIPネットワークのインストールに関するものです。
SIP機能をWebページに追加できるコンポーネントを購入することをお勧めします(これらのほとんどはActiveXベースです):
http://www.conaito.com/
http://www.vaxvoip.com/
http://www.pcbest.net/
あなたが学ばなければならない言語に関して、あなたはすでにどの言語を学んだのですか?どの言語でWebアプリを開発しましたか?これにより、言語の選択が決まります。上記のようなコンポーネントを使用すると、一部の作業が不要になりますが、おそらくvbscriptまたはjavascriptコーディングクライアント側が必要であり、activeXのコンポーネントはInternet Explorer Webブラウザーでのみ機能します。経験がない場合は、何をしようとしているか、なぜ、どれだけの時間と労力を費やすことができるか、真剣に検討する必要があります。