zoukankan      html  css  js  c++  java
  • Freeswitch配置SIP网关拨打外部

    Freeswitch配置SIP网关拨打外部电话

    为了实现freeswitch能够往外面(也就是打到你的手机号上)打电话,我们需要再freeswitch服务器上配置一些参数,当然前提是需要有一个SIP网关(硬件),一般是向网关服务商(华为,奥科等)购买,也可以直接向电信运营商购买。

    1. 添加网关

    添加网关只需要在freeswitch服务器目录下的conf/sip_profiles/external/中创建一个XML文件,名字可以随便取,如gwl.xml,然后在这个文件里面输入如下代码:
    (注:1.4版本也可能是在conf/sbc/sbc_profiles/external/或者conf/insideout/sip_profiles/external
    里面)

    	<gateway name="gwl">
    		<param name="realm" value="SIP服务器地址,可以是IP或者IP:端口"/>
    		<param name="username" value="SIP用户名"/>
    		<param name="password" value="密码"/>
    		<param name="proxy" value="112.3.18.9:5060"/>
     8     <param name="register" value="true" />
    	</gateway>
    

    如果你的网关还需要其他参数,可以参阅同目录下的"example.xml",但一般来说上述参数就够了。你可以重启freeswitch,或者执行以下命令使之生效:

    freeswitch> sofia profile external rescan
    

    显示一下网关的注册状态:

    freeswitch> sofia status
    

    如果显示gateway gwl的状态时REGED,则表明以正确注册到网关了,可以用命令试一下网关是否正常工作:

    freeswitch> originate sofia/gateway/gwl/xxxxxxx &echo
    

    以上命令回通过网关gwl呼叫号码xxxxxx(手机号),被叫号码接听电话后,Freeswitch会执行echo程序,你就能听到自己的回声了。

    2. 常用命令

    1. 启动:freeswitch
    2. 启动并后台运行:freeswitch -nc
    3. 进入客户端:fs_cli -H 127.0.0.1 -P 8021 -p password
    4. 退出客户端:/exit, /bye, /quit Ctrl+D
    5. 停止:freeswitch -stop
    6. 查询网关状态: sofia status profile local
    7. 重启网关: sofia profile local restart
    8. 查看freeswitch的端口情况:netstat -anp|grep freeswitch
    9. 使用fs_cli进行呼叫:originate user/1003 &echo 其中&echo会把听到的声音返回给发出者
    10. 音频编码部分设备不支持可以使用这个bgapi originate {absolute_codec_string=PCMU}user/1009 018162330576 xml default
    11. reloadxml 重新加载xml文件
    12. 查看当前注册的用户数量:sofia status profile internal
    13. 查找文件夹:find / -name external -type d
    14. 复制文件到多个文件夹:echo a b c | xargs -n 1 cp -v ./gwl.xml
    15. 重新注册网关:sofia profile external register gw
    16. ps -ef | grep freeswitch netstat -apn | grep 8021
    17. 开启sip消息显示 sofia global siptrace on
    18. 关闭sip消息显示 sofia global siptrace off

    3. 默认端口作用

    8021: fs_cli客户端连接freeswitch的时候用的端口
    5060: SIP软电话连接的端口

    官方freeswitch.docker的端口说明
    Alt text

    4. 错误解决

    1. 报错内容:
      [ERROR] fs_cli.c:1659 main() Error Connecting [Socket Connection Error]
      这个报错说明Freeswitch服务没有开启,或者mod_event_socket没有正确加载
      可以在/usr/local/freeswitch/conf/autoload_config/event_socket.conf.xml 文件修改监听ip地址为0.0.0.0或者127.0.0.1
    <configuration name="event_socket.conf" description="Socket Client">
      <settings>
        <param name="nat-map" value="false"/>
        <param name="listen-ip" value="0.0.0.0"/>
        <param name="listen-port" value="8021"/>
        <param name="password" value="ClueCon"/>
        <!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
        <!--<param name="stop-on-bind-error" value="true"/>-->
      </settings>
    </configuration>
    
  • 相关阅读:
    【转】Chrome 控制台不完全指南
    AngularJS 之 Factory vs Service vs Provider【转】
    【转】NuGet.org 无法访问的解决方法
    jquery easyui 1.4.1 验证时tooltip 的位置调整
    jquery easyui 1.4.1 API( CHM版)
    扩展 easyui-tabs 插件 关闭标签页方法
    easyui layout 折叠后显示标题
    easyui 中Datagrid 控件在列较多且无数据时,列显示不全的解决方案
    为easyui datagrid 添加上下方向键移动
    Android布局实现圆角边框
  • 原文地址:https://www.cnblogs.com/pyweb/p/13500596.html
Copyright © 2011-2022 走看看