本文更新于2022-12-20,使用FreeSWITCH 1.10.7。
目录- 加载顺序
- autoload_configs/
- autoload_configs/acl.conf.xml
- autoload_configs/callcenter.conf.xml
- autoload_configs/cdr_csv_conf.xml
- autoload_configs/cdr_pg_csv.conf.xml
- autoload_configs/conference.conf.xml
- autoload_configs/distributor.conf.xml
- autoload_configs/event_socket.conf.xml
- autoload_configs/fifo.conf.xml
- autoload_configs/ivr.conf.xml
- autoload_configs/local_stream.conf.xml
- autoload_configs/lua.conf.xml
- autoload_configs/modules.conf.xml
- autoload_configs/nibblebill.conf.xml
- autoload_configs/post_load_modules.conf.xml
- autoload_configs/sofia.conf.xml
- autoload_configs/switch.conf.xml
- autoload_configs/tts_commandline.conf.xml
- autoload_configs/xml_cdr.conf.xml
- autoload_configs/xml_curl.conf.xml
- autoload_configs/xml_rpc.conf.xml
- dialplan/
- dialplan/default.xml
- dialplan/public.xml
- directory/
- directory/default.xml
- directory/default/
- directory/default/1000.xml
- freeswitch.xml
- ivr_menus/
- ivr_menus/demo_ivr.xml
- lang
- lang/en
- lang/en/demo
- lang/en/demo/demo-ivr.xml
- lang/en/en.xml
- lang/en/demo
- lang/en
- sip_profiles
- sip_profiles/external.xml
- sip_profiles/external/
- sip_profiles/external/example.xml
- sip_profiles/internal.xml
- vars.xml
FreeSWITCH默认的配置是一个SOHO PBX(家用电话小交换机)。
(资料图)
X-PRE-PROCESS
标签是FreeSWITCH特有的,称为预处理指令,用于根据data
参数设置(set
)一些全局变量,以及将data
参数指定的文件内容包含(include
)到当前文件中。FreeSwitch在加载阶段只对其进行简单替换,并不进行语法分析,因此对它进行注释是没有效果的,解决办法是破坏X-PRE-PROCESS
的定义(如将其替换为XPRE-PROCESS)。
可以$${VAR[:OFFSET[:LENGTH]]}
形式引用全局变量,以${VAR[:OFFSET[:LENGTH]]}
形式引用通道变量(局部变量)。OFFSET从0开始,如为负数表示从尾部开始。
加载顺序
配置文件的加载顺序如下:
freeswitch.xml |- vars.xml |- autoload_configs/*.xml | [autoload_configs/acl.conf.xml] | [autoload_configs/callcenter.conf.xml] | [autoload_configs/cdr_csv_conf.xml] | [autoload_configs/cdr_pg_csv.conf.xml] | [autoload_configs/conference.conf.xml] | [autoload_configs/distributor.conf.xml] | [autoload_configs/event_socket.conf.xml] | [autoload_configs/fifo.conf.xml] | [autoload_configs/ivr.conf.xml] | `- ivr_menus/*.xml | [ivr_menus/demo_ivr.xml] | [autoload_configs/local_stream.conf.xml] | [autoload_configs/lua.conf.xml] | [autoload_configs/modules.conf.xml] | [autoload_configs/nibblebill.conf.xml] | [autoload_configs/post_load_modules.conf.xml] | [autoload_configs/sofia.conf.xml] | `- sip_profiles/*.xml | [sip_profiles/external.xml] | `- sip_profiles/external/*.xml | [sip_profiles/external/example.xml] | [sip_profiles/internal.xml] | [autoload_configs/switch.conf.xml] | [autoload_configs/tts_commandline.conf.xml] | [autoload_configs/xml_cdr.conf.xml] | [autoload_configs/xml_curl.conf.xml] | [autoload_configs/xml_rpc.conf.xml] |- dialplan/*.xml | [dialplan/default.xml] | `- dialplan/default/*.xml | [dialplan/public.xml] | `- dialplan/public/*.xml |- directory/*.xml | [directory/default.xml] | `- directory/default/*.xml | [directory/default/1000.xml] `- lang/en/*.xml [lang/en/en.xml] `- lang/en/demo/*.xml [lang/en/demo/demo-ivr.xml]
重要的配置文件:
- autoload_configs/modules.conf.xml
- autoload_configs/sofia.conf.xml
- autoload_configs/switch.conf.xml
- dialplan/default.xml
- dialplan/public.xml
- directory/default.xml
- directory/default/1000.xml
- freeswitch.xml
- sip_profiles/external.xml
- sip_profiles/external/example.xml
- sip_profiles/internal.xml
- vars.xml
autoload_configs/
自动加载的模块的配置文件的目录。
一般来说每个模块有一个配置文件,文件名格式为“不包含mod_的模块名.conf.xml”,但文件名并不重要,可以改成其他的名字,只要扩展名为.xml。模块在启动时会向XML注册表中查找name为指定值的configuration,进而访问其下面的配置参数。
autoload_configs/acl.conf.xml
ACL权限控制配置。文件内容如下:
list
的name
属性为名字,用于在其它地方引用。
autoload_configs/callcenter.conf.xml
呼叫中心模块配置。这是文件内容的一部分:
queue
为队列,name
为队列的名字,用于在其它地方引用。
queue
的param
的name
可为:
- stragy:策略。其值可为:
- agent-with-fewest-calls:总时选择接电话次数最少的坐席。
- agent-with-least-talk-time:总是选择通话时间最短的坐席。
- long-idel-agent:选择空闲时间最长的坐席。
- random:随机选择。
- ring-all:所有坐席振铃,哪个先接就选哪个。
- round-robin:轮询。
- sequentially-by-agent-order:根据梯队和顺序选择。
- top-down:按固定的顺序选择。
agent
为坐席,可使用以下属性:
- busy-delay-time:如果坐席忙,再次选到该坐席的最短时长。
- contact:坐席的呼叫字符串,用于在有来话时呼叫该坐席。
- max-no-answer:坐席呼叫失败超过此次数,则将坐席状态设置为On Break。
- name:坐席的名字,用于在其它地方引用。
- reject-delay-time:坐席拒接后再次选到该坐席的最短时长。
- status:坐席的初始状态。可为:
- Available:可用状态,可以接电话。
- Available (On Demand):一种特殊的可用状态。
- Logged Out:退出服务状态。
- On Break:坐席已登录,但不可以接电话。
- type:坐席的类型。可为:
- callback:onhook坐席。
- uuid-standby:offhook坐席。
tire
为梯队,将队列与坐席关联起来。
autoload_configs/cdr_csv_conf.xml
使用CSV文件存储话单的配置。文件内容如下:
INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}"); "${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}" "${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}" "${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}" "${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}" "${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex("${original_caller_id_name}"|^.)}","${sip_gateway_name}"
param
的name
可为:
- default-template:默认模板。
- legs:话单记录的腿(a腿/b腿)。
- master-file-only:是否只记录话单汇总文件,不对每个分机单独记录话单文件。
- rotate-on-hup:当FreeSWITCH收到SIGHUP信号时,是否将话单轮替。
autoload_configs/cdr_pg_csv.conf.xml
使用PostgreSQL存储话单的配置。文件内容如下:
param
的name
可为:
- db-info:PostgreSQL标准的连接字符串。
- db-table:数据库表名。
schema
配置通道变量与数据库中字段的对应关系。
field
的属性有:
- column:数据库表的字段名。缺省则与var相同。
- quote:SQL语句中的值是否使用单引号括起(如当值为整数时为false)。
- var:通道变量。
autoload_configs/conference.conf.xml
多人电话会议配置。这是文件内容的一部分:
control
的action
属性可为:
- execute_application:执行APP。
control
的data
属性为执行APP的语句。
param
的name
可为:
- alone-sound:会议只剩一个用户时向其播放的声音文件。
- auto-record:录音模板。当会议中有至少两个人时就会自动开始录音。
- comfort-noise:是否产生舒适噪声。
- conference-flags:会议标志。rfc-4579为RFC4579定义的视频会议控制标准。
- muted-sound:用户被禁言时向其播放的声音文件。
- rate:采样率。
- unmuted-sound:用户被取消禁言时向其播放的声音文件。
autoload_configs/distributor.conf.xml
号码连选模块配置。文件内容如下:
autoload_configs/event_socket.conf.xml
Event Socket配置。文件内容如下:
autoload_configs/fifo.conf.xml
呼叫队列模块配置。文件内容如下:
param
的name
可为:
- odbc-dsn:数据库ODBC的DSN。格式为:[odbc://]NAME:[USERNAME]:[PASSWORD]。
fifos
用于配置静态坐席。
fifo
的name
属性为队列的名字,用于在其它地方引用。
每个member
相当于一个坐席,其值为该坐席的呼叫字符串。坐席会轮流振铃(拒接其中一个,另一个就会振铃)。
timeout
属性为呼叫超时的秒数。
simo
属性为最大能服务的呼叫的数量。
lag
属性为该坐席接听一个呼叫后再接听下一个呼叫的间隔秒数。
autoload_configs/ivr.conf.xml
IVR模块配置。文件内容如下:
autoload_configs/local_stream.conf.xml
本地文件流的配置。这是文件内容的一部分:
name
为名字,斜杠前面用于在其它地方引用,斜杠后面用于自动匹配采样率。如果找不到指定的流则会使用default
流,如果default
流也不存在则会提示错误。
path
为声音文件的目录。
autoload_configs/lua.conf.xml
Lua语言配置。文件内容如下:
param
的name
可为:
- startup-script:FreeSWITCH启动时执行的脚本文件。
- xml-handler-bindings:使用XML绑定的Section。Section见freeswitch.xml。
- xml-handler-script:XML绑定执行的脚本文件。
autoload_configs/modules.conf.xml
配置FreeSWITCH启动时自动加载哪些模块。这是文件内容的一部分:
autoload_configs/nibblebill.conf.xml
预付费计费模块配置。这是文件内容的一部分:
param
的name
可为:
- db_column_account:计费账号对应的数据库表字段名。
- global_heartbeat:通话过程中定时扣款的时间间隔。
- odbc-dsn:数据库ODBC的DSN。格式为:[odbc://]NAME:[USERNAME]:[PASSWORD]。
autoload_configs/post_load_modules.conf.xml
其格式和用法与autoload_configs/modules.conf.xml差不多,不同的是其中定义的模块加载时间较晚。
autoload_configs/sofia.conf.xml
SIP模块配置。文件内容如下:
各参数的含义如下:
- capture-server:Homer方式抓包的Capture Node(又称Capture Server)的地址。
autoload_configs/switch.conf.xml
SIP核心配置。这是文件内容的一部分:
param
的name
可为:
- core-db-dsn:core数据库的DSN。格式为:[odbc://]NAME:[USERNAME]:[PASSWORD]。
- max-sessions:呼叫最大并发数。
- sessions-per-second:每秒最大呼叫数。
autoload_configs/tts_commandline.conf.xml
调用其他TTS软件命令行的配置。文件内容如下:
在调用该模块时会自动设置以下变量:
- file:声音文件名。默认扩展名为.wav,使用完毕会自动删除.wav文件。
- rate:Channel的采样率。
- text:TTS文本。
- voicd:嗓音的名字。
autoload_configs/xml_cdr.conf.xml
生成XML格式的话单发送至外部HTTP服务器的配置。这是文件内容的一部分:
param
的name
可为:
- url:话单的HTTP POST请求的URL地址。
autoload_configs/xml_curl.conf.xml
请求外部HTTP服务器生成XML的配置。这是文件内容的一部分:
param
的name
可为:
- gateway-url:HTTP网关服务器的URL。
bindings
表示应用的Section。
autoload_configs/xml_rpc.conf.xml
FreeSWITCH Portal配置。文件内容如下:
dialplan/
拨号计划的配置目录。支持多个Context,每个Context可以写到一个XML文件中。
由于在处理Dialplan时要对每一项进行正则表达式匹配,这是非常影响效率的,所以在生产环境中往往要删除默认的Dialplan。
dialplan/default.xml
默认Context,一般用于内部注册用户路由。这是文件内容的一部分:
每个context
中有多个extension
,一个context
中的extension
与其他context
中的extension
在逻辑上是隔离的。
context
的name
用于在其它地方引用。
extension
的name
对呼叫流程没有任何影响。
extension
的属性continue
表示执行完action
是否继续匹配其他extension
,缺省为false
。
extension
中可以对一些condition
(测试条件)进行判断,如果匹配测试条件所指定的表达式则执行对应的action
(动作),如不匹配则执行对应的anti-action
(反动作)。
condition
可使用以下属性(可同时使用多个属性):
- field:通道变量。自定义变量需使用
${}
引起: - hour:小时,0~23。
- mday:日,1~31。
- minute:分,0~59。
- minute-of-day:一天中的第几分钟,1~1440(1点等于60,中午等于720)。
- mon:月,1~12。
- mweek:本月中的第几周,1~6。
- wday:一周中的第几天,1~7(周日为1)。可使用“-”连接两个值表示范围。
- week:一年中的第几周,1~53。
- year:当前的年,0~9999。
- yday:一年中的第几天,1~366。
condition
的break
可为:
- always;不管是否匹配,都停止。
- never:不管是否匹配,都继续。
- on-false:在匹配失败时停止(但继续处理其他
extension
),这是默认配置。 - on-true:在匹配成功时停止(但会先完成对应
action
,然后继续处理其他的extension
),不成功则继续匹配其他condition
。
expression
为field
匹配的正则表达式。
没有field
和expression
的空condition
被认为匹配所有规则,称其为绝对条件(Absolute Condition)。
action
和anti-action
有application
属性,表示要执行的APP。
action
和anti-action
可有data
属性,表示APP的参数,可用$N
(从1开始)表示expression
匹配的内容,用${API([ARG[ ...]])}
表示API调用。如没有参数,也可省略。
action
和anti-action
将inline
设置为true
表示内联执行。
action
可设置loop
属性,如失败则重复执行直至指定次数。
可以使用sip_h_
开头的通道变量添加扩展的SIP消息头。
默认号码如下(官方文档:https://freeswitch.org/confluence/display/FREESWITCH/Default+Dialplan+QRF):
号码 | 说明 |
---|---|
1000-1019 | 呼叫默认分机号(默认密码为1234) |
2000-2002 | 呼叫组 |
30xx | 电话会议,8kHz(其中xx可为00~99) |
31xx | 电话会议,宽带,16kHz(其中xx可为00~99) |
32xx | 电话会议,超宽带,32kHz(其中xx可为00~99) |
33xx | 电话会议,CD音质,48kHz(其中xx可为00~99) |
4000 | 听取语音信箱 |
5000 | 示例IVR |
5900 | 呼叫停泊 |
5901 | 呼叫取回 |
7243 | 组播 |
9178 | 收传真 |
9179 | 发传真 |
9180 | 铃音测试,使用远端生成的回铃音 |
9181 | 铃音测试,产生英式铃音 |
9182 | 铃音测试,使用音乐当铃音,彩铃 |
9183 | 先应答,然后发送英式铃音 |
9184 | 先应答,然后发送音乐铃音 |
9191 | ClueCon |
9192 | 在log中显示Channel信息 |
9193 | 录像 |
9194 | 播放录像 |
9195 | echo,回音测试,延迟5秒 |
9196 | echo,回音测试 |
9197 | milliwatte extension,铃音生成 |
9198 | TGML铃音生成示例 |
9664 | 保持音乐 |
dialplan/public.xml
公共Context,一般用于网关路由。这是文件内容的一部分:
大部分参数与dialplan/default.xml相同。
directory/
用户目录。支持多个域(Domain),每个域可以写到一个XML文件中。
directory/default.xml
用户目录默认域。这是文件内容的一部分:
domain
的name
属性为租户域的名字。
params
定义了该域中所有用户的公共参数。dial-string
参数为呼叫字符串。
variables
定义了一些公共变量,在用户主叫或被叫时,这些变量会绑定到相应的Channel上形成Channel Variable。
还定义了很多组(group
),组名并无特殊意义。组里面包含很多用户(user
),可以是指向已存在用户的指针。使用组并不是必需的,可以将users
直接放到domain
下一级。
params
和variables
可以出现在user
、group
、domain
中,当有重复时按此优先级从高到低。
directory/default/
本地用户目录。
directory/default/1000.xml
一个本地用户。文件内容如下:
user_context
的值为此用户发起的呼叫的拨号计划的context
。
freeswitch.xml
主配置文件,使用X-PRE-PROCESS
指令的include
语句载入其他文件。这是文件内容的一部分:
ivr_menus/
IVR菜单配置。
ivr_menus/demo_ivr.xml
IVR菜单配置示例。文件内容如下:
每个menu
描述一个菜单,有以下属性(如文件为相对路径,则相对于/usr/local/freeswitch/sounds):
- digit-len:最大收号位数。
- exit-sound:最后菜单退出时(一般是超时没有按键)的提示音文件。
- greet-long:最开始的欢迎音文件。
- greet-short:用户长时间没有按键的简短提示音文件。
- inter-digit-timeout:两次按键的最大间隔(毫秒)。
- invalid-sound:用户按键错误的提示音文件。
- max-failures:用户按键错误的最多次数。
- max-timeouts:最大超时次数。
- name:菜单名。必需唯一,用于在其它地方引用。
- timeout:超时时间(毫秒)。即多长时间没有收到按键就超时,播放其他提示音。
菜单有若干个菜单项entry
,其action
可为:
- menu-exec-app:执行一个APP。
- menu-sub:执行下级菜单。
- menu-top:返回上级菜单。
lang
语言配置目录。
lang/en
英语配置目录。
lang/en/demo
英语配置示例。
lang/en/demo/demo-ivr.xml
英语IVR的Phrase宏示例。这是文件内容的一部分:
name
为宏名称,用于其他地方引用。
pause
表示每个action
之间暂停多长时间(毫秒)。
可指定多个input
,根据pattern
正则表达式匹配不同的输入。
function
可为:
- play-file:播放文件。
- say:使用Say接口放音。除了
data
属性,还需要type
和method
属性。 - speak-text:使用TTS将文本内容放音。
data
可使用$N
引用pattern
匹配的内容。
lang/en/en.xml
英语配置。这是文件内容的一部分:
name
为语言的名字,用于在其它地方引用。
say-module
表示该语言用来支持Say接口的模块,本例中为mod_say_en。
sound-prefix
为该语言Say接口的声音文件的路径前缀。
tts-engine
为TTS引擎。
tts-voice
为TTS嗓音。
sip_profiles
SIP Profile配置。
sip_profiles/external.xml
SIP external Profile配置。这是文件内容的一部分:
大部分参数与sip_profiles/internal.xml相同。
sip_profiles/external/
SIP external Profile配置目录。
sip_profiles/external/example.xml
SIP external Profile网关配置示例。文件内容如下:
各参数的含义如下:
- caller-id-in-from:是否将主叫号码放到SIP的From首部。省略则为false,即放到Remote-Party-ID首部。
- contact-params:SIP的Contact首部的额外参数。具体参数需根据实际情况而定。
- expire-seconds:SIP的REGISTER消息的Expires首部。省略则为3600。单位为秒。
- extension:来话中的分机号,即被叫号码。省略则取username。
- from-domain:SIP的From首部的domain值。省略则取realm。
- from-user:SIP的From首部的用户信息。省略则取username。
- outbound-proxy:呼叫使用的代理服务器,即SIP的INVITE消息发送的地址。可与register-proxy不同。
- password:密码。必需。
- ping:发送SIP的OPTIONS消息的时间间隔。如果失败,则从该网关注销,并将其设置为down状态。
- proxy:代理服务器。省略则取realm。
- realm:SIP网关服务器地址。可为域名或IP,如果端口不是5060则需加上“:端口”。省略则取网关名,即gateway的name值。必需。
- register:是否注册到网关。省略则为true。如果是中继,则不需要注册。
- register-proxy:注册使用的代理服务器。省略则取realm。
- register-transport:SIP消息的承载。可为:tcp、udp。
- retry-seconds:注册失败或超时后,重新注册的等待秒数。
- username:用户名,会出现在SIP消息的Authorization头中。必需。
sip_profiles/internal.xml
SIP internal Profile配置。这是文件内容的一部分:
profile
的name
用于在其它地方引用。
param
的name
可为:
- aggressive-nat-detection:对SIP包进行深度NAT检测,以决定使用那个IP地址。
- apply-inbound-acl:SIP来话的ACL鉴权方式。
- apply-nat-acl:处理SIP包NAT的ACL鉴权方式。nat.auto为使用RFC1918规定的私网地址并去掉本地网络的地址来替换Contact信息。
- auth-calls:是否对来话进行鉴权。即所有从该Profile进来的INVITE请求都需要经过Digest验证。
- codec-prefs:来话和去话支持的媒体编码列表。
- context:来话进入Dialplan中哪个Context进行路由。本地用户设置的user_context的优先级更高。
- dialplan:Dialplan类型。
- disable-rtp-auto-adjust:是否禁用RTP自动调整。
- dtmf-type:DTMF类型。inband为使用带内DTMF,info为使用SIP的INFO消息。
- enable-100rel:是否在收到183消息时发送PRACK证实消息。
- ext-rtp-ip:NAT环境中公网的RTP IP。该设置会影响SDP中的IP。可为:IP地址(直接指定公网IP)、autonat:IP地址(直接指定公网IP,更智能)、stun:STUN服务器地址(使用STUN服务器获取公网IP)、host:域名(通过DNS域名解析获取公网IP)、auto(自动检测公网IP)、auto-nat(如路由器支持NAT-PMP或uPnP,则自动使用这些协议获取公网IP)。
- ext-sip-ip:NAT环境中公网的SIP IP。该设置会影响SDP中的IP。可为:IP地址(直接指定公网IP)、autonat:IP地址(直接指定公网IP,更智能)、stun:STUN服务器地址(使用STUN服务器获取公网IP)、host:域名(通过DNS域名解析获取公网IP)、auto(自动检测公网IP)、auto-nat(如路由器支持NAT-PMP或uPnP,则自动使用这些协议获取公网IP)。
- force-register-db-domain:强制注册使用此域存储在数据库中。可删除。
- force-register-domain:强制注册使用此域。可删除。
- force-subscription-domain:强制订阅使用此域。可删除。
- inbound-codec-prefs:来话支持的媒体编码列表。
- inbound-bypass-media:来话是否启用媒体绕过模式。
- inbound-late-negotiation:是否使用晚协商。
- inbound-zrtp-passthru
- manage-presence:是否启用列席。
- manage-shared-appearence:是否启用共享线路呈现。
- media-option:媒体选项。为resume-media-on-hold表示,如果FreeSWITCH处于媒体绕过状态,当话机按下Hold键时,FreeSWITCH将回到有媒体的状态。为bypass-media-after-att-xfer表示,如在执行出席转移前处于媒体绕过状态,转接执行时通过re-INVITE要回媒体,等到转接结束后再回到媒体绕过状态。
- NDLB-force-rport:是否使用NDLB配置启用rport参数支持。
- odbc-dsn:数据库ODBC的DSN。格式为:[odbc://]NAME:[USERNAME]:[PASSWORD]。
- outbound-codec-prefs:去话支持的媒体编码列表。
- rtp-ip:RTP的IP地址。
- sip-capture:是否使用Homer方式进行抓包。
- sip-ip:SIP的IP地址。
- sip-port:该Profile监听的SIP端口。
- track-calls:是否将通话的当前状态实时写到数据库中。
vars.xml
使用X-PRE-PROCESS
指令的set
语句定义一些全局变量。这是文件内容的一部分:
data
各变量的含义如下:
- api_on_startup:FreeSWITCH启动时执行的API及参数。
- default_password:默认用户密码。
- domain:租户域。默认是主机的IP地址。
- domain_name:租户域的名字。用于Dialplan中。
- global_codec_prefs:全局支持的媒体编码列表。
- internal_sip_port:internal Profile监听的SIP端口。
- outbound_codec_prefs:去话支持的媒体编码列表。
- sound_prefix:声音文件的路径前缀。
另外,系统自动设置的变量有(系统自动设置的变量是在vars.xml加载前设置的,因而可以在vars.xml中覆盖它们):
- hostname:主机名。
- local_ip_v4:本地IP(IPv4)。
- local_mask_v4:本地掩码(IPv4)。
- local_ip_v6:本地IP(IPv6)。
- switch_serial:随机产生的序列号。
- base_dir:FreeSWITCH的安装路径。
- recordings_dir:录音路径,可以在启动时用-recordings选项指定。
- sound_prefix:声音文件的路径前缀,默认是/usr/local/freeswitch/sounds/en/us/callie。
- sounds_dir:声音文件的目录,默认是/usr/local/freeswitch/sounds。
- core_uuid:自动生成的UUID字符串,用于标志本FreeSWITCH实例,每次启动都会改变。
- zrtp_enabled:是否启用zrtp。
- nat_public_addr:检测到的NAT公网地址。
- nat_private_addr:NAT私网地址。
- nat_type:NAT类型。