我创建了一个Twilio应用程序,它涉及使用Twilio的TwimL <Say>命令来读取构成用户先前输入的ID的数字列表(例如,3638194746219190或沿着这些行的某些内容).由于它是一个很长的数字列表,我让应用程序读回数字列表以确认用户已正确输入它们.由于它是动态的,我无法预先录制它 - 它必须与之相关<Say>,但Twilio 以太快的速度读取它.
我目前使用空格和逗号回放它们的数字以减慢速度,例如:'3, 6, 3, 8, 1, 9, 4, 7, 4, 6, 2, 1, 9, 1, 9, 0',这有点帮助,但它仍然以太快的速度读取列表.
你知道如何强迫Twilio的<Say>命令进一步减慢文本到语音播放的速度吗?
当我们接到电话时,我们会向呼叫者发出提示,说明"我们可能会记录质量和培训目的的呼叫".
我们响应来电发送的TWiML如下.
<Response>
<Play>http://domain.tld/may_record_call.wav</Play>
<Dial timeout="10" callerId="5555551234" record="record-from-ringing" action="https://my_url.com/action" method="POST">
<Client>my_user</Client>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
我们的录音已正确创建,但在拨打电话之前不包括提示.
我们希望证明我们正确地播放了提示,理想情况下它会包含在我们制作的录音中,但拨号录音选项似乎不允许这样做.
记录
'record'属性允许您在相关动词中记录呼叫的两个分支.使用录音回答时,录音将在应答呼叫时开始.使用录音来自振铃时,录音将在振铃开始时开始.在这两种情况下,RecordingUrl参数都将发送到关联动词的"action"URL.您必须设置"操作"网址才能接收RecordingUrl.
我无法在拨号后添加播放,因为当应答呼叫时,拨号后的其他动词不会被执行.
我的问题是如何将通话录音警告录制为通话记录的一部分?是否有另一个可以使用的隐藏记录值?有没有办法让拨号开始,但播放提示给呼叫者?
我在Python上用eroku设置了TwiMl.当我从用户B呼叫用户A时,用户A也没有得到呼叫和VOIP,而用户B得到了像"感谢呼叫"这样的机器人消息.
当我尝试placeCall用户B时PostMan,用户B接到电话,并得到像"感谢呼叫"这样的机器人消息.
PostMan网址:https://myapp.herokuapp.com/placeCall
我的要求是,当我从应用程序用户B呼叫用户A时,它将接到电话并且两者都能够进行通信.
需求
Flask==0.10.1
Jinja2==2.7.3
MarkupSafe==0.23
Werkzeug==0.9.6
httplib2==0.9
itsdangerous==0.24
six==1.*
twilio
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)
这是我的Python TwiMl代码.
import os
from flask import Flask, request
from twilio.jwt.access_token import AccessToken
from twilio.jwt.access_token.grants import VoiceGrant
from twilio.rest import Client
import twilio.twiml
ACCOUNT_SID = 'ACxxxxxxxx'
API_KEY = 'SKxxxxxxxx'
API_KEY_SECRET = 'TSxxxxxxxx'
PUSH_CREDENTIAL_SID = 'CRxxxxxxxx'
APP_SID = 'APxxxxxxxx'
app = Flask(__name__)
@app.route('/test', methods=['GET', 'POST'])
def test():
req_json = request.get_json(force=True)
UserName = req_json['username']
Password = req_json['password']
return str(UserName)
@app.route('/accessToken')
def token(): …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Twilio的<Say>动词清楚地发出一系列数字.我发现很难在每个数字之间产生一个自然(半秒)的暂停.我该怎么做呢?
<Pause> xml命令仅获取秒的整数值,因此使用它太长.
我有一个呼叫队列,我正在为移动代理(手机或家里的工作时间)服务,并且当呼叫进入队列时将被寻呼.他们拨打将他们连接到队列的号码,并向等待用户传递url选项示例:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Queue url="about_to_connect.xml">support</Queue>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何最好地提示代理呼叫被桥接.目前他们正在听到沉默,如果他们打电话和其他人已经抓住队列中唯一的呼叫者并且他们正在等待超时值,那么他们也会发生什么.我希望我能给出一个音调或某种类型的信号,这样他们就知道什么时候回答说你好,一旦呼叫被连接到等待的呼叫者,这是如此.
我可以训练代理人知道他们连接之前应该花多长时间.我还可以将播放的消息更改为排队的呼叫者以宣布他们自己,但是当这不是电话会议而是2方桥接呼叫时,这似乎很奇怪.
帮助赞赏.
当Twilio号码收到来电语音通话时,我可以使用什么TwiML,以便手机可以无限期地响铃?
在某些情况下,我想假装电话响了,但周围没有人接听电话,而且没有配置语音信箱.我认为Reject动词可以提供帮助.它似乎只支持忙音或"号码断开"消息.
我正在使用 twilio,其中当呼叫到达我的 twilio 号码时,它会调用 webhook,我使用 lambda 函数作为 webhook,
twilio 期望来自 webhook 的 xml(以前称为 twiml)响应,但我无法从 lambda 函数发送 xml 响应
我正在使用无服务器框架
这是我的代码 功能:
module.exports.voice = (event, context, callback) => {
console.log("event", JSON.stringify(event))
var twiml = new VoiceResponse();
twiml.say({ voice: 'alice' }, 'Hello, What type of podcast would you like to listen? ');
twiml.say({ voice: 'alice' }, 'Please record your response after the beep. Press any key to finish.');
twiml.record({
transcribe: true,
transcribeCallback: '/voice/transcribe',
maxLength: 10
});
console.log("xml: ", twiml.toString())
context.succeed({
body: twiml.toString() …Run Code Online (Sandbox Code Playgroud) twilio aws-lambda aws-api-gateway serverless-framework twilio-twiml
我读了很多关于Twilio电话会议的文章.我创建了一个php函数,它创建了一个Twilio会议,可以通过此链接添加任何有权访问会议链接的人.所以我读了这篇关于与Twilio同时拨打多个号码的文章.
本文介绍如何在同一时间拨打多个客户端或号码,但接受呼叫的第一个将连接,而其他客户端将挂断.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Number>877-555-1212</Number>
<Number>877-999-1234</Number>
<Number>877-123-4567</Number>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
所以现在我的问题是,我可以将所有这些添加到电话会议中通过twilio php功能吗?
我也在堆栈溢出上检查了这个问题,但不同的是我使用的是TwiML然后我想也许有一个函数可以将所有客户端添加到同一个房间,当他/她调用它们的列表时.
$dial->conference('My conference', array(
'startConferenceOnEnter' => True,
'endConferenceOnExit' => True
));
Run Code Online (Sandbox Code Playgroud) 我最近遇到了 TwiML<Hangup>动词的问题。我有一个简单的设置,其工作方式如下:
我有一个 Twilio 号码设置来接收来电,并配置为使用如下的 TwiML bin:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record timeout="5" transcribe="false" trim="trim-silence" maxLength="10"/>
<Hangup/>
</Response>
Run Code Online (Sandbox Code Playgroud)
目标是让号码接听来电,从中最多录制 10 秒的音频,修剪静音,然后挂断。它正确地完成了所有这些,除了挂断。
此时,不是挂断,而是在录音结束时达到maxLength10 秒后开始新的录音。这会一直持续到通话结束,并且通常会导致每次通话 2-5 次录音。就好像<Hangup>动词被完全忽略了一样。这是我的意思的一个例子:
Twilio Call Details Screen
我想知道之前是否有人遇到过这种情况(以及您做了什么来解决它),或者我可以做些什么来在录音后正确挂断电话。我目前的解决方案是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<!-- This is a hacky solution. I found by accident that passing an invalid action argument causes the call to forcibly hangup (after the recording is completed) - hence the action "breakcall" below. = -->
<Record timeout="5" transcribe="false" trim="trim-silence"
action="breakcall" …Run Code Online (Sandbox Code Playgroud) twilio ×10
twilio-twiml ×10
twilio-api ×2
aws-lambda ×1
heroku ×1
php ×1
python ×1
sip ×1
twilio-php ×1