The multiple registrations shown on the PBXware monitor page typically occur due to network-level issues such as packet loss, high latency, or unreliable connectivity between the phone's local network and the PBXware.
Here’s what happens in such scenarios:
- Registration Process:
- A SIP phone sends a
REGISTER
request to Asterisk (or PBXware). - Asterisk responds with
401 Unauthorized
, which is part of the standard SIP challenge-response authentication process. - The phone then sends a new
REGISTER
request containing its authentication details, and Asterisk replies with a200 OK
to confirm successful registration.
- A SIP phone sends a
- Contact Creation:
- Once Asterisk sends the
200 OK
response, it registers the phone as "online" in the system and stores itsContact
information (IP address and port).
- Once Asterisk sends the
- Network Connectivity Issues:
- If the
200 OK
response from Asterisk does not reach the phone (due to packet loss, high latency, or other network problems), the phone assumes the registration failed. - Consequently, the phone retries the registration process, potentially using a different source port for its next
REGISTER
request, as some phones dynamically select ports for each new request.
- If the
Routers with aggressive NAT (Network Address Translation) policies may close unused or idle ports prematurely. SIP phones periodically send REGISTER messages to maintain their registration. If the NAT closes the port before the phone can renew its registration, the phone will use a new source port for the next registration attempt.
- Increase UDP Timeout (On router):
- Extend the NAT timeout for UDP traffic (especially on SIP ports, e.g., 5060).
- Look for settings like UDP Session Timeout or NAT Keepalive Interval in the router’s configuration.
- Enable NAT Keepalive on SIP Phones:
- Most phones have a NAT Keepalive or OPTIONS Ping feature. Enabling this sends periodic small packets to the PBX to keepthe NAT mapping open.
4. Duplicate Registrations:
- Since Asterisk already has the previous
Contact
stored, it creates a newContact
for the new registration attempt without removing the old one. This results in multipleContacts
being listed for the same extension but with different ports.
By rebooting the router, the old registrations should be cleared. The process should be as follows: turn off the router on the site in question and wait until all phones are offline without an IP on the Monitor page. Then turn it back on and there should be only 1 registration.
In case the issue persists, you would need to observe and troubleshoot their local network to minimize the packet loss and latency. Additionally, you may switch these phones to TCP because, unlike UDP, TCP ensures that packets are acknowledged, reducing the likelihood of registration retries due to lost responses.