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的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
pymongo中group by的操作方法教程
Mar 22 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
django实现模型字段动态choice的操作
Apr 01 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
python中有帮助函数吗
Jun 19 Python
一个入门级python爬虫教程详解
Jan 27 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
用python批量解压带密码的压缩包
May 31 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php 购物车的例子
2009/05/04 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
JS delegate与live浅析
2013/12/21 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
python两种遍历字典(dict)的方法比较
2014/05/29 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
python实现超市扫码仪计费
2018/05/30 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
python构建指数平滑预测模型示例
2019/11/21 Python
python如何判断IP地址合法性
2020/04/05 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
舞蹈专业求职信
2014/06/13 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
springboot中一些比较常用的注解总结
2021/06/11 Java/Android