freeswitch

1 前台启动freeswitch

cd /usr/local/freeswitch/bin/目录,然后运行 ./freeswitch
      ./freeswitch  

关闭:freeswitch -stop

2     后台运行freeswitch

       ./freeswitch   -nc     

3.    后台运行转前台

    ./fs_cli            

4.    退回后台运行                       

        ...     

5.   查看sofia状态

    sofia status

6. 查看注册信息

    sofia  status  profile      internal   reg          

7. 列出声音设备    

    pa  devlist

8.指定输入、输出端口

    pa  indev  #0  

    pa outdev  #2

9.回路测试

    pa looptest

10.呼叫  1014

    pa  call   1014

11. 挂机

    pa  hangup    

12  重新加载模块

    reloadxml

13. 重启freeswitch

    sofia    profile  external  rescan  

14. 发起呼叫(假使1000已注册)

    originate   user/1000    &ech0                            

version            --显示当前版本

status                --现实当前状态

fs_cli中的命令

1 .退出fs_cli

/quit

/bye

/exit

2.几个常用特殊命令

/event           --开启事件接收

/noevents    --关闭事件接收

/nixevent      --开启所有时间(除了特定的一种)

/log                 --设置log级别

/nolog           --关闭log

/filter            --过滤时间

3.订阅事件

/event  plain  ALL
 

 

1.首先修改/usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml

<configuration name="event_socket.conf" description="Socket Client">
<settings>
<param name="nat-map" value="false"/>
<!--0.0.0.0表示运行其它主机进行访问,127.0.0.1表示只允许本机进行访问-->
<param name="listen-ip" value="0.0.0.0"/>
<param name="listen-port" value="8021"/>
<param name="password" value="123456"/>
<!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
<!--my_acl 就表示防火墙规则, -->
<param name="apply-inbound-acl" value="my_acl"/>
<!--<param name="stop-on-bind-error" value="true"/>-->
</settings>
</configuration>

2.然后修改/usr/local/freeswitch/conf/autoload_configs/acl.conf.xml
添加如下部分:
<list name="my_acl" default="deny">
<node type="allow" cidr="192.168.17.3/16"/>
<node type="allow" domain="$${domain}"/>
<!-- this allow fs_cli to connect else fs_cli wont work -->
<node type="allow" cidr="127.0.0.1/32" />
</list>

表示该my_acl规则禁止所有,除了允许的192.168.xx.xx和127.0.0.1两个IP地址


3.在192.168.17.3服务器上新建文件:/root/.fs_cli_conf
添加如下内容:
[fs200]
host => 192.168.4.200
port => 8021
password => 123456
debug => 7

其中fs200表示链接名称

将192.168.4.200上的freeswitch重启之后,在192.168.17.3上输入:
fs_cli fs200
就可以远程访问192.168.4.200上的freeswitch
--------------------- 
 

 

 

3:网关配置:

    D:\VS\freeswitch-1.6.19\Win32\Debug\conf\sip_profiles\external目录下新建fs_sg.xml文件,内容配置如下:

<include>
  <gateway name="fs_sg"><!-- 网关的名字 -->
    <param name="username" value="sip账号"/>
    <param name="password" value="sip密码"/>
    <param name="realm" value="sip地址"/>
    <param name="from-domain" value="sip地址"/> 
  </gateway>
</include>
4:拨号说明

    软电话拨号:打FreeSWITCH内部用户可以直接打;打手机号需要配置拨号规则从网关打出去,拨号规则配置如下:

        D:\VS\freeswitch-1.6.19\Win32\Debug\conf\dialplan\default下新建fs_di.xml文件(文件名随便),文件内容:

<include>
  <extension name="extension-call">
    <condition field="destination_number" expression="^0(\d+)$"">
      <action application="bridge" data="sofia/gateway/fs_sg/$1"/>
    </condition>
  </extension>
</include>
        软电话打手机号时需要加0来匹配上面这个拨号规则,然后从网关打出去

    Java调用拨号:打FreeSWITCH内部用户可以直接打;打手机号也是从网关打出去,不需要匹配拨号规则
 

A。查看5060映射到哪个IP:netstat -an | grep 5060

在阿里上默认映射到内网IP,要想映射到外网,

修改配置sip_profiles/internal.xml
修改ext-rtp-ip和ext-sip-ip为freeswitch公网地址

<param name="ext-rtp-ip" value="115.aa.aa.aa"/>
<param name="ext-sip-ip" value="115.aa.aa.aa"/>
 

测试呼出电话:originate user/1000 &echo

查看用户列表:

list_users group default

 

配置成服务:

systemctl enable freeswitch.service