twilio python自动拨打电话,播放自定义mp3音频的方法

 更新时间:2019年08月08日 08:47:14   作者:一只小coder  
今天小编就为大家分享一篇twilio python自动拨打电话,播放自定义mp3音频的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

有个小项目,需求是某事件发生时,给客户打电话,提醒客户。需要事先录制好一段音频,客户接通电话后,自动播放。

这里用到了twilio:https://www.twilio.com ,分享下。

1. 注册twilio账号

2. 买一个电话号码

3. 安装twilio

pip install twilio

4. trigger代码(给某个电话发送短信,或者打电话):

from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'XXX'
auth_token = 'XXX'
 
 
def sendCall(mobile):
 client = Client(account_sid, auth_token)
 url='你需要自己写一个url, 后面我会分享自己的django代码'
 
 call = client.calls.create(
  url=url,
  to='+86{}'.format(mobile),
  from_='你买的电话号码'
 )
 
 
def sendSMS(phone,content):
 client = Client(account_sid, auth_token)
 message = client.messages \
  .create(
  body=content,
  from_='你买的电话号码',
  to='+86{}'.format(phone)
 )
 
 
if __name__ == '__main__':
 sendCall("186xxxxxx")

5. 在django项目中准备一个路由,处理twilio发来的post请求,返回一段xml

url.py:

 url(r'^notify/call/$',csrf_exempt(NotifyCall.as_view()), name='call'),
 view.py:

class NotifyCall(APIView):
 def post(self, request):
  temp = """<?xml version="1.0" encoding="UTF-8"?>
  <Response>
   <Play>一个公网可以访问的mp3文件路径,比如我用的自己的腾讯云服务器上的某个文件</Play>
   <Hangup/>
  </Response>
  """
  return HttpResponse(temp)

6. 理想情况下,就能完成打电话了。但是有个问题,当我接起来电话后,有差不多4~5秒的mute call时间。

分析log可以看到:

看来是因为twilio服务器在国外,从腾讯云获取文件花费时间太长。

于是:

7. 上传mp3到国外某个公共网站,让twilio从那里提取文件

1秒内就获取到了:

以上这篇twilio python自动拨打电话,播放自定义mp3音频的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 之pandas库的安装及库安装方法小结

    Python 之pandas库的安装及库安装方法小结

    Pandas 是一种开源的、易于使用的数据结构和Python编程语言的数据分析工具,它与 Scikit-learn 两个模块几乎提供了数据科学家所需的全部工具,今天通过本文给大家介绍Python 之pandas库的安装及库安装方法小结,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • Python中获取网页状态码的两个方法

    Python中获取网页状态码的两个方法

    这篇文章主要介绍了Python中获取网页状态码的两个方法,分别使用urllib模块和requests模块实现,需要的朋友可以参考下
    2014-11-11
  • 浅谈numpy中np.array()与np.asarray的区别以及.tolist

    浅谈numpy中np.array()与np.asarray的区别以及.tolist

    这篇文章主要介绍了浅谈numpy中np.array()与np.asarray的区别以及.tolist,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 一文了解Python并发编程的工程实现方法

    一文了解Python并发编程的工程实现方法

    这篇文章主要介绍了Python并发编程的工程实现,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 关于Django显示时间你应该知道的一些问题

    关于Django显示时间你应该知道的一些问题

    将Django项目部署到Linux系统上进行测试时,发现操作记录的时间与服务器的时间不一致,相差13个小时。这主要是因为时区的问题,下面这篇文章主要总结介绍了关于Django显示时间你应该知道的一些问题,需要的朋友可以参考下。
    2017-12-12
  • Python+PyQt5实现网口功能测试详解

    Python+PyQt5实现网口功能测试详解

    这篇文章主要为大家详细介绍了Python+PyQt5实现网口功能测试的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Python生成器next方法和send方法区别详解

    Python生成器next方法和send方法区别详解

    这篇文章主要介绍了Python生成器next方法和send方法区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python and or用法详解

    python and or用法详解

    这篇文章主要介绍了python and or用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 论文查重python文本相似性计算simhash源码

    论文查重python文本相似性计算simhash源码

    这篇文章主要为大家介绍了python文本相似性计算simhash源码来实现论文的查重,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • pycharm中代码回滚到指定版本的两种实现方法(附带截图展示)

    pycharm中代码回滚到指定版本的两种实现方法(附带截图展示)

    在编写代码的时候,经常会出现写的代码存在一些问题,但是比较难以发现具体存在的问题在哪里,需要将带代码恢复到指定的版本,下面这篇文章主要给大家介绍了关于pycharm中代码回滚到指定版本的两种实现方法,需要的朋友可以参考下
    2022-06-06

最新评论