最新要闻
- 天天即时:怀旧情怀拉满:宾得宣布将开发新款胶片相机
- 阿根廷夺冠“拯救”伊利 但“奶茅”光环渐黯
- 环球快讯:一加宣布与OPPO服务融合:12月底全面加入OPPO售后服务系统
- 东北将迎今冬以来最强降雪:持续时间最长、范围最广
- PCIe 5.0 SSD终于满血了!读写都是14GB/s、容量8TB
- 热消息:蔚来遭遇225万美元数据勒索 官方声明
- 当前讯息:铃木“大G”!吉姆尼五门版无伪谍照:最多能塞进7个人
- 奇迹!女子手机从26楼掉落未摔坏 真身竟是这款手机
- 5499元 联合创新推出新款32英寸显示器:4K MiniLED屏、144Hz高刷
- “非洲之王”拥抱新技术:传音首台折叠屏手机已通过蓝牙SIG认证
- 天天短讯!世界北极熊之都升温过快 已危及北极熊生存:吃不上饭了
- 即时看!1月1日起:澳门私家车可经港珠澳大桥出入内地
- 观速讯丨巡游大巴太高 梅西险些撞上电缆!他带回阿根廷的大力神杯居然是复制品
- 天天短讯!中国联通科技人才占比已达30% 曾发话不能再用老眼光看电信行业
- 空难曾致346人死亡 波音737 Max飞机延期采用最新安全标准
- 每日观察!广州多个外卖平台下单后配送慢 平台:员工已是全负荷工作
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【全球新要闻】FreeSWITCH学习笔记:XML配置文件
本文更新于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类型。
-
【全球新要闻】FreeSWITCH学习笔记:XML配置文件
本文更新于2022-12-20,使用FreeSWITCH1 10 7。FreeSWITCH默认的配置是一个SOHOPBX(家用电话小交换机...
来源: 【全球新要闻】FreeSWITCH学习笔记:XML配置文件
天天即时:怀旧情怀拉满:宾得宣布将开发新款胶片相机
阿根廷夺冠“拯救”伊利 但“奶茅”光环渐黯
环球快讯:一加宣布与OPPO服务融合:12月底全面加入OPPO售后服务系统
东北将迎今冬以来最强降雪:持续时间最长、范围最广
世界速递!框架第九课---ajax补充说明,多对多三种创建方式,django内置序列化组件(drf前身),ORM批量操作数据(ORM操作优化),自定义分页器,f
WPF工控组态软件之温度计
每日播报!Iceberg在袋鼠云的探索及实践
每日关注!hibernate validate工具,小心你的姿势不对
PCIe 5.0 SSD终于满血了!读写都是14GB/s、容量8TB
热消息:蔚来遭遇225万美元数据勒索 官方声明
当前讯息:铃木“大G”!吉姆尼五门版无伪谍照:最多能塞进7个人
奇迹!女子手机从26楼掉落未摔坏 真身竟是这款手机
5499元 联合创新推出新款32英寸显示器:4K MiniLED屏、144Hz高刷
“非洲之王”拥抱新技术:传音首台折叠屏手机已通过蓝牙SIG认证
天天短讯!世界北极熊之都升温过快 已危及北极熊生存:吃不上饭了
天天热资讯!深度学习炼丹-数据处理和增强
世界热门:记录--可视化大屏-用threejs撸一个3d中国地图
Python操作Excel(openpyxl)
全球热点评!Html5 canvas创意特效合集
即时看!1月1日起:澳门私家车可经港珠澳大桥出入内地
观速讯丨巡游大巴太高 梅西险些撞上电缆!他带回阿根廷的大力神杯居然是复制品
天天短讯!中国联通科技人才占比已达30% 曾发话不能再用老眼光看电信行业
空难曾致346人死亡 波音737 Max飞机延期采用最新安全标准
每日观察!广州多个外卖平台下单后配送慢 平台:员工已是全负荷工作
世界视讯!数据结构堆(Heap)&排序&二叉树
今日播报!用好这个任务管理工具,轻松躲避职场明枪暗箭
世界今日报丨彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-登录与图形验证码(captcha)EP06
今日热闻!低代码:如何成为企业业务价值提升的一大利器?
热消息:Intel第二代独立显卡1年后见:要追上RTX 4070!
主页不刷新了 小红书崩了累坏网友:WiFi、流量疯狂切换
罗永浩称他的失败不是理想主义的错 是他们自己的错
世界热讯:吴京《流浪地球2》吃苹果皮:大年初一上映
世界要闻:中国移动千兆宽带用户已达2.4亿!你是其中之一吗?
安全信息流工具-中文安全RSS小程序
supervisor+gunicorn+uvicorn部署fastapi项目
天天实时:四年保质期囤货无压力!900压缩饼干8斤85元
天天热资讯!iPhone 15系列或重新划分机型组合:14 Plus太拉胯 要大改
一加11质感绝了!刘作虎给员工秀真机:围观群众都发出WOW
美国“显卡税”又推迟9个月:一旦征收 最多涨价25%
全球讯息:大无语 车主称理想L9半个月坏三次 充电口从电动变手动
天天关注:企业转型难?火山引擎数智平台提供数智升级新路径
焦点热门:Dubbo架构设计与源码解析(一) 架构设计
Redis的AOF持久化
【报资讯】防火墙功能(锐捷安全篇)
当前热文:多方安全计算(4)MPC万能积木:秘密共享
【全球时快讯】多方安全计算(3)MPC万能钥匙:混淆电路
全力推进企业数智赋能发展主线,低代码任重道远
天天要闻:linux安装stable diffusion2.0完整教程-还不会安装sd2.0?一篇文章教会你AI绘画
焦点速读:proto IDL管理工具buf使用实践
P2329 栅栏
全球观点:Xml转Java实体类对象 xml转Javabena 对象 且多级嵌套 复杂嵌套
世界动态:用Python写一个一次性计算出加减乘除的运算小程序
世界热文:实验一:获取主机信息
全球播报:MySQL-InnoDB磁盘结构
今日热议:pkg对egg项目打包
天天精选!java的final关键字
环球快报:【验证码逆向专栏】某片滑块、点选验证码逆向分析
环球热议:别再用 JWT 作为 Session 系统了,问题重重,后果很危险!
全球球精选!Osx10.14升级watchman踩坑记
时讯:二分法
用Python来写个小型购物车程序
天天观速讯丨基于 Dubbo Admin 动态进行流量隔离
赫德-德普官司以一百万美元赔偿和解
百度地图首发自研“北斗高精”技术 升级“真”车道级导航
【环球时快讯】中国版“猛禽”!长城山海炮大型皮卡实车现身:配自研3.0T、9AT
上海首张城市高级辅助驾驶地图许可来了 百度率先获批
环球快看点丨伊朗男子65厘米创吉尼斯最矮纪录:站起来才到到成人膝盖处
热门:如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用
【世界时快讯】安卓抄错了?iPhone 15 Pro最新概念图:告别纯直边
当前关注:网络谣言别再传了!短视频中梅西抱的不是母亲:是阿根廷队女厨师
天天通讯!微软、谷歌之后 欧盟反垄断又对美国Meta下手:可罚款上百亿美元
每日视讯:4K游戏串流没了 NVIDIA删除使用9年的GameStream功能引用户不满
2022最后一跌!今起油价下调:加满一箱92号汽油少花19.5元
消息!苹果App Store被法国罚款100万美元:Epic CEO、扎克伯格都曾痛批
多次骂新能源!丰田再度质疑汽车全面电动化:中国品牌弯道超车
35岁本泽马宣布从法国队退役:球迷唏嘘 祝福俱乐部继续精彩
Python单元测试框架unittest
环球播报:北京等多地天空疑现震撼的火箭夜光云:原理科普
年出货3亿只、逛店必买的一次性碱性电池:被宜家正式停售了
环球新资讯:抖音在世界杯上下的功夫 远不止撒币10亿买版权这么简单
差评如潮!《三体》动画评分暴跌至6.4:网友"口吐芬芳"
快讯:Epic与美国FTC和解:36.6亿元摆平两起官司
Spring IOC官方文档学习笔记(二)之Bean概述
焦点观察:FreeSWITCH学习笔记:通道变量
焦点关注:32开书本大小!华硕新款12代酷睿i7迷你机PC发布:零噪音
环球即时:内蒙古上空巨大发光体划破天际 网友:像手电筒一样
192个框框的怪兽!AMD Zen4线程撕裂者7000来了
世界快报:Django框架:9、Ajax简介、基本语法、数据编码格式、携带文件数据
马斯克现身世界杯观战阿根廷对法国:赛后发出灵魂拷问
【环球播资讯】梅西夺冠穿的黑纱是什么登上热搜:官方科普涨知识 意义非凡
今日快讯:小米13 Pro 8.38mm机身塞入太多强悍功能!雷军:相当不容易
当前快播:明年初亮相 全新东风标致408X即将发布:最美法系车来了
被裁员工报仇?近60%人赞成!马斯克将卸任推特CEO 没继承者还是我掌权
今日快讯:真值200+一张票价吗?《阿凡达2》用户评分:特效很棒 剧情稀烂
观察:小姐姐最爱!小米米家首款无线直板夹上架:30秒速热 369元
环球速看:Java关键词final解读
环球视点!简单排序
全球观焦点:数据结构与算法概念
AMD/Intel CES 2023新品发布会官宣:5大CPU齐飞