Thank you for your help. Turned out to be there were two bugs in the provider's software. Support staff connected to our server and checked their logs simultaneously; then they discovered the bugs and fixed it.
But still not sure why there isn't an auth header in 3CX register request. There is still a screenshot of the capture above in one of my messages. More insterestingly, it was registering in another 3CX instance despite the bugs at provider side.