freeswitch 常用配置
freeswitch 常用配置
https://www.cnblogs.com/fire909090/p/6897568.html
一、 添加用户
1、conf/directory/default目录下添加用户文件名字是分机号.xml,例如1000.xml,它的内容如下:
<include>
<user id="1000" mailbox="1000">
<params>
<param name="password" value="1234"/>
<param name="vm-password" value="1000"/>
</params>
<variables>
<variable name="accountcode" value="1000"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="Extension 1000"/>
<variable name="effective_caller_id_number" value="1000"/>
</variables>
</user>
</include>
2、使其他用户可以呼叫到他
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[0-9][0-9])$">
FS接受到内部分机呼叫后,查找分机时用正则表达式: 10[01][0-9] 来表示1000-1019;
"^(50[5-9][0-9])$"标示5050-5099;
3、重新加载配置,使其生效
在fs_cli下,运行:reloadxml
二、 出局号码
在修改拨号计划/conf/dialplan下的default.xml中添加代码
<extension name="call out">
<condition field="destination_number" expression="^(10[0-9]+)$">
<action application="bridge" data="sofia/gateway/gw1/$1"/>
</condition>
</extension>
expression="^(10[0-9]+)$">为出局号,当拨号码前三位为100-109是走路由"sofia/gateway/gw1/$1";
如果expression="^7(\d+)$"标示要在拨出号码前加拨7;括号内的为呼出号码!
出局路由文件为gw1.xml内容如下
<gateway name="gw1">
<param name="realm" value="172.16.72.220:5060"/>
<param name="username" value="1004"/>
<param name="password" value="1234"/>
<param name="register" value="false" />
</gateway>
将路由文件放在conf\sip_profiles\external目录下即可。
https://blog.csdn.net/dujiajiyu/article/details/93676119
配置文件默认的目录是 /usr/local/freeswitch/conf
| conf/目录和文件 | 说明 |
| :----------------------------- | --------------------------------------------------------- |
| \|——vars.xml | 一些常用变量 |
| \|——autoload_configs | 目录、存放自动加载的配置文件 |
| \| \|——modules.conf.xml | 配置当FreeSWITCH启动时自动装载哪些模块 |
| \| \|——*.xml | 一般来说每个模块都有一个配置文件 |
| \|——dialplan | 拨号计划 |
| \| \|——default.xml | 默认的拨号计划配置、一般用于内部用户路由 |
| \| \|——public.xml | 默认的拨号计划配置、一般用于外部来话路由 |
| \|——directory | 用户目录 |
| \| \|——default | 默认的用户目录配置 |
| \| ——*.xml | SIP用户、每个用户都有一个文件 |
| \|——sip_profiles | SIP配置文件 |
| \| \|——internal.xml | 一般SIP profile、或称作一个SIP-UA、监听在本地IP及端口5060 |
| \| \|——externa.xml | 另一个SIP-UA、用作外部连接、端口5080 |
一、freeswitch.xml
freeswitch.xml文件是所有XML文件的粘合剂,它没有特别的作用,主要就是将不同的配置文件包含到不同部分(Section)中,从而生成一个大的XML配置文件
二、vars.xml
vars.xml 主要通过 X-PER-PROCESS 指令定义了一些全局变量,全局变量使用
var表示,临时变量以$var表示,在实际使用中可以通过API命令来获取全局变量的值如:globalgetvarlocalipv4,也可以通过eval
var表示,临时变量以$var表示,在实际使用中可以通过API命令来获取全局变量的值如:globalgetvarlocalipv4,也可以通过eval
{local_ip_v4}
三、autoload_configs目录
该目录下的各种配置文件是在系统启动的时候载入,一般来说都是模块级的配置文件,每个模块对应一个(主要并不是所有的模块都有配置文件),文件名一般以“模块名.confi.xml”的方式命名(模块名中不包含“mod_“)
启动载入根据配置文件module.conf.xml决定
四、directory目录
该目录中的配置文件决定了当FreeSWITCH作为注册服务器时,那些用户可以注册,即用于配置SIP用户
启动原理:c语言编写执行的
http://www.360doc.com/content/14/0120/14/12747488_346631095.shtml
启动过程中的常见问题及处理方案:
sofia.c:3146 Error Creating SIP UA for profile: internal-ipv6 (sip:mod_sofia@[::1]:5060;transport=udp,tcp) ATTEMPT 2 (RETRY IN 5 SEC)
主要原因是:系统不支持IPv6地址,需要让freeswitch去掉IPv6的支持
处理方案:
1.删除sip_profiles下相关的IPV6文件
2.破坏掉ipv6文件的类型,不再是xml类型即可
出现这种报错:
Cannot lock pid file /usr/local/freeswitch/run/freeswitch.pid.
导致原因是该系统还有类似的freeswitch进程在启动,导致无法启动
conf/autoload_configs/switch.conf.xml
主要设置控制台快捷键、数据库处理句柄、session会话、日志等级等
1.快捷设置
2.
最大连接session
每秒最大
######freeswitch 作为服务器注册
Sofia 的配置文件是 conf/autoload_configs/sofia.conf.xml
所以,可以认为所有的Sofia配置文件都在conf/sip_profiles/中
https://www.cnblogs.com/linyijia/p/15641343.html
一 安装
1.下载地址
https://files.freeswitch.org/windows/installer
注意x64和x86
版本为FreeSWITCH-1.10.1-Release-x64.msi 完美支持音视频 有的版本不支持视频哦
2.安装选择complete 完全安装
安装完成目录在C:\Program Files\FreeSWITCH
3.修改
C:\Program Files\FreeSWITCH\conf\vars.xml
密码
如果在本机运行修改为本地ip 默认是一个网络外网地址 如果可以通过外网ip访问的可以不改 服务器上不用修改次参数
修改C:\Program Files\FreeSWITCH\conf\autoload_configs\modules.conf.xml
如果本地ip不支持ip6 删除C:\Program Files\FreeSWITCH\conf\sip_profiles
4.运行
打开cmd 注意用管理员
输入
cd C:\Program Files\FreeSWITCH
FreeSwitchConsole -nonat
查询:sofia status 为本地ip 正常
5.默认账号为1000-1019 密码为上面修改 默认端口在vars.xml 5060
运行sip 软件 如果你想开发自己的可以到https://shop121230895.taobao.com/index.htm 选择一个 有linphone、baresip、pjsip 。win32桌面、安卓、 web网页版本都有
输入 ip:192.168.0.114:5060及账号、密码
二.外网配置
1、在var.xml中修改
<!--X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=stun:stun.freeswitch.org"/--> 这里没有使用stun功能,而是直接把公网ip填在这里
<X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip="阿里云分配的公网ip"/>
在var.xml中修改了之后,就无需在conf/sip_profiles/iinternal.xml external.xml中修改了,网上有很多例子都是直接在这两个文件改其实不用,var中改好了之后,这两个文件直接引用external_rtp_ip这个变量即可。
2、关键一步,配置阿里云的防火墙及操作系统防火墙。
这里需要注意 服务器最好把5060默认端口改掉 我这边上线一天就马上被人攻击,修改具体如下
1.进入安装目录:
cd /usr/local/freeswitch/conf/vars.xml
2.修改默认端口
<X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
5060默认为freswitch 的sip信令内部端口
3.修改语音流端口
freeswitch默认rtp语音端口范围如下:
<!-- RTP port range -->
<!-- <param name="rtp-start-port" value="16384"/> -->
<!-- <param name="rtp-end-port" value="32768"/> -->
三.常用命令
启动
FreeSwitchConsole -nonat
注册状态
sofia status profile internal
参考链接:
https://www.cnblogs.com/setout/articles/10255911.html
https://www.cnblogs.com/robinliu1238/p/13352483.html
https://blog.csdn.net/Java_lilin/article/details/103063930
========= End