https://d226lax1qjow5r.cloudfront.net/blog/blogposts/connect-phone-call-to-stitch-in-app-voice-dr/Call-to-InApp-Voice.jpg

電話をNexmo In-App Voiceに接続する方法

最終更新日 May 12, 2021

所要時間:1 分

音声API Nexmo Voice APIにより、クラウド上で高品質なプログラマブルVoiceアプリケーションを構築できます。Voice APIを使用すると、JSONでの発信および着信コールの管理、コールの録音と保存、電話会議の作成、音声やアクセントの異なる23言語での音声合成メッセージの送信などが可能です。

ネクスモ・スティッチ現在デベロッパープレビュー中の新製品であるNexmo Stitchは、In-App MessagingやIn-App Voiceを含む複数のチャネルでのコミュニケーションを可能にします。

この投稿では、Webhookを実装し、それをNexmo Voiceアプリケーションにリンクすることで、Nexmoの電話番号からかかってきた電話をStitchユーザーに転送する方法を学びます。

始める前にいくつか必要なものがある:

  • Node.jsマシンにインストールされている

  • Nexmo Beta CLIをインストールします:

  • NexmoのAPIキーとAPIシークレットを使用するようにCLIを設定します。これらは 設定ページページから取得できます:

$ nexmo setup api_key api_secret

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Stitchユーザーに電話を転送する

ユーザーが音声アプリケーションに関連付けられたNexmoのバーチャル電話番号に電話をかけると、NexmoはNexmo Call Control Objects (NCCO)をWebhookエンドポイントから取得します。 answer_urlを取得します。テキストを読み上げる合成音声で通話に応答し、その通話をStitchユーザーに接続します。NCCOを使用してコールフローを作成します。

ウェブフック・エンドポイントの作成

僕はJavaScriptの人間なので、Nodeと ExpressJS.他の言語がお好みでしたら、ご自由にお使いください。 JavaScript, Java, Python, PHP, ルビーおよび .NET!

いくつかインストールする必要がある:

$ npm install express body-parser --save

ファイルを作成する。 index.jsファイルを作成し、expressとbody-parserをインスタンス化し、ポート3000でサーバーをリッスンする。

'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

const server = app.listen(3000, () => {
  console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});

のエンドポイントを追加しましょう。 /eventエンドポイントを追加してみましょう:

app.post('/event', (req, res) => {
  console.log(req.body);
  res.status(200).end();
});

のエンドポイントも必要である。 /answerHTTPのGETリクエストに応答するエンドポイントも必要です。 answer_url.を取得したときにNCCOを配信する。 talkビルディングブロックを使います。 Jamie続いて connectブロックが続きます。エンドポイントに特別な rtcタイプをエンドポイントに追加する必要があります。フィールドに自分の電話番号を追加できます。 fromフィールドに追加できます。

app.get('/answer', (req, res) => {
  var ncco = [
    {
      action: "talk",
      text: "Thank you for calling Jamie"
    },
    {
      "action": "connect",
      "from": "449876543210",
      "endpoint": [
        {
          "type": "rtc",
          "user": "jamie"
        }
      ]

    }
  ];
  res.json(ncco);
})

では、サーバーを動かしてみよう:

$ node index.js

開発中は、ローカルでサーバーを実行し、ngrokを使ってインターネット上でサーバーを公開し、Nexmoがサーバーにアクセスできるようにすることができます。その方法については チュートリアルがあります!

次に、WebhookをNexmoアプリケーションに接続します。ここでは、すでにNexmoアプリケーションを持っていると仮定して、先ほど作成したWebhookを使用するようにアプリケーションをアップデートする方法を紹介します。

既存のアプリケーションをWebhook URLで更新する

情報を更新するにはアプリケーションIDが必要です。Nexmo CLIで app:listコマンドを使用します:

$ nexmo app:list

CLIは、各アプリIDとアプリ名のリストを返すはずです。では、正しいアプリIDを使って、ウェブフックのURLでアプリケーションを更新してください:

$ nexmo app:update aaaaaaaa-bbbb-cccc-dddd-0123456789ab "My Voice App" https://6e5c2f7a.ngrok.io/answer https://6e5c2f7a.ngrok.io/event

最後に、Nexmoから借りたバーチャル番号とアプリケーションを関連付ける必要がある。もう一度Nexmo CLIを使ってみよう。コマンド nexmo link:appの後に電話番号(国番号で始まるもの)、そしてアプリIDを入力する。コマンドは次のようになります:

$ nexmo link:app 449876543210 aaaaaaaa-bbbb-cccc-dddd-0123456789ab

リンクが成功すると、CLIは「Number updated」というメッセージを返す。

結論

これであなたの電話番号とアプリケーションのリンクが完了し、誰かがあなたのNexmo番号に電話をかけると、In-App VoiceでStitchユーザーにつながります。この機能を試してみたい方は JavaScriptガイドをご覧ください。

次はどうする?

Nexmo Stitch SDK for JavaScriptの使い方を引き続き学びたい方は、アプリ内メッセージングのクイックスタートをご覧ください。 簡単な会話の作成, 他のユーザーを招待してチャットするそして イベントリスナーの使い方を使って、チャットの履歴を表示したり、ユーザーがタイピングしているときに表示したりできます。Stitchの使い方についてもっと質問がある場合は Nexmoコミュニティslackに参加してください。 #チャンネルチャンネルをご覧いただくか、下記まで直接メールをお送りください。 ea-support@nexmo.com.

シェア:

https://a.storyblok.com/f/270183/384x384/dabe7c5397/laka.png
Alex Lakatosヴォネージの卒業生

Alex Lakatos は Nexmo の JavaScript デベロッパーアドボケイトです。余暇には Mozilla で Tech Speaker や Reps Mentor としてボランティアをしている。オープンウェブでJavaScriptを開発する彼は、日々その限界を押し広げている。ロンドンでプログラミングをしていないときは、世界中を旅するのが好きなので、空港のラウンジでばったり会うこともある。