What is the magic behind 3CX Provisioning and SBC?

Hello, everyone,

I think this might be not an easy question, but, why do we need provisioning and 3cx SBC for connecting multiple remote phones (especially not supported) ?

Before upgrading to 3cx, I was using many other cloud PBXs (not sure if I am allowed to mention names here). And they were all inferior in versatility and performance, except one thing - you could connect ANY sip device and ANY softphone, just by inputting SIP login, SIP password and SIP ip address or domain name.

Why isn’t it the case with 3cx? Why 3cx can only support certain phones and need SBC tunneling to make it happen for non-supported?

I understand that I probably will receive some answers like “Just do it the right way with supported phones because it just works”, but I am interested in technical side of this.

I can register with STUN on 3cx with supported and unsupported phone, but unsupported one will drop connections or become unstable, cause one side audio etc.
This never happened with other cloud PBXs, (even though they had other problems like audio quality, caller ids, latency etc)