mike-xu / imsdroid

Automatically exported from code.google.com/p/imsdroid
0 stars 0 forks source link

IP address change detection does not trigger new REGISTER request. #71

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. If you switch from 3G to Wifi or vice versa there is a change in IP
2. Looking at the code, Only a pop-up toast with sound is generated with no 
associated REGISTER to adapt to the new IP
3.

What is the expected output? What do you see instead?

One would expect IMSdroid to function even after the change in IP without 
having to exit and restart

What version of the product are you using? On what operating system?

Android version 2.1 on Samsung Galaxy

Please provide any additional information below.

public class ConnectionChangeReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
                if(ServiceManager.getSipService().isRegistered()){
                        Toast.makeText(IMSDroid.getContext(), "IMSDroid: Connect
ion information have changed", Toast.LENGTH_LONG).show();
                        ServiceManager.getSoundService().playNewEvent();
                }
        }

}

Original issue reported on code.google.com by saket...@gmail.com on 6 Oct 2010 at 9:47

GoogleCodeExporter commented 9 years ago
The implementation is incomplete because I don't really know what to do if the 
user is "in call". Off course if the connection type change this means that the 
IP addresses negotiated (RTP) will become invalid (No rtp/msrp/xcap/http 
stream). But the problem is that you cannot hangup the call as the SIP sockets 
are also invalid.
Any good idea is welcome.

Original comment by boss...@yahoo.fr on 6 Oct 2010 at 2:05

GoogleCodeExporter commented 9 years ago
How about a brute force approach, at least initially, of restarting sip stack 
and all the presence subscriptions as if you are signing in for the first time, 
each time you detect an IP address change?

I am not sure if Android supports 2 simultaneous IP addresses (one from Wifi 
and one from 3G/4G) to address the case of sending a re-invite when the user is 
"in call", sort of a soft hand-off. That would be nice.

Original comment by saket...@gmail.com on 7 Oct 2010 at 10:55

GoogleCodeExporter commented 9 years ago
Will add it for the next release.

Original comment by boss...@yahoo.fr on 8 Oct 2010 at 1:00

GoogleCodeExporter commented 9 years ago
I would very much like to see the simple re-registration and re-invite on IP 
address change (or for that matter any change in access point).  

I've been working this type of IP-to-IP handover with some different stacks 
with a good deal of success.  However, there are a few items which need to be 
kept in mind.  If an SBC is being used the front-end the P-CSCF, the core is 
likely to see this new registration as a completely new UA.  One way around 
this issue might be to implement GRUU or even just a simplicity +sip.instance.

Original comment by jemy...@gmail.com on 1 Nov 2010 at 4:05

GoogleCodeExporter commented 9 years ago
Hi jemyhre ,

I encountered the same problem. 
Can you please let me know with which stacks you were able to do IP-to-IP 
handover.

What is the status of that issue in IMSDroid.

Thanks,
Yaron

Original comment by yaron.ze...@gmail.com on 5 Jun 2011 at 1:34