Introduction — What Is rport? Why Can NAT Break VoIP?
If you’ve ever set up VoIP and run into problems where:
- Incoming calls don’t ring unless you’ve just made an outgoing call
- Calls connect, but you get one-way audio (you can hear them, but they can’t hear you)
- Calls drop after exactly 30, 60, or 120 seconds
- Your VoIP phone or app unregisters for no apparent reason
…then you’ve likely encountered a NAT traversal issue.

NAT (Network Address Translation) is what most home and office routers use to let multiple devices share one public IPv4 address. It’s great for security and address conservation, but it changes packet headers in ways that can confuse SIP — the protocol VoIP uses to set up calls.
When SIP gets confused, call signalling packets can vanish, incoming calls fail to arrive, and audio streams may get lost.
That’s where the rport
parameter comes in. Defined in RFC 3581, it’s a small change in SIP behaviour that can make the difference between unreliable and rock-solid VoIP.
At Plexatalk, most customers never need to think about rport
. We preconfigure the phones and VoIP adapters we supply so they’re ready for NAT handling from the moment you plug them in. But if you’re bringing your own device, using a third-party softphone, or troubleshooting another provider’s service, understanding rport
can save you hours of frustration.
Quick Answer — What is rport in VoIP?
In plain English:
rport
tells a SIP server to send responses back to the IP address and port that your request actually came from — not the ones written in your SIP headers.
This matters because behind NAT, your device’s internal IP and port (e.g., 192.168.1.50:5060
) are not reachable from the internet. Your provider needs to send packets to your router’s public IP and the actual source port NAT assigned (e.g., 81.2.3.4:32415
).
Without rport
, the server may try to send packets to your private address — and those packets never make it back.
RFC 3581 definition (simplified):
The
rport
parameter requests that the server send the response back to the source IP address and port from which the request originated.
Example of rport
in a SIP Via header:
Without rport:
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-123456
With rport:
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-123456;rport
SIP, NAT, and the Problem rport Solves
SIP without NAT
When you’re on a public IP:
- Your phone sends a SIP request (REGISTER, INVITE, etc.).
- It includes its own IP and port in the
Via:
header. - The SIP server sends its reply to that IP and port.
Everything works fine because the address in the header is valid.
What NAT changes
Behind NAT:
- Your phone thinks it’s sending from
192.168.1.50:5060
. - Your router rewrites this to your public IP (e.g.,
81.2.3.4:32415
). - The SIP server sees the request coming from
81.2.3.4:32415
but still reads192.168.1.50:5060
in theVia:
header.
If the server replies to 192.168.1.50:5060
, the packet never arrives — NAT doesn’t know where to send it.
How rport fixes it
With rport
:
- Your device adds
;rport
(empty) to itsVia:
header. - The SIP server fills it with the actual source port it sees (e.g.,
32415
). - The server replies to your public IP and the correct mapped port.
That means the NAT device can forward the packet back to your phone.
RFC 3581 Mechanics — In Plain Language
RFC 3581 introduced Symmetric Response Routing for SIP over UDP.
Basic flow
- Client sends SIP request with
rport
present but empty. - Receiving proxy takes the source IP and source port from the UDP header.
- Proxy fills in the
rport
parameter with the observed port. - All replies are sent to that observed IP/port instead of the ones in the SIP header body.
Multi-proxy environments
In a chain of SIP proxies:
- Each proxy appends its own
received=
parameter (observed IP) to theVia:
header. - If
rport
is present, it also appends the observed port. - This ensures signalling can route back correctly even through multiple NAT layers and firewalls.
Example: Via header before and after
Before processing:
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-111111;rport
After proxy sees packet from 81.2.3.4:32415
:
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-111111;received=81.2.3.4;rport=32415
What rport Does Not Do
rport is not a cure-all. It:
Does not replace the need for an outbound proxy in some complex topologies.
Does not solve RTP (media) traversal — you still need STUN, TURN, ICE, or symmetric RTP.
Does not keep NAT bindings open — use SIP keep-alives or periodic REGISTERs for that.
When your VoIP provider Might Ask You to Enable rport
If you’re using Plexatalk-supplied hardware (ATAs, IP phones), rport is already set.
If you bring your own device or app, your VoIP provider or even us depending on config – might recommend enabling rport if you:
- Use Starlink, 4G/5G, or satellite broadband
- Have double NAT (ISP router + your router)
- Use Zoiper or another softphone that moves between networks
- Experience incoming call failures or dropped registrations
How to Enable rport — Device Walkthroughs
Zoiper (Mobile/Desktop)
- Go to Settings → Accounts.
- Select your SIP account.
- Tap Network Settings.
- Enable “Use rport” (or similar).
- Save and re-register.
Grandstream IP Phones
- Log into the web UI.
- Navigate to Accounts → SIP Settings → SIP Advanced Settings.
- Enable “Use rport”.
- Save and apply.
Yealink IP Phones
- Log into the web UI.
- Go to Account → Advanced.
- Set “Enable Rport” to Enabled.
- Save and re-register.
Cisco/Linksys ATAs (e.g., SPA112)
- Access the ATA’s web UI.
- Navigate to Line → SIP Settings.
- Set “SIP RPort” to Yes.
- Save and reboot.
rport vs Other NAT Traversal Tools
- rport – Fixes where SIP signalling replies are sent. It tells the server to use your actual public IP and the port NAT assigned, not the private address in your SIP header.
- STUN – Lets your VoIP device discover its public IP and port mapping, which can then be used in SIP and SDP. Often used alongside rport.
- Keep-alives – Sends small packets periodically to keep NAT bindings open. Useful so that incoming calls still work after periods of inactivity.
- TURN – Relays SIP and/or RTP traffic through a third-party server, bypassing NAT issues entirely. More bandwidth-intensive.
- Outbound Proxy – All signalling and media are sent to one central proxy, which handles NAT traversal for you.
Pitfalls & Misunderstandings
- Disabling rport “just to test” often creates more problems.
- SIP ALG in many routers can override or strip rport info — best to disable SIP ALG.
- rport only affects SIP signalling — your RTP/media path still needs to be correct.
Example Call Flows
Without rport:
- Phone sends REGISTER with
Via: 192.168.1.50:5060
. - NAT changes source to
81.2.3.4:32415
. - Server replies to
192.168.1.50:5060
— lost.
With rport:
- Phone sends REGISTER with
Via: 192.168.1.50:5060;rport
. - NAT changes to
81.2.3.4:32415
. - Server fills
rport=32415
, replies to81.2.3.4:32415
— delivered.
Why Preconfigured Hardware Saves Time
Plexatalk ships VoIP devices pre-tuned for UK ISPs and NAT environments. That includes:
- rport enabled where needed
- Correct SIP timers
- Keep-alives configured
- SIP ALG workarounds in place
You plug in, it works.
If you bring your own hardware, we’ll guide you — but preconfigured gear removes guesswork.
References & Further Reading
Frequently Asked Questions – rport in VoIP
What is rport in VoIP?
rport
is a SIP parameter defined in RFC 3581 that tells a VoIP server to send responses to the IP address and port where your request actually came from, instead of relying on the internal IP and port in your SIP headers. It helps SIP signalling work correctly when your device is behind NAT.
Why is rport important for VoIP?
Without rport, SIP servers may send call signalling to your device’s private IP address, which can’t be reached from the internet. This can cause missed calls, one-way audio, or dropped registrations. rport ensures replies go to your real public IP and NAT-mapped port.
Does rport fix audio problems?
Not directly. rport only affects SIP signalling (call setup messages), not the RTP media stream that carries voice. For audio issues, you may also need to configure STUN, TURN, ICE, or symmetric RTP.
Do I need to enable rport?
In most cases, yes — it’s safe and can improve reliability. If you’re a Plexatalk customer using our supplied phones or VoIP adapters, rport is already enabled. If you’re using your own device or softphone, you may need to turn it on in the SIP settings.
Will enabling rport cause any problems?
No. rport is a low-risk setting that usually improves NAT compatibility. Disabling it is more likely to cause issues than enabling it.
Does rport replace STUN or keep-alives?
No. rport is complementary to other NAT traversal tools. STUN helps discover your public IP/port mapping, while keep-alives maintain NAT bindings. For best reliability, use them together.
Why might my VoIP provider ask me to enable rport?
Your provider may ask for rport if you’re experiencing inbound call issues, using mobile broadband, behind double NAT, or moving between Wi-Fi and mobile networks.
If I switch to Plexatalk, will I need to set rport?
Not if you use our preconfigured hardware — it’s already set. If you bring your own device, we’ll guide you through enabling rport along with other recommended NAT-friendly settings.