Currently I'm developing a VoIP application. In wifi connection keeps me perfectamente. The problem is when I use 3g. After about 6 minutes in the background, and VoIP socket doesn't receive any call. But apparently it's connected. The problem isn't SIP server as this allows me to renew the registration after 10 minutes. Any idea? Thanks.
I add code:
AppDelegate *app = [[AppDelegate alloc] init];
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
int misocket = zObtenerSocket();
CFStreamCreatePairWithSocket(NULL, misocket, &readStream, &writeStream);
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType,kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
inputStream = ( NSInputStream *)readStream;
outputStream = ( NSOutputStream *)writeStream;
[inputStream setDelegate:app];
[inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType];
[outputStream setDelegate:app];
[outputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType] ;
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
[[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{
cierra_extra();
zbCerrar();
[inputStream close];
[outputStream close];
registrarse_bg();
}];
registrarse_bg() reopens the socket and create the again