Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9409

【Vonage】WebRTCブラウザで着信に応答する

$
0
0
※2021年12月現在のAPI仕様と個人的な好みの関係で、Client SDKのReceiving an in-app voice callをアレンジした内容になっています。最新情報は公式ドキュメントをご覧ください。 必要なもの Vonage API Key(作成する) client-sdk-tutorials Node.js Expressjs localtunnel rbenv や goenv に慣れてる方だと、Node.jsのバージョン管理はnodenvが使いやすいかもしれないです。 Webサーバーの準備 git clone https://github.com/nexmo-community/client-sdk-tutorials.git cd client-sdk-tutorials/phone-to-app-js package.json を生成して、必要な依存関係をインストール npm init -y npm install express localtunnel --save npm install nexmo-client --save server.js ドメインを置き換える - const subdomain = 'SUBDOMAIN'; + const subdomain = 'onakasuita4649'; サーバー起動 node server.js # 表示されたURLはアプリ作成で使用するのでメモしとく App available at: https://onakasuita4649.loca.lt アプリケーションの作成 Nexmo CLIでも操作可能ですが、個人的にダッシュボードの方が見やすかったです。 1) ログイン後「Create a new application」を押す 2) ①〜③を入力したら「新しいアプリケーションの作成」を押す ①好きなアプリケーション名を入力 ②秘密鍵はあとでJWTの生成で使用 ③Webhook URLを指定。回答URLはGET/イベントURLはPOST 作成したアプリケーションにVonage番号をリンク 画面下半分の番号一覧から、右側の「Link」ボタンを押す。 クライアントの準備 Admin用JWTの生成 公式ドキュメントではServer SDKでの紹介が多いですが、ここではJWT Generatorを使用します。 ①先ほどの秘密鍵 ②作成したアプリケーションのID ③期限 ④生成されたJWT(①~③を入力すると自動生成されます) ユーザー作成 ポイント Admin用JWTを使用 SNGのデータセンターをエンドポイントに指定 curl -X "POST" "https://api-sg-1.nexmo.com/beta/users" \ -H 'Authorization: Bearer '生成されたAdmin用JWT\ -H 'Content-Type: application/json' \ -d $'{ "name": "Alice", "display_name": "Alice" }' ユーザーIDがレスポンスに含まれていれば成功です。 {"id":"USR-xxxxxxxxxxxxx","href":"https://api-sg-1.nexmo.com/beta/users/USR-xxxxxxxxxxxxx"} 以下のレスポンスが返ってきた場合はJWTを生成し直すか、期限を見直すと改善するかもしれません。 {"description":"You provided an expired token. Please provide a valid token.","code":"system:error:expired-token"} クライアントユーザー用JWTの生成 ここでもJWT Generatorを使用します。 赤枠がAdmin用から増えてる項目です。 subには先ほど作成したユーザー名を、ACL(詳細を見る)には以下の例のように入力します。 適宜必要なパスを指定しましょう。 { "paths": { "/**": {} } } client_js.htmlのNexmoClient初期化部分を書き換える 書き換え前 new NexmoClient({ debug: true }) .login("PASTE ALICE JWT HERE") .then(app => { // ・・・(中略)・・・ 生成したユーザー用JWTを貼り、ここもエンドポイントをSNGに指定します。 new NexmoClient({ nexmo_api_url: "https://api-sg-1.nexmo.com", url: "wss://ws-sg-1.nexmo.com", ips_url: "https://api-sg-1.nexmo.com/v1/image", debug: true }).login("生成したユーザー用JWT") .then(app => { // ・・・(中略)・・・ client_js.htmlをブラウザで開く デベロッパーツールにsession:succssが表示されていればクライアントのログインが成功です。 これで準備が整いました。 着信に応答 アプリケーションに紐付けたVonage番号に発信します。 電話をかけるとデベロッパーツールにはmember:invitedが表示され Webページ上には "You are receiving a call"が表示されます。 マイクの使用許可を求められたら、必ず「許可」を押してください。 Answerボタンを押せば着信に応答できるはずです。 通話を切断する場合はHang Upボタンを、応答前に切断したい場合はRejectを押しましょう。 お疲れさまでした。 補足 会話の概念を確認しておくと開発が捗ります。 inbound leg と outbound_leg を制御して自分側か相手側のどちらをミュートにしたいかなど REST APIを利用して柔軟な実装もできそうです。 会話の概念 https://developer.vonage.com/ja/conversation/concepts/conversation Voice API https://developer.vonage.com/api/voice?theme=dark#updateCall

Viewing all articles
Browse latest Browse all 9409

Trending Articles