Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### freeswitch 错误代码
- https://freeswitch.org/confluence/display/FREESWITCH/Hangup+Cause+Code+Table
- #### xLite连接 asterisk| fs 提示sip408错误
- 1.sip408应答代码全文
- 408 Request Timeout
- 在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改请求的内容然后重新尝试请求。
- 2.原因:造成无法连接的原因一般是linux防火墙造成。
- 3.解决方案:
- 在linux终端执行>setup
- 选择防火墙直接关闭即可,如果是运行在公网上的服务器,可以选择防火墙中的定制开启相应的端口即可。
- sip.conf 默认配置端口为5060
- 1. 永久性生效
- 开启: chkconfig iptables on
- 关闭: chkconfig iptables off
- 2. 即时生效,重启后失效
- 开启: service iptables start
- 关闭: service iptables stop
- 1. 永久有效
- 修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
- 2. 即时生效
- setenforce 0
- ### fs 添加用户
- fs 默认只有 20 个用户
- 1. 进入 directory 目录
- ```
- cd etc/directory/default/
- cp 1000.xml 1234.xml
- //修改 1000 为 1234
- //修改 effective_caller_id_name 为 “your name”
- <variable name="effective_caller_id_name" value="highsea"/>
- ```
- 2. dialplan 拨号计划目录
- 找到 destination_number 修改 正则,比如 ```^(10[01][0-9]|1234)$```
- ```
- cd etc/dialplan/
- vim default.xml
- <condition field="destination_number" expression="^(10[01][0-9])$">
- ```
- 3. reloadxml + 重启 fs
- ### fs 打开 wss websocket 链接
- [freeSWITCH安装、配置与局域网测试](https://blog.csdn.net/foruok/article/details/74287842)
- /etc/freeswitch/sip_profiles/internal.xml
- /etc/freeswitch/vars.xml
- 1. 修改vars.xml,加入:
- ```
- <X-PRE-PROCESS cmd=="set" data="proxy_media=true"/>
- ```
- conf/var.xml中有两个开关,要设置true
- <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=true"/>
- <X-PRE-PROCESS cmd="set" data="external_ssl_enable=true"/>
- 2. 修改sip_profiles/internal.xml,设置 **inbound-proxy-media** 和 **inbound-late-negotiation** 为true ,类似下面:
- ```
- <!--Uncomment to set all inbound calls to proxy media mode-->
- <param name="inbound-proxy-media" value="true"/>
- <!-- Let calls hit the dialplan before selecting codec for the a-leg -->
- <param name="inbound-late-negotiation" value="true"/>
- ```
- SIP 服务的端口是 5060 ,WebSocket(ws)服务的端口是 5066 , wss 端口是 7443 。
- 3. 局域网调试 打开 autoload_configs
- ```
- /etc/freeswitch/autoload_configs/acl.conf.xml
- <list name="localnet.auto" default="allow">
- </list>
- ```
- #### 测试 WebSocket
- sip over websoket
- nginx 代理 wss 协议服务(头部也是 http)
- ````
- // ws://192.168.1.43:5066
- //
- var ws = new WebSocket("wss://192.168.1.43:7443");
- ws.onopen = function(evt) {
- console.log("Connection open ...");
- ws.send("Hello WebSockets!");
- };
- ws.onmessage = function(evt) {
- console.log( "Received Message: " + evt.data);
- ws.close();
- };
- ws.onclose = function(evt) {
- console.log("Connection closed.");
- };
- ````
- readyState属性返回实例对象的当前状态,共有四种。
- CONNECTING:值为0,表示正在连接。
- OPEN:值为1,表示连接成功,可以通信了。
- CLOSING:值为2,表示连接正在关闭。
- CLOSED:值为3,表示连接已经关闭,或者打开连接失败。
- ### 验证端口
- 启动后,TCP 5060 、UDP 5060 、TCP 5066 、TCP 7443 这几个端口应该被监听。
- 可以使用下面命令:
- netstat -an | grep "5060"
- netstat -an | grep "7443"
- ### sip trunk 注册配置
- 添加注册到imclub.com的sip server上,增加imsclub.com_sip_trunk.xml内容
- ```
- freeswitch/conf/sip_profiles/external/imsclub.com_sip_trunk.xml
- <include>
- <gateway name="imsclub.com">
- <param name="username" value="1019"/>
- <param name="password" value="1234"/>
- <param name="realm" value="imsclub.com"/>
- <param name="proxy" value="imsclub.com"/>
- </gateway>
- </include>
- ```
- > sip trunk基本原理
- 注册到 freeswitch 的 internal 内部终端之间显然可以互相拨打,比如公司内部话机可以互相通话。但公司内部话机要想主动跟外部话机通话怎么办?这是就需要进过公司软交换中心跟 external 外部建立通信链路,而软交换中心跟 external 外部建立得通信链路可以是 SIP 或者 PSTN 的运营商网络链接。 Freeswitch 引入所谓网关概念来处理与外部链接问题,这种链路一般称之为 Trunk,故对应的有 SIP Trunk和 PSTN Trunk。
- 在 Freeswitch 中配置在系统启动时注册到另一个sip服务器(即配置文件中所谓的gateway),此时 Freeswitch 作为一个 sip client ,跟其下面SIP终端注册到 freeswitch 是一样的。跟 SIP 终端一样,配置注册到网关需要 用户名,密码,以及要注册到的sip服务器ip地址和端口等参数。
- 注册到网关的相关配置保存在目录
- freeswitch/etc/freeswitch/sofia_profiles/external,
- freeswitch/etc/freeswitch/sip_profiles/external.xml 为freeswitch作为客户端注册到另一个网关的全局配置,
- freeswitch/etc/freeswitch/sip_profiles/external/ 目录下可以添加多个网关。
- 说明:
- 1. 以上是基本配置,还有其他配置可参考 example.xml
- 2. 确保gateways 上的 sip server 已经添加指定的账号,否则毫无意义
- 重启external生效
- `freeswitch@internal> sofia profile external restart`
- https://freeswitch.org/freeswitch-1-6-17-released/
- wget https://f.s:8001/freeswitch-1.6.17.tar.gz --no-check-certificate
- wget https://f.s:8001/cd_sounds/freeswitch-sounds-music-8000-1.0.50.tar.gz --no-check-certificate
- wget https://f.s:8001/install_on_CentOS_6.5.sh --no-check-certificate
- ### 添加网关配置
- ```
- find ./freeswitch/ -name sip_profiles
- /root/freeswitch/etc/freeswitch/sip_profiles/external/
- ```
- ### FS常用指令
- fsctl shutdown [cancel|elegant|asap|restart|now]
- sofia profile external restart
- sofia status profile internal reg
- sofia status profile internal
- show registrations
- status profile external reg
- sofia status
- freeswitch@highsea-macos-vmware-centos6.5> version
- FreeSWITCH Version 1.6.17~64bit ( 64bit)
- freeswitch@highsea-macos-vmware-centos6.5> status
- UP 0 years, 0 days, 0 hours, 32 minutes, 6 seconds, 205 milliseconds, 733 microseconds #启动时长
- FreeSWITCH (Version 1.6.17 64bit) is ready #主要版本号
- 20 session(s) since startup #自启动以来已经处理了多少个session
- 0 session(s) - peak 4, last 5min 0 #处理了4个
- 0 session(s) per Sec out of max 30, peak 2, last 5min 0 #最大支持每秒处理30个,可在配置文件里更改 cps(call per Second)
- 1000 session(s) max #最大允许多少个并发session
- min idle cpu 0.00/99.07 #最小及当前空闲CPU
- Current Stack Size/Max 240K/8192K #当前使用的堆栈空间以及系统预留的堆栈地址空间。
- 为了调试方便,FreeSWITCH还在conf/autoload_configs/switch.conf.xml中定义了一些控制台快捷键。可以通过F1~F12这几个按键来使用它们(不过,在某些操作系统上,有些快捷键可能与操作系统相冲突,这时你就只能直接输入这些命令或重新定义它们了),也可以修改配置文件加入比较常用的命令(修改完毕后记着运行 reloadxml 命令使之生效)
- ##freeswitch -waste
- ```
- ps aux | grep freeswitch
- //呼叫注册用户 (显示来电 000000)
- originate user/1003 &echo
- ```
- #### 开启SIP Trace: 日志
- sofia global siptrace on
- 挂断原因代码表 https://freeswitch.org/confluence/display/FREESWITCH/Hangup+Cause+Code+Table
- ### FreeSWITCH核心层定义了以下接口(来自switch_types.h,注释为作者所加):
- typedef enum {
- SWITCH_ENDPOINT_INTERFACE, //终点
- SWITCH_TIMER_INTERFACE, //定时器
- SWITCH_DIALPLAN_INTERFACE, //拨号计划 *
- SWITCH_CODEC_INTERFACE, //编码解码
- SWITCH_APPLICATION_INTERFACE, //应用程序
- SWITCH_API_INTERFACE, //命令
- SWITCH_FILE_INTERFACE, //文件
- SWITCH_SPEECH_INTERFACE, //语音合成 *
- SWITCH_DIRECTORY_INTERFACE, //用户目录
- SWITCH_CHAT_INTERFACE, //聊天计划 *
- SWITCH_SAY_INTERFACE, //分词短语 *
- SWITCH_ASR_INTERFACE, //语音识别 *
- SWITCH_MANAGEMENT_INTERFACE, //网管接口
- SWITCH_LIMIT_INTERFACE, //资源接口
- SWITCH_CHAT_APPLICATION_INTERFACE //聊天应用程序接口 *
- } switch_module_interface_name_t;
- git clone –b release-1.6 https://freeswitch.org/stash/scm/sd/libvpx.git
- git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
- ### libvpx-1.7.0
- https://github.com/webmproject/libvpx/archive/v1.7.0/libvpx-1.7.0.tar.gz
- sed -i 's/cp -p/cp/' build/make/Makefile && mkdir libvpx-build && cd libvpx-build && ../configure --prefix=/usr --enable-shared --disable-static && make
- sed -i 's/cp -p/cp/' build/make/Makefile && mkdir libvpx-build && cd libvpx-build && ../configure --prefix=/usr --enable-pic --disable-static --enable-shared && make
- ### yasm-1.3.0
- http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
- sed -i 's#) ytasm.*#)#' Makefile.in && ./configure --prefix=/usr && make
- ### Which-2.21 and Alternatives
- https://ftp.gnu.org/gnu/which/which-2.21.tar.gz
- ./configure --prefix=/usr && make
- ### NASM-2.13.03
- http://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.xz
- tar -xf nasm-2.13.03.tar.xz --strip-components=1
- <include>
- <extension name="callout mjoys3h">
- <condition field="destination_number" expression="^0(\d+)$">
- <action application="bridge" data="sofia/gateway/mjoys3h/$1"/>
- </condition>
- </extension>
- </include>
- <include>
- <extension name="public_did">
- 192.168.1.120
- 192.168.1.28 00:0C:29:5E:44:DB
- ```
- [root@highsea-macos-vmware-centos6 ~]# tree ./freeswitch/ -L 4
- ./freeswitch/
- ├── bin # 可执行程序
- │ ├── freeswitch
- │ ├── fs_cli
- │ ├── fs_encode
- │ ├── fs_ivrd
- │ ├── fsxs
- │ ├── gentls_cert
- │ └── tone2wav
- ├── etc # 配置文件 (老版本 是 conf 目录)
- │ └── freeswitch # 配置conf 拨号dianplan 聊天chatplan 用户directory 分词phrase
- │ ├── autoload_configs # 模块级的配置文件,在系统启动时装入
- │ │ ├── abstraction.conf.xml
- │ │ ├── acl.conf.xml
- │ │ ├── alsa.conf.xml
- │ │ ├── amqp.conf.xml
- │ │ ├── avmd.conf.xml
- │ │ ├── blacklist.conf.xml
- │ │ ├── callcenter.conf.xml
- │ │ ├── cdr_csv.conf.xml
- │ │ ├── cdr_mongodb.conf.xml
- │ │ ├── cdr_pg_csv.conf.xml
- │ │ ├── cdr_sqlite.conf.xml
- │ │ ├── cepstral.conf.xml
- │ │ ├── cidlookup.conf.xml
- │ │ ├── conference.conf.xml
- │ │ ├── conference_layouts.conf.xml
- │ │ ├── console.conf.xml
- │ │ ├── db.conf.xml
- │ │ ├── dialplan_directory.conf.xml
- │ │ ├── dingaling.conf.xml
- │ │ ├── directory.conf.xml
- │ │ ├── distributor.conf.xml
- │ │ ├── easyroute.conf.xml
- │ │ ├── enum.conf.xml
- │ │ ├── erlang_event.conf.xml
- │ │ ├── event_multicast.conf.xml
- │ │ ├── event_socket.conf.xml
- │ │ ├── fax.conf.xml
- │ │ ├── fifo.conf.xml
- │ │ ├── format_cdr.conf.xml
- │ │ ├── graylog2.conf.xml
- │ │ ├── hash.conf.xml
- │ │ ├── hiredis.conf.xml
- │ │ ├── httapi.conf.xml
- │ │ ├── http_cache.conf.xml
- │ │ ├── ivr.conf.xml
- │ │ ├── java.conf.xml
- │ │ ├── kazoo.conf.xml
- │ │ ├── lcr.conf.xml
- │ │ ├── local_stream.conf.xml
- │ │ ├── logfile.conf.xml
- │ │ ├── lua.conf.xml
- │ │ ├── memcache.conf.xml
- │ │ ├── modules.conf.xml
- │ │ ├── mongo.conf.xml
- │ │ ├── nibblebill.conf.xml
- │ │ ├── opal.conf.xml
- │ │ ├── opus.conf.xml
- │ │ ├── oreka.conf.xml
- │ │ ├── osp.conf.xml
- │ │ ├── perl.conf.xml
- │ │ ├── pocketsphinx.conf.xml
- │ │ ├── portaudio.conf.xml
- │ │ ├── post_load_modules.conf.xml
- │ │ ├── presence_map.conf.xml
- │ │ ├── python.conf.xml
- │ │ ├── redis.conf.xml
- │ │ ├── rss.conf.xml
- │ │ ├── rtmp.conf.xml
- │ │ ├── sangoma_codec.conf.xml
- │ │ ├── shout.conf.xml
- │ │ ├── skinny.conf.xml
- │ │ ├── smpp.conf.xml
- │ │ ├── sms_flowroute.conf.xml
- │ │ ├── sofia.conf.xml
- │ │ ├── spandsp.conf.xml
- │ │ ├── switch.conf.xml
- │ │ ├── syslog.conf.xml
- │ │ ├── timezones.conf.xml
- │ │ ├── translate.conf.xml
- │ │ ├── tts_commandline.conf.xml
- │ │ ├── unicall.conf.xml
- │ │ ├── unimrcp.conf.xml
- │ │ ├── v8.conf.xml
- │ │ ├── verto.conf.xml
- │ │ ├── voicemail.conf.xml
- │ │ ├── voicemail_ivr.conf.xml
- │ │ ├── xml_cdr.conf.xml
- │ │ ├── xml_curl.conf.xml
- │ │ ├── xml_rpc.conf.xml
- │ │ ├── xml_scgi.conf.xml
- │ │ └── zeroconf.conf.xml
- │ ├── chatplan # 聊天计划
- │ │ └── default.xml
- │ ├── dialplan # 拨号计划
- │ │ ├── default
- │ │ ├── default.xml
- │ │ ├── features.xml
- │ │ ├── public
- │ │ ├── public.xml
- │ │ ├── skinny-patterns
- │ │ └── skinny-patterns.xml
- │ ├── directory # 用户目录 默认定义了 1000 ~ 1019 一共 20 个用户
- │ │ ├── default
- │ │ └── default.xml
- │ ├── extensions.conf
- │ ├── freeswitch.xml # 将所有配置文件“粘”到一起 | X-PRE-PROCESS 预处理指令
- │ ├── fur_elise.ttml
- │ ├── ivr_menus
- │ │ ├── demo_ivr.xml
- │ │ └── new_demo_ivr.xml
- │ ├── jingle_profiles
- │ │ ├── client.xml
- │ │ └── server.xml
- │ ├── lang
- │ │ ├── de
- │ │ ├── en
- │ │ ├── es
- │ │ ├── fr
- │ │ ├── he
- │ │ ├── pt
- │ │ ├── ru
- │ │ └── sv
- │ ├── mime.types
- │ ├── mrcp_profiles
- │ │ ├── loquendo-7-mrcp-v2.xml
- │ │ ├── nuance-1.0.0-mrcp-v1.xml
- │ │ ├── nuance-5.0-mrcp-v1.xml
- │ │ ├── nuance-5.0-mrcp-v2.xml
- │ │ ├── unimrcpserver-mrcp-v1.xml
- │ │ ├── vestec-mrcp-v1.xml
- │ │ └── voxeo-prophecy-8.0-mrcp-v1.xml
- │ ├── notify-voicemail.tpl
- │ ├── sip_profiles # SIP 配置文件
- │ │ ├── external
- │ │ ├── external-ipv6
- │ │ ├── external-ipv6.xml
- │ │ ├── external.xml
- │ │ ├── internal-ipv6.xml
- │ │ └── internal.xml
- │ ├── skinny_profiles
- │ │ └── internal.xml
- │ ├── tetris.ttml
- │ ├── tls
- │ │ ├── dtls-srtp.pem
- │ │ └── wss.pem
- │ ├── vars.xml # 通过 X-PRE-PROCESS 指令定义了全局变量
- │ ├── voicemail.tpl
- │ └── web-vm.tpl
- ├── include # 头文件
- │ └── freeswitch
- │ ├── libteletone_detect.h
- │ ├── libteletone_generate.h
- │ ├── libteletone.h
- │ ├── switch_am_config.h
- │ ├── switch_apr.h
- │ ├── switch_buffer.h
- │ ├── switch_caller.h
- │ ├── switch_channel.h
- │ ├── switch_config.h
- │ ├── switch_console.h
- │ ├── switch_core_db.h
- │ ├── switch_core_event_hook.h
- │ ├── switch_core.h
- │ ├── switch_core_media.h
- │ ├── switch_core_video.h
- │ ├── switch_cpp.h
- │ ├── switch_curl.h
- │ ├── switch_dso.h
- │ ├── switch_estimators.h
- │ ├── switch_event.h
- │ ├── switch_frame.h
- │ ├── switch.h
- │ ├── switch_hashtable.h
- │ ├── switch_image.h
- │ ├── switch_ivr.h
- │ ├── switch_jitterbuffer.h
- │ ├── switch_json.h
- │ ├── switch_limit.h
- │ ├── switch_loadable_module.h
- │ ├── switch_log.h
- │ ├── switch_module_interfaces.h
- │ ├── switch_mprintf.h
- │ ├── switch_nat.h
- │ ├── switch_odbc.h
- │ ├── switch_pgsql.h
- │ ├── switch_platform.h
- │ ├── switch_regex.h
- │ ├── switch_resample.h
- │ ├── switch_rtcp_frame.h
- │ ├── switch_rtp.h
- │ ├── switch_scheduler.h
- │ ├── switch_stun.h
- │ ├── switch_types.h
- │ ├── switch_utf8.h
- │ ├── switch_utils.h
- │ ├── switch_vpx.h
- │ ├── switch_xml_config.h
- │ ├── switch_xml.h
- │ └── tpl.h
- ├── lib # 库文件
- │ ├── freeswitch
- │ │ └── mod # 可加载 模块
- │ │ ├── mod_amr.la
- │ │ ├── mod_amr.so
- │ │ ├── mod_b64.la
- │ │ ├── mod_b64.so
- │ │ ├── mod_cdr_csv.la
- │ │ ├── mod_cdr_csv.so
- │ │ ├── mod_cdr_sqlite.la
- │ │ ├── mod_cdr_sqlite.so
- │ │ ├── mod_commands.la
- │ │ ├── mod_commands.so
- │ │ ├── mod_conference.la
- │ │ ├── mod_conference.so
- │ │ ├── mod_console.la
- │ │ ├── mod_console.so
- │ │ ├── mod_db.la
- │ │ ├── mod_db.so
- │ │ ├── mod_dialplan_asterisk.la
- │ │ ├── mod_dialplan_asterisk.so
- │ │ ├── mod_dialplan_xml.la
- │ │ ├── mod_dialplan_xml.so
- │ │ ├── mod_dptools.la
- │ │ ├── mod_dptools.so
- │ │ ├── mod_esf.la
- │ │ ├── mod_esf.so
- │ │ ├── mod_event_socket.la
- │ │ ├── mod_event_socket.so
- │ │ ├── mod_expr.la
- │ │ ├── mod_expr.so
- │ │ ├── mod_fifo.la
- │ │ ├── mod_fifo.so
- │ │ ├── mod_fsv.la
- │ │ ├── mod_fsv.so
- │ │ ├── mod_g723_1.la
- │ │ ├── mod_g723_1.so
- │ │ ├── mod_g729.la
- │ │ ├── mod_g729.so
- │ │ ├── mod_h26x.la
- │ │ ├── mod_h26x.so
- │ │ ├── mod_hash.la
- │ │ ├── mod_hash.so
- │ │ ├── mod_httapi.la
- │ │ ├── mod_httapi.so
- │ │ ├── mod_local_stream.la
- │ │ ├── mod_local_stream.so
- │ │ ├── mod_logfile.la
- │ │ ├── mod_logfile.so
- │ │ ├── mod_loopback.la
- │ │ ├── mod_loopback.so
- │ │ ├── mod_lua.la
- │ │ ├── mod_lua.so
- │ │ ├── mod_native_file.la
- │ │ ├── mod_native_file.so
- │ │ ├── mod_opus.la
- │ │ ├── mod_opus.so
- │ │ ├── mod_png.la
- │ │ ├── mod_png.so
- │ │ ├── mod_rtc.la
- │ │ ├── mod_rtc.so
- │ │ ├── mod_say_en.la
- │ │ ├── mod_say_en.so
- │ │ ├── mod_skinny.la
- │ │ ├── mod_skinny.so
- │ │ ├── mod_sms.la
- │ │ ├── mod_sms.so
- │ │ ├── mod_sndfile.la
- │ │ ├── mod_sndfile.so
- │ │ ├── mod_sofia.la
- │ │ ├── mod_sofia.so
- │ │ ├── mod_spandsp.la
- │ │ ├── mod_spandsp.so
- │ │ ├── mod_syslog.la
- │ │ ├── mod_syslog.so
- │ │ ├── mod_tone_stream.la
- │ │ ├── mod_tone_stream.so
- │ │ ├── mod_valet_parking.la
- │ │ ├── mod_valet_parking.so
- │ │ ├── mod_verto.la
- │ │ ├── mod_verto.so
- │ │ ├── mod_voicemail.la
- │ │ ├── mod_voicemail.so
- │ │ ├── mod_xml_cdr.la
- │ │ ├── mod_xml_cdr.so
- │ │ ├── mod_xml_rpc.la
- │ │ ├── mod_xml_rpc.so
- │ │ ├── mod_xml_scgi.la
- │ │ └── mod_xml_scgi.so
- │ ├── libfreeswitch.a
- │ ├── libfreeswitch.la
- │ ├── libfreeswitch.so -> libfreeswitch.so.1.0.0
- │ ├── libfreeswitch.so.1 -> libfreeswitch.so.1.0.0
- │ ├── libfreeswitch.so.1.0.0
- │ └── pkgconfig
- │ └── freeswitch.pc
- ├── share
- │ └── freeswitch
- │ ├── fonts
- │ │ ├── FreeMonoBoldOblique.ttf
- │ │ ├── FreeMonoBold.ttf
- │ │ ├── FreeMonoOblique.ttf
- │ │ ├── FreeMono.ttf
- │ │ ├── FreeSansBoldOblique.ttf
- │ │ ├── FreeSansBold.ttf
- │ │ ├── FreeSansOblique.ttf
- │ │ ├── FreeSans.ttf
- │ │ ├── FreeSerifBoldItalic.ttf
- │ │ ├── FreeSerifBold.ttf
- │ │ ├── FreeSerifItalic.ttf
- │ │ ├── FreeSerif.ttf
- │ │ ├── OFL.txt
- │ │ └── README.fonts
- │ ├── grammar # 语法 用于 ASR
- │ ├── htdocs # HTTP Server 根目录
- │ │ ├── license.txt
- │ │ ├── portal
- │ │ ├── slim.swf
- │ │ └── slimtest.htm
- │ ├── scripts # 嵌入式语音写脚本,如使用 lua() luarun() jsrun 等默认寻找路径
- │ └── sounds # 声音文件
- │ ├── en
- │ └── music
- └── var
- ├── lib
- │ └── freeswitch
- │ ├── db # 系统数据库(sqlite)呼叫信息存放(方便查询无需对核心数据加锁)
- │ ├── images
- │ ├── recordings # 录音 使用 record() 时 默认的存放路径
- │ └── storage # 语音留言 Voiceemail 录音,下载缓存 http_file_cache
- ├── log # 日志 CDR
- │ └── freeswitch
- │ ├── cdr-csv
- │ ├── freeswitch.history
- │ ├── freeswitch.log
- │ ├── freeswitch.log.1
- │ ├── freeswitch.log.2
- │ ├── freeswitch.xml.fsxml # 是FreeSWITCH内部XML内存镜像,动态生成 调试 reloadxml
- │ └── xml_cdr
- └── run # 运行目录 存放 FS 运行时的 PID
- └── freeswitch
- └── freeswitch.pid
- 57 directories, 285 files
- [root@highsea-macos-vmware-centos6 ~]# tree ./freeswitch/share/freeswitch/sounds/ -L 4
- ./freeswitch/share/freeswitch/sounds/
- ├── en # en(英文) 【中文目录也类似】
- │ └── us # 美式英文
- │ └── callie # 嗓音 (不同人 音调 音色 不同)
- │ ├── ascii
- │ ├── base256
- │ ├── conference
- │ ├── currency
- │ ├── digits
- │ ├── directory
- │ ├── ivr
- │ ├── misc
- │ ├── phonetic-ascii
- │ ├── time
- │ ├── voicemail
- │ └── zrtp
- └── music # 保持音乐
- ├── 16000
- │ └── suite-espanola-op-47-leyenda.wav
- ├── 32000
- │ └── suite-espanola-op-47-leyenda.wav
- ├── 48000
- │ └── suite-espanola-op-47-leyenda.wav
- └── 8000
- └── suite-espanola-op-47-leyenda.wav
- 20 directories, 4 files
- [root@highsea-macos-vmware-centos6 ~]# tree ./freeswitch/var/lib/freeswitch/storage/
- ./freeswitch/var/lib/freeswitch/storage/
- ├── http_file_cache # 从其他HTTP服务器下载过来的语音文件缓存
- └── voicemail # 分层级存放
- └── default # default | domain
- ├── 192.168.1.28
- │ ├── 1003
- │ └── 1004
- └── 192.168.199.209
- ├── 1000
- │ └── msg_746b8d72-1c83-11e8-b7cf-1f706e5b1202.wav
- └── 1001
- ├── msg_16df1586-1c59-11e8-a529-8b3c11f45198.wav
- ├── msg_527ff080-1c57-11e8-a3d5-fb5cd572174a.wav
- ├── msg_54fe15e2-1c59-11e8-a564-8b3c11f45198.wav
- ├── msg_807f9aa0-1c4b-11e8-a322-9784cd23ef5e.wav
- ├── msg_817835c2-1c99-11e8-b8d0-1f706e5b1202.wav
- ├── msg_ab140ae4-1c50-11e8-a357-9784cd23ef5e.wav
- ├── msg_c0c74cf2-1c50-11e8-a38d-9784cd23ef5e.wav
- └── msg_f349a476-1c83-11e8-b808-1f706e5b1202.wav
- 9 directories, 9 files
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement