Una notificación de entrega larga puede verse como un solo texto en el teléfono. Aun así, puede generar varias unidades facturables. Cada parte lleva tanto texto como información que identifica su lugar en el mensaje completo.
¿Cómo sabe el teléfono qué partes unir?
Cada parte lleva una referencia compartida, un recuento total de partes y su posición en la secuencia.
Estos valores se ubican en una cabecera junto al texto. La especificación 23.040 del 3rd Generation Partnership Project define ese mecanismo. El teléfono también verifica que las partes compartan el mismo remitente y centro de mensajes.
La cabecera ocupa parte de la capacidad de cada parte. Por lo tanto, Bird usa una asignación de texto menor para cada parte de un mensaje concatenado.
¿Por qué un carácter extra crea otro segmento?
Superar el límite de un solo segmento hace que Bird divida todo el cuerpo usando la asignación menor para múltiples partes.
El texto latino simple cabe en 160 caracteres en un segmento. Cada parte de un mensaje más largo contiene 153.
Un cuerpo de 160 letras latinas comunes cabe en un segmento. Agrega otra letra y el cuerpo de 161 letras necesita dos partes, con 153 y ocho letras. Ambas partes reservan espacio para la cabecera, incluida la primera.
Caracteres como las comillas tipográficas cambian todo el mensaje a una asignación menor: 70 caracteres, o 67 por parte. Un texto con 70 letras latinas y una comilla tipográfica necesita por tanto dos partes.
Algunos caracteres cuentan doble para estos límites. GSM-7 vs UCS-2 explica por qué los recuentos de caracteres visibles pueden subestimar el espacio necesario.
¿Qué pasa si falta una parte?
El teléfono no puede reconstruir el texto completo hasta tener todas las partes.
La red maneja las partes como mensajes separados. Su entrega puede completarse de forma independiente. La entrega exitosa de una parte no garantiza la entrega del texto completo.
Un mensaje incompleto puede ser un problema de entrega incluso cuando tu aplicación envió el cuerpo completo. Mantén un código de verificación de un solo uso dentro de un segmento siempre que sea posible. Así el destinatario no necesita varias partes para leerlo.
¿Cuántas partes acepta Bird?
Puedes enviar hasta doce segmentos en una solicitud. Bird rechaza un cuerpo más largo.
Eso admite 1.836 caracteres latinos simples: doce partes de 153. El alfabeto ampliado admite 804: doce partes de 67. Los caracteres que cuentan doble, incluidos algunos emoji, reducen cuánto texto cabe.
El campo text de la solicitud acepta una cadena no vacía sujeta a ese límite de doce segmentos. Superarlo devuelve HTTP 422, lo que significa que la solicitud se rechaza por contenido no válido. Bird no acorta el texto de forma silenciosa.
¿Cómo verifico el resultado calculado?
Lee el objeto segments en la respuesta del mensaje para ver lo que Bird calculó.
countes un entero de al menos 1. Los mensajes salientes no pueden superar 12. Cada parte contribuye una unidad facturable.encodingesGSM_7BIToUCS2, e identifica qué capacidad aplica.characterscuenta los caracteres antes de aplicar las reglas de conteo doble. Usacountpara verificar los segmentos facturables.
Para una plantilla larga, verifica el cuerpo final después de insertar nombres u otro texto variable. Segmentos SMS explica el cálculo de facturación, y la guía de límites de caracteres documenta la respuesta.
En resumen
Envías un solo mensaje.
Bird divide un cuerpo demasiado largo en partes que el teléfono receptor puede unir.
Cada parte necesita una cabecera.
La información de reensamblaje reduce la capacidad de texto de cada segmento, incluido el primero.
Una parte faltante impide el reensamblaje completo.
El teléfono necesita todas las partes para mostrar el texto completo.
Bird limita los mensajes salientes a doce segmentos.
Un cuerpo más largo se rechaza con una respuesta HTTP 422 en lugar de truncarse.