FreeSwitch
Links
FreeSwitch
- Documentation: https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/
- Github: https://github.com/signalwire/freeswitch
FreeSwitch GUI
- FusionPBX - FusionPBX can be used as a highly available single or domain based multi-tenant PBX, carrier grade switch,...
- OV500 - OV500 is Open Source VoIP Billing switching and routing Solution.
FusionPBX
- Forum: https://www.pbxforums.com/
- Documentation: https://docs.fusionpbx.com/en/latest/index.html
FusionPBX
NAT Setting
Web Admin > Advanced > Variables > IP Addresses
- external_rtp_ip: <server-public-ip>
- external_sip_ip: <server-public-ip>
重啟 freeswitch
systemctl restart freeswitch
驗證
Web Admin > Status > SIP Status
- sofia status profile internal: ext-rtp-ip, ext-sip-ip
- sofia status profile external: ext-rtp-ip, ext-sip-ip
RTP Port
/etc/freeswitch/autoload_configs/switch.conf.xml:
<!-- RTP port range -->
<!-- If no definitation the port range would be 16384 - 32768 -->
<param name="rtp-start-port" value="16384"/>
<param name="rtp-end-port" value="17000"/>
Gateway to Asterisk
On FreePBX
- Added a custom context 'from-ext-sip-server' with the module Custom Contexts.
- FreePBX Admin > Connectivity > Custom Contexts > Add Context
- Context: from-ext-sip-server
- Description: Whatever
- Outbound Routes: <allow-some-route>
- Add Trunk
- Trunk Name: fusionpbx
- PEER Details:
host=sip.osslab.tw
type=peer
context=from-ext-sip-server
nat=yes
insecure=port,invite
On FusionPBX
Web Admin > Accounts > Gateways > Add
- Gateway: myasterisk
- Proxy: <my-asterisk-sip>
- Profile: external
- Enable: Checked
Web Admin > Dialplan > Outbound Routes > Add
- Gateway: myasterisk
- Dialplan Expression: 9 Digits
- Prefix: <blank>
- Enable: True
Voicemail to Email
Web Admin > Accounts > Extensions > Select extension and Edit
- Voicemail Mail to: <your-email-addr>
Web Admin > Advanced > Default Settings > Email
- address_type: add_address
- method: smtp
- smtp_auth: True
- smtp_from: <sender-from-addr>
- smtp_from_name: <sender-from-name>
- smtp_host: smtp-relay.sendinblue.com
- smtp_username: <smtp-user>
- smtp_password: <smtp-pass>
- smtp_port: 587
- smtp_secure: tls
- smtp_validate_certificate: True
Send Test Email
Web Admin > Status > Email Logs > TEST
Bug Fixed:
[ERR] switch_cpp.cpp:1465 [database] can not bind parameter: undefined parameter: email_from
if (email_from == nil or email_from == "") then
email_from = settings:get('email', 'smtp_from', 'text');
from_name = settings:get('email', 'smtp_from_name', 'text');
end
-- added by Alang
-- fixed: [ERR] switch_cpp.cpp:1465 [database] can not bind parameter: undefined parameter: email_from
email_from = 'noreply@your.domain';
if (email_from == nil or email_from == "") then
email_from = address;
elseif (from_name ~= nil and from_name ~= "") then
email_from = from_name .. "<" .. email_from .. ">";
end
FreeSwitch CLI
fs_cli
fs_cli -x "sofia status"
> sofia status
> sofia status profile internal reg
> show registrations
> /quit
> version
> show calls
> show channels
> reloadxml
> sofia profile external restart
> sofia profile external killgw gwt
> sofia profile external rescan
> reload
> reloadxml
> reloadacl
> reload <mod_name>
> show modules
> status
> eval $${external_sip_ip}
> fsctl shutdown restart
> domain_exists sip.osslab.tw
> module_exists mod_event_socket
PostgreSQL
su - postgres
psql fusionpbx
fusionpbx=# \dt
fusionpbx=# \d v_gateways
fusionpbx=# select * from v_gateways;
fusionpbx=# select * from v_default_settings where default_setting_category='email';