我正在转换用 C# 创建的应用程序,该应用程序使用 Google 文本转语音 (gTTS) 通过 PA 系统播放消息。电话系统正在迁移到基于云的 Cisco WebEx 架构。我正在尝试使用 WebEx API 来完成此任务,但我不知道如何执行此操作。我需要做的是拨打分机电话,当收件人(在本例中为 PA 系统)接听时,播放声音,然后挂断。仅使用 WebEx API 端点是否可以实现这一点?
我尝试使用https://webexapis.com/v1/telephony/calls/actions/playsound/invoke,但似乎这可能不存在,并且我在其上找到的文档不正确。以下是我在 C# 应用程序之外尝试使用此端点的一些示例 Python 代码。
def play_wav_to_extension(extension, wav_file_url):
url = f"{WEBEX_BASE_URL}/telephony/calls/actions/playsound/invoke"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json"
}
payload = {
"extension": extension,
"soundUrl": wav_file_url
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
我还尝试执行 https://webexapis.com/v1/telephony/calls/dial 来拨打电话并附加playbackUrl作为通过API传递的数据的一部分,但也没有成功。这是我在应用程序之外尝试过的一些示例 Python 代码。
def initiate_call(destination, audio_url):
url = f"{base_url}/telephony/calls/dial"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
data = {
"destination": destination,
"mediaType": "AUDIO",
"playbackUrl": audio_url
}
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
call_id = response.json().get("callId")
print(f"Call initiated. Call ID: {call_id}")
return call_id
任何有关我如何做到这一点的帮助将不胜感激。如果无法单独使用 WebEx API 来完成此任务,但有第三方替代方案(例如 Twilio),我愿意接受建议。
与 Cisco WebEx 技术支持合作后,我们认为无法使用此 API 或任何 API 以这种方式将音频注入呼叫中。