Discussion:
[Sip-implementors] subnet roaming in a wireless network
Joel Dodson
2008-01-23 22:28:50 UTC
Permalink
Hi all,

I thought I had seen a draft discussing how a SIP
endpoint ought to behave when roaming between subnets in a wirless
network, but I can't find any references. Is there anything documented
for that? I'm thinking of something like RFC 3725, best current
practices for 3PCC. Maybe a best current practices for wireless
networks and subnet roaming.

In general, when the endpoint's IP address changes, it could
use re-INVITE/UPDATE to change the session parameters (if it's in a
call) and REGISTER again to update its AOR binding. Those are the most
obvious actions to take.


I didn't see anything in the SIP, SIPPING, or SIIMPLE charters
discussing mobility, wireless, or roaming. Is there better place to be
looking?

thanks,
Joel






____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
Joel Dodson
2008-01-25 19:58:47 UTC
Permalink
Hi again,

I've thought about this more and there seem to be a number of potential race conditions. Here's the most basic one (UA1 is a fixed server while UA2 can roam across subnets, causing its IP address to change):

UA1 UA2
---------- INVITE ---------->
<---------- 200 OK ----------
At this point UA2 roams to a different subnet and its IP address changes.
---------- ACK ---------->
The ACK is being sent to the IP address specified in the Contact header in the 200OK, which is no longer valid.

I suppose if the Contact header never contained an IP address this wouldn't be an issue, but then there has to be a separate network component that keeps the mapping (Dynamic DNS I guess) to UA2s current IP address. What about the SDP though? Would you put an FQDN in the SDP?

Once the call is fully established we can re-register the device and use UPDATE to renegotiate the SDP.

Call setup seems to be very problematic. At this point we're planning on simply terminating the call as best we can, re-register and try the call again. I'm curious if others have solved this problem more elegantly, or, more hopefully, I'm overlooking something very basic.

thanks,
Joel


----- Original Message ----
From: Joel Dodson <jdodson at acm.org>
To: SIP Implementors <sip-implementors at lists.cs.columbia.edu>
Sent: Wednesday, January 23, 2008 2:28:50 PM
Subject: subnet roaming in a wireless network

Hi all,

I thought I had seen a draft discussing how a SIP
endpoint ought to behave when roaming between subnets in a wirless
network, but I can't find any references. Is there anything documented
for that? I'm thinking of something like RFC 3725, best current
practices for 3PCC. Maybe a best current practices for wireless
networks and subnet roaming.

In general, when the endpoint's IP address changes, it could
use re-INVITE/UPDATE to change the session parameters (if it's in a
call) and REGISTER again to update its AOR binding. Those are the most
obvious actions to take.


I didn't see anything in the SIP, SIPPING, or SIIMPLE charters
discussing mobility, wireless, or roaming. Is there better place to be
looking?

thanks,
Joel






____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping






____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
Dale.Worley
2008-01-26 00:35:24 UTC
Permalink
From: Joel Dodson <jdodson at acm.org>

UA1 UA2
---------- INVITE ---------->
<---------- 200 OK ----------
At this point UA2 roams to a different subnet and its IP address changes.
---------- ACK ---------->

The ACK is being sent to the IP address specified in the Contact
header in the 200OK, which is no longer valid.

Well, the ACK is likely to be very quick after the 200. OTOH, the 200
might be a minute or more after the INVITE, and the 200 gets to UA1
based on the address specified in the first Via. (Here we have to
assume that UA1 is mobile in order to make this interesting.) In
theory, you can put a DNS name in a Via header, but I don't know of
any phone that supports that.

I suppose if the Contact header never contained an IP address this
wouldn't be an issue, but then there has to be a separate network
component that keeps the mapping (Dynamic DNS I guess) to UA2s
current IP address. What about the SDP though? Would you put an
FQDN in the SDP?

According to RFC 4566, the connection address may be an FQDN. I've
never heard of that being supported, either.

But maybe there's no better choice -- you can't successfully identify
a network location with an address that has to be updated more
frequently than the updating mechanism makes possible. In SIP, the
worst case is a prolonged INVITE transaction, which can last for
minutes. If your IP address becomes invalid with less warning than
that, you've got to use FQDNs.

Dale
Joel Dodson
2008-02-06 19:09:08 UTC
Permalink
Thanks Dale (sorry to not respond for so long).

I've been going through all possible scenarios for the IP address changing
during call setup, mid call, and call tear down and this is a much larger
problem than I had initially realized. I've been following the "Remote
Target on Established Dialog" thread on the SIP email list (and I saw you're
following it as well). It's very relevant to this problem.

If anyone else is interested in this problem, check out the thread on the
SIP email alias and check out the race condition draft (referenced in that
thread): http://tools.ietf.org/html/draft-ietf-sipping-race-examples-04

thanks,
Joel
Post by Joel Dodson
From: Joel Dodson <jdodson at acm.org>
UA1 UA2
---------- INVITE ---------->
<---------- 200 OK ----------
At this point UA2 roams to a different subnet and its IP address changes.
---------- ACK ---------->
The ACK is being sent to the IP address specified in the Contact
header in the 200OK, which is no longer valid.
Well, the ACK is likely to be very quick after the 200. OTOH, the 200
might be a minute or more after the INVITE, and the 200 gets to UA1
based on the address specified in the first Via. (Here we have to
assume that UA1 is mobile in order to make this interesting.) In
theory, you can put a DNS name in a Via header, but I don't know of
any phone that supports that.
I suppose if the Contact header never contained an IP address this
wouldn't be an issue, but then there has to be a separate network
component that keeps the mapping (Dynamic DNS I guess) to UA2s
current IP address. What about the SDP though? Would you put an
FQDN in the SDP?
According to RFC 4566, the connection address may be an FQDN. I've
never heard of that being supported, either.
But maybe there's no better choice -- you can't successfully identify
a network location with an address that has to be updated more
frequently than the updating mechanism makes possible. In SIP, the
worst case is a prolonged INVITE transaction, which can last for
minutes. If your IP address becomes invalid with less warning than
that, you've got to use FQDNs.
Dale
_______________________________________________
Sip-implementors mailing list
Sip-implementors at lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
Loading...