- Joined
- Aug 13, 2024
- Messages
- 4
- Reaction score
- 2
Hello everyone,
Reaching out to the community because I'm hitting a periodic SIP burst issue on a customer in production, and I'm looking for the clean way to fix it persistently.
Context
- 3CX V20 SaaS hosted tenant, PRO Enterprise edition
- Production hardware: 1 Yealink T87W (configured as SBC) + 1 Yealink W90DM + 3 W90B base stations + 20 W56H handsets, multi-cell DECT IP, 21 active slots on the W90DM
- SIP trunk via Sewan (France), fully functional
Symptom
Intermittent audio drops during ongoing calls: SIP signaling remains active but the RTP flow gets cut. Classic signature of SBC saturation during periodic SIP bursts.
Diagnosis via PCAP on W90DM and T87W
I captured on the W90DM and identified two sources of periodic bursts that overload the SBC for 1-2 seconds:
1. Default template "yealink.W90B.fxs.xml" contains:
template.1.sip_server.1.expires = 120
--> Generates a burst of 21 REGISTER + 407 + 200 OK every 2 minutes
2. Same template contains for each account:
account.X.subscribe_mwi_expires = 900
--> Generates a burst of 21 SUBSCRIBE MWI + 407 + 200 OK every 15 minutes
In the PCAPs, I clearly see bursts of 22 to 331 SIP packets at those intervals, exactly correlating with audio drops reported by end users.
Empirical validation
I manually raised via the W90DM web UI:
- template.1.sip_server.1.expires = 3600 (Account > Register > Server Expires)
- account.X.subscribe_mwi_expires = 3600 on 10 slots (Account > select slot > Advanced > MWI Subscribe Period)
Result observed: out of 200 calls after these local overrides, 1 single drop (vs several per hour before). Diagnosis confirmed.
But these local overrides get wiped by every 3CX-initiated re-provisioning.
Question to the community
What is the clean and persistent way to override these two parameters in the W90B template for this SaaS hosted tenant, knowing I don't have SSH access to the 3CX server?
I explored on the OData API side:
- "FxsTemplate.Content" : exposed read/write, PATCH seems possible but would affect all future W90B on the tenant
- "Fxs.Variables" : field exposed, empty by default, undocumented behavior for this kind of override
A few options I'm considering:
1. Custom FxsTemplate via shell on the 3CX server: not feasible on SaaS hosted
2. PATCH FxsTemplate.Content via API: technically possible but seems non-standard
3. Variables on the Fxs: to validate if it works as an actual override
4. 3CX support ticket: option I'm considering
Has anyone in the community already faced this requirement? Is there an official path for that kind of override on a SaaS hosted tenant?
If a 3CX staff member happens to read this, I'd be happy to get an official guidance. And I can provide the PCAPs showing the bursts if useful.
Thanks in advance for your feedback.
Best regards,
Vincent PARAZOLS
ARPASYS - Authorized 3CX Partner
Reaching out to the community because I'm hitting a periodic SIP burst issue on a customer in production, and I'm looking for the clean way to fix it persistently.
Context
- 3CX V20 SaaS hosted tenant, PRO Enterprise edition
- Production hardware: 1 Yealink T87W (configured as SBC) + 1 Yealink W90DM + 3 W90B base stations + 20 W56H handsets, multi-cell DECT IP, 21 active slots on the W90DM
- SIP trunk via Sewan (France), fully functional
Symptom
Intermittent audio drops during ongoing calls: SIP signaling remains active but the RTP flow gets cut. Classic signature of SBC saturation during periodic SIP bursts.
Diagnosis via PCAP on W90DM and T87W
I captured on the W90DM and identified two sources of periodic bursts that overload the SBC for 1-2 seconds:
1. Default template "yealink.W90B.fxs.xml" contains:
template.1.sip_server.1.expires = 120
--> Generates a burst of 21 REGISTER + 407 + 200 OK every 2 minutes
2. Same template contains for each account:
account.X.subscribe_mwi_expires = 900
--> Generates a burst of 21 SUBSCRIBE MWI + 407 + 200 OK every 15 minutes
In the PCAPs, I clearly see bursts of 22 to 331 SIP packets at those intervals, exactly correlating with audio drops reported by end users.
Empirical validation
I manually raised via the W90DM web UI:
- template.1.sip_server.1.expires = 3600 (Account > Register > Server Expires)
- account.X.subscribe_mwi_expires = 3600 on 10 slots (Account > select slot > Advanced > MWI Subscribe Period)
Result observed: out of 200 calls after these local overrides, 1 single drop (vs several per hour before). Diagnosis confirmed.
But these local overrides get wiped by every 3CX-initiated re-provisioning.
Question to the community
What is the clean and persistent way to override these two parameters in the W90B template for this SaaS hosted tenant, knowing I don't have SSH access to the 3CX server?
I explored on the OData API side:
- "FxsTemplate.Content" : exposed read/write, PATCH seems possible but would affect all future W90B on the tenant
- "Fxs.Variables" : field exposed, empty by default, undocumented behavior for this kind of override
A few options I'm considering:
1. Custom FxsTemplate via shell on the 3CX server: not feasible on SaaS hosted
2. PATCH FxsTemplate.Content via API: technically possible but seems non-standard
3. Variables on the Fxs: to validate if it works as an actual override
4. 3CX support ticket: option I'm considering
Has anyone in the community already faced this requirement? Is there an official path for that kind of override on a SaaS hosted tenant?
If a 3CX staff member happens to read this, I'd be happy to get an official guidance. And I can provide the PCAPs showing the bursts if useful.
Thanks in advance for your feedback.
Best regards,
Vincent PARAZOLS
ARPASYS - Authorized 3CX Partner