Some providers change the Contact header when replying the register.
The provider says 200 OK for register but I got this:
ERROR: uac [uac_reg.c:876]: uac_reg_tm_callback(): got sip response 200
while registering
I think the problem is at
https://github.com/kamailio/kamailio/blob/master/modules/uac/uac_reg.c#L744
In my case, the provider change the username part of Contact
in register request: Contact: <sip:DID_NUMBER@IP_ADDRESS:5060>
in reply: Contact: <sip:SiENC*DID_NUMBER**IP_ADDRESS*5060*@IP_ADDRESS>
So if username is different, I will never get ri->flags |= UAC_REG_ONLINE;