OpenSIPS替代VOS3000的方案

写在前面

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

需要解决的问题

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

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

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

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 register
        if ($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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenSIPS 手册是开源 SIP 服务器 OpenSIPS 的详细文档,旨在为用户和开发者提供全面的技术支持和指南。手册包含了 OpenSIPS 的体系架构、安装和配置、应用程序编写、性能调优等内容,对于初学者和专业人士都有很好的价值。 手册提供了丰富、实用的示例和代码,使得用户能够快速入门 OpenSIPS 并开始开发应用程序。此外,手册还对 OpenSIPS 的核心特性、流媒体控制、路由等进行了深入探讨,以帮助用户充分发挥 OpenSIPS 的功能。 OpenSIPS 手册还提供了大量的 API 参考和配置文件样例,这些都是开发者必备的资源。手册还鼓励开发者参与到社区中,分享经验并提供反馈,帮助开源软件持续发展。 总之,OpenSIPS 手册是 OpenSIPS 用户和开发者必备的工具,它提供了全面而实用的知识和技能,帮助您轻松构建高可靠、高性能的 SIP 通讯系统。 ### 回答2: Opensips手册是一本关于Opensips的详细指南书,可以帮助用户了解Opensips的各种模块及其功能、配置等。读者可以从中学到如何搭建基于Opensips的VoIP网络,进行话务处理、身份验证、路由、信令处理等操作。手册中包含了自认证和协议转换功能,可以帮助用户维护多个VoIP协议之间的通信连接,以及处理不同的信令。此外,手册中还提供了如何运用Opensips的API和编写插件的基本指南,以及如何进行调试和故障排除的方法。 因此,Opensips手册是建立在开放源代码技术的软件Opensips上的重要资源,它为企业和个人提供了定制化的解决方案,以应对复杂的通信和协议转换的挑战。对于那些需要一个灵活的VoIP解决方案的人或企业来说,Opensips手册是必不可少的读物。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值