You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Calificar esta página:

Registro de cambios

Bienvenido al SDK de Programmable Voice para iOS

Los SDK de Programmable Voice de Twilio te permiten agregar llamadas de voz sobre IP (VoIP) a tus aplicaciones nativas de iOS.

Si deseas asegurarte de que la app está lista para iOS 14, visita esta página.

Aviso de compatibilidad con iOS 13

Es posible que las aplicaciones que utilizan las versiones 2.0.x, 3.x y 4.x del SDK no registren las llamadas entrantes cuando se ejecuten en iOS 13. Te recomendamos actualizar el SDK a la versión 5.0 o una posterior. Consulta este documento informativo y este issue (informe de problema) de GitHub para obtener más información. Consulta nuestras guías de migración cuando estés planificando la migración a nuestro SDK más reciente.

Los SDK de Programmable Voice de Twilio utilizan el control de versiones semántico. Twilio soporta la versión N-1 durante 12 meses después del primer lanzamiento de disponibilidad general de la versión N. Te recomendamos actualizar a la última versión lo antes posible para evitar cualquier cambio que pueda provocar el mal funcionamiento de tu aplicación. La versión 6.x es la última versión de iOS.

El soporte para la versión 4.x terminó el 19 de septiembre del 2020. Actualiza a la versión más reciente

El soporte para la versión 3.x terminó el 8 de junio del 2020. Actualiza a la versión más reciente

El soporte para 2.x terminó el 1 de enero del 2020. Actualiza a la versión más reciente

El fin del ciclo de vida de 1.x se producirá el 23 de marzo del 2021. Se prevé un período de mantenimiento de 2 horas para la versión 1.x a las 9:00 a. m., hora del Pacífico, el 26 de enero del 2021. Actualiza a la versión más reciente. Consulta este aviso de fin de vida útil para obtener más información.

6.4.2

11 de julio del 2022

  • SDK 6.4.2 de Programmable Voice para iOS [XCFramework] (suma de verificación: caebcfde5540e6aefeab61edb5d131c55565eb72b690fc50e8201836f0c21735).

Actualizaciones de la API

  • La propiedad writable' de la claseTVOIceCandidatePairStatsha sido renombrada comowriteable`.
  • Compatibilidad con la nueva edge (ubicación periférica) umatilla. Configura la propiedad TwilioVoiceSDK.edge antes de conectarte o aceptar la llamada.

Corrección de errores

  • Se ha corregido un conflicto de símbolos (RTCNativeAudioSessionDelegateAdapter) al utilizar el SDK junto con otra biblioteca WebRTC.

Impacto del tamaño de 6.4.2

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,2 MB 7,0 MB

6.4.1

26 de mayo del 2022

  • SDK 6.4.1 de Programmable Voice para iOS [XCFramework] (suma de verificación: 16080af560c584f574d00c04af408e340253f814b583b7920a718d66ed5ea6dd ).

Corrección de errores

  • Se ha corregido un fallo cuando el especificador de región principal (twr) del access token (token de acceso) es null.

Impacto del tamaño de 6.4.1

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,2 MB 7,0 MB

6.4.0

3 de mayo del 2022

  • SDK 6.4.0 de Programmable Voice para iOS [XCFramework] (suma de verificación: 5bb8ab2aa8f9f2e91d243e64c5e850cdc0c1365f4bfc64a37532b0688d118770).

Actualizaciones de la API

  • El SDK de Voice para iOS ahora es compatible con Twilio Regional mediante el suministro del especificador de región principal en el encabezado del access token (token de acceso) cuando se llama al método TwilioVoiceSDK.register(), TwilioVoiceSDK.unregister() y TwilioVoiceSDK.connect().

Los clientes existentes ya pueden migrar sus casos de uso de Voice a los centros de datos de Irlanda o Australia para establecer la residencia de los datos dentro de la región. Además, los nuevos clientes ahora pueden seleccionar Irlanda o Australia como su región de elección para los casos de uso relacionados con Voice. El uso de los nuevos centros de datos en Irlanda o Australia no supone ningún costo adicional. Para obtener más información sobre Regional Voice, consulta nuestra publicación del blog o dirígete a la documentación para desarrolladores para comenzar a aprender.

Ejemplo de especificación de la región principal en el access token (token de acceso) mediante la biblioteca auxiliar de Twilio para Node.js:

const accessToken = new twilio.jwt.AccessToken(
    credentials.accountSid,
    credentials.apiKeySid,
    credentials.apiKeySecret, {
      identity,
      ttl,
      region: 'au1',
    },
  );

El encabezado decodificado de tu access token (token de acceso) debería tener el siguiente aspecto:

{
  "alg": "HS256",
  "typ": "JWT",
  "cty": "twilio-fpa;v=1",
  "twr": "au1"
}

Mantenimiento

  • Se actualizó la documentación de la API de [TVOCall getStatsWithBlock:].

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.4.0

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,2 MB 7,0 MB

6.3.1

8 de febrero del 2022

  • SDK 6.3.1 de Programmable Voice para iOS [XCFramework] (suma de verificación: 08e5839eb77d8746baff8b132059f0babfb9e1ed860903553b7d9c02411442af ).

Mejoras

  • El SDK de Voice ahora valida los nombres de dominio remotos completos durante la configuración de la conexión TLS.
  • El SDK de Voice ahora utiliza el valor de tiempo de espera máximo de 10 minutos para responder a una llamada entrante.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.3.1

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,2 MB 7,0 MB

6.3.0

17 de mayo del 2021

Mejoras

  • Esta versión se basa en Chromium WebRTC 88.
  • La arquitectura arm64 del simulador de las Macs con Apple Silicon ya está disponible.
  • El SDK utiliza semántica de Unified Plan SDP en lugar de Plan-B.

Problemas conocidos

  • Carthage no es actualmente un mecanismo de distribución compatible con Twilio Voice. En este momento, Carthage no funciona con .xcframeworks como se documenta aquí. Una vez que Carthage sea compatible con .xcframeworks binarios, se volverá a agregar Carthage como sistema de distribución.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.3.0

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,2 MB 7,1 MB

5.5.2

29 de marzo del 2021

Corrección de errores

  • Se ha corregido un posible fallo en el módulo principal que permitía acceder al registro después de ser destruido por otro hilo. #419
  • Se ha corregido un error que impedía que el agente de llamada recibiera la devolución de llamada [TVOCallDelegate call:didDisconnecttiWithError:] cuando el destinatario colgaba.
  • Se ha corregido un error que le impedía al destinatario de la llamada recibir la devolución de llamada [TVONotificationDelegate cancelledCallInviteReceived:error:] cuando se producía un error de conexión de señalización.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.5.2

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,0 MB 6,7 MB
arm64 3,0 MB 6,7 MB

6.2.2

11 de marzo del 2021

Corrección de errores

  • Se corrigió el número de la versión del SDK en el archivo Info.plist del marco.
  • Se corrigió un posible fallo en el módulo principal que provocaba que se pudiera acceder al registro después de ser destruido por otro hilo. #419

Problemas conocidos

  • TwilioVoice.xcframework actualmente no es compatible con el simulador de las Macs con Apple Silicon arm64.
  • En este momento, Carthage no es un mecanismo de distribución compatible con Twilio Voice. En este momento, Carthage no funciona con .xcframeworks como se documenta aquí. Una vez que Carthage sea compatible con .xcframeworks binarios, se volverá a agregar Carthage como sistema de distribución.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.2.2

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,1 MB 7,0 MB

6.2.1

4 de febrero del 2021

Corrección de errores

  • Se corrigió la versión de la plataforma en podspecs.

Problemas conocidos

  • TwilioVoice.xcframework actualmente no es compatible con el simulador de las Macs con Apple Silicon arm64.
  • En este momento, Carthage no es un mecanismo de distribución compatible con Twilio Voice. En este momento, Carthage no funciona con .xcframeworks como se documenta aquí. Una vez que Carthage sea compatible con .xcframeworks binarios, se volverá a agregar Carthage como sistema de distribución.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.2.1

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,1 MB 7,0 MB

6.2.0

1 de febrero del 2021

Mejoras

  • El SDK para iOS se construye con Xcode 12.0.
  • Twilio Voice ahora se entrega como un .xcframework. El paquete .xcframework incluye los archivos .dSYM y .bcsymbolmap para permitir a los desarrolladores simbolizar los informes de fallos.
  • Twilio Voice ahora se distribuye como un paquete Swift.

Problemas conocidos

  • TwilioVoice.xcframework actualmente no es compatible con el simulador de las Macs con Apple Silicon arm64.
  • En este momento, Carthage no es un mecanismo de distribución compatible con Twilio Voice. En este momento, Carthage no funciona con .xcframeworks como se documenta aquí. Una vez que Carthage sea compatible con .xcframeworks binarios, se volverá a agregar Carthage como sistema de distribución.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.2.0

Arquitectura Tamaño comprimido Tamaño sin comprimir
arm64 3,1 MB 7,0 MB

6.1.0

7 de enero del 2021

Mejoras

  • Las direcciones IP privadas se enmascaran en el modo Release (Lanzamiento) en los registros del SDK y la carga útil del evento de Insights ice-candidate.
  • Las direcciones IP privadas no se enmascararán en el modo Debug (Depuración). El evento selected-ice-candidate-pair contendrá la dirección IP privada del candidato ICE activo local para la depuración en los modos Release (Lanzamiento) y Debug (Depuración).

Corrección de errores

  • Se ha corregido un error que impedía al agente de llamada recibir la devolución de llamada call:didDisconnectWithError: cuando el destinatario colgaba.
  • Se ha corregido un error que impedía al destinatario de la llamada recibir la devolución de llamada cancelledCallInviteReceived:error: cuando se producía un error de conexión de señalización.
  • El SDK de Voice tenía un marco y una clase con el mismo nombre, TwilioVoice. Esto causaba errores de compilación en Swift cuando una app intentaba acceder a la clase de un marco TwilioVoice usando el nombre del módulo, por ejemplo, TwilioVoice.ConnectOptions. Se han solucionado estos problemas mediante el cambio del nombre de la clase TwilioVoice a TwilioVoiceSDK.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.1.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 6,9 MB
arm64 3,1 MB 6,9 MB

6.0.2

4 de noviembre del 2021

Corrección de errores

  • Se ha corregido el error de compilación de Swift relacionado con AudioDeviceWorkerBlock.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.0.2

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 6,8 MB
arm64 3,1 MB 6,8 MB

6.0.1

2 de noviembre del 2020

Corrección de errores

  • Se ha corregido el error de compilación de Swift relacionado con AudioDeviceContext.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.0.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 6,8 MB
arm64 3,1 MB 6,8 MB

6.0.0

15 de septiembre del 2020

Cambio en la API

  • Se actualizó el SDK de Voice para mejorar la interoperabilidad con Swift.

    • Se eliminó el prefijo TVO de todos los tipos de Twilio Voice
    • Se renovaron muchas de las declaraciones de funciones delegadas para dejar más clara su intención
    • Se renovaron algunas de las declaraciones de métodos de clase para dejar más clara su intención
  • En esta versión se mejoró la API para la integración de CallKit. Para utilizar CallKit con el SDK, debes establecer ConnectOptions.uuid o AcceptOptions.uuid mientras realizas o respondes una llamada. Cuando se establece ConnectOptions.uuid o AcceptOptions.uuid, es tu responsabilidad activar y desactivar el dispositivo de audio. Deberías activar el dispositivo de audio en [CXProviderDelegate provider:didActivateAudioSession:], y desactivarlo en [CXProviderDelegate provider:didDeactivateAudioSession:].

    func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {
      audioDevice.isEnabled = true
    }

    func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) {
      audioDevice.isEnabled = false
    }

    func providerDidReset(_ provider: CXProvider) {
      audioDevice.isEnabled = false
    }

Si no utilizas CallKit en tu app, no debes establecer ConnectOptions.uuid o AcceptOptions.uuid mientras realizas o respondes una llamada. El SDK de Voice activará el dispositivo de audio cuando el uuid sea nil.

  • La propiedad uuid de TVOCall ahora es opcional.
  • Esta versión cambia el comportamiento subyacente de [TVOCallDelegate callDidConnect:] de tal forma que se emite cuando el estado de ICE es connected (conectada) y la negociación DTLS ha finalizado. Antes, [TVOCallDelegate callDidConnect:] se emitía cuando la negociación DTLS había finalizado.
  • En esta versión, se emite [TVOCallDelegate callDidConnect:] cuando suceden dos cosas: el estado de la conexión ICE es connected (conectado) y la negociación DTLS ha finalizado. No hay ningún cambio en el comportamiento, pero el SDK puede detectar errores de DTLS y emitir kTVOMediaDtlsTransportFailedErrorCode si se producen.
  • Se definió un nuevo código de error
Códigos de error ErrorCode Mensaje de error
53407 TVOMediaDtlsTransportFailedErrorCode Error en la conexión multimedia debido a un error en el protocolo de enlace DTLS
  • Desde ahora, el estado de PeerConnection se informa a Insights
Grupo de eventos Nivel Nombre del evento Descripción
pc-connection-state DEBUG new Se emite cuando el estado de peer connection es new (nueva)
pc-connection-state DEBUG connecting Se emite cuando el estado de peer connection es connecting (conectándose)
pc-connection-state DEBUG connected Se emite cuando el estado de peer connection es connected (conectada)
pc-connection-state DEBUG disconnected Se emite cuando el estado de peer connection es disconnected (desconectada)
pc-connection-state ERROR failed Se emite cuando el estado de peer connection es failed (fallida)
pc-connection-state DEBUG closed Se emite cuando el estado de peer connection es closed (cerrada)
  • Se eliminó la propiedad TwilioVoice.region. Utiliza TwilioVoice.edge para controlar la conectividad con Twilio.

  • Se ha cambiado el nombre de [TwilioVoice registerWithAccessToken:deviceTokenData:completion:] y [TwilioVoice unregisterWithAccessToken:deviceTokenData:completion:] para reemplazar los métodos [TwilioVoice registerWithAccessToken:deviceToken:completion:] y [TwilioVoice unregisterWithAccessToken:deviceToken:completion:] y desde ahora toman el token de dispositivo de tipo NSData como parámetro.

Mejoras

  • Esta versión se basa en Chromium WebRTC 83.
  • TwilioVoice.framework ahora se construye con Xcode 11.4.1
  • Se informa un nuevo evento de Insights llamado selected-ice-candidate-pair con el candidato activo de ICE local y remoto.
Grupo de eventos Nivel Nombre del evento Descripción
ice-candidate DEBUG selected-ice-candidate-pair Se emite cuando se determinan los candidatos activos de ICE local y remoto de peer connection
  • Se actualizó el algoritmo de cálculo de mos para que disminuya monotónicamente al aumentar los valores de jitter (fluctuación) y packets-lost-fraction (fracción de pérdida de paquetes) en un rango de valores de rtt. La MOS final siempre debe estar en el rango [de 1,0 a 4,6].

Mantenimiento

Corrección de errores

  • Se corrigió un error que se producía al procesar informes de estadísticas vacíos o informes de estadísticas sin pistas de audio remoto.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 6.0.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 6,8 MB
arm64 3,1 MB 6,8 MB

5.5.1

15 de septiembre del 2020

Corrección de errores

  • Se corrigió el manejo de tareas en segundo plano en [TVOCall disconnect], [TVOCallInvite reject], [TwilioVoice registerWithAccessToken:deviceTokenData:completion:] y [TwilioVoice unregisterWithAccessToken:deviceTokenData:completion:]. iOS ya no debería emitir una advertencia de riesgo de finalización por una tarea en segundo plano.
  • Se corrigió un fallo durante el procesamiento de informes de estadísticas vacíos o informes de estadísticas sin pistas de audio remoto.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.5.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 2,9 MB 6,7 MB
arm64 2,9 MB 6,7 MB

5.5.0

9 de julio del 2020

Cambio en la API

  • Se agregó la clase TVOCallerInfo para representar información sobre el agente de llamada. Actualmente, esta información se limita al estado SHAKEN/STIR de las llamadas PSTN entrantes, pero se podría ampliar posteriormente para incluir CNAM y otros tipos de punto final. La propiedad verified indica si Twilio ha verificado o no el número de teléfono del agente de llamada utilizando la validación SHAKEN/STIR. El valor de este atributo es true si el agente de llamada fue validado con el nivel 'A' y false si el agente de llamada fue verificado con un nivel inferior o si la validación falló. Si la información de SHAKEN/STIR del agente de llamada no está disponible o si el valor del estado de stir es null, el valor de esta propiedad será nil. Para obtener más información sobre cómo Twilio utiliza SHAKEN/STIR para realizar llamadas de confianza y protegerte contra la falsificación ilegal, visita https://www.twilio.com/docs/voice/trusted-calling-using-shakenstir.

  • Se agregó una nueva propiedad llamada callerInfo en TVOCallInvite que devuelve el objeto TVOCallerInfo que representa la información sobre el agente de llamada.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.5.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 2,9 MB 6,7 MB
arm64 2,9 MB 6,7 MB

5.4.1

25 de junio del 2020

Corrección de errores

  • Se corrigió un error que podía ocurrir cuando se destruía el objeto TVOCall o TVOCallInvite.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.4.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 2,9 MB 6,7 MB
arm64 2,9 MB 6,7 MB

5.4.0

3 de junio del 2020

Cambio en la API

  • Esta versión es compatible con la expansión de la infraestructura global de Twilio a través de las Edge Locations (ubicaciones periféricas), lo que permite a los clientes controlar su conectividad dentro y fuera de la plataforma de Twilio. El SDK de Voice para iOS utiliza estas ubicaciones periféricas para conectarse a la infraestructura de Twilio a través de la nueva propiedad TwilioVoice.edge. Esta nueva propiedad sustituye a TwilioVoice.region, ahora obsoleta. Consulta los nuevos nombres de ubicaciones y cómo se asocian a los antiguos nombres de región.

Revisa el siguiente ejemplo

  // Conectarse usando la baja latencia global
  TwilioVoice.edge = "roaming"
  • En esta versión también se agregó la puntuación media de la opinión (MOS) mos a TVORemoteAudioTrackStats. Utiliza [TVOCall getStatsWithBlock:] durante una llamada para obtener la puntuación. La mos se calcula una vez por segundo. Dado que la MOS se calcula a partir de las mediciones del rendimiento de la red, se puede utilizar para indicar al usuario el estado actual de la red con el fin de proporcionar mayor facilidad de uso. Consulta la documentación de la API para obtener más información

Ejemplo

  call.getStatsWith { (reports) in
      for report in reports {
          let remoteAudioTracksStats = report.remoteAudioTrackStats
          let mosLabel = "\(remoteAudioTracksStats.mos)"
      }
  }

Mejoras

  • Antes solo se registraban las advertencias de degradación de red en Insights. Con esta versión, también se invoca un nuevo método de TVOCallDelegate llamado call:didReceiveQualityWarnings:previousWarnings: cuando el SDK detecta dichas degradaciones. Utilízalo para transmitir el estado de la red al usuario a fin de brindar una mejor experiencia de usuario. Consulta el método de delegación y callQualityWarnings para obtener más información.

  • La Puntuación media de la opinión (MOS) ahora está disponible en TVOStatsReport. Utiliza [TVOCall getStatsWithBlock:] durante una llamada para obtener la puntuación. Dado que la MOS se calcula a partir de las mediciones del rendimiento de la red, se puede utilizar para indicar al usuario el estado actual de la red con el fin de proporcionar mayor facilidad de uso.

  • De forma predeterminada, la recopilación de ICE se realiza en todas las interfaces, excepto en algunas interfaces de tipo VPN. Por esta razón, es imposible conectarse a Twilio en redes que requieren el uso de una VPN. En esta versión, la nueva propiedad booleana enableIceGatheringOnAnyAddressPorts de TVOCallOptionsBuilder permite recopilar candidatos ICE de todas las interfaces disponibles. Se debe utilizar en aquellas redes en las que el valor predeterminado no funcione. Consulta enableIceGatheringOnAnyAddressPorts para obtener más información.

Elementos obsoletos

Corrección de errores

  • Se corrigió un error que provocaba que el SDK siguiera emitiendo la devolución de llamada [TVOCallDelegate callDidStartRinging:] si se llamaba a [TVOCall disconnect].
  • Se corrigió un error causado por una condición de carrera de señalización cuando el usuario rechazaba una TVOCallInvite.

Otros

  • Las construcciones de armv7 ya no están disponibles ni son compatibles.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.4.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 2,9 MB 7,0 MB
arm64 2,8 MB 6,9 MB

5.3.1

9 de abril del 2020

Mejoras

  • Se optimizó [TwilioVoice unregisterWithAccessToken:deviceTokenData:completion:] mediante la reducción de las solicitudes de red.
  • Se agregó la compatibilidad con la gestión en segundo plano a [TwilioVoice registerWithAccessToken:deviceTokenData:completion:] y [TwilioVoice unregisterWithAccessToken:deviceTokenData:completion:]. Desde ahora, finalizarán la ejecución incluso cuando la app esté en segundo plano.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.3.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,7 MB
arm64 2,8 MB 6,9 MB
armv7 3,0 MB 5,7 MB

5.3.0

18 de marzo del 2020

Cambios en la API

  • Se agregaron nuevos métodos para registrarse y anular el registro a las notificaciones push de VoIP que se basan en NSData en lugar de NSString. Los métodos de registro y anulación de registro anteriores quedaron obsoletos para que se prefiera el uso de estos nuevos métodos.
// TwilioVoice.h

+ (void)registerWithAccessToken:(nonnull NSString *)accessToken
                deviceTokenData:(nonnull NSData *)deviceTokenData
                     completion:(nullable void(^)(NSError * __nullable error))completion
NS_SWIFT_NAME(register(withAccessToken:deviceToken:completion:));

+ (void)unregisterWithAccessToken:(nonnull NSString *)accessToken
                  deviceTokenData:(nonnull NSData *)deviceTokenData
                       completion:(nullable void(^)(NSError * __nullable error))completion
NS_SWIFT_NAME(unregister(withAccessToken:deviceToken:completion:));

Swift example

  func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) {
      TwilioVoice.register(withAccessToken: accessToken, deviceToken: credentials.token) { (error) in
          if let error = error {
              NSLog("Se produjo un error durante el registro: \(error.localizedDescription)")
          } else {
              NSLog("Se registró exitosamente para recibir notificaciones push de VoIP.")
          }
      }
  }

Ejemplo en Objective-C

- (void)pushRegistry:(PKPushRegistry *)registry 
didUpdatePushCredentials:(PKPushCredentials *)credentials 
             forType:(NSString *)type {
    [TwilioVoice registerWithAccessToken:accessToken
                         deviceTokenData:credentials.token
                              completion:^(NSError *error) {
        if (error) {
            NSLog(@"Se produjo un error durante el registro: %@", [error localizedDescription]);
        } else {
            NSLog(@"Se registró exitosamente para recibir notificaciones push de VoIP.");
        }
    }];
}

Corrección de errores

  • Se corrigió los datos de Voice Insights con un valor válido de transport_id.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.3.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,7 MB
arm64 2,8 MB 6,9 MB
armv7 3,0 MB 5,7 MB

5.2.1

11 de marzo del 2020

Corrección de errores

  • Se corrigieron los errores del vinculador de símbolos duplicados en la biblioteca estática.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.2.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,7 MB
arm64 2,8 MB 6,9 MB
armv7 3,0 MB 5,7 MB

5.2.0

27 de febrero del 2020

Mejoras

  • Los intentos de restablecer la conexión multimedia se realizarán de forma preventiva si no se detecta flujo multimedia durante tres segundos.
  • Una llamada en curso cambiará automáticamente a un mejor tipo de red preferida si hay una disponible. A continuación, se muestra una lista de los tipos de red en orden de preferencia: ETHERNET, LOOPBACK, WI-FI, VPN y CELULAR. Por ejemplo, si una red Wi-Fi comienza a estar disponible mientras hay una llamada en curso que utiliza datos CELULARES, la llamada comenzará automáticamente a usar la red Wi-Fi.
  • Se agregaron los tipos de dato correctos a la carga útil de los eventos de Insights.

Corrección de errores

  • Se corrigió un error cuando se recibía una invitación de llamada cancelada, pero el valor de from era nil.

Cosas a tener en cuenta

  • Como la reconexión multimedia y de señalización son dos procesos totalmente independientes, es probable que se reciban varias devoluciones de llamadas [TVOCallDelegate call:isReconnectingWithError:] y [TVOCallDelegate callDidReconnect:] en relación con un mismo evento de cambio de red, en el orden especificado; es decir, una devolución de llamada [TVOCallDelegate call:isReconnectingWithError:] siempre vendrá antes que una devolución de llamada [TVOCallDelegate callDidReconnect:].

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.2.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,7 MB
arm64 2,8 MB 6,9 MB
armv7 3,0 MB 5,6 MB

5.1.2

14 de febrero del 2020

Corrección de errores

  • Se corrigió un error cuando se recibía una invitación de llamada cancelada, pero el valor de from era nil.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.1.2

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,6 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

5.1.1

9 de diciembre del 2019

Mejoras

  • Desde ahora, el nombre de la aplicación, el ID del paquete, la versión, el número de compilación, la versión de Xcode y la versión principal y secundaria del SDK se publican en Insights. Esto ayuda a identificar los problemas si se encuentra uno.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.1.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,0 MB 12,6 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

5.1.0

19 de noviembre del 2019

Mejoras

  • Mejoras en la gestión de llamadas entrantes. Anteriormente, si se producían problemas de red antes de que se respondiera o rechazara una llamada entrante, se desconectaba la llamada. En esta versión, continuaremos intentando establecer una conexión con Twilio durante un máximo de 40 segundos antes de desconectar la llamada.
  • Agregamos la compatibilidad con OpenSSL 1.1.x en la biblioteca estática de nuestro SDK. Para utilizar esta versión del SDK, consulta las instrucciones incluidas en Biblioteca estática . Ahora publicamos el códec negociado y sus parámetros asociados en Insights.
Grupo de eventos Nivel Nombre del evento Descripción
settings INFO códec Se emite cuando se selecciona el códec

Otras mejoras

  • Mejoramos la manera en que realizamos la resolución del DNS. Anteriormente, algunas solicitudes al DNS podían bloquear indirectamente el hilo principal. Este ya no es el caso.
  • El nivel del evento listening-error se informaba incorrectamente como INFO, en lugar de ERROR a insights.

Elementos obsoleto

  • Eliminamos la compatibilidad con la arquitectura iOS i386 (simulador iOS de 32 bits)

Problemas conocidos

  • Si se utiliza el SDK de Voice para iOS junto con la biblioteca WebRTC, se producirá un conflicto en el símbolo RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 5.1.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,6 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

5.0.0

19 de septiembre del 2019

Compatibilidad con iOS 13 y Xcode 11

Esta versión proporciona compatibilidad con la nueva política de notificación push de PushKit introducida por iOS 13 y Xcode 11. Para actualizar tu aplicación, sigue la guía de migración.

Insights

Para permitir la observación de las cancelaciones de llamadas entrantes, se han agregado los siguientes eventos de Insights:

Grupo de eventos Nombre del evento Nivel Descripción
connection listen info Se emite cuando se realiza un intento de detectar las cancelaciones
connection listening info Se emite cuando el intento de detectar las cancelaciones es exitoso
connection cancel info Se emite cuando se informa una cancelación
connection listening-error error Se emite cuando el intento de detectar la cancelación falla
registration unsupported-cancel-message-error error Se emite cuando el SDK procesa una notificación push de "cancelación". Esta versión del SDK no admite notificaciones push de "cancelación"

Cambios en la API

  • A partir de 5.0.0, cuando se llame a [TwilioVoice registerWithAccessToken:deviceToken:completion:], el SDK de Voice solo se registrará para recibir notificaciones push de "llamada" y las invitaciones de llamadas canceladas serán determinadas internamente por el SDK. [TwilioVoice handleNotification:delegate:delegateQueue:] ya no procesa las cargas útiles de notificaciones push de "cancelación" y retornará false si se le entrega una notificación de cancelación.
  • Cuando se pasa una notificación push de llamada válida a [TwilioVoice handleNotification:delegate:delegateQueue:], se emitirá una TVOCallInvite [TVONotificationDelegate callInviteReceived:]. Se emitirá una TVOCancelledCallInvite de forma asíncrona a través de [TVONotificationDelegate cancelledCallInviteReceived:error:] si se produce alguno de los siguientes eventos:
  • El agente de llamada desconecta la llamada prematuramente.
  • El destinatario de la llamada no acepta ni rechaza la llamada en aproximadamente 30 segundos.
  • El SDK de Voice no puede establecer una conexión con Twilio. Debes conservar la TVOCallInvite para que se te notifique la cancelación mediante [TVONotificationDelegate cancelledCallInviteReceived:error:]. No se emitirá una TVOCancelledCallInvite si se acepta o rechaza la invitación.

  • [TwilioVoice handleNotification:delegate:] ahora es [TwilioVoice handleNotification:delegate:delegateQueue:]

  • delegateQueue: la cola de despacho que recibe la devolución de llamada [TVONotificationDelegate cancelledCallInviteReceived:error:]. Si se pasa nil, se usará la cola principal de despacho.
  • Cuando se recibe una notificación de "llamada", el SDK de Voice activará la devolución de llamada [TVONotificationDelegate callInviteReceived:] de forma síncrona.
  • Cuando se recibe una notificación de "cancelación", el método devuelve false.
  • [TVONotificationDelegate cancelledCallInviteReceived:] es ahora [TVONotificationDelegate cancelledCallInviteReceived:error:]
  • El error indica que la llamada se canceló como resultado de un error. La propiedad error.code tendrá el valor TVOErrorCallCancelledError si el agente de llamada cancela la llamada antes de que el destinatario pudiera responder.

  • Se cambió el nombre de la propiedad enableInsights a insights y se movió de TVOCallOptions.h a TwilioVoice.h.

  • La propiedad region se trasladó de TVOCallOptions.h a TwilioVoice.h. Si estás especificando una región mediante la propiedad de región TwilioVoice.h, desde ahora debes hacerlo antes de llamar a [TwilioVoice connectWithAccessToken:delegate:] o [TwilioVoice handleNotification:delegate:delegateQueue:].

  • Se agregó el método de clase [TVOCallInvite isValid:] a TVOCallInvite para que las apps validen si la carga útil de la notificación es una notificación de llamada válida enviada por Twilio. Una carga útil de notificación válida dará como resultado el retorno de una TVOCallInvite a través de la devolución de llamada [TVONotificationDelegate callInviteReceived:] cuando se pase a [TwilioVoice handleNotification:delegate:delegateQueue:].

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

** Impacto del tamaño de 5.0.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,6 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

4.3.0

19 de agosto del 2019

Mejoras

API de identificación del punto de código de servicios diferenciados (DSCP)

La API de identificación del punto de código de servicios diferenciados (DSCP) te permite marcar los paquetes de audio como Tránsito expedito (EF) para mejorar el enrutamiento de paquetes. Cuando se activa, las redes utilizadas priorizarán la entrega de los paquetes de audio para mejorar la calidad de audio.

Utiliza enableDscp para activar o desactivar la identificación de DSCP. Ten en cuenta que la opción enableDscp está activada de forma predeterminada. Por ejemplo:

// Configurar el DSCP con `TVOConnectOptions`
let connectOptions = TVOConnectOptions(accessToken: accessToken) { (builder) in
    builder.enableDscp = true
}

let call = TwilioVoice.connect(with: connectOptions, delegate: callDelegate)
// Configure DSCP with `TVOAcceptOptions`
let acceptOptions = TVOAcceptOptions(accessToken: accessToken) { (builder) in
    builder.enableDscp = true
}

let call = callInvite.accept(with: acceptOptions, delegate: callDelegate)

Para obtener más información, consulta la documentación.

Problemas conocidos

  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 4.3.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,4 MB
arm64 2,8 MB 6,7 MB
armv7 3,0 MB 5,5 MB

4.2.1

8 de agosto del 2019

Esta versión incluye cambios en la forma en que se compila y empaqueta la biblioteca estática libTwilioVoice.a. libTwilioVoice.a ahora contiene todas las dependencias de las bibliotecas estáticas. Usa -lTwilioVoice en la configuración Other Linker Flags (Otros identificadores de vinculación) para vincular el SDK. BoringSSL no se empaqueta como un artefacto independiente.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 4.2.1

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,4 MB
arm64 2,7 MB 6,7 MB
armv7 3,0 MB 5,5 MB

4.2.0

7 de agosto del 2019

Mejoras

Parámetros personalizados en la notificación de llamada cancelada

Ahora puedes obtener los parámetros personalizados establecidos en tu aplicación TwiML a través de TVOCancelledCallInvite. Gracias a esto, puedes, por ejemplo, mostrar una notificación de llamada perdida con el nombre público del agente de llamada obtenido mediante customParameters de TVOCancelledCallInvite.

Para obtener más información, consulta la documentación de la API

Pasar parámetros personalizados en TwiML

  <?xml version="1.0" encoding="UTF-8"?>
  <Response>
    <Dial callerId="client:alice">
      <Client>
        <Identity>bob</Identity>
        <Parameter name="caller_first_name" value="alice" />
        <Parameter name="caller_last_name" value="smith" />
      </Client>
    </Dial>
  </Response>

cancelledCallInvite.customParameters:

  {
    "caller_first_name" = "alice";
    "caller_last_name" = "smith";
  }

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 4.2.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,4 MB
arm64 2,7 MB 6,7 MB
armv7 3,0 MB 5,5 MB

4.1.0

15 de julio del 2019

Nuevas características

API de ancho de banda medio máximo

Por defecto, el códec Opus está configurado con una tasa de transmisión de alrededor de 32 kbps (de 40 a 50 kbps en cable). Con esta versión, puedes establecer una tasa de bits media máxima personalizada para controlar mejor la cantidad de ancho de banda que debe utilizar tu aplicación de VoIP. Consulta RFC-7587 sección 7.1 para obtener más información sobre la tasa de bits media máxima.

El objetivo principal de esta API es establecer una tasa de bits media máxima inferior para minimizar el uso del ancho de banda. Esto resulta especialmente útil en implementaciones en las que el ancho de banda es importante. Cuando el ancho de banda no es motivo de preocupación, no es necesario utilizar esta API.

La tasa de bits media máxima se puede establecer en un valor tan bajo como 6000 bps y tan alto como 51 000 bps. Los valores fuera de este rango se ignoran y se utiliza el modo de funcionamiento Opus predeterminado. Consulta la documentación de la API para obtener más información.

Como era de esperar, la reducción de la tasa de bits media máxima afecta a la calidad del audio. No recomendamos establecer la tasa de bits media máxima en un valor inferior a 8000 bps. Por otro lado, si se establecen valores superiores a 32 000 bps, la calidad del audio mejorará de forma insignificante.

Por ejemplo, haz lo siguiente para establecer una nueva tasa de bits media máxima de 16 000 bps:

let connectOptions = TVOConnectOptions(accessToken: accessToken) { (builder) in
    builder.params = params
    builder.preferredAudioCodecs = [TVOOpusCodec(maxAverageBitrate: 16000)]
}

let call = TwilioVoice.connect(with: connectOptions, delegate: callDelegate)

Otras mejoras

  • El SDK de Programmable Voice para iOS transmite los datos de las llamadas de VoIP e Insights. Con esta versión, hemos reducido el consumo de datos relacionados con Insights en alrededor de un 25 %. Esto se logró reduciendo el intervalo de notificación de eventos.
  • CLIENT-6358 El SDK ahora informa a Insights sobre los eventos de ice-candidate. Estos eventos se producen cuando se llama a OnIceCandidate en PeerConnection.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 4.1.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,9 MB 12,4 MB
arm64 2,7 MB 6,7 MB
armv7 3,0 MB 5,5 MB

4.0.0

28 de junio del 2019

Nuevas características

API de estado de reconexión

Esta versión agrega la nueva API de estado de reconexión. Esta API agrega un nuevo estado TVOCallStateReconnecting a TVOCallState y dos nuevos métodos opcionales de TVOCallDelegate, call:isReconnectingWithError: y callDidReconnect:.

La capacidad de reconexión de llamadas está disponible desde el SDK 3.0. Por ejemplo, si se establece una llamada a través de una red wifi y la red wifi deja de estar disponible, el SDK cambiará automáticamente la llamada a la siguiente red disponible.

En esta versión se agregan las devoluciones de llamada de reconexión. Se invoca call:isReconnectingWithError: para indicar que una llamada se está reconectando debido a una interrupción de la red o a un cambio de red, mientras que callDidReconnect: se invoca una vez que la llamada fue reconectada. Puedes utilizar esta información para proporcionar comentarios intuitivos al usuario de la app cuando se está realizando una reconexión.

Mejoras

El paso de una llamada mal formada a [TwilioVoice connectWithAccessToken:] o [TwilioVoice connectWithOptions:delegate:] ahora dará como resultado TVOErrorAddressIncompleteError

Guía de migración

La migración desde 3.x es muy sencilla. Consulta nuestra guía de migración para obtener más información.

Problemas conocidos

  • Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Impacto del tamaño de 4.0.0

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,7 MB 6,7 MB
armv7 2,9 MB 5,5 MB

3.1.1

6 de junio del 2019

Corrección de errores

  • CLIENT-6220 Se corrigió un problema que provocaba que se emitiera una excepción NSInvalidArgumentException al conectar una llamada. #13

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.1.0

16 de mayo del 2019

Mejoras

Se mejoraron los códigos de error

Ahora brindamos más detalles sobre los errores encontrados durante [TwilioVoice registerWithAccessToken:deviceToken:completion:], [TwilioVoice unregisterWithAccessToken:deviceToken:completion:], [TwilioVoice connectWithOptions:delegate:] y [TVOCallInvite acceptWithOptions:delegate:]. Anteriormente, estas funciones notificaban los errores usando los errores genéricos TVOErrorRegistrationError o TVOErrorConnectionError.

Con los nuevos códigos de error, puedes tomar decisiones más fundamentadas para solucionar el problema. Por ejemplo, TVOErrorBadRequestError y TVOErrorTooManyRequestsError indican posibles problemas de programación, mientras TVOErrorTokenAuthenticationRejected indica un problema con tu Access Token (token de acceso).

Debes tener en cuenta que podría ser necesario que cambies tu código si agregaste una lógica especial para manejar TVOErrorRegistrationError o TVOErrorConnectionError.

Para obtener más información consulta la documentación de la API

A continuación, se presenta un resumen de los nuevos códigos disponibles para [TwilioVoice registerWithAccessToken:deviceToken:completion:], [TwilioVoice unregisterWithAccessToken:deviceToken:completion:]:

Código de error Valor Mensaje de error
TVOErrorBadRequestError 31400 Bad Request
TVOErrorForbiddenError 31403 Forbidden
TVOErrorNotFoundError 31404 Not Found
TVOErrorRequestTimeoutError 31408 Request Timeout
TVOErrorConflictError 31409 Conflict
TVOErrorUpgradeRequiredError 31426 Upgrade Required. Lo más probable es que esto esté relacionado con una versión de TLS que la infraestructura de Twilio no acepta
TVOErrorTooManyRequestsError 31429 Too Many Requests
TVOErrorInternalServerError 31500 Internal Server Error
TVOErrorBadGatewayError 31502 Bad Gateway
TVOErrorServiceUnavailableError 31503 Service Unavailable
TVOErrorGatewayTimeoutError 31504 Gateway Timeout

A continuación, se presenta un resumen de los nuevos códigos disponibles para [TwilioVoice connectWithOptions:delegate:] y [TVOCallInvite acceptWithOptions:delegate:]:

Código de error Valor Mensaje de error
TVOErrorTransportError 31009 Transport Error
TVOErrorBadRequestError 31400 Bad Request
TVOErrorForbiddenError 31403 Forbidden
TVOErrorNotFoundError 31404 Not Found
TVOErrorRequestTimeoutError 31408 Request Timeout
TVOErrorTemporarilyUnavailableError 31480 Temporarily Unavailable
TVOErrorCallDoesNotExistError 31481 Call/Transaction Does Not Exist
TVOErrorBusyHereError 31486 Busy Here
TVOErrorRequestTerminatedError 31487 Request Terminated
TVOErrorInternalServerError 31500 Internal Server
TVOErrorBadGatewayError 31502 Bad Gateway
TVOErrorServiceUnavailableError 31503 Service Unavailable
TVOErrorGatewayTimeoutError 31504 Gateway Timeout
TVOErrorDNSResolutionError 31530 DNS Resolution Error
TVOErrorBusyEverywhereError 31600 Busy Everywhere
TVOErrorDeclineError 31603 Decline
TVOErrorDoesNotExistAnywhereError 31604 Does Not Exist Anywhere

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0

25 de abril del 2019

Promovimos 3.0.0-beta13 a 3.0.0. Consulta nuestra guía de migración para actualizar tu aplicación a la versión 3.0.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,3 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta13

18 de abril del 2019

Corrección de errores

  • CLIENT-5982 Se corrigió un error que provocaba que en ocasiones se enviaran advertencias de calidad de llamada a Insights varias veces antes de que la advertencia se eliminara.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,3 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta12

17 de abril del 2019

Mejoras

  • CLIENT-5973 Se eliminaron TVOErrorConnectionTimeoutError, TVOErrorSignalingConnectionError, TVOErrorSignalingConnectionTimeoutError, TVOErrorSignalingIncomingMessageInvalidError, TVOErrorSignalingOutgoingMessageInvalidError, TVOErrorConfigurationAcquireFailedError y TVOErrorConfigurationAcquireTurnFailedError de TVOError.h.

Corrección de errores

  • CLIENT-5935 Se corrigió un error que provocaba el envío de eventos de advertencia de nivel de audio constante a Insights cuando la llamada estaba silenciada o en espera.
  • CLIENT-5969 Se renombró kDefaultAVAudioSessionConfigurationBlock como kTVODefaultAVAudioSessionConfigurationBlock para que se pudieran usar TwilioVoice.framework y TwilioVideo.framework en la misma aplicación.
  • CLIENT-5977 Se corrigió un error que provocaba que el SDK enviara a Insights valores double en packets_lost_fraction, en lugar de enteros.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,3 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta11

4 de abril del 2019

Mejoras

  • CLIENT-5379 Se agregó el monitoreo de accesibilidad de red al socket de señalización para una detección confiable de cambios de red.

Corrección de errores

  • CLIENT-5379 Se corrigió un error que provocaba que la transferencia entre redes Wi-Fi generara audio unidireccional seguido de la desconexión de la llamada.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta10

2 de abril del 2019

Corrección de errores

  • CLIENT-5828, CLIENT-5868 Desde ahora, un cambio de red que se produzca durante una reconexión provocará otro intento de reconexión para garantizar que la conexión multimedia se restaure en la red correcta.
  • CLIENT-5882 La información sobre métricas de llamada siempre estará disponible después del traspaso a otra red cuando la llamada tenga el estado TVOCallStateConnected.

Problemas conocidos

  • CLIENT-5576 El traspaso LTE -> Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de transversal de red de Twilio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta9

27 de marzo del 2019

Mejoras

  • CLIENT-5806 CLIENT-5807 Se actualizó la documentación de la API de [TVOCallInvite acceptWithDelegate:] y [TVOCallInvite acceptWithOptions:delegate:].
  • CLIENT-5810 Se actualizó la documentación de la API de TVOCall.

Cambios en la API

  • Los intentos de conectar una llamada a través de [TwilioVoice connectWithDelegate:] o [TVOCallInvite AcceptWithDelegate:] que fallen antes de alcanzar el estado TVOCallStateConnected siempre provocarán la ejecución de la devolución de llamadas call:didFailToConnectWithError: con un código de error. Sin embargo, si se llama a [TVOCall disconnect] mientras se intenta conectar o aceptar una llamada, se ejecutará call:didDisconnectWithError: sin ningún error.

Corrección de errores

  • CLIENT-5813 Las situaciones de pérdida de red que provocaban un fallo de llamada ahora generan la ejecución de la devolución de llamada call:didFailToConnectWithError:. Anteriormente, estas situaciones emitían de forma errónea call:didDisconnectWithError:.
  • CLIENT-5754 Una llamada que falla como resultado de no establecer una conexión multimedia antes de conectarse ahora genera la ejecución de la devolución de llamada call:didFailToConnectWithError:. Anteriormente, esta situación emitía por error call:didDisconnectWithError:.
  • CLIENT-5821 El valor de packets_lost_fraction notificado a Insights está correctamente calculado y dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaban erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.

Problemas conocidos

  • CLIENT-5576 El traspaso LTE -> Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio del recorrido transversal de red de Twilio.
  • CLIENT-5882 La información de métricas de llamada deja de estar disponible después del traspaso a otra red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta8

20 de marzo del 2019

Corrección de errores

  • CLIENT-5796 Se corrigió un problema que provocaba que la marca de tiempo en milisegundos de la carga útil del evento de Insights se desbordara en los dispositivos de arquitectura de 32 bits.
  • CLIENT-5830 Se eliminaron los scripts de TwilioVoice.framework que podían causar problemas de firma de código cuando las apps se cargaban a iTunes Connect.

Problemas conocidos

  • CLIENT-5576 El traspaso LTE -> Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5821 El valor de packets_lost_fraction notificado a Insights se calcula de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta7

19 de marzo del 2019

Cambios en la API

  • Desde ahora, la propiedad from de los objetos TVOCallInvite y TVOCancelledCallInvite puede tener un valor null en caso de que el valor no esté disponible en la notificación de la invitación de llamada.

Corrección de errores

  • CLIENT-5801 Se solucionó un problema que provocaba que una invitación de llamada entrante que no contenía un campo from (de) se considerara un mensaje no válido.

Problemas conocidos

  • CLIENT-5830 Las apps que usan la versión 3.0.0-beta7 pueden tener problemas de firma de código cuando se cargan a iTunes Connect debido a ciertos scripts de desarrollo que se incluyeron en TwilioVoice.framework.
  • CLIENT-5576 El traspaso LTE -> El Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5821 El valor de packets_lost_fraction notificado a Insights se calcula de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta6

14 de marzo del 2019

Mejoras

  • CLIENT-5258 Se redujo el tamaño del SDK mediante la eliminación de los códecs de software de video.
  • CLIENT-5353 Se redujo el tamaño del SDK mediante la eliminación de los canales de datos SCTP.

Problemas conocidos

  • CLIENT-5830 Las apps que usan la versión 3.0.0-beta6 pueden tener problemas de firma de código cuando se cargan a iTunes Connect debido a ciertos scripts de desarrollo que se incluyeron en TwilioVoice.framework.
  • CLIENT-5576 El traspaso LTE -> El Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5821 El valor de packets_lost_fraction notificado a Insights se calcula de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 5,8 MB 12,4 MB
arm64 2,8 MB 6,8 MB
armv7 3,0 MB 5,6 MB

3.0.0-beta5

4 de marzo del 2019

Mejoras

  • CLIENT-5678 El informe de impacto de tamaño ahora incluye tanto la arquitectura armv7 como la arm64.
  • La biblioteca libboringssl.a ahora está separada y se distribuye junto con la biblioteca estática libTwilioVoice.a. Agrega -lboringssl a Other Linker Flags (Otros identificadores de vinculación) para vincular el SDK correctamente.

Corrección de errores

  • CLIENT-5664 La biblioteca estática libTwilioVoice.a ahora está correctamente vinculada a las dependencias.

Problemas conocidos

  • CLIENT-5830 Las apps que usan la versión 3.0.0-beta5 pueden tener problemas de firma de código cuando se cargan a iTunes Connect debido a ciertos scripts de desarrollo que se incluyeron en TwilioVoice.framework.
  • CLIENT-5576 El traspaso LTE -> El Wi-Fi podría generar audio unidireccional.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Se presentará un menor tamaño durante el período beta.
  • CLIENT-5821 El valor packets_lost_fraction notificado a Insights está calculado de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,4 MB 13,4 MB
arm64 3,1 MB 7,4 MB
armv7 3,3 MB 6,1 MB

3.0.0-beta4

14 de febrero del 2019

Cambios en la API

  • Se reemplazó TVOCallFeedbackScoreNoScore con TVOCallFeedbackScoreNotReported.

Problemas conocidos

  • CLIENT-5576 El traspaso de LTE a> Wi-Fi podría generar audio unidireccional.
  • CLIENT-5578 El traspaso entre redes Wi-Fi podría provocar que la llamada se desconecte.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Se presentará un menor tamaño durante el período beta.
  • CLIENT-5821 El valor packets_lost_fraction notificado a Insights está calculado de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 6,4 MB 13,4 MB
arm64 3,1 MB 7,3 MB
armv7 3,3 MB 6,0 MB

3.0.0-beta3

7 de febrero del 2019

Mejoras

  • El SDK de Voice publica información sobre las llamadas. La publicación está habilitada de forma predeterminada. La preferencia se puede actualizar mediante la configuración de TVOCallOptions.enableInsights.
  • CLIENT-5595 Se agregó TVOErrorTokenAuthenticationResected (51007). Este error se produce al intentar realizar el registro o anular el registro con un token que no es válido.
  • Se agregó el método [TVOCall postFeedback:issue:] a TVOCall que envía a Twilio los comentarios recopilados en relación con la llamada. Si se pasan TVOCallFeedbackScoreNoScore y TVOCallFeedbackIssueNotReported, Twilio notificará que no hay comentarios disponibles en relación con la llamada.
  • CLIENT-2985 El SDK se puede conectar con los servidores de Twilio en un entorno IPv6.
  • CLIENT-4998 La llamada continuará después del traspaso a otra red.

Corrección de errores

  • CLIENT-5573 Se corrigió un error que se producía cuando un cliente emitía una desconexión cuando ya estaba procesando una solicitud de terminación del servidor.

Problemas conocidos

  • CLIENT-5576 El traspaso de LTE a> Wi-Fi podría generar audio unidireccional.
  • CLIENT-5578 El traspaso entre redes Wi-Fi podría provocar que la llamada se desconecte.
  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Se presentará un menor tamaño durante el período beta.
  • CLIENT-5821 El valor packets_lost_fraction notificado a Insights está calculado de forma incorrecta y está dentro del rango esperado de entre 0 y 100.
  • CLIENT-5835 Se notificaron erróneamente a Insights los eventos cuando la propiedad TVOConnectOptions.enableInsights estaba establecida en false.
  • CLIENT-5882 Los datos de las métricas de llamada dejan de estar disponibles después de una transferencia de red durante una llamada.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 7,3 MB
arm64 3,1 MB 7,3 MB

3.0.0-beta2

13 de diciembre del 2018

Mejoras

  • Se agregó una propiedad preferredAudioCodecs a TVOCallOptions. Se agregó compatibilidad con Opus al SDK de Voice, pero aún no se ha habilitado en la infraestructura de Twilio. Se notificará a los usuarios del SDK de Voice cuando el códec Opus esté activado en la infraestructura de Twilio.
  • Se agregó el nuevo código de error 31008. Este error se produce cuando se acepta una TVOCallInvite después de que la llamada ha finalizado.

Corrección de errores

  • CLIENT-5398 Al activar el sonido de una llamada en espera, se activa el flujo de audio.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4547 No se publica Insights.
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

Informe de tamaño

Arquitectura Tamaño de descarga de la app Tamaño de almacenamiento de la app
Universal 3,1 MB 7,2 MB
arm64 3,1 MB 7,2 MB

3.0.0-beta1

26 de noviembre del 2018

Mejoras

  • Se agregaron códigos de error relacionados con las conexiones multimedia y de señalización.

Problemas conocidos

  • CLIENT-4943 Las redes restrictivas pueden fallar a menos que los servidores ICE se proporcionen a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5258 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4547 No se publica Insights.
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • CLIENT-5398 Activar el sonido de una llamada en espera provoca la activación del flujo de audio.
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

3.0.0-preview5

24 de octubre del 2018

Corrección de errores

  • CLIENT-5186 Se corrigió un error que provocaba la pérdida de la conexión a la red durante una llamada activa.
  • CLIENT-5132 El método de delegación call:didDisconnectWithError: del agente de llamada se debe llamar con el error nil, en lugar de con call:didFailToConnectWithError: cuando se rechaza la TVOCallInvite con la opción answerOnBridge activada.
  • CLIENT-4837 Se corrigió un error causado por SIGPIPE cuando un socket de señalización se cierra debido a un error.

Problemas conocidos

  • CLIENT-5059 Las llamadas realizadas a un client (cliente) o número PSTN que se demoren en ser contestadas podrían no conectarse.
  • CLIENT-4943 Las redes restrictivas podrían fallar si no se brindan servidores ICE a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5258 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4547 Insights no se publica.
  • CLIENT-4672 CLIENT-4673 Los códigos de error 20157 y 20151 entregan mensajes y textos explicativos diferentes de los de los SDK 2.0 de Voice
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

3.0.0-preview4

2 de octubre del 2018

Mejoras

  • Se agregó una propiedad preferredAudioCodecs a TVOCallInvite.

Pasar parámetros personalizados en TwiML

  <?xml version="1.0" encoding="UTF-8"?>
  <Response>
    <Dial callerId="client:alice">
      <Client>
        <Identity>bob</Identity>
        <Parameter name="caller_first_name" value="alice" />
        <Parameter name="caller_last_name" value="smith" />
      </Client>
    </Dial>
  </Response>

callInvite.customParameters:

  {
    "caller_first_name" = "alice";
    "caller_last_name" = "smith";
  }

Corrección de errores

  • CLIENT-5202 Se corrigió un error causado por una contaminación de la memoria cuando se crea un TVOAudioDevice personalizado.
  • CLIENT-5160 El SDK de Voice se compila usando la variante de audio de WebRTC 67. Ya no es necesario que los desarrolladores agreguen la clave NSCameraUsageDescription al archivo Info.plist de la app para consumir el SDK de Voice en una app y cargarla a la App Store. #164
  • CLIENT-5204 El audio de la llamada no se pudo recuperar de las interrupciones AVAudioSession. TVOAVAudioSessionConfigurationBlock ahora configura AVAudioSession.preferredIOBufferDuration en 20 milisegundos de forma predeterminada con el fin de concordar con los cambios en WebRTC.

Problemas conocidos

  • CLIENT-5059 Las llamadas realizadas a un número PSTN podrían no conectarse cuando la opción answerOnBridge está configurada como true.
  • CLIENT-4943 Las redes restrictivas podrían fallar si no se brindan servidores ICE a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-5258 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4547 Insights no se publica.
  • CLIENT-4672 CLIENT-4673 Los códigos de error 20157 y 20151 entregan mensajes y textos explicativos diferentes de los de los SDK 2.0 de Voice
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

3.0.0-preview3

12 de septiembre del 2018

Corrección de errores

  • CLIENT-5101 Se eliminó el archivo inject_credentials.sh que se incluyó accidentalmente en el paquete TwilioVoice.framework.

Mejoras

  • Esta versión se basa en Chromium WebRTC 67.
  • Se proporciona un mecanismo sin estado para procesar las notificaciones push relacionadas con las invitaciones de llamadas y cancelaciones de invitaciones de llamadas. [TwilioVoice handleNotification:] ya no genera errores a través del método notificationError: durante el procesamiento de notificaciones no válidas; en su lugar se devuelve un valor BOOL cuando se llama. El valor booleano es YES cuando la carga útil de notificaciones proporcionada da como resultado un objeto TVOCallInvite o TVOCancelledCallInvite. Si [TwilioVoice handleNotification:] devuelve NO significa que los datos proporcionados no correspondían a una notificación push de Twilio Voice. El objeto TVOCallInvite tiene un método accept() y un método reject(). Mientras que el objeto TVOCancelledCallInvite simplemente proporciona los campos to, from y callSid que también están disponibles en el objeto TVOCallInvite. El campo callSid se puede utilizar para asociar un objeto TVOCallInvite con un objeto TVOCancelledCallInvite.
  • Se eliminó notificationError: del protocolo TVONotificationDelegate. Se agregó cancelledCallInviteReceived: al SDK para notificar a la aplicación cuando se recibe una notificación de cancelación de llamada.

Procesamiento de notificaciones push en 2.X

- (void)pushRegistry:(PKPushRegistry *)registry
        didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
             forType:(NSString *)type {
    [TwilioVoice handleNotification:payload.dictionaryPayload delegate:self];
}

#pragma mark - TVONotificationDelegate

- (void)callInviteReceived:(TVOCallInvite *)callInvite {
    if (callInvite.state == TVOCallInviteStatePending) {
        [self handleCallInviteReceived:callInvite];
    } else if (callInvite.state == TVOCallInviteStateCanceled) {
        [self handleCallInviteCanceled:callInvite];
    }
}

- (void)notificationError:(NSError *)error {
    NSLog(@"No se pudo procesar la carga útil de la notificación: %@", error);
}

- (void)handleCallInviteReceived:(TVOCallInvite *)callInvite {
    // Invicatión de llamada recibida
}

- (void)handleCallInviteCanceled:(TVOCallInvite *)callInvite {
    // Se canceló la invitación de llamada
}

Procesamiento de notificaciones push en 3.X

- (void)pushRegistry:(PKPushRegistry *)registry
        didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
             forType:(NSString *)type {
    BOOL result = [TwilioVoice handleNotification:payload.dictionaryPayload delegate:self];
    if (!result) {
        NSLog(@"Los datos procesados no correspondían a la carga útil de notificación push de Twilio");
    }
}

#pragma mark - TVONotificationDelegate

- (void)callInviteReceived:(TVOCallInvite *)callInvite {
    // Invicatión de llamada recibida
}

- (void)cancelledCallInviteReceived:(TVOCancelledCallInvite *)cancelledCallInvite {
    // Invicatión de llamada cancelada
}

Cambios en la API

  • Las propiedades TVOAudioOptions.levelControl y TVOAudioOptions.levelControlInitialPeakLevelDBFS quedaron obsoletas, ya que ya no son compatibles con Chromium WebRTC 67.

Problemas conocidos

  • CLIENT-5121 Las aplicaciones que usan 3.0.0-preview3 podrían tener que incluir la clave NSCameraUsageDescription y la cadena de propósito en el archivo Info.plist para poder enviar la app a la App Store. La versión de WebRTC utilizada por el SDK de Twilio Voice usa las API de la cámara. Estamos trabajando en la creación de un SDK de Voice con la variante de WebRTC únicamente de audio para que ya no sea necesaria esta solución provisoria. #163
  • CLIENT-5059 Las llamadas realizadas a un cliente o número PSTN que se demoren en ser contestadas podrían no conectarse.
  • CLIENT-4943 Las redes restrictivas podrían fallar si no se brindan servidores ICE a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4698 Los parámetros pasados a la aplicación TwiML durante la realización de llamadas no aparecen encriptados en la URL
  • CLIENT-4547 Insights no se publica
  • CLIENT-4672 CLIENT-4673 Los códigos de error 20157 y 20151 envían mensajes y textos explicativos diferentes de los de los SDK 2.0 de Voice
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

3.0.0-preview2

28 de agosto del 2018

Mejoras

  • Se agregó un nuevo método callback [TVOCallDelegate callDidStartRinging:]. Esta devolución de llamada se emite una vez antes de la devolución de llamada [TVOCallDelegate callDidConnect:] cuando se alerta al destinatario de una llamada. La duración de TVOCallStateRinging se determina según el indicador answerOnBridge proporcionado en el verbo Dial de la aplicación TwiML asociada con este client (cliente). Si el indicador answerOnBridge es false, que es el valor predeterminado, la devolución de llamada [TVOCallDelegate callDidConnect:] se emitirá de inmediato después de [TVOCallDelegate callDidStartRinging:]. Si el indicador answerOnBridge es true esto hará que la llamada emita la devolución de llamada callDidConnect solo hasta que se conteste la llamada. Consulta answeronbridge para obtener más información sobre cómo usarla con el verbo Dial de TwiML. Si la respuesta TwiML contiene un verbo Say, la llamada emitirá una devolución de llamada [TVOCallDelegate callDidConnect:] justo después de que se emita [TVOCallDelegate callDidStartRinging:], independientemente de que el valor de answerOnBridge sea true o false.
  • Se agregó un nuevo estado de llamada: TVOCallStateRinging.
  • Se trasladó TwilioVoice.region a TVOCallOptions.region.
  • Se agregó el método getStatsWithBlock: a TVOCall que compila un objeto TVOStatsReport con métricas de todas las pistas de audio de la llamada.

Problemas conocidos

  • CLIENT-5121 Las aplicaciones que usan 3.0.0-preview2 podrían tener que incluir la clave NSCameraUsageDescription y la cadena de propósito en el archivo Info.plist para poder enviar la app a la App Store. La versión de WebRTC utilizada por el SDK de Twilio Voice usa las API de la cámara. Estamos trabajando en la creación de un SDK de Voice con la variante de WebRTC únicamente de audio para que ya no sea necesaria esta solución provisoria. #163
  • CLIENT-5059 Las llamadas realizadas a un cliente o número PSTN que se demoren en ser contestadas podrían no conectarse.
  • CLIENT-4943 Las redes restrictivas podrían fallar si no se brindan servidores ICE a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • CLIENT-4805 El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • CLIENT-4998 No se admite la transferencia de red ni la renegociación de conexión posterior.
  • CLIENT-2985 No es compatible con IPv6.
  • CLIENT-4698 Los parámetros pasados a la aplicación TwiML durante la realización de llamadas no aparecen encriptados en la URL
  • CLIENT-4547 Insights no se publica
  • CLIENT-4672 CLIENT-4673 Los códigos de error 20157 y 20151 envían mensajes y textos explicativos diferentes de los de los SDK 2.0 de Voice
  • CLIENT-4537 PCMU es el único códec admitido. Tenemos planeado agregar la compatibilidad con Opus en el futuro. #117
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

3.0.0-preview1

10 de agosto del 2018

Esta es nuestra primera versión basada en WebRTC que utiliza Chromium WebRTC 57.

En este SDK se agregan las API de dispositivos de audio. El SDK de Voice utiliza TVODefaultAudioDevice por defecto. En esta versión se agrega un nuevo protocolo, TVOAudioDevice. Este protocolo te da la posibilidad de sustituir TVODefaultAudioDevice. Al implementar el protocolo TVOAudioDevice, puedes escribir tu propio capturador de audio para proporcionar muestras de audio al SDK de Voice y un reproductor de audio para recibir las muestras de audio remotas. Por ejemplo, podrías integrar ReplayKit2 y capturar el audio de la aplicación para emitir o reproducir música usando AVAssetReader.

Este SDK agrega TVOConnectOptions y TVOAcceptOptions para permitir a los desarrolladores realizar cambios en los comportamientos asociados con una llamada.

Este SDK permite que la aplicación gestione varias llamadas activas.

Mejoras

  • Se agregó la propiedad de clase TwilioVoice.audioDevice. Deberías configurar tu dispositivo de audio en TwilioVoice.audioDevice antes de realizar cualquier otra acción por medio del SDK, como crear pistas o conectarte a una llamada.
  • Se agregó TVODefaultAudioDevice para reproducir y capturar audio. De forma predeterminada, el SDK de Voice utiliza TVODefaultAudioDevice para capturar y reproducir audio.
  • Se agregó la capacidad de proporcionar tu propio capturador y reproductor de audio a través del protocolo TVOAudioDevice. Como parte de este cambio también hemos agregado TVOAudioFormat que describe el audio que se está capturando y reproduciendo.
  • Esta versión deja obsoleta la categoría CallKitIntegration de TwilioVoice en favor de una nueva propiedad llamada TVODefaultAudioDevice.enabled. Esta propiedad brinda a los desarrolladores un mecanismo para habilitar o deshabilitar la activación del dispositivo de audio antes de conectarse a una llamada o detener o iniciar el dispositivo de audio mientras ya se está conectado a una llamada. Ahora se puede conectar una llamada sin activar el dispositivo de audio configurando TVODefaultAudioDevice.enabled en NO y se puede activar durante el ciclo de vida de la llamada estableciendo TVODefaultAudioDevice.enabled en YES. El valor predeterminado es YES. Este cambio en la API se realizó para garantizar la compatibilidad total con CallKit, así como para admitir otros casos de uso en los que los desarrolladores podrían tener que desactivar el dispositivo de audio durante una llamada.

Ejemplo nro. 1: cambiar la ruta de audio del receptor al altavoz durante una llamada en vivo


// El SDK de Voice utiliza TVODefaultAudioDevice de forma predeterminada.

// ... conectarse a una llamada. `TVODefaultAudioDevice` está configurado para dirigir el audio al receptor por defecto.

TVODefaultAudioDevice *audioDevice = (TVODefaultAudioDevice *)TwilioVoice.audioDevice;

audioDevice.block =  ^ {
    // Ejecutaremos `kDefaultAVAudioSessionConfigurationBlock` primero.
    kDefaultAVAudioSessionConfigurationBlock();

    if (![session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]) {
        NSLog(@"AVAudiosession overrideOutputAudioPort %@",error);
    }
};
audioDevice.block();

Ejemplo nro. 2: conectarse a una llamada usando la categoría AVAudioSessionCategoryPlayback

id<TVOAudioDevice> audioDevice = [TVODefaultAudioDevice audioDeviceWithBlock:^ {

    // Ejecutar `kDefaultAVAudioSessionConfigurationBlock` primero.
    kDefaultAVAudioSessionConfigurationBlock();

    // Sobrescribir la categoría como `playback`
    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *error = nil;
    if (![session setCategory:AVAudioSessionCategoryPlayback
                         mode:AVAudioSessionModeVoiceChat
                      options:AVAudioSessionCategoryOptionAllowBluetooth
                        error:&error]) {
        NSLog(@"AVAudioSession setCategory:options:mode:error: %@",error);
    }
}];

TwilioVoice.audioDevice = audioDevice;

TVOCall *call = [TwilioVoice connectWithOptions:connectOptions delegate:self];
  • Se migró la API para realizar llamadas salientes de [TwilioVoice call] a [TwilioVoice connectWithOptions:delegate:].
TVOConnectOptions *connectOptions = [TVOConnectOptions optionsWithAccessToken:self.accessToken
                                                                       block:^(TVOConnectOptionsBuilder *builder) {
   builder.params = twiMLParams;
   builder.uuid = [NSUUID UUID];
}];
TVOCall *call = [TwilioVoice connectWithOptions:connectOptions delegate:self];
  • Se migró la API para aceptar una TVOCallInvite usando TVOAcceptOptions.
TVOAcceptOptions *options = [TVOAcceptOptions optionsWithCallInvite:self
   block:^(TVOAcceptOptionsBuilder *builder) {
   builder.uuid = weakSelf.callInvite.uuid;
}];
TVOCall *call = [callInvite acceptWithOptions:options delegate:strongSelf];
  • Se agregaron módulos independientes de registro: TVOLogModuleCore, TVOLogModulePlatform, TVOLogModuleSignaling and TVOLogModuleWebRTC.
  • [TwilioVoice setModule:logLevel:] ahora es [TwilioVoice setLogLevel:module:].
  • Se agregó [TwilioVoice logLevelForModule:] para obtener el nivel de registro de un módulo específico.
  • [TwilioVoice version] ahora es [TwilioVoice getVersion] para evitar conflictos de tipo con NSObject.
  • El SDK 3.0.0 de Voice para iOS es compatible con iOS 10.0 y versiones posteriores.

Problemas conocidos

  • CLIENT-5121 Las aplicaciones que usan 3.0.0-preview1 podrían tener que incluir la clave NSCameraUsageDescription y la cadena de propósito en el archivo Info.plist para poder enviar la app a la App Store. La versión de WebRTC utilizada por el SDK de Twilio Voice usa las API de la cámara. Estamos trabajando en la creación de un SDK de Voice con la variante de WebRTC únicamente de audio para que ya no sea necesaria esta solución provisoria. #163
  • CLIENT-5059 Las llamadas realizadas a un client (cliente) o número PSTN que se demoren en ser contestadas podrían no conectarse.
  • [CLIENT-4943] Las redes restrictivas podrían fallar si no se brindan servidores ICE a través de TVOConnectOptions o TVOAcceptOptions. Los servidores ICE se pueden obtener del Servicio de recorrido transversal de red de Twilio.
  • [CLIENT-4805] El tamaño del SDK es significativamente mayor que en la versión 2.x. Durante el período beta se proporcionará un tamaño reducido.
  • [CLIENT-4998] No se admite la transferencia de red ni la renegociación de conexión posterior.
  • [CLIENT-2985] No es compatible con IPv6.
  • [CLIENT-4698] Los parámetros pasados a la aplicación TwiML durante la realización de llamadas no aparecen encriptados en la URL
  • [CLIENT-4547] Insights no se publica
  • [CLIENT-4672 ] [CLIENT-4673] Los códigos de error 20157 y 20151 envían mensajes y textos explicativos diferentes de los de los SDK 2.0 de Voice
  • El uso del SDK de Voice para iOS junto con la biblioteca WebRTC producirá un conflicto de símbolos RTCNativeAudioSessionDelegateAdapter durante la compilación.

2.X

Para revisar las entradas más antiguas del registro de cambios que incluyen 2.x, haz clic aquí

Calificar esta página:

¿Necesitas ayuda?

Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.

        
        
        

        Gracias por tus comentarios.

        Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

        Enviando tus comentarios…
        🎉 Gracias por tus comentarios.
        Se produjo un error. Inténtalo de nuevo.

        Gracias por tus comentarios.

        thanks-feedback-gif