Antes de que las técnicas de cancelación de retroalimentación se volvieran comunes, dicho efecto ocurría incluso con un par de teléfonos, por ejemplo, teléfono A llamando a teléfono C. Si ambos teléfonos están en altavoz, entonces la señal emitida por el teléfono A entraría al micrófono de A y se transmitiría al teléfono C, donde la misma retroalimentación entre el altavoz y el micrófono la retransmitiría de vuelta a A, etc:
SPK_A -> MIC_A -> SPK_C -> MIC_C
Este problema se evita restando la señal de salida del altavoz de la entrada del micrófono. Sin embargo, para que esta resta de software funcione, el teléfono A necesita saber qué restar: si A es el único teléfono en la habitación, puede restar su propia salida de altavoz, y la cancelación de retroalimentación funciona como se pretendía.
Con un segundo par de teléfonos, la cancelación de retroalimentación falla porque la señal emitida por el teléfono A es captada por el teléfono B en su lugar. Como el teléfono B no sabe qué señal estaba emitiendo A, no puede restarla de su entrada de micrófono, y la envía al teléfono D:
SPK_A -> MIC_B -> SPK_D -> MIC_C
Existe un segundo bucle de retroalimentación (simétrico) que es posible:
SPK_B -> MIC_A -> SPK_C -> MIC_D
Como puedes ver, los bucles están cerrados, y no hay oportunidad para que el software de cancelación de retroalimentación rompa esos bucles.
Para prevenir el ruido, tendrás que romper físicamente los bucles cruzados entre teléfonos, por ejemplo, silenciando ambos altavoces (cambiando a auriculares) en una de las habitaciones (por ejemplo, A y B), o en una de las llamadas (por ejemplo, A y C).
De hecho, silenciar los micrófonos, estar en habitaciones separadas o tener una sola llamada a la vez también ayudaría, pero supongo que esas no son opciones reales.