v1.10.10
This commit is contained in:
commit
a13186eff6
129
README.md
Normal file
129
README.md
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
# docker一键运行阿里云SDM(MRCP)和FreeSWITCH
|
||||||
|
|
||||||
|
## 版本
|
||||||
|
|
||||||
|
FreeSWITCH 1.10.10
|
||||||
|
SDM单机版(支持100路asr并发+100路tts并发)
|
||||||
|
|
||||||
|
## 系统要求
|
||||||
|
|
||||||
|
linux
|
||||||
|
docker
|
||||||
|
docker compose (安装docker engine时会自动安装好)
|
||||||
|
lua5.1
|
||||||
|
luarocks
|
||||||
|
jq
|
||||||
|
openssl
|
||||||
|
|
||||||
|
## 业务要求
|
||||||
|
|
||||||
|
在阿里云开通“智能语音交互”业务,完成创建项目并生成AccessKeyID和AccessKeySecret,需要得到AccessKeyID、AccessKeySecret和appkey这几个参数(注意AccessKey要具有使用智能语音交互的权限)。
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
初次使用时,当确定满足系统要求和业务要求的情况下,直接执行
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
如果没有执行权限就手动加一下`chmod +x install.sh`。
|
||||||
|
|
||||||
|
安装过程中会要求填入阿里云的AccessKeyID、AccessKeySecret、appkey参数,这些参数以后可以在`sdm/data/nls-cloud-sdm/conf/`中的配置文件中修改。
|
||||||
|
|
||||||
|
安装过程会随机生成FreeSWITCH的ESL密码和默认SIP密码,这些参数以后可以在`switch/conf/`中的配置文件中修改。
|
||||||
|
|
||||||
|
安装程序会自动启动容器。
|
||||||
|
|
||||||
|
### 进入fs_cli
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./fs_cli.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
如果没有执行权限就手动加一下`chmod +x fs_cli.sh`。
|
||||||
|
|
||||||
|
如果执行后无法进入请检查:
|
||||||
|
|
||||||
|
- 检查switch容器是否启动;
|
||||||
|
- 检查.fs_cli_conf中的密码和端口是否与event_socket.conf.xml中一致;
|
||||||
|
- 也有可能是FreeSWITCH服务还没有完全启动好。
|
||||||
|
|
||||||
|
### 重启服务
|
||||||
|
|
||||||
|
无论修改sdm配置还是switch配置,都得在服务重启后才会生效(fs_cli中也有reloadxml等重载配置的命令)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 重启sdm和switch
|
||||||
|
./restart.sh
|
||||||
|
# 重启sdm
|
||||||
|
./restart.sh sdm
|
||||||
|
# 重启switch
|
||||||
|
./restart.sh switch
|
||||||
|
```
|
||||||
|
|
||||||
|
> 在switch/scripts中写的lua脚本修改后不需要重启服务就能生效。
|
||||||
|
|
||||||
|
## 默认端口
|
||||||
|
|
||||||
|
这个包完全修改了FreeSWITCH的默认端口号,具体如下:
|
||||||
|
|
||||||
|
| 业务 | 端口号 |
|
||||||
|
|---|---|
|
||||||
|
| internal_sip_port | 62260 |
|
||||||
|
| internal_tls_port | 62261 |
|
||||||
|
| external_sip_port | 62280 |
|
||||||
|
| external_tls_port | 62281 |
|
||||||
|
| ws-binding | 62266 |
|
||||||
|
| wss-binding | 62243 |
|
||||||
|
| event_socket | 62221 |
|
||||||
|
| rtp-start-port | 30000 |
|
||||||
|
| rtp-end-port | 39999 |
|
||||||
|
| (mrcp)rtp-port-min | 20000 |
|
||||||
|
| (mrcp)rtp-port-max | 29999 |
|
||||||
|
|
||||||
|
除了FreeSWITCH外,SDM也是以host模式启动,其占用的端口都是阿里云出厂时的默认值:
|
||||||
|
|
||||||
|
| 业务 | 端口号 |
|
||||||
|
|---|---|
|
||||||
|
| SIP | 7010 |
|
||||||
|
| MRCP | 1544、1554 |
|
||||||
|
| RTP | 10000 - 20000 |
|
||||||
|
|
||||||
|
## 测试演示
|
||||||
|
|
||||||
|
### 分机注册
|
||||||
|
|
||||||
|
容器启动后,通过SIP端口使用1001-1019分机号和安装时生成的默认SIP密码,应该可以正确注册成功。
|
||||||
|
|
||||||
|
### 回声演示
|
||||||
|
|
||||||
|
分机注册成功后,用分机呼叫9196,应该可以启动回声应答(你说什么它同时给你放什么)。
|
||||||
|
|
||||||
|
### TTS演示
|
||||||
|
|
||||||
|
进入fs_cli,执行下面的命令
|
||||||
|
|
||||||
|
```sh
|
||||||
|
bgapi originate user/1001 &lua(demo/tts.lua)
|
||||||
|
```
|
||||||
|
|
||||||
|
1001应该可以接到电话,电话接起来后可以听到“你好,我是机器人XXX,很高兴认识你……”。
|
||||||
|
|
||||||
|
### ASR演示
|
||||||
|
|
||||||
|
进入fs_cli,执行下面的命令
|
||||||
|
|
||||||
|
```sh
|
||||||
|
bgapi originate user/1001 &lua(demo/asr.lua)
|
||||||
|
```
|
||||||
|
|
||||||
|
1001应该可以接到电话,电话接起来后可以跟机器人做“复读游戏”,你说一句,它用asr识别后再用tts给你复读一句。
|
||||||
|
|
||||||
|
> 如果asr.lua执行出错,请按照`switch/scripts/demo/asr.lua`中的注释安装lua依赖包再试试。
|
||||||
|
|
||||||
|
## 开发建议
|
||||||
|
|
||||||
|
请不要把业务代码提交到这个仓库里来,建议你把仓库接到你的业务目录中后直接删除.git目录,让你的业务仓库接管后面的代码管理工作。
|
||||||
|
|
||||||
|
安装成功后删除switch/sounds/sounds.tar.bz2文件可以节省一点磁盘空间。
|
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
version: "3.1"
|
||||||
|
services:
|
||||||
|
switch:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/wandoubaba/sdmswitch:1.10.10
|
||||||
|
restart: always
|
||||||
|
container_name: switch
|
||||||
|
volumes:
|
||||||
|
- ./switch/.fs_cli_conf:/root/.fs_cli_conf
|
||||||
|
- ./switch/conf:/usr/local/freeswitch/conf
|
||||||
|
- ./switch/grammar:/usr/local/freeswitch/grammar
|
||||||
|
- ./switch/recordings:/usr/local/freeswitch/recordings
|
||||||
|
- ./switch/scripts:/usr/local/freeswitch/scripts
|
||||||
|
- ./switch/sounds:/usr/local/freeswitch/sounds
|
||||||
|
- ./switch/log:/usr/local/freeswitch/log
|
||||||
|
- /usr/local/share/lua/5.1:/usr/local/share/lua/5.1
|
||||||
|
- /usr/local/lib/lua/5.1:/usr/local/lib/lua/5.1
|
||||||
|
network_mode: host
|
||||||
|
command: ["freeswitch"]
|
||||||
|
depends_on:
|
||||||
|
- sdm
|
||||||
|
sdm:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm
|
||||||
|
restart: always
|
||||||
|
container_name: sdm
|
||||||
|
volumes:
|
||||||
|
- ./sdm/data:/home/admin/disk
|
||||||
|
- ./sdm/logs:/home/admin/logs
|
||||||
|
network_mode: host
|
||||||
|
privileged: true
|
||||||
|
command: ["standalone"]
|
104
install.sh
Executable file
104
install.sh
Executable file
@ -0,0 +1,104 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Check if Docker is installed
|
||||||
|
if ! command -v docker &> /dev/null; then
|
||||||
|
echo "Docker is not installed. Please refer to https://docs.docker.com/engine/install/ to install Docker Engine."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if 'switch' container exists
|
||||||
|
if docker ps -a --format '{{.Names}}' | grep -q '^switch$'; then
|
||||||
|
container_id=$(docker ps -a --format '{{.ID}}' --filter name=switch)
|
||||||
|
echo "The 'switch' container already exists. Container ID: $container_id. Installation cannot proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if 'sdm' container exists
|
||||||
|
if docker ps -a --format '{{.Names}}' | grep -q '^sdm$'; then
|
||||||
|
container_id=$(docker ps -a --format '{{.ID}}' --filter name=sdm)
|
||||||
|
echo "The 'sdm' container already exists. Container ID: $container_id. Installation cannot proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if jq is installed
|
||||||
|
if ! dpkg -s jq >/dev/null 2>&1; then
|
||||||
|
echo "jq package is not installed. Please install it using 'sudo apt-get install jq' and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if openssl is installed
|
||||||
|
if ! dpkg -s openssl >/dev/null 2>&1; then
|
||||||
|
echo "openssl package is not installed. Please install it using 'sudo apt-get install openssl' and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Define prompt with retry function
|
||||||
|
prompt_with_retry() {
|
||||||
|
local prompt=$1
|
||||||
|
local max_attempts=$2
|
||||||
|
local input
|
||||||
|
|
||||||
|
for (( i=1; i<=$max_attempts; i++ )); do
|
||||||
|
read -p "$prompt" input
|
||||||
|
if [[ -n "$input" ]]; then
|
||||||
|
echo "$input"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Input cannot be blank. Please try again."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Input cannot be blank. Install terminated."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt user for Aliyun AccessKeyId
|
||||||
|
access_key_id=$(prompt_with_retry "Enter Aliyun AccessKeyId: " 3)
|
||||||
|
|
||||||
|
# Prompt user for Aliyun AccessKeySecret
|
||||||
|
access_key_secret=$(prompt_with_retry "Enter Aliyun AccessKeySecret: " 3)
|
||||||
|
|
||||||
|
# Prompt user for Aliyun appkey
|
||||||
|
app_key=$(prompt_with_retry "Enter Aliyun appkey: " 3)
|
||||||
|
|
||||||
|
# Update values in json files
|
||||||
|
jq --arg access_key_id "$access_key_id" '.AccessKeyId = $access_key_id' sdm/data/nls-cloud-sdm/conf/nlstoken.json > tmp.json && mv tmp.json sdm/data/nls-cloud-sdm/conf/nlstoken.json
|
||||||
|
jq --arg access_key_secret "$access_key_secret" '.AccessKeySecret = $access_key_secret' sdm/data/nls-cloud-sdm/conf/nlstoken.json > tmp.json && mv tmp.json sdm/data/nls-cloud-sdm/conf/nlstoken.json
|
||||||
|
jq --arg app_key "$app_key" '.appkey = $app_key' sdm/data/nls-cloud-sdm/conf/service-asr.json > tmp.json && mv tmp.json sdm/data/nls-cloud-sdm/conf/service-asr.json
|
||||||
|
jq --arg app_key "$app_key" '.appkey = $app_key' sdm/data/nls-cloud-sdm/conf/service-tts.json > tmp.json && mv tmp.json sdm/data/nls-cloud-sdm/conf/service-tts.json
|
||||||
|
|
||||||
|
# Generate ESL password hash
|
||||||
|
esl_password=$(openssl rand -hex 8)
|
||||||
|
|
||||||
|
# Update event_socket.conf.xml file
|
||||||
|
sed -i "s/\(<param name=\"password\" value=\"\)[^\"]*\(\"\/>\)/\1$esl_password\2/" switch/conf/autoload_configs/event_socket.conf.xml
|
||||||
|
# Update .fs_cli_conf file
|
||||||
|
sed -i "s/\(password => \)[^\"]*/\1$esl_password/" switch/.fs_cli_conf
|
||||||
|
|
||||||
|
# Generate default SIP password hash
|
||||||
|
default_password=$(openssl rand -hex 8)
|
||||||
|
|
||||||
|
# Update vars.xml file
|
||||||
|
sed -i "s/\(<X-PRE-PROCESS cmd=\"set\" data=\"default_password=\)[^\"]*\(\"\/>\)/\1$default_password\2/" switch/conf/vars.xml
|
||||||
|
|
||||||
|
# Extract sounds package
|
||||||
|
echo "Extracting sounds package..."
|
||||||
|
cd switch/sounds/
|
||||||
|
if [[ -f sounds.tar.bz2 ]]; then
|
||||||
|
tar -xvjf sounds.tar.bz2
|
||||||
|
echo "Sounds package extracted."
|
||||||
|
else
|
||||||
|
echo "Sounds package not found."
|
||||||
|
cd ../..
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cd ../..
|
||||||
|
|
||||||
|
# Run docker compose
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
echo "ESL Password: $esl_password"
|
||||||
|
echo "Default SIP Password: $default_password"
|
||||||
|
echo "Install complete."
|
43
restart.sh
Executable file
43
restart.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: restart.sh [sdm|switch]"
|
||||||
|
echo " sdm - Restart 'sdm' service"
|
||||||
|
echo " switch - Restart 'switch' service"
|
||||||
|
echo " (none) - Restart both 'sdm' and 'switch' service"
|
||||||
|
echo " -h - Show this help message"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
read -p "Do you want to restart both 'sdm' and 'switch' services? (y/n) [default: y]: " choice
|
||||||
|
choice="${choice:-y}"
|
||||||
|
|
||||||
|
if [[ $choice == "y" ]]; then
|
||||||
|
echo "Restarting 'sdm' service..."
|
||||||
|
docker restart sdm
|
||||||
|
echo "Restarting 'switch' service..."
|
||||||
|
docker restart switch
|
||||||
|
else
|
||||||
|
echo "No services restarted."
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [[ $# -eq 1 ]]; then
|
||||||
|
if [[ $1 == "sdm" ]]; then
|
||||||
|
echo "Restarting 'sdm' service..."
|
||||||
|
docker restart sdm
|
||||||
|
elif [[ $1 == "switch" ]]; then
|
||||||
|
echo "Restarting 'switch' service..."
|
||||||
|
docker restart switch
|
||||||
|
elif [[ $1 == "-h" ]]; then
|
||||||
|
usage
|
||||||
|
else
|
||||||
|
echo "Invalid argument: $1"
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Invalid number of arguments"
|
||||||
|
usage
|
||||||
|
fi
|
105
sdm/data/nls-cloud-sdm/conf/alimrcp-client.xml
Executable file
105
sdm/data/nls-cloud-sdm/conf/alimrcp-client.xml
Executable file
@ -0,0 +1,105 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- UniMRCP client document -->
|
||||||
|
<unimrcpclient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="unimrcpclient.xsd" version="1.0" subfolder="client-profiles">
|
||||||
|
<properties>
|
||||||
|
<!-- If the attribute "type" is set to "auto", IP address is determined implicitly by the hostname. This is the default setting. -->
|
||||||
|
<ip type="auto"/>
|
||||||
|
<!-- If the attribute "type" is set to "iface", IP address is determined by the specified name of network interface/adapter. -->
|
||||||
|
<!-- <ip type="iface">eth0</ip>-->
|
||||||
|
<!-- IP address can also be specified explicitly. -->
|
||||||
|
<!--<ip>127.0.0.1</ip>-->
|
||||||
|
<!-- <ext-ip>a.b.c.d</ext-ip> -->
|
||||||
|
|
||||||
|
<server-ip>127.0.0.1</server-ip>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<components>
|
||||||
|
<!-- Factory of MRCP resources -->
|
||||||
|
<resource-factory>
|
||||||
|
<resource id="speechsynth" enable="true"/>
|
||||||
|
<resource id="speechrecog" enable="true"/>
|
||||||
|
<resource id="recorder" enable="true"/>
|
||||||
|
<resource id="speakverify" enable="true"/>
|
||||||
|
</resource-factory>
|
||||||
|
|
||||||
|
<!-- SofiaSIP MRCPv2 signaling agent -->
|
||||||
|
<sip-uac id="SIP-Agent-1" type="SofiaSIP">
|
||||||
|
<!-- By default, "ip" and "ext-ip" addresses set in the properties will be used.
|
||||||
|
They still can be explicitly specified (overriden) here.
|
||||||
|
-->
|
||||||
|
<!-- <sip-ip>10.10.0.1</sip-ip> -->
|
||||||
|
<!-- <sip-ext-ip>a.b.c.d</sip-ext-ip> -->
|
||||||
|
<sip-port>0</sip-port>
|
||||||
|
<sip-transport>udp,tcp</sip-transport>
|
||||||
|
<ua-name>UniMRCP SofiaSIP</ua-name>
|
||||||
|
<sdp-origin>AliMrcpClient</sdp-origin>
|
||||||
|
<!-- <sip-t1>500</sip-t1> -->
|
||||||
|
<!-- <sip-t2>4000</sip-t2> -->
|
||||||
|
<!-- <sip-t4>4000</sip-t4> -->
|
||||||
|
<!-- <sip-t1x64>32000</sip-t1x64> -->
|
||||||
|
<!-- <sip-timer-c>185000</sip-timer-c> -->
|
||||||
|
<!-- <sip-message-output>true</sip-message-output> -->
|
||||||
|
<!-- <sip-message-dump>sofia-sip-uac.log</sip-message-dump> -->
|
||||||
|
</sip-uac>
|
||||||
|
|
||||||
|
<!-- UniRTSP MRCPv1 signaling agent -->
|
||||||
|
<rtsp-uac id="RTSP-Agent-1" type="UniRTSP">
|
||||||
|
<max-connection-count>100</max-connection-count>
|
||||||
|
<!-- <request-timeout>5000</request-timeout> -->
|
||||||
|
<sdp-origin>AliMrcpClient</sdp-origin>
|
||||||
|
</rtsp-uac>
|
||||||
|
|
||||||
|
<!-- MRCPv2 connection agent -->
|
||||||
|
<mrcpv2-uac id="MRCPv2-Agent-1">
|
||||||
|
<max-connection-count>100</max-connection-count>
|
||||||
|
<offer-new-connection>false</offer-new-connection>
|
||||||
|
<rx-buffer-size>1024</rx-buffer-size>
|
||||||
|
<tx-buffer-size>1024</tx-buffer-size>
|
||||||
|
<!-- <request-timeout>5000</request-timeout> -->
|
||||||
|
</mrcpv2-uac>
|
||||||
|
|
||||||
|
<!-- Media processing engine -->
|
||||||
|
<media-engine id="Media-Engine-1">
|
||||||
|
<realtime-rate>1</realtime-rate>
|
||||||
|
</media-engine>
|
||||||
|
|
||||||
|
<!-- Factory of RTP terminations -->
|
||||||
|
<rtp-factory id="RTP-Factory-1">
|
||||||
|
<!-- By default, "ip" and "ext-ip" addresses set in the properties will be used.
|
||||||
|
They still can be explicitly specified (overriden) here.
|
||||||
|
-->
|
||||||
|
<!-- <rtp-ip>10.10.0.1</rtp-ip> -->
|
||||||
|
<!-- <rtp-ext-ip>a.b.c.d</rtp-ext-ip> -->
|
||||||
|
<rtp-port-min>6000</rtp-port-min>
|
||||||
|
<rtp-port-max>7000</rtp-port-max>
|
||||||
|
</rtp-factory>
|
||||||
|
</components>
|
||||||
|
|
||||||
|
<settings>
|
||||||
|
<!-- common (default) RTP/RTCP settings -->
|
||||||
|
<rtp-settings id="RTP-Settings-1">
|
||||||
|
<jitter-buffer>
|
||||||
|
<adaptive>1</adaptive>
|
||||||
|
<playout-delay>50</playout-delay>
|
||||||
|
<max-playout-delay>600</max-playout-delay>
|
||||||
|
<time-skew-detection>1</time-skew-detection>
|
||||||
|
</jitter-buffer>
|
||||||
|
<ptime>20</ptime>
|
||||||
|
<codecs>PCMU PCMA L16/96/8000 telephone-event/101/8000</codecs>
|
||||||
|
<!-- <codecs>PCMU PCMA L16/96/8000 PCMU/97/16000 PCMA/98/16000 L16/99/16000</codecs> -->
|
||||||
|
<!-- enable/disable RTCP support -->
|
||||||
|
<rtcp enable="false">
|
||||||
|
<!-- RTCP BYE policies (RTCP must be enabled first)
|
||||||
|
0 - disable RTCP BYE
|
||||||
|
1 - send RTCP BYE at the end of session
|
||||||
|
2 - send RTCP BYE also at the end of each talkspurt (input)
|
||||||
|
-->
|
||||||
|
<rtcp-bye>1</rtcp-bye>
|
||||||
|
<!-- rtcp transmission interval in msec (set 0 to disable) -->
|
||||||
|
<tx-interval>5000</tx-interval>
|
||||||
|
<!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
|
||||||
|
<rx-resolution>1000</rx-resolution>
|
||||||
|
</rtcp>
|
||||||
|
</rtp-settings>
|
||||||
|
</settings>
|
||||||
|
</unimrcpclient>
|
159
sdm/data/nls-cloud-sdm/conf/alimrcp-server.xml
Executable file
159
sdm/data/nls-cloud-sdm/conf/alimrcp-server.xml
Executable file
@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<alimrcp-server xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="alimrcp-server.xsd" version="1.0">
|
||||||
|
<properties>
|
||||||
|
<!--<ip type="auto"/>-->
|
||||||
|
<!-- <ip type="iface">eth0</ip>-->
|
||||||
|
<ip>0.0.0.0</ip>
|
||||||
|
<!-- <ext-ip>a.b.c.d</ext-ip> -->
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<components>
|
||||||
|
<resource-factory>
|
||||||
|
<resource id="speechsynth" enable="true"/>
|
||||||
|
<resource id="speechrecog" enable="true"/>
|
||||||
|
<resource id="recorder" enable="false"/>
|
||||||
|
<resource id="speakverify" enable="false"/>
|
||||||
|
</resource-factory>
|
||||||
|
|
||||||
|
<!-- SofiaSIP MRCPv2 signaling agent -->
|
||||||
|
<sip-uas id="SIP-Agent-1" type="SofiaSIP">
|
||||||
|
<!-- By default, "ip" and "ext-ip" addresses, set in the properties, are used. These parameters can
|
||||||
|
explicitly be specified per "sip-uas" by means of "sip-ip" and "sip-ext-ip" correspondingly. -->
|
||||||
|
<!-- <sip-ip>10.10.0.1</sip-ip> -->
|
||||||
|
<!-- <sip-ext-ip>a.b.c.d</sip-ext-ip> -->
|
||||||
|
<sip-port>7010</sip-port>
|
||||||
|
<sip-transport>udp,tcp</sip-transport>
|
||||||
|
<!-- <force-destination>true</force-destination> -->
|
||||||
|
<ua-name>UniMRCP SofiaSIP</ua-name>
|
||||||
|
<sdp-origin>AliMrcpServer</sdp-origin>
|
||||||
|
<!-- <sip-t1>500</sip-t1> -->
|
||||||
|
<!-- <sip-t2>4000</sip-t2> -->
|
||||||
|
<!-- <sip-t4>4000</sip-t4> -->
|
||||||
|
<!-- <sip-t1x64>32000</sip-t1x64> -->
|
||||||
|
<!-- default 600 = 5min, now 3 years-->>
|
||||||
|
<sip-session-expires>189216000</sip-session-expires>
|
||||||
|
<sip-min-session-expires>120</sip-min-session-expires>
|
||||||
|
<!-- <sip-message-output>true</sip-message-output> -->
|
||||||
|
<!-- <sip-message-dump>sofia-sip-uas.log</sip-message-dump> -->
|
||||||
|
<!-- <mrcp-draft11-version>true</mrcp-draft11-version> -->
|
||||||
|
</sip-uas>
|
||||||
|
|
||||||
|
<!-- UniRTSP MRCPv1 signaling agent -->
|
||||||
|
<rtsp-uas id="RTSP-Agent-1" type="UniRTSP">
|
||||||
|
<rtsp-port>1554</rtsp-port>
|
||||||
|
<resource-map>
|
||||||
|
<param name="speechsynth" value="speechsynthesizer"/>
|
||||||
|
<param name="speechrecog" value="speechrecognizer"/>
|
||||||
|
</resource-map>
|
||||||
|
<max-connection-count>100</max-connection-count>
|
||||||
|
<inactivity-timeout>600</inactivity-timeout>
|
||||||
|
<sdp-origin>AliMrcpServer</sdp-origin>
|
||||||
|
</rtsp-uas>
|
||||||
|
|
||||||
|
<!-- MRCPv2 connection agent -->
|
||||||
|
<mrcpv2-uas id="MRCPv2-Agent-1">
|
||||||
|
<!-- <mrcp-ip>10.10.0.1</mrcp-ip> -->
|
||||||
|
<mrcp-port>1544</mrcp-port>
|
||||||
|
<max-connection-count>300</max-connection-count>
|
||||||
|
<max-shared-use-count>100</max-shared-use-count>
|
||||||
|
<force-new-connection>true</force-new-connection> <!-- 是否禁止连接复用,true表示禁止 -->
|
||||||
|
<rx-buffer-size>1024</rx-buffer-size> <!-- 表示接收到的MRCP消息的最大长度,超过则多次接收 -->
|
||||||
|
<tx-buffer-size>1024</tx-buffer-size> <!-- 表示发送时的MRCP消息的最大长度,超过则多次发送 -->
|
||||||
|
<inactivity-timeout>600</inactivity-timeout>
|
||||||
|
<termination-timeout>3</termination-timeout>
|
||||||
|
</mrcpv2-uas>
|
||||||
|
|
||||||
|
<media-engine id="Media-Engine-1">
|
||||||
|
<realtime-rate>1</realtime-rate>
|
||||||
|
</media-engine>
|
||||||
|
|
||||||
|
<!-- Factory of RTP terminations -->
|
||||||
|
<rtp-factory id="RTP-Factory-1">
|
||||||
|
<rtp-port-min>10000</rtp-port-min>
|
||||||
|
<rtp-port-max>20000</rtp-port-max>
|
||||||
|
</rtp-factory>
|
||||||
|
|
||||||
|
<!-- Factory of plugins (MRCP engines) -->
|
||||||
|
<plugin-factory>
|
||||||
|
<engine id="alimrcp-tts" name="alimrcp_tts" enable="true">
|
||||||
|
<max-channel-count>100</max-channel-count>
|
||||||
|
<param name="sdk-log-level" value="5"/>
|
||||||
|
<param name="sdm-metrics-host" value="0.0.0.0:7009"/> <!-- 默认监听到本机所有ip上的7009端口, 可修改或置空(不监控) -->
|
||||||
|
<param name="tts-save-audio" value="0"/> <!-- 默认不保存tts合成的录音, 如需保存则改为1 -->
|
||||||
|
<param name="text-encoding-gb2312" value="0"/> <!-- 表示接收到ivr的合成文本编码方式, 默认为0, 即utf8, 如果是gb2312需修改该参数为1 -->
|
||||||
|
</engine>
|
||||||
|
<engine id="alimrcp-asr" name="alimrcp_asr" enable="true">
|
||||||
|
<max-channel-count>100</max-channel-count>
|
||||||
|
<param name="sdk-log-level" value="5"/>
|
||||||
|
<param name="sdm-metrics-host" value="0.0.0.0:7009"/> <!-- 默认监听到本机所有ip上的7009端口, 可修改或置空(不监控) -->
|
||||||
|
<param name="text-encoding-gb2312" value="0"/>
|
||||||
|
<param name="wav-uri-prefix" value=""/>
|
||||||
|
<param name="recognize-mode-continuous" value="0"/> <!-- 无需修改, 如要修改,建议同时修改sip-session-expires为一个无限大的值 -->
|
||||||
|
<param name="no-input-timeout" value="5000"/> <!-- 无话超时时间, 单位毫秒, 不可过低, 如果ivr传递了, 则以ivr传递的为准 -->
|
||||||
|
<param name="speech-complete-timeout" value="800"/> <!-- vad尾点断句间隔, 单位毫秒, 范围[200,2000], 如果ivr传递了, 则以ivr传递的为准 -->
|
||||||
|
<!--<param name="sensitivity-level" value="0.2"/>--> <!-- 噪音阈值参数、灵敏度参数,可以参考标准RFC协议,取值范围[-1,1],等同asr的speech_noise_threshold, -->
|
||||||
|
<param name="speech-cache-count" value="10"/> <!-- should be greater than 0, suggest [1,20] -->
|
||||||
|
<param name="save-waveform" value="1"/> <!-- 是否保存用户录音,默认保存,但还受IVR传参影响 -->
|
||||||
|
<param name="ignore-ivr-save-waveform" value="0"/> <!-- 是否忽略IVR传递的save-waveform参数,默认不忽略,若要忽略请置为1 -->
|
||||||
|
<param name="return-more-detail" value="1"/> <!-- 是否返回更多ASR相关信息, 默认返回 -->
|
||||||
|
<param name="support-message-body" value="0"/> <!-- 当no-input-timeout或者no-match等状态时,是否返回消息体,默认没有-->
|
||||||
|
<param name="force-stop-recognize" value="1"/>
|
||||||
|
<param name="xml-type" value="application/nlsml+xml"/>
|
||||||
|
<param name="asr-result-template" value="../conf/asr_result_template.xml"/>
|
||||||
|
<!--<param name="grammar-transformer" value="../script/RequestTransformer.lua"/>-->
|
||||||
|
<param name="script-when-hangup" value="HangupNotifierDemo"/> <!-- python script -->
|
||||||
|
<param name="script-function-when-hangup" value=""/> <!-- function of python script -->
|
||||||
|
<param name="script-of-nlu" value="NluClientDemo"/> <!-- nlu python script -->
|
||||||
|
<param name="script-function-of-nlu" value=""/> <!-- nlu function of python script -->
|
||||||
|
</engine>
|
||||||
|
</plugin-factory>
|
||||||
|
</components>
|
||||||
|
|
||||||
|
<settings>
|
||||||
|
<!-- RTP/RTCP settings -->
|
||||||
|
<rtp-settings id="RTP-Settings-1">
|
||||||
|
<jitter-buffer>
|
||||||
|
<adaptive>1</adaptive>
|
||||||
|
<playout-delay>50</playout-delay>
|
||||||
|
<max-playout-delay>600</max-playout-delay>
|
||||||
|
<time-skew-detection>1</time-skew-detection>
|
||||||
|
</jitter-buffer>
|
||||||
|
<ptime>20</ptime>
|
||||||
|
<codecs own-preference="false">PCMU PCMA L16/96/8000 telephone-event/101/8000</codecs>
|
||||||
|
<!-- Enable/disable RTCP support -->
|
||||||
|
<rtcp enable="false">
|
||||||
|
<!--
|
||||||
|
RTCP BYE policies (RTCP must be enabled first)
|
||||||
|
0 - disable RTCP BYE
|
||||||
|
1 - send RTCP BYE at the end of session
|
||||||
|
2 - send RTCP BYE also at the end of each talkspurt (input)
|
||||||
|
-->
|
||||||
|
<rtcp-bye>1</rtcp-bye>
|
||||||
|
<!-- RTCP transmission interval in msec (set 0 to disable) -->
|
||||||
|
<tx-interval>5000</tx-interval>
|
||||||
|
<!-- Period (timeout) to check for new RTCP messages in msec (set 0 to disable) -->
|
||||||
|
<rx-resolution>1000</rx-resolution>
|
||||||
|
</rtcp>
|
||||||
|
</rtp-settings>
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<!-- MRCPv2 default profile -->
|
||||||
|
<mrcpv2-profile id="uni2">
|
||||||
|
<sip-uas>SIP-Agent-1</sip-uas>
|
||||||
|
<mrcpv2-uas>MRCPv2-Agent-1</mrcpv2-uas>
|
||||||
|
<media-engine>Media-Engine-1</media-engine>
|
||||||
|
<rtp-factory>RTP-Factory-1</rtp-factory>
|
||||||
|
<rtp-settings>RTP-Settings-1</rtp-settings>
|
||||||
|
</mrcpv2-profile>
|
||||||
|
|
||||||
|
<!-- MRCPv1 default profile -->
|
||||||
|
<mrcpv1-profile id="uni1">
|
||||||
|
<rtsp-uas>RTSP-Agent-1</rtsp-uas>
|
||||||
|
<media-engine>Media-Engine-1</media-engine>
|
||||||
|
<rtp-factory>RTP-Factory-1</rtp-factory>
|
||||||
|
<rtp-settings>RTP-Settings-1</rtp-settings>
|
||||||
|
</mrcpv1-profile>
|
||||||
|
|
||||||
|
</profiles>
|
||||||
|
</alimrcp-server>
|
37
sdm/data/nls-cloud-sdm/conf/asr_result_template_full.xml
Executable file
37
sdm/data/nls-cloud-sdm/conf/asr_result_template_full.xml
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
<!--
|
||||||
|
此模板用以描述,如何在特殊项目里调整报文返回格式,您可以
|
||||||
|
1. 拷贝此文件并重命名为asr_result_template.xml,
|
||||||
|
2. 删除文件中相关的注释信息
|
||||||
|
3. 按照实际需要,调整xml结构、删除不需要的变量等
|
||||||
|
-->
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<result>
|
||||||
|
<interpretation grammar="$$asr_grammar_id$$" confidence="100">
|
||||||
|
<instance>
|
||||||
|
<!--
|
||||||
|
$$XXXX$$ 是变量内容,sdm内部会将其替换为实际有效数据,支持的所有变量均在下方列出,实际使用时可以按需删掉不需要的变量,其中:
|
||||||
|
1. $$asr_result$$ : 表示ASR识别结果,可能为空
|
||||||
|
2. $$asr_begin_time$$ : 表示ASR有效语音的相对开始时间
|
||||||
|
3. $$asr_end_time$$ : 表示ASR有效语音的相对结束时间
|
||||||
|
4. $$asr_task_id$$ : 表示本次ASR识别的task_id,可以用来和服务端各链路进行关联
|
||||||
|
5. $$asr_code$$ : 表示示本次ASR识别的的状态码,等同于实时转写状态码
|
||||||
|
6. $$asr_code_text$$ : 表示示本次ASR识别的的状态码对应的文本描述,等同于实时转写
|
||||||
|
7. $$mrcp_code$$ : 表示mrcp协议定义的状态码,比如 000, 001, 002, 006等
|
||||||
|
8. $$mrcp_code_text$$ : 表示mrcp协议定义的状态码所对应的文本描述,比如success、no-match、no-input-timeout、recognizer-error等
|
||||||
|
9. $$asr_waveform_path$$ : 表示本次ASR识别保存下来的原始录音(ivr传递过来的),命名一般是: {session id}-index.wav;
|
||||||
|
10. $$asr_waveform_uri$$ : 表示本次ASR识别保存下来的原始录音(ivr传递过来的),命名一般是:{wav-uri-prefix}/{session id}-index.wav;
|
||||||
|
-->
|
||||||
|
<result>$$asr_result$$</result>
|
||||||
|
<beginTime>$$asr_begin_time$$</beginTime>
|
||||||
|
<endTime>$$asr_end_time$$</endTime>
|
||||||
|
<taskId>$$asr_task_id$$</taskId>
|
||||||
|
<asrCode>$$asr_code$$</asrCode>
|
||||||
|
<asrCodeText>$$asr_code_text$$</asrCodeText>
|
||||||
|
<mrcpCode>$$mrcp_code$$</mrcpCode>
|
||||||
|
<mrcpCodeText>$$mrcp_code_text$$</mrcpCodeText>
|
||||||
|
<waveformPath>$$asr_waveform_path$$</waveformPath>
|
||||||
|
<waveformUri>$$asr_waveform_uri$$</waveformUri>
|
||||||
|
</instance>
|
||||||
|
<input mode="speech">$$asr_result$$</input>
|
||||||
|
</interpretation>
|
||||||
|
</result>
|
57
sdm/data/nls-cloud-sdm/conf/client-profiles/mrcpserver.xml
Executable file
57
sdm/data/nls-cloud-sdm/conf/client-profiles/mrcpserver.xml
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- UniMRCP client document -->
|
||||||
|
<unimrcpclient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="../unimrcpclient.xsd"
|
||||||
|
version="1.0">
|
||||||
|
<settings>
|
||||||
|
<!-- SIP MRCPv2 settings -->
|
||||||
|
<sip-settings id="UniMRCP-SIP-Settings">
|
||||||
|
<!--
|
||||||
|
Server IP address can explicitly be specified per "sip-settings". Otherwise, the server IP
|
||||||
|
address defaults to "server-ip" set in the properties, which in turn defaults to "ip".
|
||||||
|
-->
|
||||||
|
<!-- <server-ip>10.10.0.1</server-ip> -->
|
||||||
|
<server-port>7010</server-port>
|
||||||
|
<!-- <force-destination>true</force-destination> -->
|
||||||
|
</sip-settings>
|
||||||
|
|
||||||
|
<!-- RTSP MRCPv1 settings -->
|
||||||
|
<rtsp-settings id="UniMRCP-RTSP-Settings">
|
||||||
|
<!--
|
||||||
|
Server IP address can explicitly be specified per "rtsp-settings". Otherwise, the server IP
|
||||||
|
address defaults to "server-ip" set in the properties, which in turn defaults to "ip".
|
||||||
|
-->
|
||||||
|
<!-- <server-ip>10.10.0.1</server-ip> -->
|
||||||
|
<server-port>1554</server-port>
|
||||||
|
<!-- <force-destination>true</force-destination> -->
|
||||||
|
<resource-location>media</resource-location>
|
||||||
|
<resource-map>
|
||||||
|
<param name="speechsynth" value="speechsynthesizer"/>
|
||||||
|
<param name="speechrecog" value="speechrecognizer"/>
|
||||||
|
</resource-map>
|
||||||
|
</rtsp-settings>
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<!-- UniMRCP MRCPv2 profile -->
|
||||||
|
<mrcpv2-profile id="uni2">
|
||||||
|
<sip-uac>SIP-Agent-1</sip-uac>
|
||||||
|
<mrcpv2-uac>MRCPv2-Agent-1</mrcpv2-uac>
|
||||||
|
<media-engine>Media-Engine-1</media-engine>
|
||||||
|
<rtp-factory>RTP-Factory-1</rtp-factory>
|
||||||
|
<sip-settings>UniMRCP-SIP-Settings</sip-settings>
|
||||||
|
<rtp-settings>RTP-Settings-1</rtp-settings>
|
||||||
|
</mrcpv2-profile>
|
||||||
|
|
||||||
|
<!-- UniMRCP MRCPv1 profile -->
|
||||||
|
<mrcpv1-profile id="uni1">
|
||||||
|
<rtsp-uac>RTSP-Agent-1</rtsp-uac>
|
||||||
|
<media-engine>Media-Engine-1</media-engine>
|
||||||
|
<rtp-factory>RTP-Factory-1</rtp-factory>
|
||||||
|
<rtsp-settings>UniMRCP-RTSP-Settings</rtsp-settings>
|
||||||
|
<rtp-settings>RTP-Settings-1</rtp-settings>
|
||||||
|
</mrcpv1-profile>
|
||||||
|
|
||||||
|
<!-- More profiles may follow. -->
|
||||||
|
</profiles>
|
||||||
|
</unimrcpclient>
|
52
sdm/data/nls-cloud-sdm/conf/logger.xml
Executable file
52
sdm/data/nls-cloud-sdm/conf/logger.xml
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Logger Document -->
|
||||||
|
<aptlogger>
|
||||||
|
<!-- Set the log output mode
|
||||||
|
CONSOLE console output
|
||||||
|
FILE log file output
|
||||||
|
CONSOLE,FILE both console and the log file output
|
||||||
|
-->
|
||||||
|
<output>CONSOLE</output>
|
||||||
|
|
||||||
|
<!-- default 1 GB = 1024 * 1024 * 1024 -->
|
||||||
|
<size>1073741824</size>
|
||||||
|
|
||||||
|
<!-- Set the format of the log messages
|
||||||
|
DATE date output
|
||||||
|
TIME time output
|
||||||
|
PRIORITY priority output
|
||||||
|
MARK file:line marker output
|
||||||
|
THREAD calling thread identifier output
|
||||||
|
-->
|
||||||
|
<headers>DATE,TIME,PRIORITY</headers>
|
||||||
|
|
||||||
|
<!-- Set the priority of the default log source to one of
|
||||||
|
EMERGENCY system is unusable
|
||||||
|
ALERT action must be taken immediately
|
||||||
|
CRITICAL critical condition
|
||||||
|
ERROR error condition
|
||||||
|
WARNING warning condition
|
||||||
|
NOTICE normal, but significant condition
|
||||||
|
INFO informational message
|
||||||
|
DEBUG debug-level message
|
||||||
|
-->
|
||||||
|
<priority>INFO</priority>
|
||||||
|
|
||||||
|
<!-- Set the masking mode of the default log source to one of
|
||||||
|
NONE log everything as is
|
||||||
|
COMPLETE mask private data completely
|
||||||
|
ENCRYPTED encrypt private data
|
||||||
|
-->
|
||||||
|
<masking>NONE</masking>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Besides the default log source, there can be additional log sources,
|
||||||
|
which may have different priority levels and log masking modes set.
|
||||||
|
This allows to apply flexible filtering rules per log source.
|
||||||
|
-->
|
||||||
|
<sources>
|
||||||
|
<source name="MPF" priority="INFO" masking="NONE"/>
|
||||||
|
<source name="UNIRTSP" priority="INFO" masking="NONE"/>
|
||||||
|
<source name="SOFIASIP" priority="INFO" masking="NONE"/>
|
||||||
|
</sources>
|
||||||
|
</aptlogger>
|
94
sdm/data/nls-cloud-sdm/conf/nginx-proxy.conf
Executable file
94
sdm/data/nls-cloud-sdm/conf/nginx-proxy.conf
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
user admin;
|
||||||
|
|
||||||
|
worker_processes 1;
|
||||||
|
worker_rlimit_nofile 100000;
|
||||||
|
|
||||||
|
error_log "pipe:/opt/taobao/install/cronolog/sbin/cronolog /home/admin/cai/logs/cronolog/%Y/%m/%Y-%m-%d-error_log" warn;
|
||||||
|
pid /home/admin/cai/tengine.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
use epoll;
|
||||||
|
worker_connections 20480;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
root htdocs;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
|
|
||||||
|
server_tokens off;
|
||||||
|
|
||||||
|
keepalive_timeout 0;
|
||||||
|
|
||||||
|
client_header_timeout 1m;
|
||||||
|
send_timeout 1m;
|
||||||
|
client_max_body_size 100m;
|
||||||
|
variables_hash_max_size 1024;
|
||||||
|
|
||||||
|
index index.html index.htm;
|
||||||
|
|
||||||
|
log_format proxyformat "$remote_addr $request_time_usec $http_x_readtime [$time_local] \"$request_method http://$host:$server_port:$request_uri\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\" \"$md5_encode_cookie_unb\" \"$md5_encode_cookie_cookie2\"";
|
||||||
|
|
||||||
|
#access_log "pipe:/opt/taobao/install/cronolog/sbin/cronolog /home/admin/cai/logs/cronolog/%Y/%m/%Y-%m-%d-%H-taobao-access_log" proxyformat;
|
||||||
|
log_not_found off;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_http_version 1.0;
|
||||||
|
gzip_comp_level 6;
|
||||||
|
gzip_min_length 1024;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_disable msie6;
|
||||||
|
gzip_buffers 96 8k;
|
||||||
|
gzip_types text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml application/json;
|
||||||
|
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_buffers 128 8k;
|
||||||
|
proxy_intercept_errors on;
|
||||||
|
|
||||||
|
proxy_headers_hash_max_size 51200;
|
||||||
|
proxy_headers_hash_bucket_size 6400;
|
||||||
|
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Web-Server-Type nginx;
|
||||||
|
proxy_set_header WL-Proxy-Client-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_read_timeout 5m;
|
||||||
|
|
||||||
|
#websocket
|
||||||
|
map $http_upgrade $connection_upgrade {
|
||||||
|
default upgrade;
|
||||||
|
'' close;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 7008 default_server;
|
||||||
|
|
||||||
|
location /metrics {
|
||||||
|
proxy_pass http://127.0.0.1:7009/metrics;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /sdm_metrics {
|
||||||
|
proxy_pass http://127.0.0.1:7009/metrics;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /maybeOtherPath/prefix {
|
||||||
|
rewrite '^/maybeOtherPath/prefix/(.*)$' /$1;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.(fla|pcm|mp3|wav)$ {
|
||||||
|
#access_log assets.access.log;
|
||||||
|
default_type audio/x-wav;
|
||||||
|
expires 180d;
|
||||||
|
root /home/admin/nls-cloud-sdm/var/;
|
||||||
|
if ($arg_download){
|
||||||
|
add_header Content-Disposition "attachment; filename=$arg_download";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
sdm/data/nls-cloud-sdm/conf/nlstoken.json
Executable file
10
sdm/data/nls-cloud-sdm/conf/nlstoken.json
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"AccessKeyId": "",
|
||||||
|
"AccessKeySecret": "",
|
||||||
|
"Domain": "nls-meta.cn-shanghai.aliyuncs.com",
|
||||||
|
"ServerVersion": "2018-05-18",
|
||||||
|
"ServerResourcePath": "/pop/2018-05-18/tokens",
|
||||||
|
"IntervalTime": 72000,
|
||||||
|
"DefaultToken": "",
|
||||||
|
"Desc": "私有云调用情况下,仅仅设置DefalutToken字段为default,其他字段不要求;公有云调用情况下务必设置DefaultToken为空,而除DefaultToken之外的其他所有字段务必不为空"
|
||||||
|
}
|
30
sdm/data/nls-cloud-sdm/conf/sdmlog.conf
Executable file
30
sdm/data/nls-cloud-sdm/conf/sdmlog.conf
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
alog.rootLogger=INFO
|
||||||
|
alog.max_msg_len=1310720
|
||||||
|
|
||||||
|
##### CONSOLE LOG ######
|
||||||
|
alog.appender.consoleAppender=ConsoleAppender
|
||||||
|
alog.appender.consoleAppender.layout.LogPattern=[%%d] [%%l] [%%t,%%F -- %%f():%%n] [%%m]
|
||||||
|
|
||||||
|
###### ASR LOG #######
|
||||||
|
alog.appender.asrAppender=FileAppender
|
||||||
|
alog.appender.asrAppender.fileName=../log/sdm-asr-request.log
|
||||||
|
alog.appender.asrAppender.max_file_size=128
|
||||||
|
alog.appender.asrAppender.delay_time=24
|
||||||
|
alog.appender.asrAppender.async_flush=true
|
||||||
|
alog.appender.asrAppender.layout=PatternLayout
|
||||||
|
alog.appender.asrAppender.layout.LogPattern=%%m
|
||||||
|
alog.appender.asrAppender.log_keep_count=25
|
||||||
|
|
||||||
|
###### TTS LOG #######
|
||||||
|
alog.appender.ttsAppender=FileAppender
|
||||||
|
alog.appender.ttsAppender.fileName=../log/sdm-tts-request.log
|
||||||
|
alog.appender.ttsAppender.max_file_size=128
|
||||||
|
alog.appender.ttsAppender.delay_time=24
|
||||||
|
alog.appender.ttsAppender.async_flush=true
|
||||||
|
alog.appender.ttsAppender.layout=PatternLayout
|
||||||
|
alog.appender.ttsAppender.layout.LogPattern=%%m
|
||||||
|
alog.appender.ttsAppender.log_keep_count=25
|
||||||
|
|
||||||
|
###### LOG CONTROL ######
|
||||||
|
alog.logger.sdm.asr=INFO, asrAppender
|
||||||
|
alog.logger.sdm.tts=INFO, ttsAppender
|
31
sdm/data/nls-cloud-sdm/conf/service-asr.json
Executable file
31
sdm/data/nls-cloud-sdm/conf/service-asr.json
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"url": "wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1",
|
||||||
|
"appkey": "",
|
||||||
|
"format": "pcm",
|
||||||
|
"sample_rate": 8000,
|
||||||
|
"enable_intermediate_result": 1,
|
||||||
|
"enable_punctuation_prediction": 1,
|
||||||
|
"enable_inverse_text_normalization": 1,
|
||||||
|
"enable_semantic_sentence_detection": 0,
|
||||||
|
"enable_ignore_sentence_timeout": 1,
|
||||||
|
"enable_ner": 0,
|
||||||
|
"ner_name": "aca",
|
||||||
|
"enbale_gender_detect": 0,
|
||||||
|
"desc": {
|
||||||
|
"notice": "此处仅仅是描述信息,无需修改",
|
||||||
|
"url": "访问ASR的url, 如果是调用公有云ASR,无需变动;如果是调用私有云ASR,需根据现场部署情况进行设置,一般为:vip://gateway-ip.vipserver_1:port_1,gateway-ip.vipserver_2:port_2/vipTargetDomain,其中vipServerIp:port可以有一个或者多个,用逗号分割,端口不指定默认为80,最后指定vipServer的Domain",
|
||||||
|
"appkey": "appkey, 调用公有云ASR时需要在阿里云官网获取, 调用私有云ASR时固定设置为(全小写):default",
|
||||||
|
"format": "编码格式,pcm或opu, 保持pcm不变",
|
||||||
|
"sample_rate": "采样率, 8000或16000, 保持8000不变",
|
||||||
|
"enable_intermediate_result": "设置是否返回中间识别结果, 可选参数. 服务端默认0",
|
||||||
|
"enable_punctuation_prediction": "设置是否在识别结果中添加标点, 可选参数. 服务端默认0",
|
||||||
|
"enable_inverse_text_normalization": "设置是否在识别结果中执行文本正则化/数字转换, 比如'一千六百五十'会返回'1650', 可选参数. 服务端默认0",
|
||||||
|
"enable_semantic_sentence_detection": "设置是否使用语义断句, 可选参数. 服务端默认0, 保持配置0不变",
|
||||||
|
"customization_id": "设置热词定制模型id, 默认不设置,除非已经训练了定制模型且通过本配置生效,则需要在上面json格式上增加",
|
||||||
|
"vocabulary_id": "设置热词id, 默认不设置,除非已经训练了定制热词且通过本配置生效,则需要在上面json格式上增加",
|
||||||
|
"class_vocabulary_id": "设置类热词id, 默认不设置,除非已经训练了定制类热词且通过本配置生效,则需要在上面json格式上增加",
|
||||||
|
"als_am_id": "在am混部时候设置的am模型id",
|
||||||
|
"enable_ner": "启动ner、地址解析功能,默认不启用",
|
||||||
|
"enbale_gender_detect": "是否开启性别识别,默认不启用"
|
||||||
|
}
|
||||||
|
}
|
23
sdm/data/nls-cloud-sdm/conf/service-tts.json
Executable file
23
sdm/data/nls-cloud-sdm/conf/service-tts.json
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"url": "wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1",
|
||||||
|
"appkey": "",
|
||||||
|
"format": "pcm",
|
||||||
|
"sample_rate": 8000,
|
||||||
|
"voice": "xiaoyun",
|
||||||
|
"volume": 50,
|
||||||
|
"speech_rate": 0,
|
||||||
|
"pitch_rate": 0,
|
||||||
|
"method": 0,
|
||||||
|
"desc": {
|
||||||
|
"url": "访问TTS的url, 如果是调用公有云TTS,无需变动;如果是调用私有云TTS,需根据现场部署情况进行设置,一般为:vip://gateway-ip.vipserver_1:port_1,gateway-ip.vipserver_2:port_2/vipTargetDomain,其中vipServerIp:port可以有一个或者多个,用逗号分割,端口不指定默认为80,最后指定vipServer的Domain",
|
||||||
|
"appkey": "appkey, 调用公有云TTS时需要在阿里云官网获取, 调用私有云TTS时固定设置为(全小写):default",
|
||||||
|
"format": "编码格式,支持pcm, wav, mp3, 保持pcm不变",
|
||||||
|
"sample_rate": "采样率, 8000或16000, 保持8000不变",
|
||||||
|
"volume": "音量, 范围是0~100, 可选参数, 默认50",
|
||||||
|
"voice": "发音人, 支持xiaoyun(女), xiaogang(男)等",
|
||||||
|
"speech_rate": "语速, 范围是-500~500, 可选参数, 默认是0",
|
||||||
|
"pitch_rate": "语调, 范围是-500~500, 可选参数, 默认是0",
|
||||||
|
"method": "合成方法, 可选参数, 默认是0. 参数含义0:不带录音的参数合成; 1:带录音的拼接合成; 2:不带录音的拼接合成; 3:带录音的参数合成",
|
||||||
|
"notice": "此处仅仅是描述信息,无需修改"
|
||||||
|
}
|
||||||
|
}
|
24
sdm/data/nls-cloud-sdm/script/HangupNotifierDemo.py
Executable file
24
sdm/data/nls-cloud-sdm/script/HangupNotifierDemo.py
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
# coding=utf-8
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Demo示例,需要在具体项目具体场景下自行实现相关调用逻辑
|
||||||
|
|
||||||
|
def hangupNotify(channelId, vendorParams, asrResult, asrBeginTime, asrEndTime):
|
||||||
|
# channelId: 唯一sessionid, 是mrcp-server产生的
|
||||||
|
# vendorParams: ivr发送给mrcp-server的RECOGNIZE消息时携带的扩展参数
|
||||||
|
# asrResult : 识别结果
|
||||||
|
# asrBeginTime : 识别结果的开始时间
|
||||||
|
# asrEndTime : 识别结果的结束时间
|
||||||
|
print "handupNotify = ", channelId, vendorParams, asrResult, asrBeginTime, asrEndTime
|
||||||
|
if len(asrResult) == 0 or (asrBeginTime < 0 and asrEndTime < 0):
|
||||||
|
# 说明挂机时没有识别结果
|
||||||
|
return
|
||||||
|
# 挂机时可能有识别结果,需要将该结果抛给nlu
|
||||||
|
# TODO
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
hangupNotify("123f", "ke=1", "hi", 124, -1)
|
||||||
|
print "Game Over"
|
100
sdm/data/nls-cloud-sdm/script/NluClientDemo.py
Executable file
100
sdm/data/nls-cloud-sdm/script/NluClientDemo.py
Executable file
@ -0,0 +1,100 @@
|
|||||||
|
# coding=utf-8
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
import urllib
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
#import xmltodict
|
||||||
|
|
||||||
|
# Demo示例,需要在具体项目具体场景下自行实现相关调用逻辑
|
||||||
|
|
||||||
|
class XiaoMiNlu:
|
||||||
|
def __init__(self):
|
||||||
|
self.nlpUrl = 'http://39.106.157.134:8110/chatbot/chat/ivr?'
|
||||||
|
self.appId = 402
|
||||||
|
def makeUrl(self, sessionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams):
|
||||||
|
#http://39.106.157.134:8110/chatbot/chat/ivr?AppId=402&Utterance=%E4%BD%A0%E5%A5%BD&VendorParam={%22index%22:%221%22}&SessionId=ee8a166cd1cc4bab
|
||||||
|
url = self.nlpUrl + "AppId=" + str(self.appId) + "&Utterance=" + urllib.quote(asrResult)
|
||||||
|
if sessionId is not None and sessionId != "":
|
||||||
|
url = url + "&SessionId=" + sessionId
|
||||||
|
if vendorParams is not None and vendorParams != "":
|
||||||
|
#按需将 k1=v1;k2=v2;k3=v3的形式转成json格式(云小蜜调用要求)
|
||||||
|
items = vendorParams.split(';')
|
||||||
|
d = dict()
|
||||||
|
for item in items:
|
||||||
|
key,value = item.split('=')
|
||||||
|
d[key] = value
|
||||||
|
url = url + "&VendorParam=" + json.dumps(d)
|
||||||
|
return url
|
||||||
|
|
||||||
|
def request(self, ssionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams):
|
||||||
|
url = self.makeUrl(ssionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams)
|
||||||
|
req = requests.get(url)
|
||||||
|
if(req.status_code != 200):
|
||||||
|
print req.text
|
||||||
|
print "ERROR url(%s), request Fail(%d)" % (url, req.status_code)
|
||||||
|
return ""
|
||||||
|
'''
|
||||||
|
{
|
||||||
|
"SessionId": "123f",
|
||||||
|
"MessageId": "601762b2951e4a2381e26ec0a2703fc7",
|
||||||
|
"Messages": [
|
||||||
|
{
|
||||||
|
"Type": "Text",
|
||||||
|
"Text": {
|
||||||
|
"Content": "{\"INTEL_CUST_HEAD\":{\"RESP_DESC\":\"\",\"APP_ID\":\" \",\"RESP_CODE\":\"\",\"TIMESTAMP\":\"\",\"TRANS_ID\":\"\"},\"INTEL_CUST_BODY\":{\"RESP_DESC\":\"\",\"OPERTYPE\":\"0\",\"RESP_CODE\":\"0000\",\"BROADCAST1\":\"engine \",\"INTERRUPT1\":\"\"}}",
|
||||||
|
"AnswerSource": "ChitChat"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
'''
|
||||||
|
# 按需对NLU的返回进行解析,获取需要关注的内容并打包为xml格式返回:此处示例只获取"Messages->Text->Content"字段对应的值
|
||||||
|
print "result = ", req.text
|
||||||
|
jss = json.loads(req.text.encode('utf-8'))
|
||||||
|
reply = ""
|
||||||
|
if(jss.has_key('Messages') and jss['Messages'][0].has_key('Text')):
|
||||||
|
result = jss['Messages'][0]['Text']
|
||||||
|
if result.has_key('Content'):
|
||||||
|
reply = result['Content'].encode('utf-8')
|
||||||
|
|
||||||
|
# 把 json格式转为xml格式(MRCPSERVER和IVR交互时只有XML格式)
|
||||||
|
reply_json = json.loads(reply)
|
||||||
|
#print type(reply_json), reply_json
|
||||||
|
#xmlstr = xmltodict.unparse(reply_json, full_document=False)
|
||||||
|
xmlstr = "<f>fff</f>"
|
||||||
|
#print "xmlstr = ", xmlstr
|
||||||
|
return xmlstr
|
||||||
|
|
||||||
|
def nluRequest(sessionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams):
|
||||||
|
print "python nluRequest = ", sessionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams
|
||||||
|
''' 需要NLU服务关注asrResult的取值范围:
|
||||||
|
NO-MTACH : 检测到了语音(vad检测到了起始点),但ASR并没有得到有效的结果,这种一般是客户声音过小、背景音过大、声音有能量但无法听到实际内容导致
|
||||||
|
NO-INPUT-TIMEOUT : 无话超时,也即:用户侧没有说法,全是静音
|
||||||
|
ASR-ERROR : 调用ASR进行识别,可能需要NLU服务进行兜底处理
|
||||||
|
其他情况 : 用户语音的ASR识别结果
|
||||||
|
'''
|
||||||
|
if asrResult == "NO-MTACH":
|
||||||
|
print "check speech, but no valid result!"
|
||||||
|
elif asrResult == "NO-INPUT-TIMEOUT":
|
||||||
|
print "check no speech, user may be not speak!"
|
||||||
|
elif asrResult == "ASR-ERROR":
|
||||||
|
print "call ASR failure, you should hold this!"
|
||||||
|
else:
|
||||||
|
print "check speech, and recognized success: ", asrResult
|
||||||
|
|
||||||
|
#time.sleep(1)
|
||||||
|
# 注意:一定要返回如下格式
|
||||||
|
# 返回<k1>fff</k1>类似结构,该结构即是xml格式(去掉xml头))
|
||||||
|
return "<key>value</key>"
|
||||||
|
nlu = XiaoMiNlu()
|
||||||
|
return nlu.request(sessionId, asrResult, asrBeginTime, asrEndTime, emotionValue, vendorParams)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print nluRequest("123f", "你好", 1234, 4569, 5, "ke=1;phone=123;callid=zxcvb"), "\n"
|
||||||
|
print nluRequest("123f", "WELCOME", 1234, 4569, 0, "ke=1"), "\n"
|
||||||
|
print nluRequest("123f", "NO-MTACH", 1234, 4569, 0, "ke=1"), "\n"
|
||||||
|
print nluRequest("123f", "NO-INPUT-TIMEOUT", 1234, 1, 4569, "ke=1"), "\n"
|
||||||
|
print nluRequest("123f", "ASR-ERROR", 1234, 4569, 0, ""), "\n"
|
||||||
|
print "Game Over"
|
43
sdm/data/nls-cloud-sdm/script/RequestTransformer.lua
Executable file
43
sdm/data/nls-cloud-sdm/script/RequestTransformer.lua
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
function grammarTransformer(grammar)
|
||||||
|
-- see : https://www.runoob.com/lua/lua-tables.html
|
||||||
|
--print("c++ call lua function parse")
|
||||||
|
mytable = {}
|
||||||
|
|
||||||
|
--mytable["SPEECH_URL"] = "custom:ws://11.164.63.252:8101/ws/v1"
|
||||||
|
--print("mytable 索引为 1 的元素是 ", mytable[1])
|
||||||
|
--print("mytable 索引为 wow 的元素是 ", mytable["wow"])
|
||||||
|
|
||||||
|
return mytable
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function split(str, reps)
|
||||||
|
local resultStrList = {}
|
||||||
|
string.gsub(str, '[^'..reps..']+', function (w)
|
||||||
|
table.insert(resultStrList, w)
|
||||||
|
end)
|
||||||
|
return resultStrList
|
||||||
|
end
|
||||||
|
|
||||||
|
function vendorParamsTransformer(vendorParams)
|
||||||
|
-- vendorParams = k1=v1;k2=v2;k3=v3
|
||||||
|
-- 将verndorParam按需拆分为key:value对,并可在此处进行相应修改
|
||||||
|
--print("input : ", vendorParams)
|
||||||
|
mytable = {}
|
||||||
|
|
||||||
|
local list = split(vendorParams, ";")
|
||||||
|
for _, s in ipairs(list) do
|
||||||
|
print(s)
|
||||||
|
local pos = string.find(s, '=')
|
||||||
|
if pos then
|
||||||
|
local key = string.sub(s, 0, pos - 1)
|
||||||
|
local value = string.sub(s, pos + 1)
|
||||||
|
--print("key = ", key, ", value = ", value)
|
||||||
|
mytable[key] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--mytable["SPEECH_VOCAB_ID"] = "11111"
|
||||||
|
return mytable
|
||||||
|
end
|
||||||
|
|
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-3.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231007/1709729e5d8a438e-3.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231007/dec8b945eabb44d0-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231007/dec8b945eabb44d0-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-3.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-3.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-4.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-4.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-5.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-5.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-6.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-6.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-7.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/3a060f5b681a4e93-7.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/9dafe440b1db46b1-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/9dafe440b1db46b1-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-3.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-3.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-4.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/d262403bece34f77-4.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f592113d44fb4e1b-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f592113d44fb4e1b-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f592113d44fb4e1b-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f592113d44fb4e1b-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-3.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-3.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-4.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231008/f74b7310256e4bcf-4.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231011/e1211ff11a37499c-1.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231011/e1211ff11a37499c-1.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/20231011/e1211ff11a37499c-2.wav
Executable file
BIN
sdm/data/nls-cloud-sdm/var/20231011/e1211ff11a37499c-2.wav
Executable file
Binary file not shown.
BIN
sdm/data/nls-cloud-sdm/var/synth-8kHz-e00b9f58600748a0.pcm
Executable file
BIN
sdm/data/nls-cloud-sdm/var/synth-8kHz-e00b9f58600748a0.pcm
Executable file
Binary file not shown.
2
sdm/logs/nls-cloud-sdm/.gitignore
vendored
Executable file
2
sdm/logs/nls-cloud-sdm/.gitignore
vendored
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
5
switch/.fs_cli_conf
Normal file
5
switch/.fs_cli_conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[default]
|
||||||
|
host => 127.0.0.1
|
||||||
|
port => 62221
|
||||||
|
password => 305852127a3c0a6c
|
||||||
|
debug => 6
|
5
switch/conf/autoload_configs/abstraction.conf.xml
Normal file
5
switch/conf/autoload_configs/abstraction.conf.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<configuration name="abstraction.conf" description="Abstraction">
|
||||||
|
<apis>
|
||||||
|
<api name="user_name" description="Return Name for extension" syntax="<exten>" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
|
||||||
|
</apis>
|
||||||
|
</configuration>
|
33
switch/conf/autoload_configs/acl.conf.xml
Normal file
33
switch/conf/autoload_configs/acl.conf.xml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<configuration name="acl.conf" description="Network Lists">
|
||||||
|
<network-lists>
|
||||||
|
<!--
|
||||||
|
These ACL's are automatically created on startup.
|
||||||
|
|
||||||
|
rfc1918.auto - RFC1918 Space
|
||||||
|
nat.auto - RFC1918 Excluding your local lan.
|
||||||
|
localnet.auto - ACL for your local lan.
|
||||||
|
loopback.auto - ACL for your local lan.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<list name="lan" default="allow">
|
||||||
|
<!-- <node type="deny" cidr="192.168.42.0/24"/> -->
|
||||||
|
<!-- <node type="allow" cidr="192.168.42.42/32"/> -->
|
||||||
|
</list>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This will traverse the directory adding all users
|
||||||
|
with the cidr= tag to this ACL, when this ACL matches
|
||||||
|
the users variables and params apply as if they
|
||||||
|
digest authenticated.
|
||||||
|
-->
|
||||||
|
<list name="domains" default="deny">
|
||||||
|
<!-- domain= is special it scans the domain from the directory to build the ACL -->
|
||||||
|
<node type="allow" domain="$${domain}"/>
|
||||||
|
<!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
|
||||||
|
<!-- <node type="allow" cidr="192.168.0.0/24"/> -->
|
||||||
|
<node type="allow" cidr="127.0.0.1/32"/>
|
||||||
|
</list>
|
||||||
|
|
||||||
|
</network-lists>
|
||||||
|
</configuration>
|
||||||
|
|
12
switch/conf/autoload_configs/alsa.conf.xml
Normal file
12
switch/conf/autoload_configs/alsa.conf.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration name="alsa.conf" description="Soundcard Endpoint">
|
||||||
|
<settings>
|
||||||
|
<!--Default dialplan and caller-id info -->
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="cid-name" value="N800 Alsa"/>
|
||||||
|
<param name="cid-num" value="5555551212"/>
|
||||||
|
|
||||||
|
<!--audio sample rate and interval -->
|
||||||
|
<param name="sample-rate" value="8000"/>
|
||||||
|
<param name="codec-ms" value="20"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
87
switch/conf/autoload_configs/amqp.conf.xml
Normal file
87
switch/conf/autoload_configs/amqp.conf.xml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<configuration name="amqp.conf" description="mod_amqp">
|
||||||
|
<producers>
|
||||||
|
<profile name="default">
|
||||||
|
<connections>
|
||||||
|
<connection name="primary">
|
||||||
|
<param name="hostname" value="localhost"/>
|
||||||
|
<param name="virtualhost" value="/"/>
|
||||||
|
<param name="username" value="guest"/>
|
||||||
|
<param name="password" value="guest"/>
|
||||||
|
<param name="port" value="5673"/>
|
||||||
|
<param name="heartbeat" value="0"/>
|
||||||
|
</connection>
|
||||||
|
<connection name="secondary">
|
||||||
|
<param name="hostname" value="localhost"/>
|
||||||
|
<param name="virtualhost" value="/"/>
|
||||||
|
<param name="username" value="guest"/>
|
||||||
|
<param name="password" value="guest"/>
|
||||||
|
<param name="port" value="5672"/>
|
||||||
|
<param name="heartbeat" value="0"/>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
<params>
|
||||||
|
<param name="exchange-name" value="TAP.Events"/>
|
||||||
|
<param name="exchange-type" value="topic"/>
|
||||||
|
<param name="circuit_breaker_ms" value="10000"/>
|
||||||
|
<param name="reconnect_interval_ms" value="1000"/>
|
||||||
|
<param name="send_queue_size" value="5000"/>
|
||||||
|
<param name="enable_fallback_format_fields" value="1"/>
|
||||||
|
|
||||||
|
<!-- The routing key is made from the format string, using the header values in the event specified in the format_fields.-->
|
||||||
|
<!-- Fields that are prefixed with a # are treated as literals rather than doing a header lookup -->
|
||||||
|
<param name="format_fields" value="#FreeSWITCH,FreeSWITCH-Hostname,Event-Name,Event-Subclass,Unique-ID"/>
|
||||||
|
|
||||||
|
<!-- If enable_fallback_format_fields is enabled, then you can | separate event headers, and if the first does not exist
|
||||||
|
then the system will check additional configured header values.
|
||||||
|
-->
|
||||||
|
<!-- <param name="format_fields" value="#FreeSWITCH,FreeSWITCH-Hostname|#Unknown,Event-Name,Event-Subclass,Unique-ID"/> -->
|
||||||
|
|
||||||
|
<!-- <param name="event_filter" value="SWITCH_EVENT_ALL"/> -->
|
||||||
|
<param name="event_filter" value="SWITCH_EVENT_CHANNEL_CREATE,SWITCH_EVENT_CHANNEL_DESTROY,SWITCH_EVENT_HEARTBEAT,SWITCH_EVENT_DTMF"/>
|
||||||
|
</params>
|
||||||
|
</profile>
|
||||||
|
</producers>
|
||||||
|
<commands>
|
||||||
|
<profile name="default">
|
||||||
|
<connections>
|
||||||
|
<connection name="primary">
|
||||||
|
<param name="hostname" value="localhost"/>
|
||||||
|
<param name="virtualhost" value="/"/>
|
||||||
|
<param name="username" value="guest"/>
|
||||||
|
<param name="password" value="guest"/>
|
||||||
|
<param name="port" value="5672"/>
|
||||||
|
<param name="heartbeat" value="0"/>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
<params>
|
||||||
|
<param name="exchange-name" value="TAP.Commands"/>
|
||||||
|
<param name="binding_key" value="commandBindingKey"/>
|
||||||
|
<param name="reconnect_interval_ms" value="1000"/>
|
||||||
|
<param name="queue-passive" value="false"/>
|
||||||
|
<param name="queue-durable" value="false"/>
|
||||||
|
<param name="queue-exclusive" value="false"/>
|
||||||
|
<param name="queue-auto-delete" value="true"/>
|
||||||
|
</params>
|
||||||
|
</profile>
|
||||||
|
</commands>
|
||||||
|
<logging>
|
||||||
|
<profile name="default">
|
||||||
|
<connections>
|
||||||
|
<connection name="primary">
|
||||||
|
<param name="hostname" value="localhost"/>
|
||||||
|
<param name="virtualhost" value="/"/>
|
||||||
|
<param name="username" value="guest"/>
|
||||||
|
<param name="password" value="guest"/>
|
||||||
|
<param name="port" value="5672"/>
|
||||||
|
<param name="heartbeat" value="0"/>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
<params>
|
||||||
|
<param name="exchange-name" value="TAP.Logging"/>
|
||||||
|
<param name="send_queue_size" value="5000"/>
|
||||||
|
<param name="reconnect_interval_ms" value="1000"/>
|
||||||
|
<param name="log-levels" value="debug,info,notice,warning,err,crit,alert"/>
|
||||||
|
</params>
|
||||||
|
</profile>
|
||||||
|
</logging>
|
||||||
|
</configuration>
|
21
switch/conf/autoload_configs/amr.conf.xml
Normal file
21
switch/conf/autoload_configs/amr.conf.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<configuration name="amr.conf">
|
||||||
|
<settings>
|
||||||
|
<!-- AMR modes (supported bitrates) :
|
||||||
|
mode 0 AMR 4.75 kbps
|
||||||
|
mode 1 AMR 5.15 kbps
|
||||||
|
mode 2 AMR 5.9 kbps
|
||||||
|
mode 3 AMR 6.7 kbps
|
||||||
|
mode 4 AMR 7.4 kbps
|
||||||
|
mode 5 AMR 7.95 kbps
|
||||||
|
mode 6 AMR 10.2 kbps
|
||||||
|
mode 7 AMR 12.2 kbps
|
||||||
|
-->
|
||||||
|
<param name="default-bitrate" value="7"/>
|
||||||
|
<!-- Enable VoLTE specific FMTP -->
|
||||||
|
<param name="volte" value="0"/>
|
||||||
|
<!-- Enable automatic bitrate variation during the call based on RTCP feedback -->
|
||||||
|
<param name="adjust-bitrate" value="0"/>
|
||||||
|
<!-- force OA when originating -->
|
||||||
|
<param name="force-oa" value="0"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
24
switch/conf/autoload_configs/amrwb.conf.xml
Normal file
24
switch/conf/autoload_configs/amrwb.conf.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<configuration name="amrwb.conf">
|
||||||
|
<settings>
|
||||||
|
<!-- AMRWB modes (supported bitrates):
|
||||||
|
mode 8 AMR-WB_23.85 23.85 Kbit/s
|
||||||
|
mode 7 AMR-WB_23.05 23.05 Kbit/s
|
||||||
|
mode 7 AMR-WB_19.85 19.85 Kbit/s
|
||||||
|
mode 6 AMR-WB_18.25 18.25 Kbit/s
|
||||||
|
mode 5 AMR-WB_15.85 15.85 Kbit/s
|
||||||
|
mode 4 AMR-WB_14.25 14.25 Kbit/s
|
||||||
|
mode 3 AMR-WB_12.65 12.65 Kbit/s
|
||||||
|
mode 2 AMR-WB_8.85 8.85 Kbit/s
|
||||||
|
mode 1 AMR-WB_6.60 6.60 Kbit/s
|
||||||
|
-->
|
||||||
|
<param name="default-bitrate" value="8"/>
|
||||||
|
<!-- Enable VoLTE specific FMTP -->
|
||||||
|
<param name="volte" value="1"/>
|
||||||
|
<!-- Enable automatic bitrate variation during the call based on RTCP feedback -->
|
||||||
|
<param name="adjust-bitrate" value="0"/>
|
||||||
|
<!-- force OA when originating -->
|
||||||
|
<param name="force-oa" value="0"/>
|
||||||
|
<!-- don't mirror mode-set in SDP answer, but use our own (default-bitrate). -->
|
||||||
|
<param name="mode-set-overwrite" value="0"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
167
switch/conf/autoload_configs/av.conf.xml
Normal file
167
switch/conf/autoload_configs/av.conf.xml
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
<configuration name="avcodec.conf" description="AVCodec Config">
|
||||||
|
<settings>
|
||||||
|
<!-- max bitrate the system support, truncate if over limit -->
|
||||||
|
<!-- <param name="max-bitrate" value="5mb"/> -->
|
||||||
|
|
||||||
|
<!-- <param name="rtp-slice-size" value="1200"/> -->
|
||||||
|
|
||||||
|
<!-- minimum time to generate a new key frame in ms /> -->
|
||||||
|
<!-- <param name="key-frame-min-freq" value="250"/> -->
|
||||||
|
|
||||||
|
<!-- integer of cpus, or 'auto', or 'cpu/<divisor>/<max> -->
|
||||||
|
<param name="dec-threads" value="1"/>
|
||||||
|
<param name="enc-threads" value="cpu/2/4"/>
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile name="H263">
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="H263+">
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="H264">
|
||||||
|
<!-- <param name="dec-threads" value="1"/> -->
|
||||||
|
<!-- <param name="enc-threads" value="cpu/2/4"/> -->
|
||||||
|
|
||||||
|
<!-- <param name="profile" value="baseline"/> -->
|
||||||
|
<!-- <param name="level" value="41"/> -->
|
||||||
|
<!-- <param name="timebase" value="1/90"/> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
#define AV_CODEC_FLAG_UNALIGNED (1 << 0)
|
||||||
|
#define AV_CODEC_FLAG_QSCALE (1 << 1)
|
||||||
|
#define AV_CODEC_FLAG_4MV (1 << 2)
|
||||||
|
#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
|
||||||
|
#define AV_CODEC_FLAG_QPEL (1 << 4)
|
||||||
|
#define AV_CODEC_FLAG_PASS1 (1 << 9)
|
||||||
|
#define AV_CODEC_FLAG_PASS2 (1 << 10)
|
||||||
|
#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
|
||||||
|
#define AV_CODEC_FLAG_GRAY (1 << 13)
|
||||||
|
#define AV_CODEC_FLAG_PSNR (1 << 15)
|
||||||
|
#define AV_CODEC_FLAG_TRUNCATED (1 << 16)
|
||||||
|
#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
|
||||||
|
#define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
|
||||||
|
#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
|
||||||
|
#define AV_CODEC_FLAG_BITEXACT (1 << 23)
|
||||||
|
#define AV_CODEC_FLAG_AC_PRED (1 << 24)
|
||||||
|
#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
|
||||||
|
#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<param name="flags" value="LOOP_FILTER|PSNR"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
#define FF_CMP_SAD 0
|
||||||
|
#define FF_CMP_SSE 1
|
||||||
|
#define FF_CMP_SATD 2
|
||||||
|
#define FF_CMP_DCT 3
|
||||||
|
#define FF_CMP_PSNR 4
|
||||||
|
#define FF_CMP_BIT 5
|
||||||
|
#define FF_CMP_RD 6
|
||||||
|
#define FF_CMP_ZERO 7
|
||||||
|
#define FF_CMP_VSAD 8
|
||||||
|
#define FF_CMP_VSSE 9
|
||||||
|
#define FF_CMP_NSSE 10
|
||||||
|
#define FF_CMP_W53 11
|
||||||
|
#define FF_CMP_W97 12
|
||||||
|
#define FF_CMP_DCTMAX 13
|
||||||
|
#define FF_CMP_DCT264 14
|
||||||
|
#define FF_CMP_MEDIAN_SAD 15
|
||||||
|
#define FF_CMP_CHROMA 256
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- <param name="me-cmp" value="1"/> -->
|
||||||
|
<!-- <param name="me-range" value="16"/> -->
|
||||||
|
<!-- <param name="max-b-frames" value="3"/> -->
|
||||||
|
<!-- <param name="refs" value="3"/> -->
|
||||||
|
<!-- <param name="gop-size" value="250"/> -->
|
||||||
|
<!-- <param name="keyint-min" value="25"/> -->
|
||||||
|
<!-- <param name="i-quant-factor" value="0.71"/> -->
|
||||||
|
<!-- <param name="b-quant-factor" value="0.76923078"/> -->
|
||||||
|
<!-- <param name="qcompress" value="0.6"/> -->
|
||||||
|
<!-- <param name="qmin" value="10"/> -->
|
||||||
|
<!-- <param name="qmax" value="51"/> -->
|
||||||
|
<!-- <param name="max-qdiff" value="4"/> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
enum AVColorSpace {
|
||||||
|
AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
|
||||||
|
AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
|
||||||
|
AVCOL_SPC_UNSPECIFIED = 2,
|
||||||
|
AVCOL_SPC_RESERVED = 3,
|
||||||
|
AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
|
||||||
|
AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
|
||||||
|
AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
|
||||||
|
AVCOL_SPC_SMPTE240M = 7, ///< functionally identical to above
|
||||||
|
AVCOL_SPC_YCGCO = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
|
||||||
|
AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO,
|
||||||
|
AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system
|
||||||
|
AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system
|
||||||
|
AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x
|
||||||
|
AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
|
||||||
|
AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
|
||||||
|
AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp
|
||||||
|
AVCOL_SPC_NB ///< Not part of ABI
|
||||||
|
};
|
||||||
|
-->
|
||||||
|
<param name="colorspace" value="0"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
enum AVColorRange {
|
||||||
|
AVCOL_RANGE_UNSPECIFIED = 0,
|
||||||
|
AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
|
||||||
|
AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges
|
||||||
|
AVCOL_RANGE_NB ///< Not part of ABI
|
||||||
|
};
|
||||||
|
-->
|
||||||
|
<param name="color-range" value="2"/>
|
||||||
|
|
||||||
|
<!-- x264 private options-->
|
||||||
|
<options>
|
||||||
|
<option name="preset" value="veryfast"/>
|
||||||
|
<option name="intra_refresh" value="1"/>
|
||||||
|
<option name="tune" value="animation+zerolatency"/>
|
||||||
|
<option name="sc_threshold" value="40"/>
|
||||||
|
<option name="b_strategy" value="1"/>
|
||||||
|
<option name="crf" value="18"/>
|
||||||
|
</options>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="H265">
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="conference">
|
||||||
|
<param name="dec-threads" value="1"/>
|
||||||
|
<param name="enc-threads" value="cpu/2/4"/>
|
||||||
|
|
||||||
|
<codecs>
|
||||||
|
<!-- profiles will be parsed at runtime
|
||||||
|
to overwrite this profile params if codec matches -->
|
||||||
|
<codec name="H263" profile="H263"/>
|
||||||
|
<codec name="H264" profile="H264"/>
|
||||||
|
<codec name="H264" profile="conference-H264"/>
|
||||||
|
</codecs>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="conference-H264">
|
||||||
|
<options>
|
||||||
|
<option name="preset" value="veryfast"/>
|
||||||
|
<option name="intra_refresh" value="1"/>
|
||||||
|
<option name="tune" value="animation+zerolatency"/>
|
||||||
|
<option name="sc_threshold" value="40"/>
|
||||||
|
<option name="b_strategy" value="1"/>
|
||||||
|
<option name="crf" value="10"/>
|
||||||
|
</options>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
||||||
|
|
||||||
|
<configuration name="avformat.conf" description="AVFormat Config">
|
||||||
|
<settings>
|
||||||
|
<param name="colorspace" value="1"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
74
switch/conf/autoload_configs/avmd.conf.xml
Normal file
74
switch/conf/autoload_configs/avmd.conf.xml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<configuration name="avmd.conf" description="AVMD config">
|
||||||
|
<settings>
|
||||||
|
|
||||||
|
<!-- Edit these settings to change default behaviour
|
||||||
|
of each avmd session. Settings can be overwritten
|
||||||
|
by values passed dynamically per each session -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Global settings -->
|
||||||
|
|
||||||
|
<!-- define/undefine this to enable/disable logging of avmd
|
||||||
|
intermediate computations to log -->
|
||||||
|
<param name="debug" value="0"/>
|
||||||
|
|
||||||
|
<!-- define/undef this to enable/disable verbose logging (and reporting to the console)
|
||||||
|
of detection status and other diagnostics like parameters avmd session has been started with,
|
||||||
|
change of configuration parameters, beep detection status after session ended
|
||||||
|
(stop event is fired independently of this setting and beep status included there) -->
|
||||||
|
<param name="report_status" value="1"/>
|
||||||
|
|
||||||
|
<!-- define/undefine this to enable/disable faster computation
|
||||||
|
of arcus cosine - table will be created mapping floats
|
||||||
|
to integers and returning arc cos values given these integer
|
||||||
|
indices into table -->
|
||||||
|
<param name="fast_math" value="0"/>
|
||||||
|
<!-- Global settings end -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Per call (session) settings. These settings can be overwritten
|
||||||
|
with custom/different values per each avmd session -->
|
||||||
|
|
||||||
|
<!-- define/undefine this to classify avmd beep detection as valid
|
||||||
|
only when there is required number of consecutive elements
|
||||||
|
in the SMA buffer without reset -->
|
||||||
|
<param name="require_continuous_streak" value="1"/>
|
||||||
|
|
||||||
|
<!-- required number of consecutive elements in the SMA buffer
|
||||||
|
without reset. This parameter helps to avoid false beeps, bigger this value is
|
||||||
|
smaller the probability of getting false detection -->
|
||||||
|
<param name="sample_n_continuous_streak" value="3"/>
|
||||||
|
|
||||||
|
<!-- define number of samples to skip starting from the beginning
|
||||||
|
of the frame and/or after reset has happened. This serves the purpose of skipping first few
|
||||||
|
estimations on each frame, as these estimations may be inaccurate. This parameter also helps
|
||||||
|
to give more robust detections when it's value is increased (up to scertain limit of about 60). -->
|
||||||
|
<param name="sample_n_to_skip" value="0"/>
|
||||||
|
|
||||||
|
<param name="require_continuous_streak_amp" value="1"/>
|
||||||
|
<param name="sample_n_continuous_streak_amp" value="3"/>
|
||||||
|
|
||||||
|
<!-- define/undefine this to enable/disable simplified estimation
|
||||||
|
of frequency based on approximation of sin(x) with (x)
|
||||||
|
in the range x=[0,PI/2] -->
|
||||||
|
<param name="simplified_estimation" value="1"/>
|
||||||
|
|
||||||
|
<!-- define/undefine to enable/disable avmd on internal channel -->
|
||||||
|
<param name="inbound_channel" value="0"/>
|
||||||
|
|
||||||
|
<!-- define/undefine to enable/disable avmd on external channel -->
|
||||||
|
<param name="outbound_channel" value="1"/>
|
||||||
|
|
||||||
|
<!-- determines the mode of detection, default is both amplitude and frequency -->
|
||||||
|
<param name="detection_mode" value="2"/>
|
||||||
|
|
||||||
|
<!-- number of detection threads running per each avmd session -->
|
||||||
|
<param name="detectors_n" value="36"/>
|
||||||
|
|
||||||
|
<!-- number of lagged detection threads running per each avmd session -->
|
||||||
|
<param name="detectors_lagged_n" value="1"/>
|
||||||
|
|
||||||
|
<!-- Per call settings end -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
||||||
|
|
11
switch/conf/autoload_configs/blacklist.conf.xml
Normal file
11
switch/conf/autoload_configs/blacklist.conf.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<configuration name="mod_blacklist.conf" description="Blacklist module">
|
||||||
|
<lists>
|
||||||
|
<!--
|
||||||
|
Example blacklist, the referenced file contains blacklisted items, one entry per line
|
||||||
|
|
||||||
|
NOTE: make sure the file exists and is readable by FreeSWITCH.
|
||||||
|
|
||||||
|
<list name="example" filename="$${conf_dir}/blacklists/example.list"/>
|
||||||
|
-->
|
||||||
|
</lists>
|
||||||
|
</configuration>
|
39
switch/conf/autoload_configs/callcenter.conf.xml
Normal file
39
switch/conf/autoload_configs/callcenter.conf.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<configuration name="callcenter.conf" description="CallCenter">
|
||||||
|
<settings>
|
||||||
|
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
|
||||||
|
<!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
|
||||||
|
<!--<param name="cc-instance-id" value="single_box"/>-->
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<queues>
|
||||||
|
|
||||||
|
<queue name="support@default">
|
||||||
|
<param name="strategy" value="longest-idle-agent"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<!--<param name="record-template" value="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
|
||||||
|
<param name="time-base-score" value="system"/>
|
||||||
|
<param name="max-wait-time" value="0"/>
|
||||||
|
<param name="max-wait-time-with-no-agent" value="0"/>
|
||||||
|
<param name="max-wait-time-with-no-agent-time-reached" value="5"/>
|
||||||
|
<param name="tier-rules-apply" value="false"/>
|
||||||
|
<param name="tier-rule-wait-second" value="300"/>
|
||||||
|
<param name="tier-rule-wait-multiply-level" value="true"/>
|
||||||
|
<param name="tier-rule-no-agent-no-wait" value="false"/>
|
||||||
|
<param name="discard-abandoned-after" value="60"/>
|
||||||
|
<param name="abandoned-resume-allowed" value="false"/>
|
||||||
|
</queue>
|
||||||
|
|
||||||
|
</queues>
|
||||||
|
|
||||||
|
<!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
|
||||||
|
<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
|
||||||
|
<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
|
||||||
|
<agents>
|
||||||
|
<!--<agent name="1000@default" type="callback" contact="[leg_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
|
||||||
|
</agents>
|
||||||
|
<tiers>
|
||||||
|
<!-- If no level or position is provided, they will default to 1. You should do this to keep db value on restart. -->
|
||||||
|
<!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
|
||||||
|
</tiers>
|
||||||
|
|
||||||
|
</configuration>
|
23
switch/conf/autoload_configs/cdr_csv.conf.xml
Normal file
23
switch/conf/autoload_configs/cdr_csv.conf.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<configuration name="cdr_csv.conf" description="CDR CSV Format">
|
||||||
|
<settings>
|
||||||
|
<!-- 'cdr-csv' will always be appended to log-base -->
|
||||||
|
<!--<param name="log-base" value="/var/log"/>-->
|
||||||
|
<param name="default-template" value="example"/>
|
||||||
|
<!-- This is like the info app but after the call is hung up -->
|
||||||
|
<!--<param name="debug" value="true"/>-->
|
||||||
|
<param name="rotate-on-hup" value="true"/>
|
||||||
|
<!-- may be a b or ab -->
|
||||||
|
<param name="legs" value="a"/>
|
||||||
|
<!-- Only log in Master.csv -->
|
||||||
|
<!-- <param name="master-file-only" value="true"/> -->
|
||||||
|
</settings>
|
||||||
|
<templates>
|
||||||
|
<template name="sql">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}");</template>
|
||||||
|
<template name="example">"${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}"</template>
|
||||||
|
<template name="snom">"${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}"</template>
|
||||||
|
<template name="linksys">"${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}"</template>
|
||||||
|
<template name="asterisk">"${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}"</template>
|
||||||
|
<template name="opencdrrate">"${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex('${original_caller_id_name}'|^.)}","${sip_gateway_name}"</template>
|
||||||
|
</templates>
|
||||||
|
</configuration>
|
||||||
|
|
13
switch/conf/autoload_configs/cdr_mongodb.conf.xml
Normal file
13
switch/conf/autoload_configs/cdr_mongodb.conf.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<configuration name="cdr_mongodb.conf" description="MongoDB CDR logger">
|
||||||
|
<settings>
|
||||||
|
<!-- Hostnames and IPv6 addrs not supported (yet) -->
|
||||||
|
<param name="host" value="127.0.0.1"/>
|
||||||
|
<param name="port" value="27017"/>
|
||||||
|
|
||||||
|
<!-- Namespace format is database.collection -->
|
||||||
|
<param name="namespace" value="test.cdr"/>
|
||||||
|
|
||||||
|
<!-- If true, create CDR for B-leg of call (default: true) -->
|
||||||
|
<param name="log-b-leg" value="false"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
40
switch/conf/autoload_configs/cdr_pg_csv.conf.xml
Normal file
40
switch/conf/autoload_configs/cdr_pg_csv.conf.xml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
|
||||||
|
<settings>
|
||||||
|
<!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
|
||||||
|
<param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
|
||||||
|
<!-- CDR table name -->
|
||||||
|
<!--<param name="db-table" value="cdr"/>-->
|
||||||
|
|
||||||
|
<!-- Log a-leg (a), b-leg (b) or both (ab) -->
|
||||||
|
<param name="legs" value="a"/>
|
||||||
|
|
||||||
|
<!-- Directory in which to spool failed SQL inserts -->
|
||||||
|
<!-- <param name="spool-dir" value="$${log_dir}/cdr-pg-csv"/> -->
|
||||||
|
<!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
|
||||||
|
<param name="spool-format" value="csv"/>
|
||||||
|
<param name="rotate-on-hup" value="true"/>
|
||||||
|
|
||||||
|
<!-- This is like the info app but after the call is hung up -->
|
||||||
|
<!--<param name="debug" value="true"/>-->
|
||||||
|
</settings>
|
||||||
|
<schema>
|
||||||
|
<field var="local_ip_v4"/>
|
||||||
|
<field var="caller_id_name"/>
|
||||||
|
<field var="caller_id_number"/>
|
||||||
|
<field var="destination_number"/>
|
||||||
|
<field var="context"/>
|
||||||
|
<field var="start_stamp"/>
|
||||||
|
<field var="answer_stamp"/>
|
||||||
|
<field var="end_stamp"/>
|
||||||
|
<field var="duration" quote="false"/>
|
||||||
|
<field var="billsec" quote="false"/>
|
||||||
|
<field var="hangup_cause"/>
|
||||||
|
<field var="uuid"/>
|
||||||
|
<field var="bleg_uuid"/>
|
||||||
|
<field var="accountcode"/>
|
||||||
|
<field var="read_codec"/>
|
||||||
|
<field var="write_codec"/>
|
||||||
|
<!-- <field var="sip_hangup_disposition"/> -->
|
||||||
|
<!-- <field var="ani"/> -->
|
||||||
|
</schema>
|
||||||
|
</configuration>
|
18
switch/conf/autoload_configs/cdr_sqlite.conf.xml
Normal file
18
switch/conf/autoload_configs/cdr_sqlite.conf.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<configuration name="cdr_sqlite.conf" description="SQLite CDR">
|
||||||
|
<settings>
|
||||||
|
<!-- SQLite database name (.db suffix will be automatically appended) -->
|
||||||
|
<!-- <param name="db-name" value="cdr"/> -->
|
||||||
|
<!-- CDR table name -->
|
||||||
|
<!-- <param name="db-table" value="cdr"/> -->
|
||||||
|
<!-- Log a-leg (a), b-leg (b) or both (ab) -->
|
||||||
|
<param name="legs" value="a"/>
|
||||||
|
<!-- Default template to use when inserting records -->
|
||||||
|
<param name="default-template" value="example"/>
|
||||||
|
<!-- This is like the info app but after the call is hung up -->
|
||||||
|
<!--<param name="debug" value="true"/>-->
|
||||||
|
</settings>
|
||||||
|
<templates>
|
||||||
|
<!-- Note that field order must match SQL table schema, otherwise insert will fail -->
|
||||||
|
<template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}",${duration},${billsec},"${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}"</template>
|
||||||
|
</templates>
|
||||||
|
</configuration>
|
12
switch/conf/autoload_configs/cepstral.conf.xml
Normal file
12
switch/conf/autoload_configs/cepstral.conf.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration name="cepstral.conf" description="Cepstral TTS configuration">
|
||||||
|
<settings>
|
||||||
|
<!--
|
||||||
|
Possible encodings:
|
||||||
|
* utf-8
|
||||||
|
* us-ascii
|
||||||
|
* iso8859-1 (default)
|
||||||
|
* iso8859-15
|
||||||
|
-->
|
||||||
|
<param name="encoding" value="utf-8"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
33
switch/conf/autoload_configs/cidlookup.conf.xml
Normal file
33
switch/conf/autoload_configs/cidlookup.conf.xml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<configuration name="cidlookup.conf" description="cidlookup Configuration">
|
||||||
|
<settings>
|
||||||
|
<!-- comment out url to not setup a url based lookup -->
|
||||||
|
<param name="url" value="http://query.voipcnam.com/query.php?api_key=MYAPIKEY&number=${caller_id_number}"/>
|
||||||
|
|
||||||
|
<!-- comment out whitepages-apikey to not use whitepages.com, you must
|
||||||
|
get an API key from http://developer.whitepages.com/ -->
|
||||||
|
<param name="whitepages-apikey" value="MYAPIKEY"/>
|
||||||
|
|
||||||
|
<!-- set to false to not cache (in memcache) results from the url query -->
|
||||||
|
<param name="cache" value="true"/>
|
||||||
|
<!-- expire is in seconds -->
|
||||||
|
<param name="cache-expire" value="86400"/>
|
||||||
|
|
||||||
|
<param name="odbc-dsn" value="phone:phone:phone"/>
|
||||||
|
|
||||||
|
<!-- comment out sql to not setup a database (directory) lookup -->
|
||||||
|
<param name="sql" value="
|
||||||
|
SELECT name||' ('||type||')' AS name
|
||||||
|
FROM phonebook p JOIN numbers n ON p.id = n.phonebook_id
|
||||||
|
WHERE n.number='${caller_id_number}'
|
||||||
|
LIMIT 1
|
||||||
|
"/>
|
||||||
|
<!-- comment out citystate-sql to not setup a database (city/state)
|
||||||
|
lookup -->
|
||||||
|
<param name="citystate-sql" value="
|
||||||
|
SELECT ratecenter||' '||state as name
|
||||||
|
FROM npa_nxx_company_ocn
|
||||||
|
WHERE npa = ${caller_id_number:1:3} AND nxx = ${caller_id_number:4:3}
|
||||||
|
LIMIT 1
|
||||||
|
"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
382
switch/conf/autoload_configs/conference.conf.xml
Normal file
382
switch/conf/autoload_configs/conference.conf.xml
Normal file
@ -0,0 +1,382 @@
|
|||||||
|
<!-- http://wiki.freeswitch.org/wiki/Mod_conference -->
|
||||||
|
<!-- None of these paths are real if you want any of these options you need to really set them up -->
|
||||||
|
<configuration name="conference.conf" description="Audio Conference">
|
||||||
|
<!-- Advertise certain presence on startup . -->
|
||||||
|
<advertise>
|
||||||
|
<room name="3001@$${domain}" status="FreeSWITCH"/>
|
||||||
|
</advertise>
|
||||||
|
|
||||||
|
<!-- These are the default keys that map when you do not specify a caller control group -->
|
||||||
|
<!-- Note: none and default are reserved names for group names. Disabled if dist-dtmf member flag is set. -->
|
||||||
|
<caller-controls>
|
||||||
|
<group name="default">
|
||||||
|
<control action="mute" digits="0"/>
|
||||||
|
<control action="deaf mute" digits="*"/>
|
||||||
|
<control action="energy up" digits="9"/>
|
||||||
|
<control action="energy equ" digits="8"/>
|
||||||
|
<control action="energy dn" digits="7"/>
|
||||||
|
<control action="vol talk up" digits="3"/>
|
||||||
|
<control action="vol talk zero" digits="2"/>
|
||||||
|
<control action="vol talk dn" digits="1"/>
|
||||||
|
<control action="vol listen up" digits="6"/>
|
||||||
|
<control action="vol listen zero" digits="5"/>
|
||||||
|
<control action="vol listen dn" digits="4"/>
|
||||||
|
<control action="hangup" digits="#"/>
|
||||||
|
</group>
|
||||||
|
</caller-controls>
|
||||||
|
|
||||||
|
<!-- Profiles are collections of settings you can reference by name. -->
|
||||||
|
<profiles>
|
||||||
|
<!--If no profile is specified it will default to "default"-->
|
||||||
|
<profile name="default">
|
||||||
|
<!-- Directory to drop CDR's
|
||||||
|
'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
|
||||||
|
a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
|
||||||
|
absolute path means <value>/<confernece_uuid>.cdr.xml
|
||||||
|
-->
|
||||||
|
<!-- <param name="cdr-log-dir" value="auto"/> -->
|
||||||
|
|
||||||
|
<!-- Domain (for presence) -->
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<!-- Sample Rate-->
|
||||||
|
<param name="rate" value="8000"/>
|
||||||
|
<!-- Number of milliseconds per frame -->
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<!-- Energy level required for audio to be sent to the other users -->
|
||||||
|
<param name="energy-level" value="100"/>
|
||||||
|
|
||||||
|
<!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
|
||||||
|
even during silence. dist-dtmf propagates dtmfs to all other members, but channel controls
|
||||||
|
via dtmf will be disabled. -->
|
||||||
|
<!-- <param name="member-flags" value="waste"/> -->
|
||||||
|
|
||||||
|
<!-- Name of the caller control group to use for this profile -->
|
||||||
|
<!-- <param name="caller-controls" value="some name"/> -->
|
||||||
|
<!-- Name of the caller control group to use for the moderator in this profile -->
|
||||||
|
<!-- <param name="moderator-controls" value="some name"/> -->
|
||||||
|
<!-- TTS Engine to use -->
|
||||||
|
<!-- <param name="tts-engine" value="cepstral"/> -->
|
||||||
|
<!-- TTS Voice to use -->
|
||||||
|
<!-- <param name="tts-voice" value="david"/> -->
|
||||||
|
|
||||||
|
<!-- If TTS is enabled all audio-file params beginning with -->
|
||||||
|
<!-- 'say:' will be considered text to say with TTS -->
|
||||||
|
<!-- Override the default path here, after which you use relative paths in the other sound params -->
|
||||||
|
<!-- Note: The default path is the conference's first caller's sound_prefix -->
|
||||||
|
<!-- <param name="sound-prefix" value="$${sound_prefix}"/> -->
|
||||||
|
<!-- File to play to acknowledge succees -->
|
||||||
|
<!-- <param name="ack-sound" value="beep.wav"/> -->
|
||||||
|
<!-- File to play to acknowledge failure -->
|
||||||
|
<!-- <param name="nack-sound" value="beeperr.wav"/> -->
|
||||||
|
<!-- File to play to acknowledge muted -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<!-- File to play to acknowledge unmuted -->
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<!-- File to play if you are alone in the conference -->
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||||
|
<!-- <param name="perpetual-sound" value="perpetual.wav"/> -->
|
||||||
|
<!-- File to play when you're alone (music on hold)-->
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<!-- File to play when you join the conference -->
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<!-- File to play when you leave the conference -->
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<!-- File to play when you are ejected from the conference -->
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<!-- File to play when the conference is locked -->
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<!-- File to play when the conference is locked during the call-->
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<!-- File to play when the conference is unlocked during the call-->
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<!-- File to play to prompt for a pin -->
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<!-- File to play to when the pin is invalid -->
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<!-- Conference pin -->
|
||||||
|
<!-- <param name="pin" value="12345"/> -->
|
||||||
|
<!-- <param name="moderator-pin" value="54321"/> -->
|
||||||
|
<!-- Max number of times the user can be prompted for PIN -->
|
||||||
|
<!-- <param name="pin-retries" value="3"/> -->
|
||||||
|
<!-- Default Caller ID Name for outbound calls -->
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<!-- Default Caller ID Number for outbound calls -->
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<!-- Suppress start and stop talking events -->
|
||||||
|
<!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
|
||||||
|
<!-- enable comfort noise generation -->
|
||||||
|
<param name="comfort-noise" value="true"/>
|
||||||
|
<!-- Uncomment auto-record to toggle recording every conference call. -->
|
||||||
|
<!-- Another valid value is shout://user:pass@server.com/live.mp3 -->
|
||||||
|
<!--
|
||||||
|
<param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- IVR digit machine timeouts -->
|
||||||
|
<!-- How much to wait between DTMF digits to match caller-controls -->
|
||||||
|
<!-- <param name="ivr-dtmf-timeout" value="500"/> -->
|
||||||
|
<!-- How much to wait for the first DTMF, 0 forever -->
|
||||||
|
<!-- <param name="ivr-input-timeout" value="0" /> -->
|
||||||
|
<!-- Delay before a conference is asked to be terminated -->
|
||||||
|
<!-- <param name="endconf-grace-time" value="120" /> -->
|
||||||
|
<!-- Can be | delim of wait-mod|audio-always|video-bridge|video-floor-only
|
||||||
|
wait_mod will wait until the moderator in,
|
||||||
|
audio-always will always mix audio from all members regardless they are talking or not -->
|
||||||
|
<!-- <param name="conference-flags" value="audio-always"/> -->
|
||||||
|
<!-- Allow live array sync for Verto -->
|
||||||
|
<!-- <param name="conference-flags" value="livearray-sync"/> -->
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="wideband">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="16000"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="100"/>
|
||||||
|
<!-- <param name="sound-prefix" value="$${sound_prefix}"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="true"/>
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="ultrawideband">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="32000"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="100"/>
|
||||||
|
<!-- <param name="sound-prefix" value="$${sound_prefix}"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="true"/>
|
||||||
|
|
||||||
|
<!-- <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|auto-3d-position|transcode-video|minimize-video-encoding"/> -->
|
||||||
|
|
||||||
|
<!-- <param name="video-mode" value="mux"/> -->
|
||||||
|
<!-- <param name="video-layout-name" value="3x3"/> -->
|
||||||
|
<!-- <param name="video-layout-name" value="group:grid"/> -->
|
||||||
|
<!-- <param name="video-canvas-size" value="1280x720"/> -->
|
||||||
|
<!-- <param name="video-canvas-bgcolor" value="#333333"/> -->
|
||||||
|
<!-- <param name="video-layout-bgcolor" value="#000000"/> -->
|
||||||
|
<!-- <param name="video-codec-bandwidth" value="2mb"/> -->
|
||||||
|
<!-- <param name="video-fps" value="15"/> -->
|
||||||
|
<!-- <param name="video-auto-floor-msec" value="100"/> -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="cdquality">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="100"/>
|
||||||
|
<!-- <param name="sound-prefix" value="$${sound_prefix}"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="true"/>
|
||||||
|
|
||||||
|
<!-- <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|auto-3d-position|minimize-video-encoding"/> -->
|
||||||
|
|
||||||
|
<!-- <param name="video-mode" value="mux"/> -->
|
||||||
|
<!-- <param name="video-layout-name" value="3x3"/> -->
|
||||||
|
<!-- <param name="video-layout-name" value="group:grid"/> -->
|
||||||
|
<!-- <param name="video-canvas-size" value="1920x1080"/> -->
|
||||||
|
<!-- <param name="video-canvas-bgcolor" value="#333333"/> -->
|
||||||
|
<!-- <param name="video-layout-bgcolor" value="#000000"/> -->
|
||||||
|
<!-- <param name="video-codec-bandwidth" value="2mb"/> -->
|
||||||
|
<!-- <param name="video-fps" value="15"/> -->
|
||||||
|
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="video-mcu-stereo">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="channels" value="2"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="200"/>
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="false"/>
|
||||||
|
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
|
||||||
|
<param name="video-auto-floor-msec" value="1000"/>
|
||||||
|
<param name="video-mode" value="mux"/>
|
||||||
|
<param name="video-layout-name" value="3x3"/>
|
||||||
|
<param name="video-layout-name" value="group:grid"/>
|
||||||
|
<param name="video-canvas-size" value="1920x1080"/>
|
||||||
|
<param name="video-canvas-bgcolor" value="#333333"/>
|
||||||
|
<param name="video-layout-bgcolor" value="#000000"/>
|
||||||
|
<param name="video-codec-bandwidth" value="3mb"/>
|
||||||
|
<param name="video-fps" value="30"/>
|
||||||
|
<!-- <param name="video-codec-config-profile-name" value="conference"/> -->
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="video-mcu-stereo-720">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="channels" value="2"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="200"/>
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="false"/>
|
||||||
|
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
|
||||||
|
<param name="video-auto-floor-msec" value="1000"/>
|
||||||
|
<param name="video-mode" value="mux"/>
|
||||||
|
<param name="video-layout-name" value="3x3"/>
|
||||||
|
<param name="video-layout-name" value="group:grid"/>
|
||||||
|
<param name="video-canvas-size" value="1280x720"/>
|
||||||
|
<param name="video-canvas-bgcolor" value="#333333"/>
|
||||||
|
<param name="video-layout-bgcolor" value="#000000"/>
|
||||||
|
<param name="video-codec-bandwidth" value="3mb"/>
|
||||||
|
<param name="video-fps" value="30"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="video-mcu-stereo-480">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="channels" value="2"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="200"/>
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="false"/>
|
||||||
|
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
|
||||||
|
<param name="video-auto-floor-msec" value="1000"/>
|
||||||
|
<param name="video-mode" value="mux"/>
|
||||||
|
<param name="video-layout-name" value="3x3"/>
|
||||||
|
<param name="video-layout-name" value="group:grid"/>
|
||||||
|
<param name="video-canvas-size" value="640x480"/>
|
||||||
|
<param name="video-canvas-bgcolor" value="#333333"/>
|
||||||
|
<param name="video-layout-bgcolor" value="#000000"/>
|
||||||
|
<param name="video-codec-bandwidth" value="3mb"/>
|
||||||
|
<param name="video-fps" value="30"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="video-mcu-stereo-320">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="channels" value="2"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="energy-level" value="200"/>
|
||||||
|
<!-- <param name="tts-engine" value="flite"/> -->
|
||||||
|
<!-- <param name="tts-voice" value="kal16"/> -->
|
||||||
|
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||||
|
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||||
|
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||||
|
<param name="moh-sound" value="$${hold_music}"/>
|
||||||
|
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||||
|
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||||
|
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||||
|
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||||
|
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||||
|
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||||
|
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||||
|
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||||
|
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||||
|
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||||
|
<param name="comfort-noise" value="false"/>
|
||||||
|
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
|
||||||
|
<param name="video-auto-floor-msec" value="1000"/>
|
||||||
|
<param name="video-mode" value="mux"/>
|
||||||
|
<param name="video-layout-name" value="3x3"/>
|
||||||
|
<param name="video-layout-name" value="group:grid"/>
|
||||||
|
<param name="video-canvas-size" value="480x320"/>
|
||||||
|
<param name="video-canvas-bgcolor" value="#333333"/>
|
||||||
|
<param name="video-layout-bgcolor" value="#000000"/>
|
||||||
|
<param name="video-codec-bandwidth" value="3mb"/>
|
||||||
|
<param name="video-fps" value="30"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile name="sla">
|
||||||
|
<param name="domain" value="$${domain}"/>
|
||||||
|
<param name="rate" value="16000"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="caller-controls" value="none"/>
|
||||||
|
<param name="energy-level" value="200"/>
|
||||||
|
<param name="moh-sound" value="silence"/>
|
||||||
|
<param name="comfort-noise" value="true"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
393
switch/conf/autoload_configs/conference_layouts.conf.xml
Normal file
393
switch/conf/autoload_configs/conference_layouts.conf.xml
Normal file
@ -0,0 +1,393 @@
|
|||||||
|
<configuration name="conference_layouts.conf" description="Audio Conference">
|
||||||
|
<layout-settings>
|
||||||
|
<layouts>
|
||||||
|
<layout name="1x1">
|
||||||
|
<image x="0" y="0" scale="360" floor="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="1x2" auto-3d-position="true">
|
||||||
|
<image x="90" y="0" scale="180"/>
|
||||||
|
<image x="90" y="180" scale="180"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2x1" auto-3d-position="true">
|
||||||
|
<image x="0" y="90" scale="180"/>
|
||||||
|
<image x="180" y="90" scale="180"/>
|
||||||
|
</layout>
|
||||||
|
|
||||||
|
<layout name="2x1-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180" hscale="360" zoom="true"/>
|
||||||
|
<image x="180" y="0" scale="180" hscale="360" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="3x1-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="120" hscale="360" zoom="true"/>
|
||||||
|
<image x="120" y="0" scale="120" hscale="360" zoom="true"/>
|
||||||
|
<image x="240" y="0" scale="120" hscale="360" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="5-grid-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180"/>
|
||||||
|
<image x="180" y="0" scale="180"/>
|
||||||
|
<image x="0" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="120" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="240" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="3x2-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="120" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="240" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="0" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="120" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="240" y="180" scale="120" hscale="180" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="7-grid-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="120" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="240" y="0" scale="120" hscale="180" zoom="true"/>
|
||||||
|
<image x="0" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="90" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="180" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="270" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="4x2-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="90" y="0" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="180" y="0" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="270" y="0" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="0" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="90" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="180" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
<image x="270" y="180" scale="90" hscale="180" zoom="true"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="1x1+2x1" auto-3d-position="true">
|
||||||
|
<image x="90" y="0" scale="180"/>
|
||||||
|
<image x="0" y="180" scale="180"/>
|
||||||
|
<image x="180" y="180" scale="180"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2x2" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180"/>
|
||||||
|
<image x="180" y="0" scale="180"/>
|
||||||
|
<image x="0" y="180" scale="180"/>
|
||||||
|
<image x="180" y="180" scale="180"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="3x3" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="120"/>
|
||||||
|
<image x="120" y="0" scale="120"/>
|
||||||
|
<image x="240" y="0" scale="120"/>
|
||||||
|
<image x="0" y="120" scale="120"/>
|
||||||
|
<image x="120" y="120" scale="120"/>
|
||||||
|
<image x="240" y="120" scale="120"/>
|
||||||
|
<image x="0" y="240" scale="120"/>
|
||||||
|
<image x="120" y="240" scale="120"/>
|
||||||
|
<image x="240" y="240" scale="120"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="4x4" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="90"/>
|
||||||
|
<image x="90" y="0" scale="90"/>
|
||||||
|
<image x="180" y="0" scale="90"/>
|
||||||
|
<image x="270" y="0" scale="90"/>
|
||||||
|
<image x="0" y="90" scale="90"/>
|
||||||
|
<image x="90" y="90" scale="90"/>
|
||||||
|
<image x="180" y="90" scale="90"/>
|
||||||
|
<image x="270" y="90" scale="90"/>
|
||||||
|
<image x="0" y="180" scale="90"/>
|
||||||
|
<image x="90" y="180" scale="90"/>
|
||||||
|
<image x="180" y="180" scale="90"/>
|
||||||
|
<image x="270" y="180" scale="90"/>
|
||||||
|
<image x="0" y="270" scale="90"/>
|
||||||
|
<image x="90" y="270" scale="90"/>
|
||||||
|
<image x="180" y="270" scale="90"/>
|
||||||
|
<image x="270" y="270" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="5x5" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="72"/>
|
||||||
|
<image x="72" y="0" scale="72"/>
|
||||||
|
<image x="144" y="0" scale="72"/>
|
||||||
|
<image x="216" y="0" scale="72"/>
|
||||||
|
<image x="288" y="0" scale="72"/>
|
||||||
|
<image x="0" y="72" scale="72"/>
|
||||||
|
<image x="72" y="72" scale="72"/>
|
||||||
|
<image x="144" y="72" scale="72"/>
|
||||||
|
<image x="216" y="72" scale="72"/>
|
||||||
|
<image x="288" y="72" scale="72"/>
|
||||||
|
<image x="0" y="144" scale="72"/>
|
||||||
|
<image x="72" y="144" scale="72"/>
|
||||||
|
<image x="144" y="144" scale="72"/>
|
||||||
|
<image x="216" y="144" scale="72"/>
|
||||||
|
<image x="288" y="144" scale="72"/>
|
||||||
|
<image x="0" y="216" scale="72"/>
|
||||||
|
<image x="72" y="216" scale="72"/>
|
||||||
|
<image x="144" y="216" scale="72"/>
|
||||||
|
<image x="216" y="216" scale="72"/>
|
||||||
|
<image x="288" y="216" scale="72"/>
|
||||||
|
<image x="0" y="288" scale="72"/>
|
||||||
|
<image x="72" y="288" scale="72"/>
|
||||||
|
<image x="144" y="288" scale="72"/>
|
||||||
|
<image x="216" y="288" scale="72"/>
|
||||||
|
<image x="288" y="288" scale="72"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="6x6" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="60"/>
|
||||||
|
<image x="60" y="0" scale="60"/>
|
||||||
|
<image x="120" y="0" scale="60"/>
|
||||||
|
<image x="180" y="0" scale="60"/>
|
||||||
|
<image x="240" y="0" scale="60"/>
|
||||||
|
<image x="300" y="0" scale="60"/>
|
||||||
|
<image x="0" y="60" scale="60"/>
|
||||||
|
<image x="60" y="60" scale="60"/>
|
||||||
|
<image x="120" y="60" scale="60"/>
|
||||||
|
<image x="180" y="60" scale="60"/>
|
||||||
|
<image x="240" y="60" scale="60"/>
|
||||||
|
<image x="300" y="60" scale="60"/>
|
||||||
|
<image x="0" y="120" scale="60"/>
|
||||||
|
<image x="60" y="120" scale="60"/>
|
||||||
|
<image x="120" y="120" scale="60"/>
|
||||||
|
<image x="180" y="120" scale="60"/>
|
||||||
|
<image x="240" y="120" scale="60"/>
|
||||||
|
<image x="300" y="120" scale="60"/>
|
||||||
|
<image x="0" y="180" scale="60"/>
|
||||||
|
<image x="60" y="180" scale="60"/>
|
||||||
|
<image x="120" y="180" scale="60"/>
|
||||||
|
<image x="180" y="180" scale="60"/>
|
||||||
|
<image x="240" y="180" scale="60"/>
|
||||||
|
<image x="300" y="180" scale="60"/>
|
||||||
|
<image x="0" y="240" scale="60"/>
|
||||||
|
<image x="60" y="240" scale="60"/>
|
||||||
|
<image x="120" y="240" scale="60"/>
|
||||||
|
<image x="180" y="240" scale="60"/>
|
||||||
|
<image x="240" y="240" scale="60"/>
|
||||||
|
<image x="300" y="240" scale="60"/>
|
||||||
|
<image x="0" y="300" scale="60"/>
|
||||||
|
<image x="60" y="300" scale="60"/>
|
||||||
|
<image x="120" y="300" scale="60"/>
|
||||||
|
<image x="180" y="300" scale="60"/>
|
||||||
|
<image x="240" y="300" scale="60"/>
|
||||||
|
<image x="300" y="300" scale="60"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="8x8" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="45"/>
|
||||||
|
<image x="45" y="0" scale="45"/>
|
||||||
|
<image x="90" y="0" scale="45"/>
|
||||||
|
<image x="135" y="0" scale="45"/>
|
||||||
|
<image x="180" y="0" scale="45"/>
|
||||||
|
<image x="225" y="0" scale="45"/>
|
||||||
|
<image x="270" y="0" scale="45"/>
|
||||||
|
<image x="315" y="0" scale="45"/>
|
||||||
|
<image x="0" y="45" scale="45"/>
|
||||||
|
<image x="45" y="45" scale="45"/>
|
||||||
|
<image x="90" y="45" scale="45"/>
|
||||||
|
<image x="135" y="45" scale="45"/>
|
||||||
|
<image x="180" y="45" scale="45"/>
|
||||||
|
<image x="225" y="45" scale="45"/>
|
||||||
|
<image x="270" y="45" scale="45"/>
|
||||||
|
<image x="315" y="45" scale="45"/>
|
||||||
|
<image x="0" y="90" scale="45"/>
|
||||||
|
<image x="45" y="90" scale="45"/>
|
||||||
|
<image x="90" y="90" scale="45"/>
|
||||||
|
<image x="135" y="90" scale="45"/>
|
||||||
|
<image x="180" y="90" scale="45"/>
|
||||||
|
<image x="225" y="90" scale="45"/>
|
||||||
|
<image x="270" y="90" scale="45"/>
|
||||||
|
<image x="315" y="90" scale="45"/>
|
||||||
|
<image x="0" y="135" scale="45"/>
|
||||||
|
<image x="45" y="135" scale="45"/>
|
||||||
|
<image x="90" y="135" scale="45"/>
|
||||||
|
<image x="135" y="135" scale="45"/>
|
||||||
|
<image x="180" y="135" scale="45"/>
|
||||||
|
<image x="225" y="135" scale="45"/>
|
||||||
|
<image x="270" y="135" scale="45"/>
|
||||||
|
<image x="315" y="135" scale="45"/>
|
||||||
|
<image x="0" y="180" scale="45"/>
|
||||||
|
<image x="45" y="180" scale="45"/>
|
||||||
|
<image x="90" y="180" scale="45"/>
|
||||||
|
<image x="135" y="180" scale="45"/>
|
||||||
|
<image x="180" y="180" scale="45"/>
|
||||||
|
<image x="225" y="180" scale="45"/>
|
||||||
|
<image x="270" y="180" scale="45"/>
|
||||||
|
<image x="315" y="180" scale="45"/>
|
||||||
|
<image x="0" y="225" scale="45"/>
|
||||||
|
<image x="45" y="225" scale="45"/>
|
||||||
|
<image x="90" y="225" scale="45"/>
|
||||||
|
<image x="135" y="225" scale="45"/>
|
||||||
|
<image x="180" y="225" scale="45"/>
|
||||||
|
<image x="225" y="225" scale="45"/>
|
||||||
|
<image x="270" y="225" scale="45"/>
|
||||||
|
<image x="315" y="225" scale="45"/>
|
||||||
|
<image x="0" y="270" scale="45"/>
|
||||||
|
<image x="45" y="270" scale="45"/>
|
||||||
|
<image x="90" y="270" scale="45"/>
|
||||||
|
<image x="135" y="270" scale="45"/>
|
||||||
|
<image x="180" y="270" scale="45"/>
|
||||||
|
<image x="225" y="270" scale="45"/>
|
||||||
|
<image x="270" y="270" scale="45"/>
|
||||||
|
<image x="315" y="270" scale="45"/>
|
||||||
|
<image x="0" y="315" scale="45"/>
|
||||||
|
<image x="45" y="315" scale="45"/>
|
||||||
|
<image x="90" y="315" scale="45"/>
|
||||||
|
<image x="135" y="315" scale="45"/>
|
||||||
|
<image x="180" y="315" scale="45"/>
|
||||||
|
<image x="225" y="315" scale="45"/>
|
||||||
|
<image x="270" y="315" scale="45"/>
|
||||||
|
<image x="315" y="315" scale="45"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="1up_top_left+5" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="240" floor="true"/>
|
||||||
|
<image x="240" y="0" scale="120"/>
|
||||||
|
<image x="240" y="120" scale="120"/>
|
||||||
|
<image x="0" y="240" scale="120"/>
|
||||||
|
<image x="120" y="240" scale="120"/>
|
||||||
|
<image x="240" y="240" scale="120"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="1up_top_left+7" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="270" floor="true"/>
|
||||||
|
<image x="270" y="0" scale="90"/>
|
||||||
|
<image x="270" y="90" scale="90"/>
|
||||||
|
<image x="270" y="180" scale="90"/>
|
||||||
|
<image x="0" y="270" scale="90"/>
|
||||||
|
<image x="90" y="270" scale="90"/>
|
||||||
|
<image x="180" y="270" scale="90"/>
|
||||||
|
<image x="270" y="270" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="1up_top_left+9" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="288" floor="true"/>
|
||||||
|
<image x="288" y="0" scale="72"/>
|
||||||
|
<image x="288" y="72" scale="72"/>
|
||||||
|
<image x="288" y="144" scale="72"/>
|
||||||
|
<image x="288" y="216" scale="72"/>
|
||||||
|
<image x="0" y="288" scale="72"/>
|
||||||
|
<image x="72" y="288" scale="72"/>
|
||||||
|
<image x="144" y="288" scale="72"/>
|
||||||
|
<image x="216" y="288" scale="72"/>
|
||||||
|
<image x="288" y="288" scale="72"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2up_top+8" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180" floor="true"/>
|
||||||
|
<image x="180" y="0" scale="180" reservation_id="secondary"/>
|
||||||
|
<image x="0" y="180" scale="90"/>
|
||||||
|
<image x="90" y="180" scale="90"/>
|
||||||
|
<image x="180" y="180" scale="90"/>
|
||||||
|
<image x="270" y="180" scale="90"/>
|
||||||
|
<image x="0" y="270" scale="90"/>
|
||||||
|
<image x="90" y="270" scale="90"/>
|
||||||
|
<image x="180" y="270" scale="90"/>
|
||||||
|
<image x="270" y="270" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2up_middle+8" auto-3d-position="true">
|
||||||
|
<image x="0" y="90" scale="180" floor="true"/>
|
||||||
|
<image x="180" y="90" scale="180" reservation_id="secondary"/>
|
||||||
|
<image x="0" y="0" scale="90"/>
|
||||||
|
<image x="90" y="0" scale="90"/>
|
||||||
|
<image x="180" y="0" scale="90"/>
|
||||||
|
<image x="270" y="0" scale="90"/>
|
||||||
|
<image x="0" y="270" scale="90"/>
|
||||||
|
<image x="90" y="270" scale="90"/>
|
||||||
|
<image x="180" y="270" scale="90"/>
|
||||||
|
<image x="270" y="270" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2up_bottom+8" auto-3d-position="true">
|
||||||
|
<image x="0" y="180" scale="180" floor="true"/>
|
||||||
|
<image x="180" y="180" scale="180" reservation_id="secondary"/>
|
||||||
|
<image x="0" y="0" scale="90"/>
|
||||||
|
<image x="90" y="0" scale="90"/>
|
||||||
|
<image x="180" y="0" scale="90"/>
|
||||||
|
<image x="270" y="0" scale="90"/>
|
||||||
|
<image x="0" y="90" scale="90"/>
|
||||||
|
<image x="90" y="90" scale="90"/>
|
||||||
|
<image x="180" y="90" scale="90"/>
|
||||||
|
<image x="270" y="90" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="3up+4" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180" floor="true"/>
|
||||||
|
<image x="180" y="0" scale="180" reservation_id="secondary"/>
|
||||||
|
<image x="0" y="180" scale="180" reservation_id="third"/>
|
||||||
|
<image x="180" y="180" scale="90"/>
|
||||||
|
<image x="270" y="180" scale="90"/>
|
||||||
|
<image x="180" y="270" scale="90"/>
|
||||||
|
<image x="270" y="270" scale="90"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="3up+9" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180" floor="true"/>
|
||||||
|
<image x="180" y="0" scale="180" reservation_id="secondary"/>
|
||||||
|
<image x="0" y="180" scale="180" reservation_id="third"/>
|
||||||
|
<image x="180" y="180" scale="60"/>
|
||||||
|
<image x="240" y="180" scale="60"/>
|
||||||
|
<image x="300" y="180" scale="60"/>
|
||||||
|
<image x="180" y="240" scale="60"/>
|
||||||
|
<image x="240" y="240" scale="60"/>
|
||||||
|
<image x="300" y="240" scale="60"/>
|
||||||
|
<image x="180" y="300" scale="60"/>
|
||||||
|
<image x="240" y="300" scale="60"/>
|
||||||
|
<image x="300" y="300" scale="60"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="2x1-presenter-zoom" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="180" hscale="360" zoom="true" floor="true"/>
|
||||||
|
<image x="180" y="0" scale="180" hscale="360" zoom="true" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-dual-vertical">
|
||||||
|
<image x="90" y="0" scale="180" floor-only="true"/>
|
||||||
|
<image x="90" y="180" scale="180" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-dual-horizontal">
|
||||||
|
<image x="0" y="90" scale="180" floor-only="true"/>
|
||||||
|
<image x="180" y="90" scale="180" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-overlap-small-top-right">
|
||||||
|
<image x="0" y="0" scale="360" floor-only="true"/>
|
||||||
|
<image x="300" y="0" scale="60" overlap="true" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-overlap-small-bot-right">
|
||||||
|
<image x="0" y="0" scale="360" floor-only="true"/>
|
||||||
|
<image x="300" y="300" scale="60" overlap="true" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-overlap-large-top-right">
|
||||||
|
<image x="0" y="0" scale="360" floor-only="true"/>
|
||||||
|
<image x="180" y="0" scale="180" overlap="true" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="presenter-overlap-large-bot-right">
|
||||||
|
<image x="0" y="0" scale="360" floor-only="true"/>
|
||||||
|
<image x="180" y="180" scale="180" overlap="true" reservation_id="presenter"/>
|
||||||
|
</layout>
|
||||||
|
<layout name="overlaps" auto-3d-position="true">
|
||||||
|
<image x="0" y="0" scale="360" floor-only="true"/>
|
||||||
|
<image x="300" y="300" scale="60" overlap="true"/>
|
||||||
|
<image x="240" y="300" scale="60" overlap="true"/>
|
||||||
|
<image x="180" y="300" scale="60" overlap="true"/>
|
||||||
|
<image x="120" y="300" scale="60" overlap="true"/>
|
||||||
|
<image x="60" y="300" scale="60" overlap="true"/>
|
||||||
|
<image x="0" y="300" scale="60" overlap="true"/>
|
||||||
|
</layout>
|
||||||
|
|
||||||
|
|
||||||
|
</layouts>
|
||||||
|
<groups>
|
||||||
|
<group name="grid">
|
||||||
|
<layout>1x1</layout>
|
||||||
|
<layout>2x1</layout>
|
||||||
|
<layout>1x1+2x1</layout>
|
||||||
|
<layout>2x2</layout>
|
||||||
|
<layout>3x3</layout>
|
||||||
|
<layout>4x4</layout>
|
||||||
|
<layout>5x5</layout>
|
||||||
|
<layout>6x6</layout>
|
||||||
|
<layout>8x8</layout>
|
||||||
|
</group>
|
||||||
|
<group name="grid-zoom">
|
||||||
|
<layout>1x1</layout>
|
||||||
|
<layout>2x1-zoom</layout>
|
||||||
|
<layout>3x1-zoom</layout>
|
||||||
|
<layout>2x2</layout>
|
||||||
|
<layout>5-grid-zoom</layout>
|
||||||
|
<layout>3x2-zoom</layout>
|
||||||
|
<layout>7-grid-zoom</layout>
|
||||||
|
<layout>4x2-zoom</layout>
|
||||||
|
<layout>3x3</layout>
|
||||||
|
</group>
|
||||||
|
<group name="1up_top_left_plus">
|
||||||
|
<layout>1up_top_left+5</layout>
|
||||||
|
<layout>1up_top_left+7</layout>
|
||||||
|
<layout>1up_top_left+9</layout>
|
||||||
|
</group>
|
||||||
|
<group name="3up_plus">
|
||||||
|
<layout>3up+4</layout>
|
||||||
|
<layout>3up+9</layout>
|
||||||
|
</group>
|
||||||
|
</groups>
|
||||||
|
</layout-settings>
|
||||||
|
</configuration>
|
56
switch/conf/autoload_configs/console.conf.xml
Normal file
56
switch/conf/autoload_configs/console.conf.xml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<configuration name="console.conf" description="Console Logger">
|
||||||
|
<!-- pick a file name, a function name or 'all' -->
|
||||||
|
<!-- map as many as you need for specific debugging -->
|
||||||
|
<mappings>
|
||||||
|
<!--
|
||||||
|
name can be a file name, function name or 'all'
|
||||||
|
value is one or more of debug,info,notice,warning,err,crit,alert,all
|
||||||
|
See examples below
|
||||||
|
|
||||||
|
|
||||||
|
The following map is the default, which is all debug levels enabled:
|
||||||
|
<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
|
||||||
|
|
||||||
|
|
||||||
|
Example: the following turns on debugging for error and critical levels only
|
||||||
|
<map name="all" value="err,crit"/>
|
||||||
|
|
||||||
|
NOTE: using map name="all" will override any other settings! If you
|
||||||
|
want a more specific set of console messages then you will need
|
||||||
|
to specify which files and/or functions you want to have debug
|
||||||
|
messages. One option is to turn on just the more critical
|
||||||
|
messages with map name="all", then specify the other types of
|
||||||
|
console messages you want to see for various files and functions.
|
||||||
|
|
||||||
|
Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
|
||||||
|
levels for various modules and functions
|
||||||
|
|
||||||
|
<map name="all" value="err,crit,alert"/>
|
||||||
|
<map name="switch_loadable_module_process" value="all"/>
|
||||||
|
<map name="mod_local_stream.c" value="warning,debug"/>
|
||||||
|
<map name="mod_sndfile.c" value="warning,info,debug"/>
|
||||||
|
-->
|
||||||
|
<map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
You can use or modify this sample set of mappings. It turns on higher
|
||||||
|
level messages for all modules and then specifies extra lower level
|
||||||
|
messages for freetdm, Sofia, and switch core messages.
|
||||||
|
|
||||||
|
<map name="all" value="warning,err,crit,alert"/>
|
||||||
|
<map name="zap_analog.c" value="all"/>
|
||||||
|
<map name="zap_io.c" value="all"/>
|
||||||
|
<map name="zap_isdn.c" value="all"/>
|
||||||
|
<map name="zap_zt.c" value="all"/>
|
||||||
|
<map name="mod_freetdm" value="all"/>
|
||||||
|
<map name="sofia.c" value="notice"/>
|
||||||
|
<map name="switch_core_state_machine.c" value="all"/>
|
||||||
|
|
||||||
|
-->
|
||||||
|
</mappings>
|
||||||
|
<settings>
|
||||||
|
<!-- comment or set to false for no color logging -->
|
||||||
|
<param name="colorize" value="true"/>
|
||||||
|
<param name="loglevel" value="$${console_loglevel}"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
5
switch/conf/autoload_configs/curl.conf.xml
Normal file
5
switch/conf/autoload_configs/curl.conf.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<configuration name="curl.conf" description="cURL module">
|
||||||
|
<settings>
|
||||||
|
<param name="max-bytes" value="64000"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
5
switch/conf/autoload_configs/db.conf.xml
Normal file
5
switch/conf/autoload_configs/db.conf.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<configuration name="db.conf" description="LIMIT DB Configuration">
|
||||||
|
<settings>
|
||||||
|
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
9
switch/conf/autoload_configs/dialplan_directory.conf.xml
Normal file
9
switch/conf/autoload_configs/dialplan_directory.conf.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<configuration name="dialplan_directory.conf" description="Dialplan Directory">
|
||||||
|
<settings>
|
||||||
|
<param name="directory-name" value="ldap"/>
|
||||||
|
<param name="host" value="ldap.freeswitch.org"/>
|
||||||
|
<param name="dn" value="cn=Manager,dc=freeswitch,dc=org"/>
|
||||||
|
<param name="pass" value="test"/>
|
||||||
|
<param name="base" value="dc=freeswitch,dc=org"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
21
switch/conf/autoload_configs/directory.conf.xml
Normal file
21
switch/conf/autoload_configs/directory.conf.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<configuration name="directory.conf" description="Directory">
|
||||||
|
<settings>
|
||||||
|
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
|
||||||
|
<!--<param name="dbname" value="directory"/>-->
|
||||||
|
</settings>
|
||||||
|
<profiles>
|
||||||
|
<profile name="default">
|
||||||
|
<param name="max-menu-attempts" value="3"/>
|
||||||
|
<param name="min-search-digits" value="3"/>
|
||||||
|
<param name="terminator-key" value="#"/>
|
||||||
|
<param name="digit-timeout" value="3000"/>
|
||||||
|
<param name="max-result" value="5"/>
|
||||||
|
<param name="next-key" value="6"/>
|
||||||
|
<param name="prev-key" value="4"/>
|
||||||
|
<param name="switch-order-key" value="*"/>
|
||||||
|
<param name="select-name-key" value="1"/>
|
||||||
|
<param name="new-search-key" value="3"/>
|
||||||
|
<param name="search-order" value="last_name"/>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
10
switch/conf/autoload_configs/distributor.conf.xml
Normal file
10
switch/conf/autoload_configs/distributor.conf.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<configuration name="distributor.conf" description="Distributor Configuration">
|
||||||
|
<lists>
|
||||||
|
<!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
|
||||||
|
<!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
|
||||||
|
<list name="test">
|
||||||
|
<node name="foo1" weight="1"/>
|
||||||
|
<node name="foo2" weight="9"/>
|
||||||
|
</list>
|
||||||
|
</lists>
|
||||||
|
</configuration>
|
28
switch/conf/autoload_configs/easyroute.conf.xml
Normal file
28
switch/conf/autoload_configs/easyroute.conf.xml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<configuration name="easyroute.conf" description="EasyRoute Module">
|
||||||
|
<settings>
|
||||||
|
<!-- These are kind Obvious -->
|
||||||
|
<param name="db-username" value="root"/>
|
||||||
|
<param name="db-password" value="password"/>
|
||||||
|
<param name="db-dsn" value="easyroute"/>
|
||||||
|
|
||||||
|
<!-- Default Technology and profile -->
|
||||||
|
<param name="default-techprofile" value="sofia/default"/>
|
||||||
|
|
||||||
|
<!-- IP or Hostname of Default Route -->
|
||||||
|
<param name="default-gateway" value="192.168.66.6"/>
|
||||||
|
|
||||||
|
<!-- Number of times to retry ODBC connection on connection problems, default is 120 -->
|
||||||
|
<param name="odbc-retries" value="120"/>
|
||||||
|
|
||||||
|
<!-- Customer Query. Use this with Care!!! We are not responsible if you mess
|
||||||
|
This up!!! Query *MUST* return columns in the following order!
|
||||||
|
gateway varchar(128) - contains destination gateway host:port pair (ex: 192.168.1.1:5060 )
|
||||||
|
group varchar(128) - contains optional group name
|
||||||
|
call_limit varchar(16) - contains optional call limit
|
||||||
|
tech_prefix varchar(128) - tech prefix used to build dial string (ex: sofia/default )
|
||||||
|
acctcode varchar(128) - used to set channel variable acctcode for logging into the CDRs
|
||||||
|
destination_number varchar(16) - Number returning for the query for building the dial string. (ex: 18005551212)
|
||||||
|
See Documentation on the Wiki for further information -->
|
||||||
|
<!-- <param name="custom-query" value="call FS_GET_SIP_LOCATION(%s);"/> -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
21
switch/conf/autoload_configs/enum.conf.xml
Normal file
21
switch/conf/autoload_configs/enum.conf.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<configuration name="enum.conf" description="ENUM Module">
|
||||||
|
<settings>
|
||||||
|
<param name="default-root" value="e164.org"/>
|
||||||
|
<param name="default-isn-root" value="freenum.org"/>
|
||||||
|
<param name="auto-reload" value="true"/>
|
||||||
|
|
||||||
|
<param name="query-timeout-ms" value="200"/>
|
||||||
|
<param name="query-timeout-retry" value="2"/>
|
||||||
|
<param name="random-nameserver" value="false"/>
|
||||||
|
|
||||||
|
<!-- If you have specific (non-recursive) servers for your enum queries, specify them here ( up to 10 ) -->
|
||||||
|
<!-- <param name="nameserver" value="x.x.x.x"/> -->
|
||||||
|
<!-- <param name="nameserver" value="y.y.y.y"/> -->
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<routes>
|
||||||
|
<route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=udp|sofia/${use_profile}/$1;transport=udp"/>
|
||||||
|
<route service="E2T+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tcp|sofia/${use_profile}/$1;transport=tcp"/>
|
||||||
|
<route service="E2T+SIPS" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tls|sofia/${use_profile}/$1;transport=tls"/>
|
||||||
|
</routes>
|
||||||
|
</configuration>
|
23
switch/conf/autoload_configs/erlang_event.conf.xml
Normal file
23
switch/conf/autoload_configs/erlang_event.conf.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<configuration name="erlang_event.conf" description="Erlang Socket Client">
|
||||||
|
<settings>
|
||||||
|
<param name="listen-ip" value="0.0.0.0"/>
|
||||||
|
<param name="listen-port" value="8031"/>
|
||||||
|
<!-- Specify the first part of the node name
|
||||||
|
(the host part after the @ will be autodetected)
|
||||||
|
OR pass a complete nodename to avoid autodetection
|
||||||
|
eg. freeswitch@example or freeswitch@example.com.
|
||||||
|
If you pass a complete node name, the 'shortname' parameter has no effect. -->
|
||||||
|
<param name="nodename" value="freeswitch"/>
|
||||||
|
<!-- Specify this OR 'cookie-file' or $HOME/.erlang.cookie will be read -->
|
||||||
|
<param name="cookie" value="ClueCon"/>
|
||||||
|
<!-- Read a cookie from an arbitary erlang cookie file instead -->
|
||||||
|
<!--<param name="cookie-file" value="/$${temp_dir}/erlang.cookie"/>-->
|
||||||
|
<param name="shortname" value="true"/>
|
||||||
|
<!-- in additon to cookie, optionally restrict by ACL -->
|
||||||
|
<!--<param name="apply-inbound-acl" value="lan"/>-->
|
||||||
|
<!-- alternative is "binary" -->
|
||||||
|
<!--<param name="encoding" value="string"/>-->
|
||||||
|
<!-- provide compatability with previous OTP release (use with care) -->
|
||||||
|
<!--<param name="compat-rel" value="12"/> -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
14
switch/conf/autoload_configs/event_multicast.conf.xml
Normal file
14
switch/conf/autoload_configs/event_multicast.conf.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<configuration name="event_multicast.conf" description="Multicast Event">
|
||||||
|
<settings>
|
||||||
|
<param name="address" value="225.1.1.1"/>
|
||||||
|
<param name="port" value="4242"/>
|
||||||
|
<param name="bindings" value="all"/>
|
||||||
|
<param name="ttl" value="1"/>
|
||||||
|
<!-- <param name="loopback" value="no"/>-->
|
||||||
|
<!-- Uncomment this to enable pre-shared key encryption on the packets. -->
|
||||||
|
<!-- For this option to work, you'll need to have the openssl development -->
|
||||||
|
<!-- headers installed when you ran ./configure -->
|
||||||
|
<!-- <param name="psk" value="ClueCon"/> -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
||||||
|
|
10
switch/conf/autoload_configs/event_socket.conf.xml
Normal file
10
switch/conf/autoload_configs/event_socket.conf.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<configuration name="event_socket.conf" description="Socket Client">
|
||||||
|
<settings>
|
||||||
|
<param name="nat-map" value="false"/>
|
||||||
|
<param name="listen-ip" value="0.0.0.0"/>
|
||||||
|
<param name="listen-port" value="62221"/>
|
||||||
|
<param name="password" value="305852127a3c0a6c"/>
|
||||||
|
<!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
|
||||||
|
<!--<param name="stop-on-bind-error" value="true"/>-->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
12
switch/conf/autoload_configs/fax.conf.xml
Normal file
12
switch/conf/autoload_configs/fax.conf.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration name="fax.conf" description="FAX application configuration">
|
||||||
|
<settings>
|
||||||
|
<param name="use-ecm" value="true"/>
|
||||||
|
<param name="verbose" value="false"/>
|
||||||
|
<param name="disable-v17" value="false"/>
|
||||||
|
<param name="ident" value="SpanDSP Fax Ident"/>
|
||||||
|
<param name="header" value="SpanDSP Fax Header"/>
|
||||||
|
|
||||||
|
<param name="spool-dir" value="$${temp_dir}"/>
|
||||||
|
<param name="file-prefix" value="faxrx"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
10
switch/conf/autoload_configs/fifo.conf.xml
Normal file
10
switch/conf/autoload_configs/fifo.conf.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<configuration name="fifo.conf" description="FIFO Configuration">
|
||||||
|
<settings>
|
||||||
|
<param name="delete-all-outbound-member-on-startup" value="false"/>
|
||||||
|
</settings>
|
||||||
|
<fifos>
|
||||||
|
<fifo name="cool_fifo@$${domain}" importance="0">
|
||||||
|
<!--<member timeout="60" simo="1" lag="20">{member_wait=nowait}user/1005@$${domain}</member>-->
|
||||||
|
</fifo>
|
||||||
|
</fifos>
|
||||||
|
</configuration>
|
88
switch/conf/autoload_configs/format_cdr.conf.xml
Normal file
88
switch/conf/autoload_configs/format_cdr.conf.xml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<configuration name="format_cdr.conf" description="Multi Format CDR CURL logger">
|
||||||
|
|
||||||
|
<!-- You can have multiple profiles, to allow logging to both json and cdr simultaneously, or to
|
||||||
|
different paths or servers with different settings, just be sure to use different name for
|
||||||
|
each profile. -->
|
||||||
|
<profiles>
|
||||||
|
|
||||||
|
<profile name="default">
|
||||||
|
<settings>
|
||||||
|
<!-- the format of data to send, defaults to xml -->
|
||||||
|
<!-- <param name="format" value="json|xml"/> -->
|
||||||
|
<param name="format" value="xml"/>
|
||||||
|
|
||||||
|
<!-- the url to post to if blank web posting is disabled -->
|
||||||
|
<!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
|
||||||
|
|
||||||
|
<!-- optional: credentials to send to web server -->
|
||||||
|
<!-- <param name="cred" value="user:pass"/> -->
|
||||||
|
|
||||||
|
<!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
|
||||||
|
<!-- <param name="retries" value="2"/> -->
|
||||||
|
|
||||||
|
<!-- delay between retries in seconds, default is 5 seconds -->
|
||||||
|
<!-- <param name="delay" value="1"/> -->
|
||||||
|
|
||||||
|
<!-- Log via http and on disk, default is false -->
|
||||||
|
<!-- <param name="log-http-and-disk" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- optional: if not present we do not log every record to disk -->
|
||||||
|
<!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/format_cdr -->
|
||||||
|
<param name="log-dir" value=""/>
|
||||||
|
|
||||||
|
<!-- optional: if not present we do log the b leg -->
|
||||||
|
<!-- true or false if we should create a cdr for the b leg of a call-->
|
||||||
|
<param name="log-b-leg" value="false"/>
|
||||||
|
|
||||||
|
<!-- optional: if not present, all filenames are the uuid of the call -->
|
||||||
|
<!-- true or false if a leg files are prefixed "a_" -->
|
||||||
|
<param name="prefix-a-leg" value="true"/>
|
||||||
|
|
||||||
|
<!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
|
||||||
|
<param name="encode" value="true"/>
|
||||||
|
|
||||||
|
<!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting -->
|
||||||
|
<!--<param name="disable-100-continue" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
|
||||||
|
<!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/format_cdr -->
|
||||||
|
<!-- <param name="err-log-dir" value="$${temp_dir}"/> -->
|
||||||
|
|
||||||
|
<!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
|
||||||
|
<!--<param name="auth-scheme" value="basic"/>-->
|
||||||
|
|
||||||
|
<!-- optional: this will enable the CA root certificate check by libcurl to
|
||||||
|
verify that the certificate was issued by a major Certificate Authority.
|
||||||
|
note: default value is disabled. only enable if you want this! -->
|
||||||
|
<!--<param name="enable-cacert-check" value="true"/>-->
|
||||||
|
<!-- optional: verify that the server is actually the one listed in the cert -->
|
||||||
|
<!-- <param name="enable-ssl-verifyhost" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- optional: these options can be used to specify custom SSL certificates
|
||||||
|
to use for HTTPS communications. Either use both options or neither.
|
||||||
|
Specify your public key with 'ssl-cert-path' and the private key with
|
||||||
|
'ssl-key-path'. If your private key has a password, specify it with
|
||||||
|
'ssl-key-password'. -->
|
||||||
|
<!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
|
||||||
|
<!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
|
||||||
|
<!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
|
||||||
|
|
||||||
|
<!-- optional: use a custom CA certificate in PEM format to verify the peer
|
||||||
|
with. This is useful if you are acting as your own certificate authority.
|
||||||
|
note: only makes sense if used in combination with "enable-cacert-check." -->
|
||||||
|
<!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
|
||||||
|
|
||||||
|
<!-- optional: specify the SSL version to force HTTPS to use. Valid options are
|
||||||
|
"SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
|
||||||
|
<!-- <param name="ssl-version" value="TLSv1"/> -->
|
||||||
|
|
||||||
|
<!-- optional: enables cookies and stores them in the specified file. -->
|
||||||
|
<!-- <param name="cookie-file" value="/$${temp_dir}/cookie-mod_format_cdr_curl.txt"/> -->
|
||||||
|
|
||||||
|
<!-- Whether to URL encode the individual JSON values. Defaults to true, set to false for standard JSON. -->
|
||||||
|
<param name="encode-values" value="true"/>
|
||||||
|
|
||||||
|
</settings>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
24
switch/conf/autoload_configs/graylog2.conf.xml
Normal file
24
switch/conf/autoload_configs/graylog2.conf.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<configuration name="graylog2.conf" description="Graylog2 Logger">
|
||||||
|
<!-- emerg - system is unusable -->
|
||||||
|
<!-- alert - action must be taken immediately -->
|
||||||
|
<!-- crit - critical conditions -->
|
||||||
|
<!-- err - error conditions -->
|
||||||
|
<!-- warning - warning conditions -->
|
||||||
|
<!-- notice - normal, but significant, condition -->
|
||||||
|
<!-- info - informational message -->
|
||||||
|
<!-- debug - debug-level message -->
|
||||||
|
<settings>
|
||||||
|
<param name="server-host" value="192.168.0.69"/>
|
||||||
|
<param name="server-port" value="12201"/>
|
||||||
|
<param name="loglevel" value="warning"/>
|
||||||
|
<!-- Uncomment if using logstash w/ gelf.rb -->
|
||||||
|
<!--param name="send-uncompressed-header" value="true"/-->
|
||||||
|
|
||||||
|
<!-- fields to add to every log associated w/ a session -->
|
||||||
|
<fields>
|
||||||
|
<!-- for example: channel variable "customer_account_number" will be the data source for the customer field in graylog2 -->
|
||||||
|
<!--field name="customer" variable="customer_account_number"/-->
|
||||||
|
</fields>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
||||||
|
|
6
switch/conf/autoload_configs/hash.conf.xml
Normal file
6
switch/conf/autoload_configs/hash.conf.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<configuration name="hash.conf" description="Hash Configuration">
|
||||||
|
<remotes>
|
||||||
|
<!-- List of hosts from where to pull usage data -->
|
||||||
|
<!-- <remote name="Test1" host="10.0.0.10" port="8021" password="ClueCon" interval="1000" /> -->
|
||||||
|
</remotes>
|
||||||
|
</configuration>
|
23
switch/conf/autoload_configs/hiredis.conf.xml
Normal file
23
switch/conf/autoload_configs/hiredis.conf.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<configuration name="hiredis.conf" description="mod_hiredis">
|
||||||
|
<profiles>
|
||||||
|
<profile name="default">
|
||||||
|
<connections>
|
||||||
|
<connection name="primary">
|
||||||
|
<param name="hostname" value="172.18.101.101"/>
|
||||||
|
<param name="password" value="redis"/>
|
||||||
|
<param name="port" value="6379"/>
|
||||||
|
<param name="timeout_ms" value="500"/>
|
||||||
|
</connection>
|
||||||
|
<connection name="secondary">
|
||||||
|
<param name="hostname" value="localhost"/>
|
||||||
|
<param name="password" value="redis"/>
|
||||||
|
<param name="port" value="6380"/>
|
||||||
|
<param name="timeout_ms" value="500"/>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
<params>
|
||||||
|
<param name="ignore-connect-fail" value="true"/>
|
||||||
|
</params>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
129
switch/conf/autoload_configs/httapi.conf.xml
Normal file
129
switch/conf/autoload_configs/httapi.conf.xml
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<configuration name="httapi.conf" description="HT-TAPI Hypertext Telephony API">
|
||||||
|
<settings>
|
||||||
|
<!-- print xml on the console -->
|
||||||
|
<param name="debug" value="true"/>
|
||||||
|
<!-- time to keep audio files when discovered they were deleted from the http server -->
|
||||||
|
<param name="file-not-found-expires" value="300"/>
|
||||||
|
<!-- how often to re-check the server to make sure the remote file has not changed -->
|
||||||
|
<param name="file-cache-ttl" value="300"/>
|
||||||
|
</settings>
|
||||||
|
<profiles>
|
||||||
|
<profile name="default">
|
||||||
|
|
||||||
|
<!-- default params for conference action tags -->
|
||||||
|
<conference>
|
||||||
|
<param name="default-profile" value="default"/>
|
||||||
|
</conference>
|
||||||
|
|
||||||
|
<!-- default params for dial action tags -->
|
||||||
|
<dial>
|
||||||
|
<param name="context" value="default"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
</dial>
|
||||||
|
|
||||||
|
<!-- permissions -->
|
||||||
|
<permissions>
|
||||||
|
<!-- <permission name="all" value="true"/> -->
|
||||||
|
<!--<permission name="none" value="true"/> -->
|
||||||
|
<permission name="set-params" value="true"/>
|
||||||
|
<permission name="set-vars" value="false">
|
||||||
|
<!-- default to "deny" or "allow" -->
|
||||||
|
<!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
|
||||||
|
<!--
|
||||||
|
<variable-list default="deny">
|
||||||
|
<variable name="caller_id_name"/>
|
||||||
|
<variable name="hangup"/>
|
||||||
|
</variable-list>
|
||||||
|
-->
|
||||||
|
</permission>
|
||||||
|
<permission name="get-vars" value="false">
|
||||||
|
<!-- default to "deny" or "allow" -->
|
||||||
|
<!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
|
||||||
|
<!--
|
||||||
|
<variable-list default="deny">
|
||||||
|
<variable name="caller_id_name"/>
|
||||||
|
<variable name="hangup"/>
|
||||||
|
</variable-list>
|
||||||
|
-->
|
||||||
|
</permission>
|
||||||
|
<permission name="extended-data" value="false"/>
|
||||||
|
<permission name="execute-apps" value="true">
|
||||||
|
<!-- default to "deny" or "allow" -->
|
||||||
|
<application-list default="deny">
|
||||||
|
<!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
|
||||||
|
<application name="info"/>
|
||||||
|
<application name="hangup"/>
|
||||||
|
</application-list>
|
||||||
|
</permission>
|
||||||
|
<permission name="expand-vars-in-tag-body" value="false">
|
||||||
|
<!-- default to "deny" or "allow" -->
|
||||||
|
<!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
|
||||||
|
<!--
|
||||||
|
<variable-list default="deny">
|
||||||
|
<variable name="caller_id_name"/>
|
||||||
|
<variable name="hangup"/>
|
||||||
|
</variable-list>
|
||||||
|
|
||||||
|
<api-list default="deny">
|
||||||
|
<api name="expr"/>
|
||||||
|
<api name="lua"/>
|
||||||
|
</api-list>
|
||||||
|
-->
|
||||||
|
</permission>
|
||||||
|
<permission name="dial" value="true"/>
|
||||||
|
<permission name="dial-set-context" value="false"/>
|
||||||
|
<permission name="dial-set-dialplan" value="false"/>
|
||||||
|
<permission name="dial-set-cid-name" value="false"/>
|
||||||
|
<permission name="dial-set-cid-number" value="false"/>
|
||||||
|
<permission name="dial-full-originate" value="false"/>
|
||||||
|
<permission name="conference" value="true"/>
|
||||||
|
<permission name="conference-set-profile" value="false"/>
|
||||||
|
</permissions>
|
||||||
|
|
||||||
|
<params>
|
||||||
|
<!-- default url can be overridden by app data -->
|
||||||
|
<param name="gateway-url" value="http://www.freeswitch.org/api/index.cgi" />
|
||||||
|
|
||||||
|
<!-- set this to provide authentication credentials to the server -->
|
||||||
|
<!--<param name="gateway-credentials" value="muser:mypass"/>-->
|
||||||
|
<!--<param name="auth-scheme" value="basic"/>-->
|
||||||
|
|
||||||
|
<!-- optional: this will enable the CA root certificate check by libcurl to
|
||||||
|
verify that the certificate was issued by a major Certificate Authority.
|
||||||
|
note: default value is disabled. only enable if you want this! -->
|
||||||
|
<!--<param name="enable-cacert-check" value="true"/>-->
|
||||||
|
<!-- optional: verify that the server is actually the one listed in the cert -->
|
||||||
|
<!-- <param name="enable-ssl-verifyhost" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- optional: these options can be used to specify custom SSL certificates
|
||||||
|
to use for HTTPS communications. Either use both options or neither.
|
||||||
|
Specify your public key with 'ssl-cert-path' and the private key with
|
||||||
|
'ssl-key-path'. If your private key has a password, specify it with
|
||||||
|
'ssl-key-password'. -->
|
||||||
|
<!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
|
||||||
|
<!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
|
||||||
|
<!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
|
||||||
|
<!-- optional timeout -->
|
||||||
|
<!-- <param name="timeout" value="10"/> -->
|
||||||
|
<!-- optional: maximum amount of time in seconds that is allowed to make the connection to the server -->
|
||||||
|
<!-- <param name="connect-timeout" value="2"/> -->
|
||||||
|
|
||||||
|
<!-- optional: use a custom CA certificate in PEM format to verify the peer
|
||||||
|
with. This is useful if you are acting as your own certificate authority.
|
||||||
|
note: only makes sense if used in combination with "enable-cacert-check." -->
|
||||||
|
<!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
|
||||||
|
|
||||||
|
<!-- optional: specify the SSL version to force HTTPS to use. Valid options are
|
||||||
|
"SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
|
||||||
|
<!-- <param name="ssl-version" value="TLSv1"/> -->
|
||||||
|
|
||||||
|
<!-- optional: enables cookies and stores them in the specified file. -->
|
||||||
|
<!-- <param name="cookie-file" value="$${temp_dir}/cookie-mod_xml_curl.txt"/> -->
|
||||||
|
|
||||||
|
<!-- one or more of these imply you want to pick the exact variables that are transmitted -->
|
||||||
|
<!--<param name="enable-post-var" value="Caller-Unique-ID"/>-->
|
||||||
|
</params>
|
||||||
|
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
21
switch/conf/autoload_configs/http_cache.conf.xml
Normal file
21
switch/conf/autoload_configs/http_cache.conf.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<configuration name="http_cache.conf" description="HTTP GET cache">
|
||||||
|
<settings>
|
||||||
|
<!-- set to true if you want to enable http:// and https:// formats. Do not use if mod_httapi is also loaded -->
|
||||||
|
<param name="enable-file-formats" value="false"/>
|
||||||
|
<param name="max-urls" value="10000"/>
|
||||||
|
<param name="location" value="$${cache_dir}"/>
|
||||||
|
<param name="default-max-age" value="86400"/>
|
||||||
|
<param name="prefetch-thread-count" value="8"/>
|
||||||
|
<param name="prefetch-queue-size" value="100"/>
|
||||||
|
<!-- absolute path to CA bundle file -->
|
||||||
|
<param name="ssl-cacert" value="$${certs_dir}/cacert.pem"/>
|
||||||
|
<!-- verify certificates -->
|
||||||
|
<param name="ssl-verifypeer" value="true"/>
|
||||||
|
<!-- verify host name matches certificate -->
|
||||||
|
<param name="ssl-verifyhost" value="true"/>
|
||||||
|
<!-- default is 300 seconds, override here -->
|
||||||
|
<!--param name="connect-timeout" value="300"/-->
|
||||||
|
<!-- default is 300 seconds, override here -->
|
||||||
|
<!--param name="download-timeout" value="300"/-->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
5
switch/conf/autoload_configs/ivr.conf.xml
Normal file
5
switch/conf/autoload_configs/ivr.conf.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<configuration name="ivr.conf" description="IVR menus">
|
||||||
|
<menus>
|
||||||
|
<X-PRE-PROCESS cmd="include" data="../ivr_menus/*.xml"/>
|
||||||
|
</menus>
|
||||||
|
</configuration>
|
8
switch/conf/autoload_configs/java.conf.xml
Normal file
8
switch/conf/autoload_configs/java.conf.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<configuration name="java.conf" description="Java Plug-Ins">
|
||||||
|
<javavm path="/opt/jdk1.6.0_04/jre/lib/amd64/server/libjvm.so"/>
|
||||||
|
<options>
|
||||||
|
<option value="-Djava.class.path=$${script_dir}/freeswitch.jar:$${script_dir}/example.jar"/>
|
||||||
|
<option value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8000"/>
|
||||||
|
</options>
|
||||||
|
<startup class="org/freeswitch/example/ApplicationLauncher" method="startup"/>
|
||||||
|
</configuration>
|
215
switch/conf/autoload_configs/kazoo.conf.xml
Normal file
215
switch/conf/autoload_configs/kazoo.conf.xml
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration name="kazoo.conf" description="General purpose Erlang c-node produced to better fit the Kazoo project">
|
||||||
|
<settings>
|
||||||
|
<param name="listen-ip" value="0.0.0.0" />
|
||||||
|
<param name="listen-port" value="8031" />
|
||||||
|
<!--<param name="cookie-file" value="/etc/freeswitch/autoload_configs/.erlang.cookie" />-->
|
||||||
|
<param name="cookie" value="change_me" />
|
||||||
|
<param name="shortname" value="false" />
|
||||||
|
<param name="nodename" value="freeswitch" />
|
||||||
|
<param name="send-msg-batch-size" value="10" />
|
||||||
|
<param name="receive-timeout" value="1" />
|
||||||
|
<!--<param name="receive-msg-preallocate" value="0" />-->
|
||||||
|
<!--<param name="event-stream-preallocate" value="0" />-->
|
||||||
|
<!--<param name="event-stream-framing" value="2" />-->
|
||||||
|
<!--<param name="kazoo-var-prefix" value="ecallmgr" />-->
|
||||||
|
<!--<param name="compat-rel" value="12"/> -->
|
||||||
|
</settings>
|
||||||
|
<event-filter type="whitelist">
|
||||||
|
<header name="Acquired-UUID" />
|
||||||
|
<header name="action" />
|
||||||
|
<header name="Action" />
|
||||||
|
<header name="alt_event_type" />
|
||||||
|
<header name="Answer-State" />
|
||||||
|
<header name="Application" />
|
||||||
|
<header name="Application-Data" />
|
||||||
|
<header name="Application-Name" />
|
||||||
|
<header name="Application-Response" />
|
||||||
|
<header name="att_xfer_replaced_by" />
|
||||||
|
<header name="Auth-Method" />
|
||||||
|
<header name="Auth-Realm" />
|
||||||
|
<header name="Auth-User" />
|
||||||
|
<header name="Bridge-A-Unique-ID" />
|
||||||
|
<header name="Bridge-B-Unique-ID" />
|
||||||
|
<header name="Call-Direction" />
|
||||||
|
<header name="Caller-Callee-ID-Name" />
|
||||||
|
<header name="Caller-Callee-ID-Number" />
|
||||||
|
<header name="Caller-Caller-ID-Name" />
|
||||||
|
<header name="Caller-Caller-ID-Number" />
|
||||||
|
<header name="Caller-Context" />
|
||||||
|
<header name="Caller-Controls" />
|
||||||
|
<header name="Caller-Destination-Number" />
|
||||||
|
<header name="Caller-Dialplan" />
|
||||||
|
<header name="Caller-Network-Addr" />
|
||||||
|
<header name="Caller-Unique-ID" />
|
||||||
|
<header name="Call-ID" />
|
||||||
|
<header name="Channel-Call-State" />
|
||||||
|
<header name="Channel-Call-UUID" />
|
||||||
|
<header name="Channel-Presence-ID" />
|
||||||
|
<header name="Channel-State" />
|
||||||
|
<header name="Chat-Permissions" />
|
||||||
|
<header name="Conference-Name" />
|
||||||
|
<header name="Conference-Profile-Name" />
|
||||||
|
<header name="Conference-Unique-ID" />
|
||||||
|
<header name="Conference-Size" />
|
||||||
|
<header name="New-ID" />
|
||||||
|
<header name="Old-ID" />
|
||||||
|
<header name="Detected-Tone" />
|
||||||
|
<header name="dialog_state" />
|
||||||
|
<header name="direction" />
|
||||||
|
<header name="Distributed-From" />
|
||||||
|
<header name="DTMF-Digit" />
|
||||||
|
<header name="DTMF-Duration" />
|
||||||
|
<header name="Event-Date-Timestamp" />
|
||||||
|
<header name="Event-Name" />
|
||||||
|
<header name="Event-Subclass" />
|
||||||
|
<header name="Expires" />
|
||||||
|
<header name="Ext-SIP-IP" />
|
||||||
|
<header name="File" />
|
||||||
|
<header name="FreeSWITCH-Hostname" />
|
||||||
|
<header name="from" />
|
||||||
|
<header name="Hunt-Destination-Number" />
|
||||||
|
<header name="ip" />
|
||||||
|
<header name="Message-Account" />
|
||||||
|
<header name="metadata" />
|
||||||
|
<header name="old_node_channel_uuid" />
|
||||||
|
<header name="Other-Leg-Callee-ID-Name" />
|
||||||
|
<header name="Other-Leg-Callee-ID-Number" />
|
||||||
|
<header name="Other-Leg-Caller-ID-Name" />
|
||||||
|
<header name="Other-Leg-Caller-ID-Number" />
|
||||||
|
<header name="Other-Leg-Destination-Number" />
|
||||||
|
<header name="Other-Leg-Direction" />
|
||||||
|
<header name="Other-Leg-Unique-ID" />
|
||||||
|
<header name="Participant-Type" />
|
||||||
|
<header name="Path" />
|
||||||
|
<header name="profile_name" />
|
||||||
|
<header name="Profiles" />
|
||||||
|
<header name="proto-specific-event-name" />
|
||||||
|
<header name="Raw-Application-Data" />
|
||||||
|
<header name="Resigning-UUID" />
|
||||||
|
<header name="set" />
|
||||||
|
<header name="sip_auto_answer" />
|
||||||
|
<header name="sip_auth_method" />
|
||||||
|
<header name="sip_from_host" />
|
||||||
|
<header name="sip_from_user" />
|
||||||
|
<header name="sip_to_host" />
|
||||||
|
<header name="sip_to_user" />
|
||||||
|
<header name="sub-call-id" />
|
||||||
|
<header name="technology" />
|
||||||
|
<header name="to" />
|
||||||
|
<header name="Unique-ID" />
|
||||||
|
<header name="URL" />
|
||||||
|
<header name="variable_channel_is_moving" />
|
||||||
|
<header name="variable_collected_digits" />
|
||||||
|
<header name="variable_current_application" />
|
||||||
|
<header name="variable_current_application_data" />
|
||||||
|
<header name="variable_domain_name" />
|
||||||
|
<header name="variable_effective_caller_id_name" />
|
||||||
|
<header name="variable_effective_caller_id_number" />
|
||||||
|
<header name="variable_fax_bad_rows" />
|
||||||
|
<header name="variable_fax_document_total_pages" />
|
||||||
|
<header name="variable_fax_document_transferred_pages" />
|
||||||
|
<header name="variable_fax_ecm_used" />
|
||||||
|
<header name="variable_fax_result_code" />
|
||||||
|
<header name="variable_fax_result_text" />
|
||||||
|
<header name="variable_fax_success" />
|
||||||
|
<header name="variable_fax_transfer_rate" />
|
||||||
|
<header name="variable_holding_uuid" />
|
||||||
|
<header name="variable_hold_music" />
|
||||||
|
<header name="variable_media_group_id" />
|
||||||
|
<header name="variable_originate_disposition" />
|
||||||
|
<header name="variable_playback_terminator_used" />
|
||||||
|
<header name="variable_presence_id" />
|
||||||
|
<header name="variable_record_ms" />
|
||||||
|
<header name="variable_recovered" />
|
||||||
|
<header name="variable_silence_hits_exhausted" />
|
||||||
|
<header name="variable_sip_auth_realm" />
|
||||||
|
<header name="variable_sip_from_host" />
|
||||||
|
<header name="variable_sip_from_user" />
|
||||||
|
<header name="variable_sip_h_X-AUTH-IP" />
|
||||||
|
<header name="variable_sip_received_ip" />
|
||||||
|
<header name="variable_sip_to_host" />
|
||||||
|
<header name="variable_sip_to_user" />
|
||||||
|
<header name="variable_sofia_profile_name" />
|
||||||
|
<header name="variable_transfer_history" />
|
||||||
|
<header name="variable_user_name" />
|
||||||
|
<header name="variable_endpoint_disposition" />
|
||||||
|
<header name="variable_originate_disposition" />
|
||||||
|
<header name="variable_bridge_hangup_cause" />
|
||||||
|
<header name="variable_hangup_cause" />
|
||||||
|
<header name="variable_last_bridge_proto_specific_hangup_cause" />
|
||||||
|
<header name="variable_proto_specific_hangup_cause" />
|
||||||
|
<header name="VM-Call-ID" />
|
||||||
|
<header name="VM-sub-call-id" />
|
||||||
|
<header name="whistle_application_name" />
|
||||||
|
<header name="whistle_application_response" />
|
||||||
|
<header name="whistle_event_name" />
|
||||||
|
<header name="sip_auto_answer_notify" />
|
||||||
|
<header name="eavesdrop_group" />
|
||||||
|
<header name="origination_caller_id_name" />
|
||||||
|
<header name="origination_caller_id_number" />
|
||||||
|
<header name="origination_callee_id_name" />
|
||||||
|
<header name="origination_callee_id_number" />
|
||||||
|
<header name="sip_auth_username" />
|
||||||
|
<header name="sip_auth_password" />
|
||||||
|
<header name="effective_caller_id_name" />
|
||||||
|
<header name="effective_caller_id_number" />
|
||||||
|
<header name="effective_callee_id_name" />
|
||||||
|
<header name="effective_callee_id_number" />
|
||||||
|
|
||||||
|
<!-- Registrations -->
|
||||||
|
<header name="call-id" />
|
||||||
|
<header name="profile-name" />
|
||||||
|
<header name="from-user" />
|
||||||
|
<header name="from-host" />
|
||||||
|
<header name="presence-hosts" />
|
||||||
|
<header name="contact" />
|
||||||
|
<header name="rpid" />
|
||||||
|
<header name="status" />
|
||||||
|
<header name="expires" />
|
||||||
|
<header name="to-user" />
|
||||||
|
<header name="to-host" />
|
||||||
|
<header name="network-ip" />
|
||||||
|
<header name="network-port" />
|
||||||
|
<header name="username" />
|
||||||
|
<header name="realm" />
|
||||||
|
<header name="user-agent" />
|
||||||
|
|
||||||
|
<!-- CDR Headers -->
|
||||||
|
<header name="Hangup-Cause" />
|
||||||
|
<header name="Unique-ID" />
|
||||||
|
<header name="variable_switch_r_sdp" />
|
||||||
|
<header name="variable_sip_local_sdp_str" />
|
||||||
|
<header name="variable_sip_to_uri" />
|
||||||
|
<header name="variable_sip_from_uri" />
|
||||||
|
<header name="variable_effective_caller_id_number" />
|
||||||
|
<header name="Caller-Caller-ID-Number" />
|
||||||
|
<header name="variable_effective_caller_id_name" />
|
||||||
|
<header name="Caller-Caller-ID-Name" />
|
||||||
|
<header name="Caller-Callee-ID-Name" />
|
||||||
|
<header name="Caller-Callee-ID-Number" />
|
||||||
|
<header name="Other-Leg-Unique-ID" />
|
||||||
|
<header name="variable_sip_user_agent" />
|
||||||
|
<header name="variable_duration" />
|
||||||
|
<header name="variable_billsec" />
|
||||||
|
<header name="variable_progresssec" />
|
||||||
|
<header name="variable_progress_uepoch" />
|
||||||
|
<header name="variable_progress_media_uepoch" />
|
||||||
|
<header name="variable_start_uepoch" />
|
||||||
|
<header name="variable_digits_dialed" />
|
||||||
|
<header name="variable_sip_cid_type" />
|
||||||
|
|
||||||
|
<!-- Conference Headers -->
|
||||||
|
<header name="Hear" />
|
||||||
|
<header name="Speak" />
|
||||||
|
<header name="Video" />
|
||||||
|
<header name="Talking" />
|
||||||
|
<header name="Mute-Detect" />
|
||||||
|
<header name="Member-ID" />
|
||||||
|
<header name="Member-Type" />
|
||||||
|
<header name="Energy-Level" />
|
||||||
|
<header name="Current-Energy" />
|
||||||
|
<header name="Floor" />
|
||||||
|
|
||||||
|
</event-filter>
|
||||||
|
</configuration>
|
89
switch/conf/autoload_configs/lcr.conf.xml
Normal file
89
switch/conf/autoload_configs/lcr.conf.xml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<configuration name="lcr.conf" description="LCR Configuration">
|
||||||
|
<settings>
|
||||||
|
<param name="odbc-dsn" value="freeswitch-mysql:freeswitch:Fr33Sw1tch"/>
|
||||||
|
<!-- <param name="odbc-dsn" value="freeswitch-pgsql:freeswitch:Fr33Sw1tch"/> -->
|
||||||
|
</settings>
|
||||||
|
<profiles>
|
||||||
|
<profile name="default">
|
||||||
|
<param name="id" value="0"/>
|
||||||
|
<param name="order_by" value="rate,quality,reliability"/>
|
||||||
|
</profile>
|
||||||
|
<profile name="qual_rel">
|
||||||
|
<param name="id" value="1"/>
|
||||||
|
<param name="order_by" value="quality,reliability"/>
|
||||||
|
</profile>
|
||||||
|
<profile name="rel_qual">
|
||||||
|
<param name="id" value="2"/>
|
||||||
|
<param name="order_by" value="reliability,quality"/>
|
||||||
|
</profile>
|
||||||
|
<!--
|
||||||
|
Some samples of how to do custom SQL:
|
||||||
|
|
||||||
|
=============================================================
|
||||||
|
PostgreSQL with contrib prefix module which supports fast
|
||||||
|
prefix queries. Ideal option.
|
||||||
|
=============================================================
|
||||||
|
<profile name="pg_prefix">
|
||||||
|
<param name="custom_sql" value="
|
||||||
|
SELECT l.digits AS lcr_digits,
|
||||||
|
c.carrier_name AS lcr_carrier_name,
|
||||||
|
l.${lcr_rate_field} as lcr_rate_field,
|
||||||
|
cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
|
||||||
|
l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
|
||||||
|
l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
|
||||||
|
FROM lcr l
|
||||||
|
JOIN carriers c ON l.carrier_id=c.id
|
||||||
|
JOIN carrier_gateway cg ON c.id=cg.carrier_id
|
||||||
|
WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
|
||||||
|
AND digits_prefix @> %q
|
||||||
|
AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
|
||||||
|
ORDER BY digits DESC, ${lcr_rate_field}, random();
|
||||||
|
"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
=============================================================
|
||||||
|
PostgreSQL with contrib prefix module which supports fast
|
||||||
|
prefix queries. Ideal option. Alternate syntax which requies
|
||||||
|
a session but allows variable substitution.
|
||||||
|
=============================================================
|
||||||
|
<profile name="pg_prefix2">
|
||||||
|
<param name="custom_sql" value="
|
||||||
|
SELECT l.digits AS lcr_digits,
|
||||||
|
c.carrier_name AS lcr_carrier_name,
|
||||||
|
l.${lcr_rate_field} as lcr_rate_field,
|
||||||
|
cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
|
||||||
|
l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
|
||||||
|
l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
|
||||||
|
FROM lcr l
|
||||||
|
JOIN carriers c ON l.carrier_id=c.id
|
||||||
|
JOIN carrier_gateway cg ON c.id=cg.carrier_id
|
||||||
|
WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
|
||||||
|
AND digits_prefix @> '${lcr_query_digits}'
|
||||||
|
AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
|
||||||
|
ORDER BY digits DESC, ${lcr_rate_field}, random();
|
||||||
|
"/>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
=============================================================
|
||||||
|
Demonstrates use of computed inlist.
|
||||||
|
=============================================================
|
||||||
|
<profile name="inlist">
|
||||||
|
<param name="custom_sql" value="
|
||||||
|
SELECT l.digits AS lcr_digits,
|
||||||
|
c.carrier_name AS lcr_carrier_name,
|
||||||
|
l.${lcr_rate_field} as lcr_rate_field,
|
||||||
|
cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
|
||||||
|
l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
|
||||||
|
l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
|
||||||
|
FROM lcr l
|
||||||
|
JOIN carriers c ON l.carrier_id=c.id
|
||||||
|
JOIN carrier_gateway cg ON c.id=cg.carrier_id
|
||||||
|
WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
|
||||||
|
AND digits IN (${lcr_query_expanded_digits})
|
||||||
|
AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
|
||||||
|
ORDER BY digits DESC, ${lcr_rate_field}, random();
|
||||||
|
"/>
|
||||||
|
</profile>
|
||||||
|
-->
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
49
switch/conf/autoload_configs/local_stream.conf.xml
Normal file
49
switch/conf/autoload_configs/local_stream.conf.xml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<configuration name="local_stream.conf" description="stream files from local dir">
|
||||||
|
<!-- fallback to default if requested moh class isn't found -->
|
||||||
|
<directory name="default" path="$${sounds_dir}/music/8000">
|
||||||
|
<param name="rate" value="8000"/>
|
||||||
|
<param name="shuffle" value="true"/>
|
||||||
|
<param name="channels" value="1"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="timer-name" value="soft"/>
|
||||||
|
<!-- list of short files to break in with every so often -->
|
||||||
|
<!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
|
||||||
|
<!-- frequency of break-in (seconds)-->
|
||||||
|
<!--<param name="chime-freq" value="30"/>-->
|
||||||
|
<!-- limit to how many seconds the file will play -->
|
||||||
|
<!--<param name="chime-max" value="500"/>-->
|
||||||
|
</directory>
|
||||||
|
|
||||||
|
<directory name="moh/8000" path="$${sounds_dir}/music/8000">
|
||||||
|
<param name="rate" value="8000"/>
|
||||||
|
<param name="shuffle" value="true"/>
|
||||||
|
<param name="channels" value="1"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="timer-name" value="soft"/>
|
||||||
|
</directory>
|
||||||
|
|
||||||
|
<directory name="moh/16000" path="$${sounds_dir}/music/16000">
|
||||||
|
<param name="rate" value="16000"/>
|
||||||
|
<param name="shuffle" value="true"/>
|
||||||
|
<param name="channels" value="1"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="timer-name" value="soft"/>
|
||||||
|
</directory>
|
||||||
|
|
||||||
|
<directory name="moh/32000" path="$${sounds_dir}/music/32000">
|
||||||
|
<param name="rate" value="32000"/>
|
||||||
|
<param name="shuffle" value="true"/>
|
||||||
|
<param name="channels" value="1"/>
|
||||||
|
<param name="interval" value="20"/>
|
||||||
|
<param name="timer-name" value="soft"/>
|
||||||
|
</directory>
|
||||||
|
|
||||||
|
<directory name="moh/48000" path="$${sounds_dir}/music/48000">
|
||||||
|
<param name="rate" value="48000"/>
|
||||||
|
<param name="shuffle" value="true"/>
|
||||||
|
<param name="channels" value="1"/>
|
||||||
|
<param name="interval" value="10"/>
|
||||||
|
<param name="timer-name" value="soft"/>
|
||||||
|
</directory>
|
||||||
|
|
||||||
|
</configuration>
|
29
switch/conf/autoload_configs/logfile.conf.xml
Normal file
29
switch/conf/autoload_configs/logfile.conf.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<configuration name="logfile.conf" description="File Logging">
|
||||||
|
<settings>
|
||||||
|
<!-- true to auto rotate on HUP, false to open/close -->
|
||||||
|
<param name="rotate-on-hup" value="true"/>
|
||||||
|
</settings>
|
||||||
|
<profiles>
|
||||||
|
<profile name="default">
|
||||||
|
<settings>
|
||||||
|
<!-- File to log to -->
|
||||||
|
<!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
|
||||||
|
<!-- At this length in bytes rotate the log file (0 for never) -->
|
||||||
|
<param name="rollover" value="1048576000"/>
|
||||||
|
<!-- Maximum number of log files to keep before wrapping -->
|
||||||
|
<!-- If this parameter is enabled, the log filenames will not include a date stamp -->
|
||||||
|
<param name="maximum-rotate" value="32"/>
|
||||||
|
<!-- Prefix all log lines by the session's uuid -->
|
||||||
|
<param name="uuid" value="true" />
|
||||||
|
</settings>
|
||||||
|
<mappings>
|
||||||
|
<!--
|
||||||
|
name can be a file name, function name or 'all'
|
||||||
|
value is one or more of debug,info,notice,warning,err,crit,alert,all
|
||||||
|
Please see comments in console.conf.xml for more information
|
||||||
|
-->
|
||||||
|
<map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
|
||||||
|
</mappings>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
32
switch/conf/autoload_configs/lua.conf.xml
Normal file
32
switch/conf/autoload_configs/lua.conf.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<configuration name="lua.conf" description="LUA Configuration">
|
||||||
|
<settings>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Specify local directories that will be searched for LUA modules
|
||||||
|
These entries will be pre-pended to the LUA_CPATH environment variable
|
||||||
|
-->
|
||||||
|
<!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
|
||||||
|
<!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Specify local directories that will be searched for LUA scripts
|
||||||
|
These entries will be pre-pended to the LUA_PATH environment variable
|
||||||
|
-->
|
||||||
|
<!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
|
||||||
|
<!-- <param name="script-directory" value="$${script_dir}/?.lua"/> -->
|
||||||
|
|
||||||
|
<!--<param name="xml-handler-script" value="/dp.lua"/>-->
|
||||||
|
<!--<param name="xml-handler-bindings" value="dialplan"/>-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The following options identifies a lua script that is launched
|
||||||
|
at startup and may live forever in the background.
|
||||||
|
You can define multiple lines, one for each script you
|
||||||
|
need to run.
|
||||||
|
-->
|
||||||
|
<!--<param name="startup-script" value="startup_script_1.lua"/>-->
|
||||||
|
<!--<param name="startup-script" value="startup_script_2.lua"/>-->
|
||||||
|
|
||||||
|
<!--<hook event="CUSTOM" subclass="conference::maintenance" script="catch-event.lua"/>-->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
6
switch/conf/autoload_configs/memcache.conf.xml
Normal file
6
switch/conf/autoload_configs/memcache.conf.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<configuration name="memcache.conf" description="memcache Configuration">
|
||||||
|
<settings>
|
||||||
|
<!-- comma sep list of servers: eg: localhost,otherhost:port,anotherone -->
|
||||||
|
<param name="memcache-servers" value="localhost"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
148
switch/conf/autoload_configs/modules.conf.xml
Normal file
148
switch/conf/autoload_configs/modules.conf.xml
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
<configuration name="modules.conf" description="Modules">
|
||||||
|
<modules>
|
||||||
|
<!-- Loggers (I'd load these first) -->
|
||||||
|
<load module="mod_console"/>
|
||||||
|
<!-- <load module="mod_graylog2"/> -->
|
||||||
|
<load module="mod_logfile"/>
|
||||||
|
<!-- <load module="mod_syslog"/> -->
|
||||||
|
|
||||||
|
<!--<load module="mod_yaml"/>-->
|
||||||
|
|
||||||
|
<!-- Multi-Faceted -->
|
||||||
|
<!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
|
||||||
|
<load module="mod_enum"/>
|
||||||
|
|
||||||
|
<!-- XML Interfaces -->
|
||||||
|
<!-- <load module="mod_xml_rpc"/> -->
|
||||||
|
<!-- <load module="mod_xml_curl"/> -->
|
||||||
|
<!-- <load module="mod_xml_cdr"/> -->
|
||||||
|
<!-- <load module="mod_xml_radius"/> -->
|
||||||
|
<!-- <load module="mod_xml_scgi"/> -->
|
||||||
|
|
||||||
|
<!-- Event Handlers -->
|
||||||
|
<!-- <load module="mod_amqp"/> -->
|
||||||
|
<load module="mod_cdr_csv"/>
|
||||||
|
<!-- <load module="mod_cdr_sqlite"/> -->
|
||||||
|
<!-- <load module="mod_event_multicast"/> -->
|
||||||
|
<load module="mod_event_socket"/>
|
||||||
|
<!-- <load module="mod_event_zmq"/> -->
|
||||||
|
<!-- <load module="mod_zeroconf"/> -->
|
||||||
|
<!-- <load module="mod_erlang_event"/> -->
|
||||||
|
<!-- <load module="mod_smpp"/> -->
|
||||||
|
<!-- <load module="mod_snmp"/> -->
|
||||||
|
|
||||||
|
<!-- Directory Interfaces -->
|
||||||
|
<!-- <load module="mod_ldap"/> -->
|
||||||
|
|
||||||
|
<!-- Endpoints -->
|
||||||
|
<!-- <load module="mod_dingaling"/> -->
|
||||||
|
<!-- <load module="mod_portaudio"/> -->
|
||||||
|
<!-- <load module="mod_alsa"/> -->
|
||||||
|
<load module="mod_sofia"/>
|
||||||
|
<load module="mod_loopback"/>
|
||||||
|
<!-- <load module="mod_woomera"/> -->
|
||||||
|
<!-- <load module="mod_freetdm"/> -->
|
||||||
|
<!-- <load module="mod_unicall"/> -->
|
||||||
|
<!-- <load module="mod_skinny"/> -->
|
||||||
|
<!-- <load module="mod_khomp"/> -->
|
||||||
|
<load module="mod_rtc"/>
|
||||||
|
<!-- <load module="mod_rtmp"/> -->
|
||||||
|
<load module="mod_verto"/>
|
||||||
|
|
||||||
|
<!-- Applications -->
|
||||||
|
<!-- <load module="mod_signalwire"/> -->
|
||||||
|
<load module="mod_commands"/>
|
||||||
|
<load module="mod_conference"/>
|
||||||
|
<!-- <load module="mod_curl"/> -->
|
||||||
|
<load module="mod_db"/>
|
||||||
|
<load module="mod_dptools"/>
|
||||||
|
<load module="mod_expr"/>
|
||||||
|
<load module="mod_fifo"/>
|
||||||
|
<load module="mod_hash"/>
|
||||||
|
<!--<load module="mod_mongo"/> -->
|
||||||
|
<load module="mod_voicemail"/>
|
||||||
|
<!--<load module="mod_directory"/>-->
|
||||||
|
<!--<load module="mod_distributor"/>-->
|
||||||
|
<!--<load module="mod_lcr"/>-->
|
||||||
|
<!--<load module="mod_easyroute"/>-->
|
||||||
|
<load module="mod_esf"/>
|
||||||
|
<load module="mod_fsv"/>
|
||||||
|
<!--<load module="mod_cluechoo"/>-->
|
||||||
|
<load module="mod_valet_parking"/>
|
||||||
|
<!--<load module="mod_fsk"/>-->
|
||||||
|
<!--<load module="mod_spy"/>-->
|
||||||
|
<!--<load module="mod_sms"/>-->
|
||||||
|
<!--<load module="mod_sms_flowroute"/>-->
|
||||||
|
<!--<load module="mod_smpp"/>-->
|
||||||
|
<!--<load module="mod_random"/>-->
|
||||||
|
<load module="mod_httapi"/>
|
||||||
|
<!--<load module="mod_translate"/>-->
|
||||||
|
|
||||||
|
<!-- SNOM Module -->
|
||||||
|
<!--<load module="mod_snom"/>-->
|
||||||
|
|
||||||
|
<!-- This one only works on Linux for now -->
|
||||||
|
<!--<load module="mod_ladspa"/>-->
|
||||||
|
|
||||||
|
<!-- Dialplan Interfaces -->
|
||||||
|
<!-- <load module="mod_dialplan_directory"/> -->
|
||||||
|
<load module="mod_dialplan_xml"/>
|
||||||
|
<load module="mod_dialplan_asterisk"/>
|
||||||
|
|
||||||
|
<!-- Codec Interfaces -->
|
||||||
|
<load module="mod_spandsp"/>
|
||||||
|
<load module="mod_g723_1"/>
|
||||||
|
<load module="mod_g729"/>
|
||||||
|
<load module="mod_amr"/>
|
||||||
|
<!--<load module="mod_ilbc"/>-->
|
||||||
|
<!--<load module="mod_h26x"/>-->
|
||||||
|
<load module="mod_b64"/>
|
||||||
|
<!--<load module="mod_siren"/>-->
|
||||||
|
<!--<load module="mod_isac"/>-->
|
||||||
|
<load module="mod_opus"/>
|
||||||
|
|
||||||
|
<!-- File Format Interfaces -->
|
||||||
|
<load module="mod_av"/>
|
||||||
|
<load module="mod_sndfile"/>
|
||||||
|
<load module="mod_native_file"/>
|
||||||
|
<!--<load module="mod_opusfile"/>-->
|
||||||
|
<load module="mod_png"/>
|
||||||
|
<!-- <load module="mod_shell_stream"/> -->
|
||||||
|
<!--For icecast/mp3 streams/files-->
|
||||||
|
<!--<load module="mod_shout"/>-->
|
||||||
|
<!--For local streams (play all the files in a directory)-->
|
||||||
|
<load module="mod_local_stream"/>
|
||||||
|
<load module="mod_tone_stream"/>
|
||||||
|
|
||||||
|
<!-- Timers -->
|
||||||
|
<!-- <load module="mod_timerfd"/> -->
|
||||||
|
<!-- <load module="mod_posix_timer"/> -->
|
||||||
|
|
||||||
|
<!-- Languages -->
|
||||||
|
<!-- <load module="mod_v8"/> -->
|
||||||
|
<!-- <load module="mod_perl"/> -->
|
||||||
|
<!-- <load module="mod_python"/> -->
|
||||||
|
<!-- <load module="mod_python3"/> -->
|
||||||
|
<!-- <load module="mod_java"/> -->
|
||||||
|
<load module="mod_lua"/>
|
||||||
|
|
||||||
|
<!-- ASR /TTS -->
|
||||||
|
<!-- <load module="mod_flite"/> -->
|
||||||
|
<!-- <load module="mod_pocketsphinx"/> -->
|
||||||
|
<!-- <load module="mod_cepstral"/> -->
|
||||||
|
<!-- <load module="mod_tts_commandline"/> -->
|
||||||
|
<!-- <load module="mod_rss"/> -->
|
||||||
|
|
||||||
|
<!-- Say -->
|
||||||
|
<load module="mod_say_en"/>
|
||||||
|
<!-- <load module="mod_say_ru"/> -->
|
||||||
|
<!-- <load module="mod_say_zh"/> -->
|
||||||
|
<!-- <load module="mod_say_sv"/> -->
|
||||||
|
|
||||||
|
<!-- Third party modules -->
|
||||||
|
<!--<load module="mod_nibblebill"/>-->
|
||||||
|
<!--<load module="mod_callcenter"/>-->
|
||||||
|
<load module="mod_unimrcp"/>
|
||||||
|
|
||||||
|
</modules>
|
||||||
|
</configuration>
|
15
switch/conf/autoload_configs/mongo.conf.xml
Normal file
15
switch/conf/autoload_configs/mongo.conf.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<configuration name="mongo.conf">
|
||||||
|
<settings>
|
||||||
|
<!--
|
||||||
|
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
|
||||||
|
-->
|
||||||
|
<param name="connection-string" value="mongodb://127.0.0.1:27017/?connectTimeoutMS=10000"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<param name="map" value="function() { emit(this.a, 1); }"/>
|
||||||
|
<param name="reduce" value="function(key, values) { return Array.sum(values); }"/>
|
||||||
|
<param name="finalize" value="function(key, value) { return value;}"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
12
switch/conf/autoload_configs/msrp.conf.xml
Normal file
12
switch/conf/autoload_configs/msrp.conf.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration name="msrp.conf" description="MSRP">
|
||||||
|
<settings>
|
||||||
|
<param name="listen-ip" value="$${local_ip_v4}"/>
|
||||||
|
<!-- <param name="listen-port" value="2855"/> -->
|
||||||
|
<!-- <param name="listen-ssl-port" value="2856"/> -->
|
||||||
|
<!-- <param name="message-buffer-size" value="50"/> -->
|
||||||
|
<!-- <param name="debug" value="true"/> -->
|
||||||
|
<!-- <param name="secure-cert" value="$${certs_dir}/wss.pem"/> -->
|
||||||
|
<!-- <param name="secure-key" value="$${certs_dir}/wss.pem"/> -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
||||||
|
|
48
switch/conf/autoload_configs/nibblebill.conf.xml
Normal file
48
switch/conf/autoload_configs/nibblebill.conf.xml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<configuration name="nibblebill.conf" description="Nibble Billing">
|
||||||
|
<settings>
|
||||||
|
<!-- See http://wiki.freeswitch.org/wiki/Mod_nibblebill for help with these options -->
|
||||||
|
|
||||||
|
<!-- Information for connecting to your database -->
|
||||||
|
<param name="odbc-dsn" value="bandwidth.com"/>
|
||||||
|
|
||||||
|
<!-- The database table where your CASH column is located -->
|
||||||
|
<param name="db_table" value="accounts"/>
|
||||||
|
|
||||||
|
<!-- The column name where we store the value of the account -->
|
||||||
|
<param name="db_column_cash" value="cash"/>
|
||||||
|
|
||||||
|
<!-- The column name for the unique ID identifying the account -->
|
||||||
|
<param name="db_column_account" value="id"/>
|
||||||
|
|
||||||
|
<!-- Custom SQL for loading current balance - overrides column names
|
||||||
|
channel vars are interpreted.
|
||||||
|
field nibble_balance is used for balance info
|
||||||
|
|
||||||
|
<param name="custom_sql_lookup" value="SELECT cash AS nibble_balance FROM accounts WHERE account_code='${nibble_account}'"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Custom SQL for loading current balance - overrides column names
|
||||||
|
channel vars are interpreted.
|
||||||
|
nibble_increment is the amount to update
|
||||||
|
|
||||||
|
<param name="custom_sql_save" value="UPDATE accounts SET cash=cash-${nibble_increment} WHERE account_code='${nibble_account}'"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Default heartbeat interval. Set to 'off' for no heartbeat (i.e. bill only at end of call) -->
|
||||||
|
<param name="global_heartbeat" value="60"/>
|
||||||
|
|
||||||
|
<!-- By default, warn a caller when their balance is at $5.00. You can set this to a negative number. -->
|
||||||
|
<param name="lowbal_amt" value="5"/>
|
||||||
|
<param name="lowbal_action" value="play ding"/>
|
||||||
|
|
||||||
|
<!-- By default, terminate a caller when their balance hits $0.00. You can set this to a negative number. -->
|
||||||
|
<param name="nobal_amt" value="0"/>
|
||||||
|
<param name="nobal_action" value="hangup"/>
|
||||||
|
|
||||||
|
<!-- If a call goes beyond a certain dollar amount, flag or terminate it -->
|
||||||
|
<param name="percall_max_amt" value="100"/>
|
||||||
|
<param name="percall_action" value="hangup"/>
|
||||||
|
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
21
switch/conf/autoload_configs/opal.conf.xml
Normal file
21
switch/conf/autoload_configs/opal.conf.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<configuration name="opal.conf" description="Opal Endpoints">
|
||||||
|
<settings>
|
||||||
|
<param name="trace-level" value="3"/>
|
||||||
|
<param name="context" value="default"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="dtmf-type" value="signal"/> <!-- string, signal, rfc2833, in-band -->
|
||||||
|
<param name="jitter-size" value="40,100"/> <!-- Jitter buffer min/max size, milliseconds -->
|
||||||
|
<!-- <param name="codec-prefs" value="PCMU,PCMA"/> --> <!-- list, and preferecnce order, of codecs -->
|
||||||
|
<!-- <param name="disable-transcoding" value="true"/> --> <!-- do not transcode, use source channel codec only -->
|
||||||
|
<param name="gk-address" value=""/> <!-- empty to disable, "*" to search LAN -->
|
||||||
|
<param name="gk-identifer" value=""/> <!-- optional name of gk -->
|
||||||
|
<param name="gk-interface" value="$${local_ip_v4}"/> <!-- optional listener interface name -->
|
||||||
|
</settings>
|
||||||
|
<listeners>
|
||||||
|
<listener name="default">
|
||||||
|
<param name="h323-ip" value="$${local_ip_v4}"/>
|
||||||
|
<param name="h323-port" value="1720"/>
|
||||||
|
</listener>
|
||||||
|
</listeners>
|
||||||
|
</configuration>
|
||||||
|
|
35
switch/conf/autoload_configs/opus.conf.xml
Normal file
35
switch/conf/autoload_configs/opus.conf.xml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<configuration name="opus.conf">
|
||||||
|
<settings>
|
||||||
|
<param name="use-vbr" value="1"/>
|
||||||
|
<!--<param name="use-dtx" value="1"/>-->
|
||||||
|
<param name="complexity" value="10"/>
|
||||||
|
<!-- Set the initial packet loss percentage 0-100 -->
|
||||||
|
<!--<param name="packet-loss-percent" value="10"/>-->
|
||||||
|
<!-- Support asymmetric sample rates -->
|
||||||
|
<!--<param name="asymmetric-sample-rates" value="1"/>-->
|
||||||
|
|
||||||
|
<!-- Enable bitrate negotiation -->
|
||||||
|
<!--<param name="bitrate-negotiation" value="1"/>-->
|
||||||
|
|
||||||
|
<!-- Keep FEC Enabled -->
|
||||||
|
<param name="keep-fec-enabled" value="1"/>
|
||||||
|
<!--<param name="use-jb-lookahead" value="true"/> -->
|
||||||
|
<!--
|
||||||
|
maxaveragebitrate: the maximum average codec bitrate (values: 6000 to 510000 in bps) 0 is not considered
|
||||||
|
maxplaybackrate: the maximum codec internal frequency (values: 8000, 12000, 16000, 24000, 48000 in Hz) 0 is not considered
|
||||||
|
This will set the local encoder and instruct the remote encoder trough specific "fmtp" attibute in the SDP.
|
||||||
|
|
||||||
|
Example: if you receive "maxaveragebitrate=20000" from SDP and you have set "maxaveragebitrate=24000" in this configuration
|
||||||
|
the lowest will prevail in this case "20000" is set on the encoder and the corresponding fmtp attribute will be set
|
||||||
|
to instruct the remote encoder to do the same.
|
||||||
|
-->
|
||||||
|
<param name="maxaveragebitrate" value="0"/>
|
||||||
|
<param name="maxplaybackrate" value="0"/>
|
||||||
|
<!-- Max capture rate, 8000, 12000, 16000, 24000 and 48000 are valid options -->
|
||||||
|
<!--<param name="sprop-maxcapturerate" value="0"/>-->
|
||||||
|
<!-- Enable automatic bitrate variation during the call based on RTCP feedback -->
|
||||||
|
<!--<param name="adjust-bitrate" value="1"/>-->
|
||||||
|
<!-- will enforce mono even if the remote party wants stereo. must be used in conjunction with param "max-audio-channels" set to 1 in switch.conf.xml. -->
|
||||||
|
<param name="mono" value="0"/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
13
switch/conf/autoload_configs/oreka.conf.xml
Normal file
13
switch/conf/autoload_configs/oreka.conf.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<!--
|
||||||
|
To use this application simply install the open source Oreka recorder server (Orkaudio) and point
|
||||||
|
the sip-server-addr and sip-server-port to the oreka server
|
||||||
|
-->
|
||||||
|
<configuration name="oreka.conf" description="Oreka Recorder configuration">
|
||||||
|
<settings>
|
||||||
|
<!-- Oreka/Orkaudio recording server address -->
|
||||||
|
<!-- <param name="sip-server-addr" value="192.168.1.200"/> -->
|
||||||
|
|
||||||
|
<!-- Which port to send signaling to in the recording server -->
|
||||||
|
<!-- <param name="sip-server-port" value="6000"/> -->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
53
switch/conf/autoload_configs/osp.conf.xml
Normal file
53
switch/conf/autoload_configs/osp.conf.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<configuration name="osp.conf" description="OSP Module Configuration">
|
||||||
|
<settings>
|
||||||
|
<!-- Debug info flag -->
|
||||||
|
<param name="debug-info" value="disabled"/>
|
||||||
|
<!-- Log level for debug info -->
|
||||||
|
<param name="log-level" value="info"/>
|
||||||
|
<!-- Crypto hareware accelerate is disabled by default -->
|
||||||
|
<param name="crypto-hardware" value="disabled"/>
|
||||||
|
<!-- SIP settings -->
|
||||||
|
<param name="sip" module="sofia" profile="external"/>
|
||||||
|
<!-- H.323 settings -->
|
||||||
|
<!-- <param name="h323" module="h323" profile="external"/> -->
|
||||||
|
<!-- IAX settings -->
|
||||||
|
<!-- <param name="iax" module="iax" profile="external"/> -->
|
||||||
|
<!-- Skype settings -->
|
||||||
|
<!-- <param name="skype" module="skypopen" profile="external"/> -->
|
||||||
|
<!-- Default destination protocol -->
|
||||||
|
<param name="default-protocol" value="sip"/>
|
||||||
|
</settings>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<!-- Default OSP profile -->
|
||||||
|
<profile name="default">
|
||||||
|
<!-- Service point URLs, up to 8 allowed -->
|
||||||
|
<!-- <param name="service-point-url" value="http://osptestserver.transnexus.com:5045/osp"/> -->
|
||||||
|
<!-- <param name="service-point-url" value="https://127.0.0.1:1443/osp"/> -->
|
||||||
|
<param name="service-point-url" value="http://127.0.0.1:5045/osp"/>
|
||||||
|
|
||||||
|
<!-- FreeSWITCH IP address for OSP -->
|
||||||
|
<param name="device-ip" value="127.0.0.1:5080"/>
|
||||||
|
|
||||||
|
<!-- SSL lifetime in seconds -->
|
||||||
|
<param name="ssl-lifetime" value="300"/>
|
||||||
|
<!-- HTTP max connections, 1~1000 -->
|
||||||
|
<param name="http-max-connections" value="20"/>
|
||||||
|
<!-- HTTP persistence in seconds -->
|
||||||
|
<param name="http-persistence" value="60"/>
|
||||||
|
<!-- HTTP retry delay in seconds, 0~10 -->
|
||||||
|
<param name="http-retry-delay" value="0"/>
|
||||||
|
<!-- HTTP retry limit, 0~100 -->
|
||||||
|
<param name="http-retry-limit" value="2"/>
|
||||||
|
<!-- HTTP timeout in milliseconds, 200~60000 -->
|
||||||
|
<param name="http-timeout" value="10000"/>
|
||||||
|
|
||||||
|
<!-- OSP work mode, direct or indirect -->
|
||||||
|
<param name="work-mode" value="direct"/>
|
||||||
|
<!-- OSP service type, voice or npquery -->
|
||||||
|
<param name="service-type" value="voice"/>
|
||||||
|
<!-- Max number of destinations -->
|
||||||
|
<param name="max-destinations" value="12"/>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</configuration>
|
16
switch/conf/autoload_configs/perl.conf.xml
Normal file
16
switch/conf/autoload_configs/perl.conf.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<configuration name="perl.conf" description="PERL Configuration">
|
||||||
|
<settings>
|
||||||
|
<!--<param name="xml-handler-script" value="$${temp_dir}/xml.pl"/>-->
|
||||||
|
<!--<param name="xml-handler-bindings" value="dialplan"/>-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The following options identifies a perl script that is launched
|
||||||
|
at startup and may live forever in the background.
|
||||||
|
You can define multiple lines, one for each script you
|
||||||
|
need to run.
|
||||||
|
-->
|
||||||
|
<!--param name="startup-script" value="startup_script_1.pl"/-->
|
||||||
|
<!--param name="startup-script" value="startup_script_2.pl"/-->
|
||||||
|
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
12
switch/conf/autoload_configs/pocketsphinx.conf.xml
Normal file
12
switch/conf/autoload_configs/pocketsphinx.conf.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration name="pocketsphinx.conf" description="PocketSphinx ASR Configuration">
|
||||||
|
<settings>
|
||||||
|
<param name="threshold" value="400"/>
|
||||||
|
<param name="silence-hits" value="25"/>
|
||||||
|
<param name="listen-hits" value="1"/>
|
||||||
|
<param name="auto-reload" value="true"/>
|
||||||
|
<!--<param name="language-weight" value="1"/>-->
|
||||||
|
<!--<param name="narrowband-model" value="communicator"/>-->
|
||||||
|
<!--<param name="wideband-model" value="wsj1"/>-->
|
||||||
|
<!--<param name="dictionary" value="default.dic"/>-->
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user