在 Google 云虚拟机上安装 Freeswitch
Installing Freeswitch on Google Cloud VM
我已经在 Google 云虚拟机上安装了 Freeswitch (centos7)。这只是一个测试实例。
尚未对配置进行任何更改。
服务器启动正常,但我无法在测试时获得任何音频。
已按照 link 打开防火墙:https://freeswitch.org/confluence/display/FREESWITCH/Firewall
freeswitch 日志显示传入的呼叫和发出的音频。
有人可以提出任何建议来帮助我解决这个问题吗?
问候
虚拟机
环顾四周后,运行在云提供商上使用 Freeswitch 似乎有一些问题。目前官方文档上有关于running it on Amazon EC2,上面写着官方不支持。我会尝试使其适应 Google Cloud Platform,也许这对您有用。
1 - 创建一个 Debian Jesse 8 实例
gcloud compute instances create freeswitch-test --image-family debian-8 --image-project debian-cloud --tags=freeswitch
2 - 创建所需的防火墙规则以打开它需要 运行 的端口。从文档看起来应该是 UPD:16384-32768,TCP:8081-8082,TCP/UDP:5060,UDP:4569,TCP/UDP:8000
gcloud compute firewall-rules create freeswitch-policy --allow UDP:16384-32768,TCP:8081-8082,TCP:5060,UDP:5060,UDP:4569,TCP:8000,UDP:8000 --source-ranges=0.0.0.0/0 --target-tags=freeswitch
那么你希望freeswitch在启动时能够知道它的外部IP。我认为最好的方法可能是保留一个静态 IP,然后创建一个转发规则:
gcloud compute addresses create freeswitch-ip --region us-east1
gcloud compute target-pools create freeswitch --region us-east1
gcloud compute target-pools add-instances freeswitch --instances freeswitch-test --instances-zone us-east1-b
gcloud compute forwarding-rules create freeswitch-forwarding --address freeswitch-ip --region us-east1 --target-pool freeswitch
现在在 freeswitch 上配置静态 IP:
conf/vars.xml
<X-PRE-PROCESS cmd="exec-set" data="bind_server_ip=[YOUR-IP]">
<X-PRE-PROCESS cmd="exec-set" data="[YOUR-IP]"/>
<X-PRE-PROCESS cmd="exec-set" data="[YOUR-IP]"/>
conf/sip_profiles/internal.xml
<param name="aggressive-nat-detection" value="true"/>
<param name="multiple-registrations" value="true"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
<param name="NDLB-received-in-nat-reg-contact" value="true"/>
<param name="NDLB-force-rport" value="true"/>
<param name="NDLB-broken-auth-hash" value="true"/>
<param name="enable-timer" value="false"/>
<param name="auth-calls" value="true"/>
conf/sip_profiles/external.xml
<param name="aggressive-nat-detection" value="true"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
<param name="NDLB-force-rport" value="true"/>
conf/autoload/switch.conf.xml
=============================
<param name="rtp-start-port" value="16384"/>
<param name="rtp-end-port" value="32768"/>
我试试看:
Sofia 外部 IP 配置
您不必对 Sofia 个人资料进行任何更改。 FreeSWITCH 自动 NAT 功能将自动处理此问题。但是,如果您想手动执行此操作,请编辑 sip_profiles/internal.xml 文件并将 auto-nat 替换为 ext-rtp-ip 和 ext-sip-ip 参数中的外部 IP 地址。
我已经在 Google 云虚拟机上安装了 Freeswitch (centos7)。这只是一个测试实例。
尚未对配置进行任何更改。
服务器启动正常,但我无法在测试时获得任何音频。 已按照 link 打开防火墙:https://freeswitch.org/confluence/display/FREESWITCH/Firewall
freeswitch 日志显示传入的呼叫和发出的音频。
有人可以提出任何建议来帮助我解决这个问题吗?
问候 虚拟机
环顾四周后,运行在云提供商上使用 Freeswitch 似乎有一些问题。目前官方文档上有关于running it on Amazon EC2,上面写着官方不支持。我会尝试使其适应 Google Cloud Platform,也许这对您有用。
1 - 创建一个 Debian Jesse 8 实例
gcloud compute instances create freeswitch-test --image-family debian-8 --image-project debian-cloud --tags=freeswitch
2 - 创建所需的防火墙规则以打开它需要 运行 的端口。从文档看起来应该是 UPD:16384-32768,TCP:8081-8082,TCP/UDP:5060,UDP:4569,TCP/UDP:8000
gcloud compute firewall-rules create freeswitch-policy --allow UDP:16384-32768,TCP:8081-8082,TCP:5060,UDP:5060,UDP:4569,TCP:8000,UDP:8000 --source-ranges=0.0.0.0/0 --target-tags=freeswitch
那么你希望freeswitch在启动时能够知道它的外部IP。我认为最好的方法可能是保留一个静态 IP,然后创建一个转发规则:
gcloud compute addresses create freeswitch-ip --region us-east1
gcloud compute target-pools create freeswitch --region us-east1
gcloud compute target-pools add-instances freeswitch --instances freeswitch-test --instances-zone us-east1-b
gcloud compute forwarding-rules create freeswitch-forwarding --address freeswitch-ip --region us-east1 --target-pool freeswitch
现在在 freeswitch 上配置静态 IP:
conf/vars.xml
<X-PRE-PROCESS cmd="exec-set" data="bind_server_ip=[YOUR-IP]">
<X-PRE-PROCESS cmd="exec-set" data="[YOUR-IP]"/>
<X-PRE-PROCESS cmd="exec-set" data="[YOUR-IP]"/>
conf/sip_profiles/internal.xml
<param name="aggressive-nat-detection" value="true"/>
<param name="multiple-registrations" value="true"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
<param name="NDLB-received-in-nat-reg-contact" value="true"/>
<param name="NDLB-force-rport" value="true"/>
<param name="NDLB-broken-auth-hash" value="true"/>
<param name="enable-timer" value="false"/>
<param name="auth-calls" value="true"/>
conf/sip_profiles/external.xml
<param name="aggressive-nat-detection" value="true"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
<param name="NDLB-force-rport" value="true"/>
conf/autoload/switch.conf.xml
=============================
<param name="rtp-start-port" value="16384"/>
<param name="rtp-end-port" value="32768"/>
我试试看:
Sofia 外部 IP 配置
您不必对 Sofia 个人资料进行任何更改。 FreeSWITCH 自动 NAT 功能将自动处理此问题。但是,如果您想手动执行此操作,请编辑 sip_profiles/internal.xml 文件并将 auto-nat 替换为 ext-rtp-ip 和 ext-sip-ip 参数中的外部 IP 地址。