
シェア:
Alex Lakatos は Nexmo の JavaScript デベロッパーアドボケイトです。余暇には Mozilla で Tech Speaker や Reps Mentor としてボランティアをしている。オープンウェブでJavaScriptを開発する彼は、日々その限界を押し広げている。ロンドンでプログラミングをしていないときは、世界中を旅するのが好きなので、空港のラウンジでばったり会うこともある。
電話をNexmo In-App Voiceに接続する方法
所要時間: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:listCLIは、各アプリ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.