2019独角兽企业重金招聘Python工程师标准>>>

写在前面

最近一直在做人工智能呼叫的业务,也使用过VOS3000,主要好处是功能稳定。坏处就是不好和自己的系统集成,再者是收费,并发大了收费也不低。

需要解决的问题

  1. 网关可以通过创建
  2. 主叫号码路由到网关的端口,默认一对一路由
  3. 物理网关的路由配置一键下发(和网关开发企业匹配)
  4. 网关的端口的实时监控(卡有没有插,是否异常,是否欠费)

解决方法(先解决网关注册到opensips平台,后续继续添加)

每一个主叫号码都有应该有路由方式和路由地址,路由地址可以是网关,或者一个IP地址,所以在subscriber表格增加两个列,如下图

这样的情况下,只要修改数据库,就可以实时对主叫和网关进行路由,我们外呼主要是动态分配主叫号码。对应着OpenSIPS,我们开发了一个配置服务器,所有的路由关系,通过前端可以查看。

这部分的opensips.cfg的配置:

加载subscriber表中的对应配置
####  auth_db
loadmodule "auth.so"
loadmodule "auth_db.so"
modparam("auth_db", "load_credentials", "$avp(route_type)=route_type; $avp(route_dest)=route_dest")###呼叫的主要脚本,其他的就不贴了
# account only INVITEs
if (is_method("INVITE")) {if (!www_authorize("", "subscriber")){www_challenge("", "0");exit;}do_accounting("db|log", "cdr|missed");xlog("L_INFO", "get avp type: $avp(route_type) , avp route dest: $avp(route_dest)");#route the registerif ($avp(route_type) == 1){$avp(old_rU) = $rU;$rU = $avp(route_dest);xlog("L_ERR", "invite get route_type==1, rU: $rU , old_rU:$avp(old_rU), avp dest: $avp(route_dest)");lookup("location");switch ($retcode) {case -1:case -3:sl_send_reply("404", "Not Found");exit;case -2:sl_send_reply("405", "Not Found");exit;};$rU = $avp(old_rU);}}

通过阅读源码发现:www_authorize方法调用时,会把route_type和route_dest放在avp键值对里面。 收到一路呼叫,根据路由类型route_type,如果是类型1的话,路由到另一个注册网关上,通过location获取对应的公网IP+port,修改了ruri,实现了重定向到网关的地址。

网关方面:

收到了一个 18958022872 @ voip.dasxxx.com的sip信令,To的头域名:也包含18958022872的被叫。网关收到之后,根据网关的配置和主叫路由,通过指定的端口呼叫出去,这样就完成了一次路由。

转载于:https://my.oschina.net/andywang1988/blog/2989332

OpenSIPS替代VOS3000的方案相关推荐

  1. AH8652,AH8100,非隔离5V,供电替代阻容降压方案

    AH8100,AH8652是一颗低成本的非隔离开关高性能交流转直流的转换器降压芯片,内部集成 500V高耐压功率MOSFET 额定200MA电流输出,非常适应于消费类的小家电控制模块以及给MCU 供电 ...

  2. 替代LT6711A功能方案| 完全替代LT6711A芯片|高性价比HDMI转EDP转换设计

    替代LT6711A功能方案| 完全替代LT6711A芯片|高性价比HDMI转EDP转换设计 LT6711A是一款HDMI2.0转eDP / DP1.2支持4K 60Hz音视频转换芯片.LT6711A芯 ...

  3. MA8601 无需更改电路直接pin√pin替代FE8.1s方案

    FE8.1是一个非常紧凑的高速4端口 usb 集线器控制器.它符合 usb-if 规范.为了实现绝对最小的引脚计数,没有输入信号引脚留下来监测本地电源状态.Fe8.1是 usb 2.0 4端口集线器解 ...

  4. 国外能够使用替代Google Map 方案调研

    经过查找资料,国内外地图sdk的提供商主要有下面几个: 1.谷歌 2.高德 3.百度 4.腾讯 5.mapbox中国 6.here 7.mapquest 一.高德地图 https://lbs.amap ...

  5. smd(贴片式)三端稳压模块完美替代线性稳压器方案

    线性稳压器LM7805的效率会随着输入/输出电压差加大而急剧下降,而的L7805-1.5A系列在输入/输出电压变化仅几伏时具有96%的最高效率.即使在输入电压24Vdc时候仍可达到90%的效率. 高效 ...

  6. Unity播放带Alpha通道的视频【WebM+Video Player】(替代播放GIF方案)

    在Unity中播放GIF或者动态效果,可以通过Video Player播放带透明通道的WebM视频来实现. 制作带Alpha的MOV视频 制作带Alpha通道的MOV视频有多重方式,如AE.PR.PS ...

  7. websocket session超时_SSE(ServerSent Events):替代websocket完成服务器推送

    微信搜索"品茗IT"关注我们吧! 一.概述 提到服务端数据推送,你可以一下子就想到了Websocket,WebSocket是一种全新的协议,随着HTML5草案的不断完善,越来越多的 ...

  8. 调用vba_Python VS JavaScript,谁将是替代VBA最好语言

    作者:matrixtian来源:EXCEL与统计分析文章经授权转载 Python VS JavaScript, 谁将是替代VBA最好语言 关于Excel开新的脚本语言,不管是通过微软官方还是民间捕风, ...

  9. 重新考虑数据中心的冷却方案—水冷却或将再次兴起

    就如同汽车制造行业的赛车一样,长期以来,高性能计算(HPC)领域一直是后来最终得以推广应用到主流计算领域的相关技术的试验场.实际上,今天的云系统和超大规模部署对于推动无虚构硬件,负载平衡文件系统和开源 ...

最新文章

  1. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...
  2. GDCM:ReadSelectedTags的测试程序
  3. Win10安装MySQL5.7.22 解压缩版(手动配置)方法
  4. OCR常见问题(4)
  5. VMWare 全屏后最小化死机
  6. 在web开发中,如何保证对象只被创建一次之单例应用系列?
  7. 智能客服究竟该怎么玩?
  8. java项目_值得学习和练手的Java企业级开源项目,强烈推荐!
  9. 正则去除汉字和只取数字
  10. 万嘉MOV格式转换器v1.00.102官方免费版
  11. 干涉测量技术的应用_倾斜摄影与激光雷达技术在输电线路实景三维测量应用中的比较...
  12. 【C补充】指向指针或函数的指针
  13. 笔记本win10更新无线服务器,win10笔记本无线驱动升级安装图文详解
  14. 如何让你的技术团队成员自觉工作
  15. Maven学习记录之依赖问题 Missing artifact org.aspectj:aspectjweaver:jar:1.8.0.M1
  16. 各大电商历史价格json后端接口
  17. 品牌数字化转型|借势营销节点,3 招解锁品牌营销力
  18. 安装CAD出现Error:1402
  19. 联想开机启动项按哪个_联想笔记本按哪个按键进入U盘启动|详解联想进入U盘启动的教程...
  20. 站在产业互联网爆发的风口,定推一折购跃上云端服务中小企业发展

热门文章

  1. 配置webpack.config.js遇到的一些问题
  2. css3 中background的新增加的属性的用法(一)
  3. 实现背景透明的方法,兼容ie6/7/8等浏览器
  4. C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
  5. 7-183 阅览室 (20 分)
  6. 7-157 求一元二次方程的根 (20 分)
  7. 7-2 整除分块 (15 分)
  8. 求链式线性表的倒数第K项 (20 分)
  9. 凯恩帝k1000ti参数设置_KND1000TI系统参数
  10. linux内存锁定什么意思,Linux内存子系统——Locking Pages(内存锁定)