Anrufer mit einer Konferenz verbinden
Dieser Codeschnipsel zeigt, wie man mehrere Anrufe zu einem Gespräch zusammenfasst.
Mehrere eingehende Anrufe können zu einem Gespräch (Konferenzschaltung) verbunden werden (Konferenzschaltung) verbunden werden, indem die Anrufe mit der gleichen Konferenz verbinden.
Konferenznamen werden auf der Ebene der Vonage-Applikation
Ebene. Zum Beispiel könnten VonageApp1 und VonageApp2 beide eine
Konferenz mit dem Namen vonage-conference und es würde kein Problem geben.
Beispiel
Ersetzen Sie die folgenden Variablen im Beispielcode:
| Schlüssel | Beschreibung |
|---|---|
VOICE_CONFERENCE_NAME | The named identifier for your conference. |
Voraussetzungen
npm install express body-parserSchreiben Sie den Code
Fügen Sie Folgendes zu conference-call.js hinzu:
const Express = require('express');
const bodyParser = require('body-parser');
const app = new Express();
app.use(bodyParser.json());
const onInboundCall = (_, response) => {
const ncco = [
{
action: 'talk',
text: 'Please wait while we connect you to the conference',
},
{
action: 'conversation',
name: VOICE_CONF_NAME,
},
];
response.json(ncco);
};
app.get('/webhooks/answer', onInboundCall);
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'Schreiben Sie den Code
Fügen Sie der Methode main in der Datei ConnectCallersToConference Folgendes hinzu:
embeddedServer(Netty, port = 8000) {
routing {
route("/webhooks/answer") {
handle {
call.response.header("Content-Type", "application/json")
call.respond(
Ncco(
talkAction("Please wait while we connect you to the conference."),
conversationAction(VOICE_CONFERENCE_NAME)
).toJson()
)
}
}
}
}.start(wait = true)Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.voice durch das Paket, das ConnectCallersToConference enthält:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'Schreiben Sie den Code
Fügen Sie der Methode main in der Datei ConferenceCall Folgendes hinzu:
final String CONF_NAME = "my-conference";
/*
* Route to answer incoming calls with an NCCO response.
*/
Route answerRoute = (req, res) -> {
TalkAction intro = TalkAction.builder("Please wait while we connect you to the conference.").build();
ConversationAction conversation = ConversationAction.builder(CONF_NAME).build();
res.type("application/json");
return new Ncco(intro, conversation).toJson();
};
Spark.port(3000);
Spark.get("/webhooks/answer", answerRoute);
Spark.post("/webhooks/answer", answerRoute);Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.voice durch das Paket, das ConferenceCall enthält:
Voraussetzungen
Install-Package VonageSchreiben Sie den Code
Fügen Sie Folgendes zu ConnectCallersToConferenceController.cs hinzu:
[HttpGet("webhooks/answer")]
public string Answer()
{
var VOICE_CONFERENCE_NAME = Environment.GetEnvironmentVariable("VOICE_CONFERENCE_NAME") ?? "VOICE_CONFERENCE_NAME";
var talkAction = new TalkAction() { Text = "Please wait while we connect you to the conference" };
var conversationAction = new ConversationAction() { Name = VOICE_CONFERENCE_NAME };
var ncco = new Ncco(talkAction, conversationAction);
return ncco.ToString();
}Voraussetzungen
composer require vonage/client slim/slim:^3.8Schreiben Sie den Code
Fügen Sie Folgendes zu index.php hinzu:
require 'vendor/autoload.php';
$app = new \Slim\App;
$app->get('/webhooks/answer', function (Request $request, Response $response) {
$talk = new \Vonage\Voice\NCCO\Action\Talk('Hi, welcome to this Nexmo conference call');
$convo = new \Vonage\Voice\NCCO\Action\Conversation('nexmo-conference-standard');
$ncco = new \Vonage\Voice\NCCO\NCCO();
$ncco->addAction($talk);
$ncco->addAction($convo);
return new JsonResponse($ncco->toArray());
});
$app->run();Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
pip install vonage python-dotenv fastapi[standard]Schreiben Sie den Code
Fügen Sie Folgendes zu connect-callers-to-a-conference.py hinzu:
import os
from os.path import dirname, join
from dotenv import load_dotenv
from fastapi import FastAPI
from vonage_voice import Conversation, NccoAction, Talk
dotenv_path = join(dirname(__file__), '../.env')
load_dotenv(dotenv_path)
VOICE_CONFERENCE_NAME = os.environ.get("VOICE_CONFERENCE_NAME")
app = FastAPI()
@app.get('/webhooks/answer')
async def answer_call():
ncco: list[NccoAction] = [
Talk(text="Please wait while we connect you to the conference"),
Conversation(name=VOICE_CONFERENCE_NAME),
]
return [action.model_dump(by_alias=True, exclude_none=True) for action in ncco]Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
gem install sinatra sinatra-contribSchreiben Sie den Code
Fügen Sie Folgendes zu join_a_conference_call.rb hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Probieren Sie es aus
Starten Sie Ihren Server und führen Sie mehrere eingehende Anrufe an die Vonage Number die dieser Vonage-Applikation zugewiesen ist. Die eingehenden Anrufe werden zu einem gemeinsamen Gespräch (Konferenz) verbunden.
Weitere Lektüre
- Konferenzanrufe - In diesem Leitfaden werden die beiden Concepts erläutert, die Vonage mit einem Anruf verbindet: ein Leg und ein Gespräch.