
Compartir:
Rafay es ingeniero de software sénior en Vonage, donde forma parte del equipo de medios de vídeo dentro del departamento de ingeniería de API. Se dedica principalmente a desarrollar y mantener la infraestructura crítica que permite la comunicación por vídeo en tiempo real a gran escala, desde la gestión del ciclo de vida de las sesiones y los protocolos de señalización hasta las integraciones basadas en inteligencia artificial y las herramientas para desarrolladores.
Fin de la vida útil del relé de China: crea tu propio relé con la Video API de Vonage
Tiempo de lectura: 10 minutos
Nota: Esta guía está dirigida a los clientes de la Video API de Vonage que anteriormente utilizaban China Relay, o a cualquier cliente que desee prestar servicio a usuarios en China continental.
Antecedentes
Si bien el fin de la vida útil de China Relay supone una transición, también abre la puerta a algo mejor: la plena propiedad y el control de su infraestructura de retransmisión. En lugar de depender de un servicio gestionado por terceros, ahora puedes crear una solución que sea totalmente tuya, una que te ofrezca visibilidad directa sobre tu situación de cumplimiento normativo y la flexibilidad necesaria para adaptarte a medida que evolucionen los requisitos legales y normativos de China. Esta guía te explica paso a paso cómo hacerlo utilizando las funciones de la plataforma de la Video API de Vonage.
La función «China Relay» de Vonage proporcionaba una infraestructura de retransmisión gestionada alojada en China continental (región de AWS en Pekín) para ayudar a los clientes a prestar servicio a sus usuarios finales dentro de los límites de la red china. Constaba de tres componentes: una capa de geolocalización Lambda@Edge, un proxy WebSocket para la señalización de la API y un servidor TURN (Traversal Using Relays around NAT) para el retransmisión de medios. Los tres se implementaron en AWS China y funcionaban bajo el dominio nexmoproxy.cn .
China Relay llegó al final de su ciclo de vida en el segundo trimestre de 2026 y se ha dejado de fabricar definitivamente.
En este artículo se explica cómo los clientes de la Video API de Vonage pueden desarrollar y gestionar legalmente una solución de retransmisión equivalente utilizando las funciones de la plataforma de Vonage, concretamente «Configurable TURN» y «IP Proxy», en combinación con su propia infraestructura alojada en China.
Por qué necesitas una configuración especial para China
Conocer los requisitos de China te permite tener el control. Esto es lo que debes tener en cuenta para crear una experiencia de alta calidad y totalmente conforme a la normativa para tus usuarios:
Todos los servicios conectados a Internet deben disponer de una licencia válida de proveedor de comunicaciones por Internet (ICP).
El tráfico hacia y desde la infraestructura internacional en la nube es sometido a un filtrado muy estricto por parte del Gran Cortafuegos, lo que provoca una elevada pérdida de paquetes y una gran latencia en las transmisiones multimedia de WebRTC.
No es legal desviar el tráfico de usuarios chinos a través de servidores extranjeros sin las licencias correspondientes.
Tanto la señalización estándar de WebRTC (conexiones WebSocket a los servidores de la API de Vonage) como los medios (relé TURN) se verán afectados y deberán enrutarse a través de un proxy local alojado en China. Ten en cuenta que el proxy actúa como un salto local para mejorar la accesibilidad. El tráfico de señalización seguirá saliendo, en última instancia, de China para llegar a la infraestructura global de Vonage, y no hay garantía de terminación local.
La buena noticia: la Video API de Vonage ofrece las herramientas adecuadas para que puedas gestionar y controlar tú mismo esta infraestructura, lo que te garantiza total transparencia, flexibilidad y confianza en el cumplimiento normativo a largo plazo.
La arquitectura de sustitución
En lugar de recurrir a los servidores de retransmisión gestionados por Vonage en China, puedes crear tu propia capa de retransmisión utilizando estos componentes:
Componente | Para qué sirve | ¿Quién lo ofrece? |
TURN configurable | Configura el SDK de Video de Vonage para que utilice tus propios servidores TURN alojados en China, en lugar de la red global de servidores TURN de Vonage. | Funcionalidad de la API complementaria de Vonage |
Proxy IP | Desvía todo el tráfico de señalización de la Video API de Vonage —incluidas las llamadas a la API, las conexiones WebSocket y el registro de datos— a través de tu servidor proxy dentro de China. | Funcionalidad de la API complementaria de Vonage |
Infraestructura en la nube china | Aloja tu servidor TURN y tu proxy dentro de China, lo que ayuda a mantener el tráfico dentro de los límites establecidos por la normativa. | Tú, que utilizas un proveedor como Alibaba Cloud, Tencent Cloud o Huawei Cloud |
Licencia ICP | Es un requisito de la legislación china para poder prestar legalmente cualquier servicio con acceso a Internet en China continental. | Usted, expedido por las autoridades chinas competentes |
Nota: Tanto TURN configurable como el proxy IP son funciones adicionales que deben activarse en tu Account de Vonage. Ponte en contacto con tu representante de Account de Vonage para que las active.
Guía paso a paso
Paso 1: Obtener una licencia ICP
Antes de nada, debes obtener la(s) licencia(s) necesaria(s) del Gobierno chino:
Registro ICP (备案 / Beian): Es obligatorio para los sitios web y las aplicaciones a las que se pueda acceder desde China. Normalmente se tramita a través de tu proveedor de servicios en la nube chino.
Licencia ICP (许可证): Es necesaria para los servicios de Internet de valor añadido, entre los que se incluye la comunicación en tiempo real. Se trata de la licencia que Vonage no pudo obtener ni mantener para China Relay.
Importante: Solo las entidades que cuenten con una persona jurídica china o con un socio local autorizado pueden obtener una licencia ICP. Recomendamos encarecidamente contar con un socio jurídico local que esté familiarizado con la legislación china en materia de telecomunicaciones.
⚠ Sin una licencia ICP válida, la explotación de un servidor de retransmisión o un servidor proxy en China no cumple con la legislación vigente.
Paso 2: Configurar tu servidor TURN en China
Instala un servidor TURN en el proveedor de servicios en la nube chino que elijas siguiendo estos pasos:
Elige un proveedor de servicios en la nube que cuente con centros de datos en China continental (por ejemplo, Alibaba Cloud, Tencent Cloud o Huawei Cloud).
Implementa un servidor TURN. El servidor de código abierto coturn es una opción muy utilizada y con un buen soporte técnico.
Asegúrate de que tu servidor cuente con una dirección IP pública estable dentro de China y un dominio registrado bajo tu licencia ICP.
Configura tu servidor TURN con las credenciales y los ajustes de seguridad adecuados (se recomienda encarecidamente utilizar TLS).
Tu servidor TURN necesitará que estén abiertos los siguientes puertos:
UDP/TCP 3478 (TURN estándar)
TCP 443 (TURN sobre TLS, recomendado para garantizar la compatibilidad con el Gran Cortafuegos)
Consejo: Comprueba la accesibilidad de tu servidor TURN desde varios proveedores de servicios de Internet chinos (China Telecom, China Unicom y China Mobile), ya que el rendimiento y la accesibilidad pueden variar considerablemente de un proveedor a otro.
Paso 3: Configurar la Video API de Vonage con TURN configurable
La función «TURN configurable» de Vonage te permite anular la asignación predeterminada del servidor TURN para sesiones y conexiones, indicando el SDK del lado del cliente hacia sus propios servidores TURN en China, en lugar de hacia la red global de Vonage.
Nota: TURN configurable se configura en los SDK de cliente, no en los SDK del servidor. Los ejemplos que se muestran a continuación abarcan todas las plataformas de cliente compatibles.
Introduce la siguiente configuración al inicializar una sesión en el Client SDK de Vonage Video del lado del cliente. Sustituye YOUR_TURN_SERVER_HOSTNAME, YOUR_TURN_USERNAME, y YOUR_TURN_CREDENTIAL por los valores de la configuración de tu servidor TURN.
JavaScript (OpenTok.js)
const session = OT.initSession(API_KEY, SESSION_ID, {
iceConfig: {
includeServers: 'custom',
transportPolicy: 'relay',
customServers: [
{
urls: ['turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp'],
username: 'YOUR_TURN_USERNAME',
credential: 'YOUR_TURN_CREDENTIAL'
}
]
}
}); SDK para Android
List<IceServer> serverList = new IceServer(
"turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp", // TURN server URL
"YOUR_TURN_USERNAME", // Username
"YOUR_TURN_CREDENTIAL" // Credential
);
mSession = new Session.Builder(this, API_KEY, SESSION_ID)
.setCustomIceServers(serverList, IncludeServers.Custom)
.setIceRouting(TransportPolicy.TURN)
.build();
mSession.setSessionListener(this);
mSession.connect(token); SDK para iOS
OTSessionICEConfig *myICEServerConfiguration = [[OTSessionICEConfig alloc] init];
myICEServerConfiguration.includeServers = OTSessionICEIncludeServersCustom;
myICEServerConfiguration.transportPolicy = OTSessionICETransportForceTurn;
NSError *error = nil;
[myICEServerConfiguration addICEServerWithURL:@"turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp"
userName:@"YOUR_TURN_USERNAME"
credential:@"YOUR_TURN_CREDENTIAL"
error:&error];
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.iceConfig = myICEServerConfiguration;
_session = [[OTSession alloc] initWithApiKey:kApiKey
sessionId:kSessionId
delegate:self
settings:settings]; SDK para Windows
List<IceServer> iceServers = new List<IceServer>() {
new IceServer(
"turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp", "YOUR_TURN_USERNAME", "YOUR_TURN_CREDENTIAL"
)
};
IceConfig iceConfig = new IceConfig(
iceServers,
ICETransport.Relayed,
ICEIncludeServers.Custom
);
session = new Session.Builder(context, API_KEY, SESSION_ID){
IceConfig = iceConfig
}.Build(); SDK para Linux y macOS
// Provide the ICE configuration here.
struct otc_custom_ice_config ice_config;
ice_config.num_ice_servers = 1;
ice_config.ice_url = (char **)malloc(sizeof(char *) * ice_config.num_ice_servers);
ice_config.ice_url[0] = strdup("turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp");
ice_config.ice_user = (char **)malloc(sizeof(char *) * ice_config.num_ice_servers);
ice_config.ice_user[0] = strdup("YOUR_TURN_USERNAME");
ice_config.ice_credential = (char **)malloc(sizeof(char *) * ice_config.num_ice_servers);
ice_config.ice_credential[0] = strdup("YOUR_TURN_CREDENTIAL");
ice_config.force_turn = OTC_TRUE;
ice_config.use_custom_turn_only = OTC_TRUE;
otc_session_settings *session_settings = otc_session_settings_new();
if (session_settings != NULL) {
otc_session_settings_set_custom_ice_config(session_settings, &ice_config);
}
otc_session *session = otc_session_new_with_settings(API_KEY,
SESSION_ID,
&session_callbacks,
session_settings);
if (session == NULL) {
printf("Could not create session successfully");
return EXIT_FAILURE;
}
otc_session_connect(session, TOKEN); SDK de React Native
<OTSession
applicationId="your-application-id"
sessionId="your-session-id"
token="your-session-token"
options={{
iceConfig: {
includeServers: 'custom',
transportPolicy: 'relay',
customServers: [
{
urls: [
'turns:YOUR_TURN_SERVER_HOSTNAME:443?transport=tcp'
],
username: 'YOUR_TURN_USERNAME',
credential: 'YOUR_TURN_CREDENTIAL'
}
]
}
}}
>
<OTPublisher/>
<OTSubscriber/>
</OTSession> Consulta la documentación sobre TURN configurable de la Video API de Vonage para obtener información detallada específica de cada plataforma.
Paso 4: Enrutar el tráfico de señalización de la API a través de un proxy IP
De forma predeterminada, los clientes de la Video API de Vonage se conectan a la infraestructura global de señalización de Vonage (llamadas a la API, conexiones WebSocket y tráfico de registro), que puede verse bloqueada o sometida a fuertes restricciones por el cortafuegos de China.
Utiliza un proxy IP para desviar todo el tráfico de señalización no multimedia a través de un servidor que controles dentro de China.
Nota: El proxy IP redirige todo el tráfico, excepto las transmisiones multimedia. Las transmisiones multimedia se gestionan por separado mediante TURN configurable (paso 3). Necesitas ambas funciones para una configuración completa que cumpla con la normativa china.
Sigue estos pasos para configurar tu proxy IP:
Implementa un proxy inverso HTTP/WebSocket en tu infraestructura en la nube china. Este puede ejecutarse en el mismo servidor que tu servidor TURN o en un servidor independiente.
Basta con un proxy inverso ligero. Consulta la ejemplo de implementación de un servidor proxy como referencia.
Protege tu servidor proxy para que solo puedan acceder a él los clientes autorizados de Vonage (reglas de cortafuegos, autenticación basada en tokens).
Configura el SDK de Vonage Video para que utilice tu proxy en todas las llamadas a la API y conexiones WebSocket mediante los fragmentos de código específicos para cada plataforma que se indican a continuación.
Sustituye YOUR_CHINA_PROXY_URL en cada fragmento por la URL de tu servidor proxy implementado.
JavaScript (OpenTok.js)
Llama a este número antes de probar cualquier otro método de Vonage.
// Must be called before any other Vonage methods
OT.setProxyUrl('YOUR_CHINA_PROXY_URL'); SDK para Android
Indica la URL del proxy al crear tu sesión.
mSession = new Session.Builder(context, API_KEY, SESSION_ID)
.setProxyUrl("YOUR_CHINA_PROXY_URL")
.build(); SDK para iOS
Configura la URL del proxy en el objeto de configuración de la sesión.
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.proxyURL = @"YOUR_CHINA_PROXY_URL";
session = [[OTSession alloc] initWithApiKey:kApiKey
sessionId:kSessionId
delegate:self
settings:settings]; SDK para Windows
Configura la URL del proxy en el generador de sesiones.
Session = new Session.Builder(Context.Instance, API_KEY, SESSION_ID) {
ProxyUrl = "YOUR_CHINA_PROXY_URL"
}.Build(); SDK para Linux y macOS
Configura la URL del proxy en los ajustes de la sesión.
otc_session_settings_set_proxy_url(session_settings, "YOUR_CHINA_PROXY_URL");
otc_session *session = otc_session_new_with_settings(API_KEY, SESSION_ID,
&session_callbacks, session_settings); SDK de React Native
Pasa la URL del proxy en la propiedad «options» de la sesión.
<OTSession
apiKey="your-api-key"
sessionId="your-session-id"
token="your-session-token"
options={{
proxyUrl: 'YOUR_CHINA_PROXY_URL',
}}
>
<OTPublisher/>
<OTSubscriber/>
</OTSession> Consulte la documentación de Vonage Video API IP Proxy para obtener todos los detalles de configuración.
Paso 5: Comprueba tu configuración
Antes de poner el sistema en producción, comprueba tu configuración de principio a fin siguiendo esta lista de comprobación:
Verify que todo el contenido multimedia se transmita a través de tu servidor TURN utilizando las estadísticas de WebRTC (consulta
candidateType === "relay").
Verify que el tráfico de señalización pasa por tu proxy IP supervisando los registros del servidor proxy.
Supervisa los registros del servidor TURN para detectar actividades de autenticación y retransmisión.
Realiza pruebas con diferentes proveedores de acceso a Internet (China Telecom, China Unicom y China Mobile), ya que el rendimiento puede variar considerablemente.
Realiza pruebas tanto en dispositivos móviles (iOS/Android) como en ordenadores de sobremesa (web).
Resumen
Ahora que China Relay ha dejado de estar disponible, tienes la oportunidad de crear una solución de retransmisión totalmente autogestionada y que cumpla con la normativa, que te ofrezca un control total sobre tu infraestructura y te permita adelantarte a los cambios en el panorama normativo chino. El camino a seguir consiste en gestionar su propio relé TURN y su propio proxy de señalización en una infraestructura en la nube china, utilizando las funciones de TURN configurable y proxy IP de Vonage para conectarlos a la Video API de Vonage.
Lo que hizo China Relay | Qué debes hacer ahora |
Vonage gestionaba servidores TURN en China | Implementas TURN en Alibaba Cloud, Tencent Cloud o plataformas similares |
Enrutamiento por retransmisión gestionado por Vonage | Debes configurar la Video API de Vonage con tu punto final TURN a través de Configurable TURN |
Gestión del enrutamiento de la señalización de la API de Vonage | Se implementa un proxy IP y se configura el SDK |
Vonage era titular de la licencia ICP (intentó obtenerla) | Deberás obtener tu propia licencia ICP |
Vonage gestionaba el dominio (nexmoproxy.cn) | Puedes registrar y gestionar tu propio dominio .cn |
Una vez que tu servidor TURN y tu proxy IP estén en funcionamiento, dispondrás de una solución de retransmisión totalmente conforme a la normativa y autogestionada para tus usuarios de China continental.
Recursos
¿Tiene alguna pregunta o quiere compartir lo que está construyendo?
Suscríbase al Boletín para desarrolladores
Síguenos en X (antes Twitter) para estar al día
Ver tutoriales en nuestro canal de YouTube
Conéctese con nosotros en la página Vonage Developer en LinkedIn
Ayúdanos a mejorar nuestra experiencia como desarrolladores rellenando nuestro cuestionario «La voz del desarrollador»
Mantente conectado y entérate de las últimas noticias, consejos y eventos para desarrolladores.
Compartir:
Rafay es ingeniero de software sénior en Vonage, donde forma parte del equipo de medios de vídeo dentro del departamento de ingeniería de API. Se dedica principalmente a desarrollar y mantener la infraestructura crítica que permite la comunicación por vídeo en tiempo real a gran escala, desde la gestión del ciclo de vida de las sesiones y los protocolos de señalización hasta las integraciones basadas en inteligencia artificial y las herramientas para desarrolladores.