使用Twilio可编程语音SDK的通话质量差

2024-05-22 23:11:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将我的Twilio应用程序从旧的SDK升级到新的Twilio可编程语音(beta 5),但是遇到了几个问题。其中最主要的是传出电话的音频质量差,在这种情况下只能说是丢失的数据包必须听起来像什么。即使当我运行Quickstart demo app时,问题仍然存在,这使我得出结论,问题出在我的Twiml中。我已经按照“T”的指示设置了适当的功能、授权、配置配置文件和上传voip推送凭证,但是对于新的SDK或Python版本的服务器,我几乎没有文档,这让我很困惑。在

我对演示应用程序所做的唯一修改是在我的呼叫请求中包括“to”和“from”参数,如下所示:

NSDictionary *params = @{@"To" : self.phoneTextField.text, @"From": @"+16462332222",};
[[VoiceClient sharedInstance] configureAudioSession];
self.outgoingCall = [[VoiceClient sharedInstance] call:[self fetchAccessToken] params:params delegate:self];

调用将发送到位于适当端点的Twiml服务器(Heroku上的python部署),如下所示:

^{pr2}$

控制台输出outgoingCall:didFailWithError: Twilio Services Error,调用日志显示完成的客户端调用。对调试器的检查显示TwilioRestException: HTTP 400 error: Unable to create record。如您所见,我在请求中包含的url可能会有问题,因为它只是指向根目录,但是无法将url留空(我已经找到了)。我最终会将其更改为url=request.url_root + 'handleRecording',以便进行通话记录,但现在一步一个脚印地进行。在

到目前为止,我的解决方案是抛弃call = client.calls.create而使用dial动词,如下所示:

    resp = twilio.twiml.Response()
    resp.dial(number = IDENTITY, callerId = CALLER_ID)
    return str(resp)

这能打电话,但质量太差,以致于没用。(沉默了10多秒,接着是断断续续的听到对方的声音)。以这种方式使用拨号动词也是不可接受的,因为它效率低下,因为我现在每次都要付两个电话费。在

另一个主要的问题,我不确定是否接通,是我还没有接到任何来电,尽管我怀疑我可能需要单独问这个问题。在

我怎样才能使这条线路工作?我看着你,菲尔纳什。帮助我使我的应用程序再次伟大。:)

call = client.calls.create(url=request.url_root, to='client:' + IDENTITY, from_='client:' + CALLER_ID)

Tags: tofromself服务器client应用程序urlcreate
1条回答
网友
1楼 · 发布于 2024-05-22 23:11:14

抱歉,我花了一段时间才回答你的问题。在

首先,从可编程语音SDK调用建立持续连接的正确方法是使用TwiML ^{}。您是creating a call using the REST API,但是您已经在SDK中创建了呼叫的第一段,TwiML转发到呼叫的第二段,即您所拨打的人。值得注意的是,你要为每段通话计费,而不是为两段通话计费(两段通话的长度可能不同,例如,你可以在拨号给接收者之前,让原呼叫者通过菜单系统)。在

其次,关于糟糕的调用质量,这不是我可以帮助解决堆栈溢出的问题。在这种情况下,最好的做法是与Twilio support取得联系,并为受影响的呼叫提供一些呼叫sid。如果你能record an example call那也会有帮助。在

最后,我还不知道你是否还问过关于来电的其他问题,但请这样做,我会尽力帮助你的。这可能是一个代码问题,我们可以在上面讨论。在

相关问题 更多 >

    热门问题