Odoo 18 and FreePBX 16 – PJSIP Extensions Dropping and Re-registering Issue

Two different extensions, for two different users on odooo18, one goes Unreachable when the other re-registers using odoo user login. When a user A with extension 200 registered already and 201 another odoo user B tries to login the extension 200 goes unreachable and new one becomes online. — any cross-AOR interaction?

Context: Ext 200 and 201 (different AORs). remove_existing=yes, max_contacts=1 per AOR. Sometimes when 200 re-registers, 201 becomes Unreachable within seconds.

I have 5 users on Odoo, all logging in from different locations, and each has a separate extension configured (200 to 205) using PJSIP with transport forced to WSS.

Mostly, extensions like 200 and 201 show as registered and active in pjsip show contacts, each from different IPs and locations.

However, when extension 204 logs in from another location through Odoo (browser), it forcefully makes 200 or 201 unreachable by replacing their registration.

I don’t understand what’s happening. Also, each registered user becomes unregistered within a few minutes.

I’m using FreePBX 16 and Odoo 18.

We are running FreePBX 16 (Asterisk 16 or 18) and using PJSIP extensions with WSS (WebSocket Secure) transport. We have confirmed this issue using both the Odoo 18 embedded softphone and a standard client like SIPml5, indicating the root cause is in the Asterisk core’s PJSIP WSS transport handling.

Every extension has a unique AOR with standard settings:

  • max_contacts=1
  • remove_existing=yes

Scenario & Reproduction:

  1. Ext 203 and Ext 204 are both actively registered from different public IPs.
  • Ext 203 is from Public IP 1.1.1.1 (Example)
  • Ext 204 is from Public IP 2.2.2.2 (Example)
  1. The user of Ext 203 voluntarily logs out (sends an UNREGISTER request with Expires: 0).
  2. The Asterisk CLI shows that Ext 203 correctly unregisters, but immediately following this, Ext 204 (from the different IP 2.2.2.2) is also dropped.

Asterisk CLI Log Proof:

This sequence clearly shows a cross-AOR interaction triggered by a logout request (due to request) that causes an unintentional shutdown of an independent contact.

`# 1. Ext 203 (IP 1.1.1.1) initiates logout:

-- Removed contact 'sips:[email protected]:XXXXX;transport=ws...' from AOR '203' due to request
== Endpoint 203 is now Unreachable

2. Ext 204 (IP 2.2.2.2) is forcefully disconnected:

-- Removed contact 'sips:[email protected]:YYYYY;transport=ws...' from AOR '204' due to shutdown
== Contact 204/sips:[email protected]:YYYYY;transport=ws has been deleted
== Endpoint 204 is now Unreachable

3. WebSocket connection of the initiating client is closed:

== WebSocket connection from ‘1.1.1.1:XXXXX’ closed`

Both of these are no longer supported, and in fact there was an issue years ago that was fixed:

Whether that’s the cause or not I don’t know, since you stated different IP addresses probably not.

But on latest supported versions we’ve received no reports of such issues.

I’m experiencing this issue not only when users log in from the same IP, but also when they log in from different IPs and locations.

Even if I log in with different users (each having separate extensions), as soon as a new user logs in, the previously registered users become unreachable.

If I refresh the Odoo session of any previously logged-in user, that user re-registers successfully, but then logging in with another user again forces all others to unregister.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.