I’m afraid that I need some help with my asterisk server.
The problem is that my asterisk server (v13.9.1) fails to register SIP clients properly. Although each SIP REGISTER request is met with a 200 OK response, no contact object is ever created.
As a result of this, I cannot receive any calls although I’m able to dial out just fine.
After some digging, I found this ticket on the tracker which describes a similar issue where contact objects where actually created but deleted early, causing some calls to fail while others succeeded.
I found something that might be causing this issue.
In source file asterisk/location.c, function struct ao2_container *ast_sip_location_retrieve_aor_contacts_nolock(const struct ast_sip_aor *aor), line 189, asterisk is using regular expressions to identify AORs.
In order to make a contact show up, I need a contact object AND a matching AOR object.
Due to the regex bug, my contact objects fail to match the AOR and therefore, I can’t see them.
However, if I create an additioal AOR called \+0000, then my missing contact object (which actually belongs to AOR +0000) will show up under AOR \+0000.
I’ll file a bug in a few minutes. Greetings to bobby tables.