在 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 地址。