sipRegisterPlan always sends REGISTER to port 5060. There is no port field on the register plan, and putting host:port in the domain field is accepted by the API but doesn't change where the REGISTER is sent.
This makes it impossible to register against any provider whose registrar doesn't listen on 5060. In my case that's Dialpad, which only listens on 7060 — the packets are silently dropped, registration never completes, and because Dialpad requires a registered device before it will accept calls, every outbound INVITE returns 403 Forbidden. I verified this independently: SIP OPTIONS to Dialpad's gateway on UDP 5060 gets no response at all, while the same packet to 7060 returns 200 OK. Vapi support confirmed the diagnosis and that there's no workaround today.
A port field on sipRegisterPlan, or honouring host:port in the domain field, would fix it. Dialpad is a large platform and a registered SIP device is the only integration path it offers, so this likely affects more customers than just me.