Before you start — you will need the details from your welcome email: SIP domain, username (usually your trunk or extension number), password, and the outbound proxy if one was issued. If you do not have them, contact support.
| Setting | Value |
|---|---|
| SIP domain / registrar | sip.sipandvoip.com.cy |
| Outbound proxy | sip.sipandvoip.com.cy |
| SIP port (UDP / TCP) | 5060 |
| SIP port (TLS) | 5061 |
| Transport | UDP, TCP or TLS |
| Codecs | G.711 A-law (alaw), G.729, OPUS |
| DTMF | RFC 2833 |
| Username / password | From your welcome email |
⚠ These are placeholder values — set the real ones in the editor (Global tab) and they update on every guide at once.
1. Create the gateway
Create conf/sip_profiles/external/sipandvoip.xml:
<include>
<gateway name="SipandVoip">
<param name="username" value="YOUR_USERNAME"/>
<param name="password" value="YOUR_PASSWORD"/>
<param name="realm" value="sip.sipandvoip.com.cy"/>
<param name="proxy" value="sip.sipandvoip.com.cy"/>
<param name="register" value="true"/>
<param name="expire-seconds" value="3600"/>
<param name="retry-seconds" value="30"/>
<param name="from-user" value="YOUR_USERNAME"/>
<param name="from-domain" value="sip.sipandvoip.com.cy"/>
<param name="extension" value="YOUR_USERNAME"/>
<param name="context" value="public"/>
<param name="caller-id-in-from" value="false"/>
<param name="ping" value="30"/>
</gateway>
</include>
2. Set the external profile for NAT
If FreeSWITCH sits behind NAT, make sure vars.xml has your public address:
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=YOUR.PUBLIC.IP"/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=YOUR.PUBLIC.IP"/>
Use stun:stun.freeswitch.org instead of a literal IP only if your public address is dynamic.
3. Outbound dialplan
In conf/dialplan/default.xml:
<extension name="sipandvoip_outbound">
<condition field="destination_number" expression="^(\+?\d{6,15})$">
<action application="set" data="effective_caller_id_number=YOUR_DID"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="bridge" data="sofia/gateway/SipandVoip/$1"/>
</condition>
</extension>
4. Inbound dialplan
In conf/dialplan/public.xml, match your DID and send it internally:
<extension name="sipandvoip_inbound">
<condition field="destination_number" expression="^(YOUR_DID)$">
<action application="set" data="domain_name=$${domain}"/>
<action application="transfer" data="1000 XML default"/>
</condition>
</extension>
5. Reload and verify
fs_cli -x "reloadxml"
fs_cli -x "sofia profile external restart reloadxml"
fs_cli -x "sofia status gateway SipandVoip"
The gateway should report State: REGED. Use sofia global siptrace on to capture a trace while testing.
If it does not register
- 401 / 403 on REGISTER — username or password is wrong, or the device is presenting a different username in the auth header than in the From header. Check both.
- No response at all — a firewall is dropping SIP. Allow outbound UDP 5060 (or TCP/TLS 5061) and the RTP range to our network, and make sure any SIP ALG on the router is disabled. SIP ALG causes more problems than it solves.
- Registers, but one-way or no audio — almost always NAT. Set the external address on your PBX, forward or open the RTP port range, and confirm the device is advertising its public IP in SDP.
- Calls drop after ~30 seconds — SIP session timers or ACK not reaching us. Enable session timers and re-check NAT traversal settings.
- Outbound rejected with 404 — number format. Send E.164 with the leading
+or full international format without a trunk prefix.
Still stuck? Send us the SIP trace and we will look at it against our side of the call.