Socket VoIP en iOS - no se recibieron notificaciones

Tengo una aplicación VoIP que utiliza un servicio TCP para activarlo en las llamadas entrantes. El socket TCP se crea con este fragmento de código:

CFReadStreamRef read = NULL;
CFWriteStreamRef write = NULL;
...
CFStreamCreatePairWithSocketToHost(NULL,(__bridge CFStringRef)shost, port, &read, &write);
self.read = (__bridge NSInputStream*)read;
self.write = (__bridge NSOutputStream*)write;
if (![self.read setProperty:NSStreamNetworkServiceTypeVoIP
                     forKey:NSStreamNetworkServiceType]){
    [Log log:@"Could not set VoIP mode to read stream"];
}
if (![self.write setProperty:NSStreamNetworkServiceTypeVoIP
                      forKey:NSStreamNetworkServiceType]){
    [Log log:@"Could not set VoIP mode to write stream"];
}
self.read.delegate = self;
self.write.delegate = self;
CFRelease(read);
CFRelease(write);
[self.read scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.write scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.read open];
[self.write open];

También he establecido lo siguiente:

VoIP y audio en la lista de informaciónMantener activo el temporizador usando [UIApplication sharedApplication] setKeepAliveTimeoutUIRequiresPersistentWiFi = YES en la lista de información (bastante seguro de que no es necesario, pero ...)

Esto funciona bien mientras la aplicación está en primer plano, e incluso funciona bien en segundo plano durante unos minutos, pero después de unos minutos, la aplicación no recibe ningún mensaje TCP nuevo. No funciona en wifi o 3G, mismo resultado para ambos.

También intenté establecer la propiedad solo para la secuencia de lectura (aunque la lectura y la escritura apuntan al mismo socket). Cada vez que recibo datos en el TCP o envío datos, también comienzo una tarea corta en segundo plano. Por cierto, todo tiene lugar en el hilo principal.
He comprobado si la aplicación falla, no lo hace.
Se puede observar el mismo comportamiento mientras se depura en el dispositivo; después de un tiempo, no se recibe nada (no se producen fallos, advertencias, nada).

¿Qué estoy haciendo mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta