stream {
log_format proxy '$proxy_protocol_addr $remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
upstream sip {
#server 10.161.83.24:5560;
server 10.161.96.32:5560 max_fails=1 fail_timeout=1s;
server 10.161.96.31:5560 backup;
}
upstream gate {
server 192.168.1.211:5060;
}
map $remote_addr $bf {
10.161.96.31:5560 "gate";
10.161.96.32:5560 "gate";
default "sip";
}
server {
access_log /var/log/nginx/tcp/5560_access.log proxy;
error_log /var/log/nginx/tcp/5560_error.log debug;
listen 5560 udp reuseport;
proxy_pass $bf;
proxy_connect_timeout 3s;
proxy_timeout 3s;
}
}
upstream fsstream {
#server 10.161.83.24:5066 max_fails=2 fail_timeout=6s weight=10;
server 10.161.96.32:5066 max_fails=1 fail_timeout=1s weight=10;
server 10.161.96.31:5066 backup;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream fsstream {
#server 10.161.83.24:5066 max_fails=2 fail_timeout=6s weight=10;
server 10.161.96.32:5066 max_fails=1 fail_timeout=1s weight=10;
server 10.161.96.31:5066 backup;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
http{
server {
listen 6066;
listen 7443 ssl;
server_name freeswitch.my.com;
#access_log logs/host.access.log main;
access_log /var/log/nginx/wss_access.log;
error_log /var/log/nginx/wss_error.log;
ssl_certificate my.com.crt;
ssl_certificate_key my.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 86400s;
proxy_pass http://fsstream;
}
}
}
$FS_CLI_PROG -H $FS_CLI_HOST -P $FS_CLI_PORT -p $FS_CLI_PASS -x "$1"
fs_cli -H 10.161.96.31 -P 8021 -p ClueCon -x "sofia recover"
fs_cli -H 10.161.96.31 -P 8021 -p ClueCon -x "reloadxml"
FS_CLI_HOST='127.0.0.1'
FS_CLI_PORT='8021'
FS_CLI_PASS='ClueCon'
PROFILES='sofia.superpipi.cn'
Originate Failed. Cause: RECOVERY_ON_TIMER_EXPIR
/event plain ALL
originate {origination_caller_id_number=00000000,origination_caller_id_name=000000000,sip_invite_call_id=82345674}sofia/external/sip:18810877975@192.168.1.211:5060 &echo
originate {origination_caller_id_number=00000000,origination_caller_id_name=000000000,sip_invite_domain=192.168.1.211:5060,from-domain=10.161.96.32}sofia/external/18810877975@mygate5674 &park()
originate {origination_caller_id_number=00000000,origination_caller_id_name=000000000,from-domain=10.161.96.32}sofia/gateway/mygate5674/18810877975 &echo
originate {origination_caller_id_number=00000000,origination_caller_id_name=000000000}sofia/external/82345674@192.168.1.211:5060 &echo
有一个网关,位于nat后面,freeswitch位于公网。
freeswitch如何通过该网关进行外呼?
originate {sip_invite_req_uri=sip:18652003060@172.16.167.151}user/1005@172.16.167.151 &echo()
这里核心的地方是:sip_invite_req_uri变量
该变量可以用于修改invite的目的地址。
originate {origination_caller_id_number=00000000,origination_caller_id_name=000000000,sip_invite_req_uri=sip:18810877975@192.168.1.211}sofia/external/82345674@192.168.1.211:5060 &echo
originate sofia/gateway/mygate5674/18810877975 &echo
originate {originate_timeout=300,origination_caller_id_name='82345674'}user/1258 &echo()
apt-get install -y cifs-utils
mkdir -p /mnt/nas
sudo mount -t cifs //10.161.83.23/nas /mnt/nas -o username=Administrator,password=q1w2Q!W@
--with-stream_realip_module
--ngx_stream_map_module
stream {
upstream prod_backend {
server 192.168.137.129:23;
}
upstream test_backend {
server 192.168.137.131:23;
}
map $remote_addr $backend_svr {
192.168.137.140:23 "test_backend";
default "prod_backend";
}
server {
listen 23;
proxy pass $backend_svr;
}
}
转载请注明:SuperIT » nginx freeswitch配置