• 【FreeSwitch开发实践】外呼网关配置(拨打电话)


    ✨ 博客主页:小小马车夫的主页
    ✨ 所属专栏:FreeSwitch开发实践
    ✨ 专栏介绍:主要介绍博主在实际项目中使用FreeSwitch开发外呼类项目的一些经验心得,主要涉及FreeSwitch的基本安装编译、基本配置、ESL、WSS、录音、自定义模块、media bug、语音播放、MRCP及对接AI机器人等内容。内容在持续更新中,如果感兴趣可以对专栏进行订阅~

    请添加图片描述


    前言

    FreeSwitch开发一个重要应用是外呼,所谓外呼就拨打真实电话或手机号呼叫,配合语音机器人可以实现智能客服的功能。外呼配置主要是配置外呼服务器,外呼服务器主要指SIP网关,每个外呼服务器就是一个SIP节点,FreeSwitch服务也可以是一个SIP节点。


    1、SIP网关配置

    sip网关配置有两种模式,注册模式和非注册模式,下面分别对两种模式配置说明。

    (1) 注册模式

    注册模式下,需要一个密码:

    配置

    在FreeSwitch目录在conf\sip_profiles\external 创建文件,随便取个名字,如: my_gate.xml, 内容如下:

    <include>
     <gateway name="mygate_register">
       <param name="realm" value="100.200.252.125:5060"/>
       <param name="username" value="01012345678"/> 
       <param name="password" value="123456"/> 
       <param name="register" value="true"/>
     </gateway>
    </include>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    说明:

    • gateway 网关定义,name 是网关配置名称,在拨号时用到
    • realm SIP网关的IP和端口, 其中IP可以替换为域名
    • username 是就外呼拨号时被叫手机看到的来电号码
    • password 是SIP网关认证的密码
    • register 布尔类型, true=注册类型 false=非注册类型

    加载网关配置

    在FreeSwitch命令行运行如下命令:

    freeswitch@test-l27-15-56> sofia status
                         Name	   Type	                                      Data	State
    =================================================================================================
                external-ipv6	profile	                  sip:mod_sofia@[::1]:5080	RUNNING (0)
                external-ipv6	profile	                  sip:mod_sofia@[::1]:5081	RUNNING (0) (TLS)
                  10.32.22.12	  alias	                                  internal	ALIASED
                     external	profile	            sip:mod_sofia@10.32.22.12:5080	RUNNING (0)
                     external	profile	            sip:mod_sofia@10.32.22.12:5081	RUNNING (0) (TLS)
             external::mygate	gateway	      sip:01012345678@100.200.252.125:5060	REG
                internal-ipv6	profile	                  sip:mod_sofia@[::1]:5060	RUNNING (0)
                internal-ipv6	profile	                  sip:mod_sofia@[::1]:5061	RUNNING (0) (TLS)
                     internal	profile	            sip:mod_sofia@10.32.22.12:5060	RUNNING (0)
                     internal	profile	            sip:mod_sofia@10.32.22.12:5061	RUNNING (0) (TLS)
    =================================================================================================
    4 profiles 1 alias
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (2) 非注册模式

    非注册模式下,不需要密码。

    配置

    在FreeSwitch目录在conf\sip_profiles\external 创建文件,随便取个名字,如: my_gate.xml, 内容如下:

    <include>
     <gateway name="mygate">
       <param name="realm" value="100.200.252.125:5060"/>
       <param name="username" value="01012345678"/>  
       <param name="register" value="false"/>
     </gateway>
    </include>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这里与注册模式的区别就是:registerfalse

    加载网关配置

    在FreeSwitch命令行运行如下命令:

    freeswitch@test-l27-15-56> sofia status
                         Name	   Type	                                      Data	State
    =================================================================================================
                external-ipv6	profile	                  sip:mod_sofia@[::1]:5080	RUNNING (0)
                external-ipv6	profile	                  sip:mod_sofia@[::1]:5081	RUNNING (0) (TLS)
                  10.32.22.12	  alias	                                  internal	ALIASED
                     external	profile	            sip:mod_sofia@10.32.22.12:5080	RUNNING (0)
                     external	profile	            sip:mod_sofia@10.32.22.12:5081	RUNNING (0) (TLS)
        external::example.com	gateway	                   sip:joeuser@example.com	NOREG
             external::mygate	gateway	      sip:01012345678@100.200.252.125:5060	NOREG
                internal-ipv6	profile	                  sip:mod_sofia@[::1]:5060	RUNNING (0)
                internal-ipv6	profile	                  sip:mod_sofia@[::1]:5061	RUNNING (0) (TLS)
                     internal	profile	            sip:mod_sofia@10.32.22.12:5060	RUNNING (0)
                     internal	profile	            sip:mod_sofia@10.32.22.12:5061	RUNNING (0) (TLS)
    =================================================================================================
    4 profiles 1 alias
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3、拨号计划配置

    (1) 呼出配置

    呼出配置,即往外呼叫,呼叫的对象就是SIP网关配置的外呼号码,具体配置示例如下:
    conf\dialplan\default下创建路由配置文件 mycall.xml, 内容如下:

    <include>
     <extension name="mycall">
       <condition field="destination_number" expression="^0(\d+)$">
      <action application="bridge" data="sofia/gateway/mygate/$1"/> 
       condition>
     extension>
    include>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • destination_number 为拨号正则表达式
    • sofia/gateway/mygate/$1 其中,mygate是前面SIP网关配置的名字, $1为正则表达式中(\d+)部分

    呼叫命令举例:

    originate user/1000 018600000001
    
    • 1
    • user/1000 为软电话1000
    • 018600000001,为前面所述配置的正则,本例中 $1为18600000001,就是手机号码

    (2) 呼入配置

    呼入配置,即往内呼叫,就是真实手机号码呼叫到FS,由于FreeSwitch是背靠背协议,所以两端通信时,呼入和呼出配置基本没有区别。但当呼入配置的对象是FreeSwitch的内置模块(app)或者自定义模块,确很有用。
    呼入命令举例:

    originate sofia/gateway/mygate/18600000001 &echo
    
    • 1
    • 示例中sofia/gateway/mygate为配置的网关
    • 18600000001 为手机号码,不同于呼出配置,这里直接使用手机号码
    • echo为FreeSwitch内置模块echo, 回音程序,当然也可以自己开发的模块

    总结

    本文主要介绍了FreeSwitch外呼相关配置,主要有

    • 外呼配置的模式,包括注册模式和非注册模式
    • 网关加载的查看方法
    • 拨号中常见的呼出配置和呼入配置

    如果觉得有些帮助或觉得文章还不错,请关注一下博主,你的关注是我持续写作的动力。另外,如果有什么问题,可以在评论区留言,或者私信博主,博主看到后会第一时间回复。
    【间歇性的努力和蒙混过日子,都是对之前努力的清零】
    欢迎转载,转载请注明出处:https://blog.csdn.net/xxm524/article/details/126328064

  • 相关阅读:
    vue.config 同时配置 chainWebpack和关闭eslint检查多个配置项目共存
    基于VScode的platformio软件实现ESP32的WIFI模块获取实时天气数据并利用u8g2库通过i2c协议进行OLED显示
    使用wget命令报错:Issued certificate has expired(颁发的证书已经过期)
    SSD【目标检测篇】
    代码事件派发机制(观察者模式)
    开发两年,作为过来人的建议
    最新版GNS3安装详解,小白也可以独立完成哦!!
    提升网络质量:UDPspeeder 实现网络优化与提速
    期货十三篇 第四篇 开仓篇
    PyTorch深度学习实战(16)——面部关键点检测
  • 原文地址:https://blog.csdn.net/xxm524/article/details/126328064