Hi all,
I've configured a local SER on our network, and I met some difficulties with multiple Contacts. When UA1 changes IP address, and REGISTER in SER to announce his new IP, both last and New Contacts are placed in Location table, with different 'expires' values. If UA2 receives last UA1 IP address, and REGISTER with it, calling UA1 from UA3 when both Contact still available, makes UA2 ringing, which cause some confusion.
To overcome about this, I'm searching for a way to force SER to delete an "old Contact" when a Registration is done with same URI and different IP; That way, only one Contact for one URI is available. I've tried to add modparam("registrar", "append_branches", 0) in ser.cfg, but in this case, Contact with lowest 'expires' parameter is called, and not Contact with highest one, still causing confusion fo IP calls. Could anyone tell me how to force a Contact to be deleted in SER location table, in case of registration with new Contact?
Thanks for your support. Regards. Marc
Marc LIVET wrote:
Hi all,
I've configured a local SER on our network, and I met some difficulties with multiple Contacts. When UA1 changes IP address, and REGISTER in SER to announce his new IP, both last and New Contacts are placed in Location table, with different 'expires' values. If UA2 receives last UA1 IP address, and REGISTER with it, calling UA1 from UA3 when both Contact still available, makes UA2 ringing, which cause some confusion.
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
To overcome about this, I'm searching for a way to force SER to delete an "old Contact" when a Registration is done with same URI and different IP; That way, only one Contact for one URI is available. I've tried to add modparam("registrar", "append_branches", 0) in ser.cfg, but in this case, Contact with lowest 'expires' parameter is called, and not Contact with highest one, still causing confusion fo IP calls.
The proper parameter is: modparam("registrar", "desc_time_order", 1)
klaus
--On 25 March 2004 12:45 +0100 Klaus Darilion klaus.mailinglists@pernau.at wrote:
I've configured a local SER on our network, and I met some difficulties with multiple Contacts. When UA1 changes IP address, and REGISTER in SER to announce his new IP, both last and New Contacts are placed in Location table, with different 'expires' values. If UA2 receives last UA1 IP address, and REGISTER with it, calling UA1 from UA3 when both Contact still available, makes UA2 ringing, which cause some confusion.
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
Not necessarily. For instance consider UA1 and UA2 are identical UAs on different DSL lines. They get dynamic IP. The DSLAM reboots. Lines come back up slowly. If ser gets a valid register request for UA1, it seems to me it should remove all trace of the old IP address ASAP, as "I am here" rather implies "I am not there (where there != here)".
Alex
At 01:27 PM 3/25/2004, Alex Bligh wrote:
--On 25 March 2004 12:45 +0100 Klaus Darilion klaus.mailinglists@pernau.at wrote:
I've configured a local SER on our network, and I met some difficulties with multiple Contacts. When UA1 changes IP address, and REGISTER in SER to announce his new IP, both last and New Contacts are placed in Location table, with different 'expires' values. If UA2 receives last UA1 IP address, and REGISTER with it, calling UA1 from UA3 when both Contact still available, makes UA2 ringing, which cause some confusion.
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
Not necessarily. For instance consider UA1 and UA2 are identical UAs on different DSL lines. They get dynamic IP. The DSLAM reboots. Lines come back up slowly. If ser gets a valid register request for UA1, it seems to me it should remove all trace of the old IP address ASAP, as "I am here" rather implies "I am not there (where there != here)".
How would you like to distinguish a parallel registration from from reregistration behind a changed IP address?
-jiri
--On 25 March 2004 14:40 +0100 Jiri Kuthan jiri@iptel.org wrote:
Not necessarily. For instance consider UA1 and UA2 are identical UAs on different DSL lines. They get dynamic IP. The DSLAM reboots. Lines come back up slowly. If ser gets a valid register request for UA1, it seems to me it should remove all trace of the old IP address ASAP, as "I am here" rather implies "I am not there (where there != here)".
How would you like to distinguish a parallel registration from from reregistration behind a changed IP address?
May be I am missing the point, but on an identical username registering in two places, in my application at least, I'd like only the last to count. If what you are saying is that you want to be able to support multiple simultaneous registrations of the same user at different IP addresses, that's fine, but I would guess that is probably not the most common application.
[note I did not suggest that a second registration with the same IP address should overwrite the previous u/n at that IP address; I meant the old IP address entry for UA1 should be erased, not that the old UA entry (UA2)s against the IP should be erased]
Alex
At 12:23 AM 3/27/2004, Alex Bligh wrote:
--On 25 March 2004 14:40 +0100 Jiri Kuthan jiri@iptel.org wrote:
Not necessarily. For instance consider UA1 and UA2 are identical UAs on different DSL lines. They get dynamic IP. The DSLAM reboots. Lines come back up slowly. If ser gets a valid register request for UA1, it seems to me it should remove all trace of the old IP address ASAP, as "I am here" rather implies "I am not there (where there != here)".
How would you like to distinguish a parallel registration from from reregistration behind a changed IP address?
May be I am missing the point, but on an identical username registering in two places, in my application at least, I'd like only the last to count. If what you are saying is that you want to be able to support multiple simultaneous registrations of the same user at different IP addresses, that's fine, but I would guess that is probably not the most common application.
My opinion is that multiple registrations are a feature and they also handle some change-of-IP-address situations more robustly. I don't think that there are many real problems which can be solved by single registration.
Anyhow, in case you think it helps you I'm very happy to find the piece of information in our documentation for you. Here it is http://www.iptel.org/ser/doc/seruser/seruser.html#AEN996
-jiri
Jiri,
--On 27 March 2004 09:53 +0100 Jiri Kuthan jiri@iptel.org wrote:
Anyhow, in case you think it helps you I'm very happy to find the piece of information in our documentation for you. Here it is http://www.iptel.org/ser/doc/seruser/seruser.html#AEN996
Thanks for that. I shall learn to read before writing...
Alex
Jiri Kuthan wrote:
How would you like to distinguish a parallel registration from from reregistration behind a changed IP address?
Therefore we would need some unique UA id which is saved with the location info - e.g. the MAC address plus the applications name (of course this also will cause troubles if I start the same application two times simultaneously at the same host).
regards, klaus
Alex Bligh wrote:
--On 25 March 2004 12:45 +0100 Klaus Darilion klaus.mailinglists@pernau.at wrote:
I've configured a local SER on our network, and I met some difficulties with multiple Contacts. When UA1 changes IP address, and REGISTER in SER to announce his new IP, both last and New Contacts are placed in Location table, with different 'expires' values. If UA2 receives last UA1 IP address, and REGISTER with it, calling UA1 from UA3 when both Contact still available, makes UA2 ringing, which cause some confusion.
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
Not necessarily. For instance consider UA1 and UA2 are identical UAs on different DSL lines. They get dynamic IP. The DSLAM reboots. Lines come back up slowly. If ser gets a valid register request for UA1, it seems to me it should remove all trace of the old IP address ASAP, as "I am here" rather implies "I am not there (where there != here)".
It depends - if I have a SIP phone on my desk and a softphone on my notebook, booth should be registered and reachable.
klaus
On Thu, 25 Mar 2004, Klaus Darilion wrote:
...
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
...
Pretty unlikely that a hard phone is going to be able to un-REGISTER. I should be able to unplug my hardphone at the office and take it home, and expect everything to work. But if someone at the office plugs in a new phone, they could get my hardphones old IP. Are there hard phones that have an Un-Register key, so I can explicitly un-register before unplugging?
Tom
I was a little bit too fast with my answer. In most cases the UA is not guilty, e.g. if I reset the phone, or if the phone is behind NAT (the IP of the device is always the same, eg. 192.168.0.2, but the pulic IP changes).
The problem that someones else device may use my old IP address and receives my calls (until the contact expires) can be solved using random ports for SIP instead of the standard port (like Windows MEssenger does). This is IMHO a good solution to prevent attacks - imagine a tool (e.g. a virus which will act also from infected hosts in the LAN) which sends INVITEs to random IP addresses port 5060 - I'm sure a lot of phones in the offices will begin ringing.
Another solution would be to do not accept every calls, but only with the correct request-URI, e.g. klaus.darilion@myip will be accepted, bot myneighbors.name@myip will not be accapted. But the user agent should only verify the username as the IP address in the request-uri will be changed if you are using nathelper to traverse NATs.
regards, Klaus
Tom wrote:
On Thu, 25 Mar 2004, Klaus Darilion wrote:
...
That's a fault of the UA. The UA should un-REGISTER the old contact before registering a new one.
...
Pretty unlikely that a hard phone is going to be able to un-REGISTER. I should be able to unplug my hardphone at the office and take it home, and expect everything to work. But if someone at the office plugs in a new phone, they could get my hardphones old IP. Are there hard phones that have an Un-Register key, so I can explicitly un-register before unplugging?
Tom