comportamento do @setKeepAliveTimeout iOS, excedeu 15 vigílias em 300 segundos

Estou escrevendo um aplicativo VOIP no iOS 5 e estou tentando entender como a comunicação real pode permanecer viva enquanto em segundo plano.

Entendo que existe uma quantidade máxima de desperdícios que o soquete pode receber por um período de tempo. Meu problema é que minha conexão de soquete recebe muitas mensagens de ativação, por isso o aplicativo é encerrado com uma mensagem de falha:

exceeded 15 acorda em 300 segundos

O que eu realmente não entendo é como o soquete deve poder enviar e receber dados constantemente através dele (para necessidades de VOIP) se houver um limite para a quantidade de dados que ele pode receber por um período de tempo?

Digamos que o soquete esteja recebendo dados de voz para uma conversa de voz que está acontecendo enquanto está em segundo plano. Não é que os dados de voz devam passar pela conexão do soquete? Em caso afirmativo, como isso funcionará se houver um limite para a atividade que o soquete pode ter por um período de tempo?