1か月前、Hacker Newsで、AnyRoomサービスに関する投稿がトップにリリースされました。電話会議を作成できるシンプルなGoバックエンドです。 評価は100以上、コメントでの議論、githubのソースコード、月額50ドルのサブスクリプション-一般的に、すべてが大人のようです。 最初の驚きの後、「これは本当に必要ですか?! そして、Voximplantでは、このようなものを30分と数十行のJavaScriptコードで組み立てることができます。 誰がスタートアップを作り、Hacker Newsで宣伝したいですか? 猫の下で私はあなたに方法を教えます。
AnyRoomはどのように機能しますか?
On GoおよびTwilio。 ユーザーの観点から見ると、これは次のとおりです。会議の主催者は、参加者に電話番号(サービス全体の電話番号)と会議番号の数桁を送信します。 すべての参加者が電話をかけ、会議番号を入力します-そして、互いに通信できます。 スカイプのように、機能するだけです。 内部では、GoバックエンドはTwilio HTTPリクエストと通信し、呼び出しの処理方法を説明するXMLを送信します。
Voximplantでそれを繰り返す方法は?
クラウドにはハイライトがあります。 呼び出しを処理するためのロジックは、呼び出しと並行して実行されるJavaScriptコードによって設定されます。 バックエンドとの通信に遅延はなく、ほとんどのシナリオではバックエンド自体は必要ありません:JavaScriptをWeb IDEで記述し、Webデバッガーでデバッグできます(そうすれば、番号を呼び出すか、クラウドが自分自身を呼び出します。 JavaScriptを使用して段階的にブラウザを開き、呼び出しで何が起こるかを確認します)。 また、継続的インテグレーションの一部としてGitLabなどからHTTP APIを介してダウンロードできます。
最小バージョンでAnyRoomを繰り返すには、電話番号にJavaScriptスクリプトを添付するだけで十分です。これにより、次のことが可能になります。
- コールを受信します(電話の詳細、応答が行われるまで、コールは課金されず、たとえば着信音を再生できます。誰からも音声ストリームは取得されません)
- グリーティングを合成し、会議コードの入力を提案します。
- ユーザーがキーボードで押した数字を読み取ります(DTMFまたは「ダイヤル」と呼ばれます)。
- グリッドなどの特別なものをクリックすると、入力した数字で構成される名前でユーザーが会議に送られます。
そのため、そのような実装はMVPになります。すでに使用することは可能ですが、改善の余地があります。 2人のユーザーが異なる会議を希望しているが、同じ番号(たとえば「111」)になった場合はどうなりますか? 会議番号ジェネレーターを備えたWebインターフェースは問題ありません。 しかし、MVPはそのようなシナリオで実装され、Voximplantで借りた番号(個人的な手紙で書いて、あなたが実験できるように残高を補充します)またはGotem Cityでのデバッグ番号にリンクできます。番号を使わずに電話をかける:
コールは会議に送信されることに注意してください。 これは、着信コール処理スクリプトと同じアプリケーションに追加する必要がある別のJavaScriptスクリプトです。
着信コールルールには、会議へのコールのみをトリガーするための正規表現「conf _。*」が含まれている必要があります。 このルールは、着信コールのルールの前に配置する必要がありますが、すべてのコールにはまったく機能しません。
この例では、会議自体のJavaScriptスクリプトはプリミティブです。 会議シナリオは複数の着信コールを受信できる唯一のシナリオであるため、1つの会議ミキサーが作成され、すべての通話で音声ストリームが混合されます。 会議ミキサーは、通常のミキサーとは異なり、ユーザー自身の音声ストリームを除くすべての音声ストリームをユーザーに提供します。
より良い方法はありますか?
私が書いたように、これは人気のあるサービスの非常にシンプルなクローンです。 会議IDを生成するためのWebインターフェイス、Webサイトから呼び出す機能(Web SDKがある)、モバイルアプリケーション(AndroidおよびiOS SDKがある)、会議で音楽を再生する(Playerオブジェクトを介して)、挨拶を合成する、通知する接続および切断されたユーザー、支払い統合(HTTP API経由)など。
私が話したいこと。 テレフォニーおよびビデオ通信に関連する多くの未解決のニーズがあるという事実。 これらはすべて、クラウド通信プラットフォームで迅速かつ非常に安価に組み立てることができます。 アイデアをすばやく確認し、修正とピボットをすばやく行います。 そしてもちろん、これにはJavaScriptを使用します。 Web開発者はJavaScriptを使用できるためです。