https://a.storyblok.com/f/270183/132125/d681bc2159/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

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を開発する彼は、日々その限界を押し広げている。ロンドンでプログラミングをしていないときは、世界中を旅するのが好きなので、空港のラウンジでばったり会うこともある。