
关于
构建服务端呼叫自动化工作流,包括 IVR 系统、呼叫路由、录音和 AI 驱动的交互功能。
name: azure-communication-callautomation-java description: "构建服务端通话自动化工作流,包括 IVR 系统、通话路由、录音和 AI 驱动的交互。" risk: unknown source: community date_added: "2026-02-27"
Azure Communication 通话自动化(Java)
构建服务端通话自动化工作流,包括 IVR 系统、通话路由、录音和 AI 驱动的交互。
安装
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-callautomation</artifactId>
<version>1.6.0</version>
</dependency>
客户端创建
import com.azure.communication.callautomation.CallAutomationClient;
import com.azure.communication.callautomation.CallAutomationClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;
// With DefaultAzureCredential
CallAutomationClient client = new CallAutomationClientBuilder()
.endpoint("https://<resource>.communication.azure.com")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// With connection string
CallAutomationClient client = new CallAutomationClientBuilder()
.connectionString("<connection-string>")
.buildClient();
关键概念
| 类 | 用途 |
|----|------|
| CallAutomationClient | 发起通话、接听/拒绝来电、重定向通话 |
| CallConnection | 已建立通话中的操作(添加参与者、终止) |
| CallMedia | 媒体操作(播放音频、识别 DTMF/语音) |
| CallRecording | 开始/停止/暂停录音 |
| CallAutomationEventParser | 解析来自 ACS 的 webhook 事件 |
创建外呼
import com.azure.communication.callautomation.models.*;
import com.azure.communication.common.CommunicationUserIdentifier;
import com.azure.communication.common.PhoneNumberIdentifier;
// Call to PSTN number
PhoneNumberIdentifier target = new PhoneNumberIdentifier("+14255551234");
PhoneNumberIdentifier caller = new PhoneNumberIdentifier("+14255550100");
CreateCallOptions options = new CreateCallOptions(
new CommunicationUserIdentifier("<user-id>"),
List.of(target))
.setSourceCallerId(caller)
.setCallbackUrl("https://your-app.com/api/callbacks");
CreateCallResult result = client.createCall(options);
String callConnectionId = result.getCallConnectionProperties().getCallConnectionId();
接听来电
// From Event Grid webhook - IncomingCall event
String incomingCallContext = "<incoming-call-context-from-event>";
AnswerCallOptions options = new AnswerCallOptions(
incomingCallContext,
"https://your-app.com/api/callbacks");
AnswerCallResult result = client.answerCall(options);
CallConnection callConnection = result.getCallConnection();
播放音频(文本转语音)
CallConnection callConnection = client.getCallConnection(callConnectionId);
CallMedia callMedia = callConnection.getCallMedia();
// Play text-to-speech
TextSource textSource = new TextSource()
.setText("Welcome to Contoso. Press 1 for sales, 2 for support.")
.setVoiceName("en-US-JennyNeural");
PlayOptions playOptions = new PlayOptions(
List.of(textSource),
List.of(new CommunicationUserIdentifier("<target-user>")));
callMedia.play(playOptions);
// Play audio file
FileSource fileSource = new FileSource()
.setUrl("https://storage.blob.core.windows.net/audio/greeting.wav");
callMedia.play(new PlayOptions(List.of(fileSource), List.of(target)));
兼容工具
Claude CodeCursor
标签
AI与机器学习