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


Posted in Python onAugust 08, 2019

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

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

1. 注册twilio账号

2. 买一个电话号码

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

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 python自动拨打电话,播放自定义mp3音频的方法

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

于是:

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

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

1秒内就获取到了:

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

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

Python 相关文章推荐
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
python web基础之加载静态文件实例
Mar 20 Python
python3 判断列表是一个空列表的方法
May 04 Python
python实现决策树ID3算法的示例代码
May 30 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python实现列表的排序方法分享
Jul 01 Python
使用python模拟高斯分布例子
Dec 09 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
Django中template for如何使用方法
Jan 31 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 #Python
Pycharm远程调试原理及具体配置详解
Aug 08 #Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 #Python
python多线程与多进程及其区别详解
Aug 08 #Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 #Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 #Python
Django 实现前端图片压缩功能的方法
Aug 07 #Python
You might like
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
什么是servlet
2012/05/08 面试题
企业厂务公开实施方案
2014/03/26 职场文书
奉献演讲稿范文
2014/05/21 职场文书
法人委托书的范本格式
2014/09/11 职场文书
车间统计员岗位职责
2015/04/14 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android