Error al volver a conectarse después de la authentication desactualizada de Cisco AP Wi-Fi

Disculpándome por adelantado, no soy un experto en 802.11 y esta es una pregunta larga

Estoy trabajando en un cliente iOS voip, utilizamos la biblioteca Cocoaasyncsocket para nuestras conexiones TCP / UDP. La aplicación / iDevice puede entrar o salir de la cobertura de Wi-Fi (para los propósitos de esta discusión asumiremos que la aplicación está usando solo Wi-Fi … no hay connection de celular). Tenemos la configuration de plist adecuada para backgroundmode (voip, audio), así como también requiere Wi-Fi persistente.

Estamos teniendo un problema que parece particular para Cisco AP. Con la aplicación del cliente en primer plano y en roaming y en el range wifi, notamos que eventualmente el dispositivo iOS eventualmente no se reincorporará automáticamente a la networking. Después de una gran cantidad de debugging, se reveló que no tuvo nada que ver con la aplicación. En última instancia, la falla de volver a join se puede reproducir forzando al AP (a través de la configuration) para autenticar el iDevice tres veces. Después de la primera y segunda authentication, el iDevice vuelve a join automáticamente. Pero después de la tercera vez, iOS no se reincorpora automáticamente a la networking.

La networking se volverá a unir si, por ejemplo, la aplicación de correo electrónico de iOS se pone en primer plano.

Teníamos curiosidad si alguna otra aplicación de tipo VOIP sufriera este problema, y ​​ejecutó un experimento con FaceTime y Skype en el dispositivo iOS.

Skype se comportó de manera similar a nuestra aplicación voip, después de la tercera vez que se perdió la connection. Tratar de iniciar otra llamada resultó en un post que dice "debe tener una connection a internet para hacer una llamada".

FaceTime se desconectó en la tercera deauth y no se reincorporó automáticamente … sin embargo, pudimos reiniciar otra llamada FaceTime que causó que iOS se uniera a la networking y realizar la llamada.

Nos gustaría emular el comportamiento de FaceTime, pero hasta ahora no entendemos qué deberíamos hacer de manera diferente. A lo mejor de nuestro conocimiento, estamos cerrando correctamente los zócalos abiertos cuando nos desconectamos. ¿Alguien está familiarizado con este problema y tiene alguna idea para ofrecer?