• freeswitch的3XX重定向


     

    概述

    sip协议标准RFC3261中,对3XX重定向有明确的定义。

    freeswitch中如何使用3XX redirect的特性,如何落地,应用场景有哪些?

    环境

    centos:CentOS  release 7.0 (Final)或以上版本

    freeswitch:v1.8.7

    GCC:4.8.5

    3XX重定向

    RFC3261中对3XX的响应定义是这样的。

    3xx responses give information about the user's new location, or about alternative services that might be able to satisfy the call.

    3XX响应提供有关用户新位置的信息,或者可能能够满足呼叫请求的替代服务。

    各种具体的响应消息定义如下。

    300 Multiple Choices: Indicates that the address resolved to more than one location.

    300 多重选择:响应中带有多个可选地址。

    301 Moved permanently: Indicates user is no longer available at this location, an alternate location should be included in the header.

    301 永久转移:当前地址永久性不可用,响应中附带可选的新地址。

    302 Moved Temporarily: Indicates that the user in temporarily unavailable, an alternate location should be included in the header.

    302 临时转移:当前地址临时性不可用,响应中附带可选的新地址。

    305 Use Proxy: This response indicates that the caller must use a proxy to contact the called party.

    305 使用代理:该响应表示用户必须使用代理来建立呼叫。

    380 Call is not successful but alternate services are available.

    380 呼叫失败但是有可用的替代服务。

    freeswitch中的重定向

    freeswitch的官方文档中,只找到了300和302响应的app接口“mod_dptools: redirect”。

    应用很简单,dialplan拨号计划中直接配置使用。

    拨号计划实例:

    查看fs源代码,发现的可用的数据格式。

    其中的“q值”可以用来作为redirect的排序依据。

    配置测试

    构造一个简单场景,测试一下redirect的流程。

    1001->fs138->fs137->fs138->1002

    其中,fs137开放多个端口5080、5082、5084、5086。

    fs137的5080端口收到invite之后,使用redirect返回300重定向消息,重定向位置为fs137的多个端口5082、5084、5086。

    修改dialplan拨号计划如下。

       

           

            

           

       

    重启fs之后,发起呼叫测试,sngrep的信令流程如下。

    redirect 300的消息流程截图。

    重定向之后的呼叫流程截图。

    总结

    可以在redirect之前,增加一致性HASH的接口来计算重定向目标,以达到负载均衡的目的。

    3XX重定向服务可以用在故障转移场景?

    3XX重定向服务在分布式大集群中应用的场景,集群容量上限该如何计算?

    302重定向只能在呼叫未接通之前使用。

    空空如常

    求真得真

  • 相关阅读:
    day18-web工程路径
    前端格式化工具
    Java项目:ssm图书馆管理系统
    如何保护客户数据并降低合规风险
    堡垒机部署
    云服务器ubuntu20.04安装dotnet6环境
    java mysql ssm框架的同城配送系统源码
    RK3399平台开发系列讲解(CPU篇)常见CPU性能问题
    灰狼优化算法(Matlab完整代码实现)
    动态数据渲染订单查询实现
  • 原文地址:https://blog.csdn.net/qiuzhendezhen/article/details/126648431