Hi
I am experimenting with a dual homed (IPv4 and IPv6) Openser 1.1.0-tls server.
If I register using a IPv6 address then the initial registration works and the details are saved in the location table. However when the UA trys to re-register on expiry the SIP returns a 200 OK but the location data is not updated in the table. Looking at the syslog it is reporting that it didn't save the data as there was an existing entry on index with key 1. This is referring I presume to the primary index on "username, domain, contact) on the location table.
So what happens is the first location entry expires and gets deleted from the table and thus there is no record for the subsequent register and thus openser thinks the UA has dropped off until the next re-register when because there is no longer a location record the data gets saved correctly.
This doesn't happen if I register the same UA on IPv4 on the same openser server.
Anyone got any ideas why this is happening?
Regards
Jon
Am 02.02.2011 14:11, schrieb Jon Farmer:
Hi
I am experimenting with a dual homed (IPv4 and IPv6) Openser 1.1.0-tls server.
^^^^^^ that's weird
There were lot's of fixes (some quite recently) since then for IPv6, e.g. regarding the format of an IPv6 socket stored in DB.
You really should use Kamailio 3.1.
regards klaus
If I register using a IPv6 address then the initial registration works and the details are saved in the location table. However when the UA trys to re-register on expiry the SIP returns a 200 OK but the location data is not updated in the table. Looking at the syslog it is reporting that it didn't save the data as there was an existing entry on index with key 1. This is referring I presume to the primary index on "username, domain, contact) on the location table.
So what happens is the first location entry expires and gets deleted from the table and thus there is no record for the subsequent register and thus openser thinks the UA has dropped off until the next re-register when because there is no longer a location record the data gets saved correctly.
This doesn't happen if I register the same UA on IPv4 on the same openser server.
Anyone got any ideas why this is happening?
Regards
Jon
Hello,
On 2/2/11 2:11 PM, Jon Farmer wrote:
Hi
I am experimenting with a dual homed (IPv4 and IPv6) Openser 1.1.0-tls server.
1.1.0 is way too old :-) . If you try it right now, I recommend using 3.1.x, I have tested it a SIPit and location was working fine.
Core and SIP routing are also ok. To my knowledge the permissions module has a too small column size in database address table (on my todo list to fix in this devel cycle). Probably the same is with lcr module.
If I register using a IPv6 address then the initial registration works and the details are saved in the location table. However when the UA trys to re-register on expiry the SIP returns a 200 OK but the location data is not updated in the table. Looking at the syslog it is reporting that it didn't save the data as there was an existing entry on index with key 1. This is referring I presume to the primary index on "username, domain, contact) on the location table.
So what happens is the first location entry expires and gets deleted from the table and thus there is no record for the subsequent register and thus openser thinks the UA has dropped off until the next re-register when because there is no longer a location record the data gets saved correctly.
This doesn't happen if I register the same UA on IPv4 on the same openser server.
Anyone got any ideas why this is happening?
Being that old, I cannot remember if there were other issues. If you want to continue with this one, run it in debug mode, also enable mysql query logs and try to figure out what was wrong there. Then maybe there was a fix for that. Anyhow, iirc, there was an issue with storage of ipv6 address in one of the location fields, probably not done in 1.1.x at all since was done more recently.
Cheers, Daniel