Notas de publicación

Product deprecation notice

Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.

If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.

5.0.1 - 2022-09-29

Fijo

  • Socket handshake config borrado al cerrar la sesión

5.0.0 - 2022-09-01

Añadido

  • Compatibilidad con XCFrameworks para M1

4.3.2 - 2022-07-01

Fijar

  • Corrección de la transición de silencio a silencio en el objeto multimedia
  • Corrección del análisis sintáctico de eventos para NXMCustomEvent.customType

4.3.1 - 2022-05-09

Fijar

  • Fijar [NXMConversation sendMessage:message completionHandler:handler] para NXMMessageTypeImage, NXMMessageTypeAudio, NXMMessageTypeVideo y NXMMessageTypeFile tipos de mensajes.

4.3.0 - 2022-04-28

Añadido

  • pushNotificationTTL propiedad añadida a NXMClientConfig para establecer el TTL de las notificaciones push.
  • [NXMConversation sendMarkDeliveredMessage:message completionHandler:handler] para enviar recibos de entrega.
  • [NXMConversation sendMarkSeenMessage] ahora admite el estado visto para todos los mensajes.
  • NXMMessageStatusTypeSubmitted, NXMMessageStatusTypeRejected, NXMMessageStatusTypeUndeliverable estados añadidos a NXMMessageStatusEvent

4.2.1 - 2022-04-06

Fijo

  • [NXMClient uploadAttachmentWithType:name:data:completionHandler:] método para cargar archivos adjuntos devuelve con datos de imagen

4.2.0 - 2022-03-24

Añadido

  • Apoyo a call:transfer en NXMCall
  • [NXMCallDelegate call:didTransfer:event:] para recibir un nuevo evento de transferencia de llamada cuando la llamada se transfiere a una nueva conversación.

Mejoras

  • Dependencia de WebRTC actualizada a la versión 84.0.22.

4.1.0 - 2022-02-25

Añadido

  • [NXMClient getDeviceId] para recuperar el identificador del dispositivo.

4.0.6 - 2022-02-15

Fijo

  • Corregir las advertencias de DSYM

4.0.5 - 2022-02-15

Añadido

  • Soporte Bitcode

4.0.4 - 2022-01-14

Fijo

  • La cola de procesamiento de eventos de llamadas entrantes pasa por defecto a no suspendida

4.0.3 - 2021-12-13

Fijo

  • Cabecera de paraguas.

4.0.2 - 2021-12-07

Fijo

  • Dependencias de CocoaPods.

4.0.0 - 2021-12-06

Añadido

  • [NXMConversation sendMessage:completionHandler:] para enviar NXMMessage.
  • [NXMClient uploadAttachmentWithType:name:data:completionHandler:] para cargar archivos adjuntos.
  • NXMMessage representa un mensaje a enviar.
  • NXMMessageType para mensajes de tipo text, image, audio, video, file, template, vcard y custom.
  • NXMEventTypeMemberMessageStatusun nuevo NXMEventType caso, representa un evento de estado de mensaje de miembro que puede recibirse en un NXMConversation.

Mejoras

  • Dependencia de WebRTC actualizada a la versión 84.0.0.
  • Aplicar la dirección para NXMCallMemberStatus durante las llamadas.

Cambiado

  • NXMDirectionType ha pasado a llamarse NXMChannelType.

Obsoleto

  • [NXMConversation sendText:completionHandler:] método.
  • [NXMConversation sendAttachmentWithType:name:data:completionHandler:] método.

3.3.0 - 2021-11-22

Añadido

  • NXMClientConfig's apiPinning y websocketPinning campos opcionales para activar HTTP y web-socket SSL pinning.
  • [NXMPinningConfig fromPublicKeys:] para crear una configuración de pinning basada en clave pública.
  • NXMConnectionStatusReasonSSLPinningError que describe la actualización de una conexión de cliente debido a un error de anclaje SSL.

Cambiado

  • Versión mínima de iOS compatible (IPHONEOS_DEPLOYMENT_TARGET) pasado a 10.3.

3.2.1 - 2021-11-08

Fijo

  • Almacena los eventos mientras se descarga la conversación para evitar que se pierdan

3.2.0 - 2021-10-19

Añadido

  • NXMClientConfig.autoMediaReoffer para permitir la reconexión automática de los medios cuando cambien las interfaces de red.
  • [NXMClientConfig description] para una rápida NXMClientConfig's instance description.
  • NXMMediaConnectionStatus enumerar.
  • [NXMConversationDelegate conversation:onMediaConnectionStateChange:legId:] para recibir la notificación de cambio de estado de la conexión multimedia.
  • [NXMConversation reconnectMedia] para activar una reconexión de medios.
  • [NXMClient reconnectCallWithConversationId:andLegId:completionHandler:] para volver a conectar una llamada dado un identificador de conversación y un identificador de tramo.
  • NXMCall.conversation para obtener la conversación asociada a una llamada.

Obsoleto

  • [NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:].
  • [NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:iceServerUrls:].
  • [NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:useFirstIceCandidate:].
  • [NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:iceServerUrls:useFirstIceCandidate].

3.1.0 - 2021-09-06

Añadido

  • [NXMClient inAppCallWithCallee:completionHandler:] para realizar llamadas dentro de la aplicación.
  • [NXMClient serverCallWithCallee:customData:completionHandler:] para realizar llamadas al servidor, especificando opcionalmente customData.

Mejoras

  • Llamadas a la API interna optimizadas para la creación de conversaciones.

Obsoleto

  • [NXMClient call:callHandler:completionHandler:] método.
  • NXMCallHandler enumerar.
  • [NXMLogger getLogFileNames] método.

3.0.1 - 2021-07-12

Fijo

  • Envío de DTMF durante las llamadas.
  • Terminación del medio precalentado.

Cambiado

  • NXMMemberEvent's member sustituido por memberId.

3.0.0 - 2021-07-01

Añadido

  • Añadido NXMMemberSummary devuelto por [NXMConversation getMembersPageWithPageSize:order:completion:] (paginado), que representa un subconjunto de la información de los miembros.
  • Añadido NXMMemberEvent's invitedBy que representa el nombre del invocador, si existe.
  • Añadido NXMEventEmbeddedInfo a todos los eventos devueltos por NXMEvent's embeddedInfo y que contiene el NXMUser vinculada al acontecimiento.
  • Añadido [NXMConversation getMemberWithMemberUuid:completion:] devolviendo el miembro dado su identificador.

Mejoras

  • Permitir 1K miembros en una conversación.
  • Mejorado callServer tiempo de preparación precalentando la pierna.
  • Medios desactivados tras evento de cuelgue de RTC.
  • Corregido el manejo de eventos de escritura de texto.

Cambios de última hora

  • Eliminado NXMCallMembersustituido por NXMMember.
  • Eliminado NXMCallMember's status, se trasladó a [NXMCall callStatusForMember:member:].
  • Eliminado [NXMCallMember mute:] convertido en [NXMMember enableMute] y [NXMMember disableMute].
  • Eliminado NXMConversation's allMembers (sustituido por [NXMConversation getMembersPageWithPageSize:order:completion:] (paginado)).
  • Eliminado [NXMConversationUpdateDelegate conversation:didUpdateMember:withType:]sustituido por [NXMConversationDelegate conversation:didReceiveMemberEvent:] con los siguientes estados posibles: NXMMemberStateInvited, NXMMemberStateJoined y NXMMemberStateLeft. Puede suscribirse utilizando NXMConversation's delegate.
  • Renombrado NXMCall's otherCallMembers a allMembers.
  • Renombrado NXMCall's myCallMember a myMember.
  • En legs debe incluirse en acl caminos en JWT creación de fichas.
"acl": {
  "paths": {
    ...,
    "/*/legs/**": {}
  }
}

2.5.0 - 2020-11-23

Cambiado

  • Renombrado NXMCallMemberStatusCanceled a NXMCallMemberStatusCancelled.
  • Renombrado NXMLegStatusCanceled a NXMLegStatusCancelled.

Mejoras

  • Notificado con NXMCallMemberStatusCancelled en NXMCallDelegate para colgar la llamada.

2.4.0 - 2020-09-24

Añadido

  • Exponer la razón NXMConnectionStatusReasonTokenExpired sobre el estado de la conexión NXMConnectionStatusDisconnected para la NXMClientDelegate.

2.3.0 - 2020-08-17

Añadido

  • [NXMClientConfig AMS] método estático.

Fijo

  • Análisis de eventos personalizados.

2.2.2 - 2020-07-20

Fijo

  • Sincronización de eventos tras la desconexión del socket.

2.2.1 - 2020-07-06

Fijo

  • Error de llamada al servidor notificado por NXMCallDelegate al finalizar la llamada.

Mejoras

  • Mejora de la gestión de los eventos de llamada.
  • Mejora de la gestión del vencimiento de las conversaciones.

2.2.0 - 2020-04-22

Añadido

  • Añadido isConnected para NXMClient para mostrar el estado actual de la conexión.
[NXNClient.shared isConnected]

Fijo

  • Evento API client_ref manejo.

2.1.10 - 2020-04-16

Mejoras

  • Mejora de la recopilación de candidatos a la CIE única.

2.1.9 - 2020-04-14

Fijo

  • NXMClientConfig implementaciones de inicializadores de conveniencia.

2.1.8 - 2020-04-02

Añadido

  • Añadir useFirstIceCandidate parámetros a NXMClientConfig
NXMClientConfig *config = [[NXMClientConfig alloc] initWithApiUrl:restUrl
                                                     websocketUrl:wsUrl
                                                           ipsUrl:ipsUrl
                                             useFirstIceCandidate:NO];

2.1.5 - 2020-03-18

Mejoras

  • Formato de registro de dispositivos actualizado para entornos de producción.

2.1.1 - 2020-03-05

Añadido

  • NXMClient's getConversationsPageWithSize:order:filter:completionHandler: para obtener conversaciones con paginación.

Obsoleto

  • NXMClient's getConversationsPageWithSize:order:completionHandler: para obtener conversaciones con paginación.

Mejoras

  • El Client SDK ya está integrado en Xcode 11.

2.1.0 - 2020-01-31

Añadido

  • NXMPushPayload para notificaciones push personalizadas.
 if (NXNClient.shared isNexmoPushWithUserInfo:pushInfo]){
    NXMPushPayload *pushPayload = [myNXNClient processNexmoPushPayload:pushInfo];
    if (!pushPayload){
        // "Not a Nexmo push!!"
        return;
    };

    if (pushPayload.template == NXMPushTemplateCustom) {
        // Got custom push
        pushPayload.customData // your customData
    }
 }

2.0.0 - 2020-01-15

Añadido

  • NXMHelper con descriptionForEventType: método.
  • NXMConversation's getEvents: sustituido por getEventsPage:, getEventsPageWithSize:order:completionHandler:, getEventsPageWithSize:order:eventType:completionHandler:.
[myNXMConversation getEventsPagePageWithSize:15
                                       order:NXMPageOrderDesc
                                   eventType:nil
                           completionHandler:^(NSError * _Nullable error, NXMEventsPage * _Nullable page) {
                               if (error || !page) {
                                   // handle error...
                                   return;
                               }

                               // use page...
                           }];
  • NXMConversationsPage's nextPage: y previousPage: ahora no son nulos.

Fijo

  • Llamando a conversation.getEvents devuelve un NXMMemberEvent con el campo member ajustado a nil.

1.2.3 - 2019-12-17

Fijo

  • conversation.getEvents devolvió algunos NXMEvents que contengan un nil fromMember
  • Descriptivo añadido userInfo para NXMErrors.

1.2.2 - 2019-12-12

Fijo

  • Añadido soporte para DTLS en WebRTC.
  • didReceiveCall y didReceiveConversation ser llamado una sola vez para la misma llamada o conversación.
  • Se ha añadido la opción de activar la notificación push con un solo pushKit o userNotification simbólico.
  • Arreglo para NXMClientConfig URL de la región.
  • Al iniciar sesión con un usuario no válido, devuelve NXMConnectionStatusReasonUserNotFound.
  • Se han añadido arquitecturas de compilación: armv7 y armv7s.

1.2.1 - 2019-12-05

Añadido

Configuración del servidor ICE:

NXMClientConfig *config = [[NXMClientConfig alloc] initWithApiUrl:restUrl
                                                     websocketUrl:wsUrl
                                                           ipsUrl:ipsUrl
                                                    iceServerUrls:iceUrls];
[NXMClient setConfiguration:config];

Esta configuración es opcional y se establecerá un valor por defecto si no se especifica.

Nota: setConfiguration antes de acceder a NXMClient.shared.

Fijo

Corregido nil valores para fromMember para NXMConversation eventos.

1.2.0 - 2019-12-03

Añadido

NXMClient's getConversationsPageWithSize:order:completionHandler: para obtener conversaciones con paginación.

NXMConversationsPageque representa la página recuperada, proporciona los siguientes métodos de instancia:

  • hasNextPage / hasPreviousPage para comprobar si es posible avanzar/retroceder páginas y
  • nextPage: / previousPage: para recuperar de forma asíncrona la página siguiente/anterior.

Cambiado

NXMClient's getConversationWithUUid:completionHandler: (ahora llamado getConversationWithUuid:completionHandler:).

1.1.1 - 2019-11-21

Añadido

NXMClientConfig para cambiar la configuración del centro de datos. Cómo utilizarlo:

[NXMClient setConfiguration:NXMClientConfig.DC];

NXMClient setConfiguration es opcional, la configuración se establecerá en un valor por defecto.

Nota: debe llamar a setConfiguration antes de utilizar NXMClient.shared.

1.1.0 - 2019-11-14

Fijo

  • Compatibilidad con notificaciones push de iOS 13.
  • Iniciar la estabilidad de la llamada al servidor.
  • Recepción de un evento DTMF en llamada y conversación.

Añadido

NXMConversationDelegate método de recepción de eventos DTMF:

- (void)conversation:(nonnull NXMConversation *)conversation didReceiveDTMFEvent:(nullable NXMDTMFEvent *)event;

Cambiado

NXMClient - el método de activación de notificaciones push del cliente ha cambiado. param pushKitToken - sólo para push VoIP (llamadas entrantes). param userNotificationToken - todos los tipos de empuje:

- (void)enablePushNotificationsWithPushKitToken:(nullable NSData *)pushKitToken
                          userNotificationToken:(nullable NSData *)userNotificationToken
                                      isSandbox:(BOOL)isSandbox
                              completionHandler:(void(^_Nullable)(NSError * _Nullable error))completionHandler;

1.0.0 - 2019-09-05

Fijo

  • NexmoClient cuando se desconecta devuelve callback de error para toda la función.
  • CallMember calculado por el estado actual del tramo.
  • CallMember admite los estados fallido, ocupado, tiempo de espera y cancelado.
  • Apoya a los miembros invitados.
  • Conversation tiene métodos multimedia.
  • NexmoClient es ahora singleton.
  • Método de llamada cambiado a cadena en lugar de array.
  • NexmoClient Métodos delegados renombrados.

Añadido

  • Medios de conversación añadidos:
NXMConversation myConversation;
[myConversation enableMedia];   // my media will be enabled
[myConversation disableMedia];  // my media will be disabled
  • Añadido miembro invitado:
NXMConversation myConversation;
[myConversation inviteMemberWithUsername:@"someUsername"
                              completion:myCompletionBlock];
  • Añadido el Estado miembro iniciador:
NXMMember *member = someMember;
NSDictionary<NSValue *, NXMInitiator *> *initiators = member.initiators;

NXMInitiator leftStateInitiator = initiators[NXMMemberStateLeft];
leftStateInitiator.isSystem;
leftStateInitiator.userId;
leftStateInitiator.memberId;
leftStateInitiator.time;
  • Añadido NXMConversationUpdateDelegate para notificar las actualizaciones de los miembros, como los medios de comunicación, la pierna y el estado.
  • Añadido updatesDelegate propiedad a NXMConversation:
@property (nonatomic, weak, nullable) id <NXMConversationUpdateDelegate> updatesDelegate;

Ejemplo:

@interface MyClass() <NXMConversationUpdateDelegate>
@implementation MyClass

- (void)setConversation:(NXMConversation *conversation) {
    conversation.updatesDelegate(self); // register to conversation updatesDelegate
}

- (void)conversation:(nonnull NXMConversation *)conversation didUpdateMember:(nonnull NXMMember *)member withType:(NXMMemberUpdateType)type {
    if (type == NXMMemberUpdateTypeState) {
        // the member state changed
    }

    if (type == NXMMemberUpdateTypeMedia) {
        // the member media changed
    }
}
@end

Cambiado

  • NXMClient es ahora un singleton:
NXMClient.shared // the shared instance of NXMClient
  • Renombrado:
@property (nonatomic, readonly, nullable, getter=getToken) NSString *authToken; // was token

// was - (void)login;
- (void)loginWithAuthToken:(NSString *)authToken;

// was - (void)refreshAuthToken:(nonnull NSString *)authToken;
- (void)updateAuthToken:(nonnull NSString *)authToken;

// was callees array
- (void)call:(nonnull NSString *)callee
    callHandler:(NXMCallHandler)callHandler
    delegate:(nullable id<NXMCallDelegate>)delegate
  completion:(void(^_Nullable)(NSError * _Nullable error, NXMCall * _Nullable call))completion;
completionHandler:(void(^_Nullable)(NSError * _Nullable error, NXMCall * _Nullable call))completionHandler;
  • NXMClientDelegate renombrado:
@protocol NXMClientDelegate <NSObject>

// was - (void)connectionStatusChanged:(NXMConnectionStatus)status reason:(NXMConnectionStatusReason)reason;
- (void)client:(nonnull NXMClient *)client didChangeConnectionStatus:(NXMConnectionStatus)status reason:(NXMConnectionStatusReason)reason;

// was - (void)incomingCall:(nonnull NXMCall *)call;
- (void)client:(nonnull NXMClient *)client didReceiveCall:(nonnull NXMCall *)call;

// was - (void)incomingConversation:(nonnull NXMConversation *)conversation;
- (void)client:(nonnull NXMClient *)client didReceiveConversation:(nonnull NXMConversation *)conversation;
@end
  • NXMConversation otherMembers ha pasado a llamarse allMembers:
NXMConversation myConversation = someConversation;
NSArray<NXMMember *> * allMembers = myConversation.allMembers // return the all conversation members

- (void)joinMemberWithUsername:(nonnull NSString *)username // username instead of userId
  • NXMConversationDelegate métodos renombrados:
// was - (void)customEvent:(nonnull NXMCustomEvent *)customEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveCustomEvent:(nonnull NXMCustomEvent *)event;

// was - (void)textEvent:(nonnull NXMMessageEvent *)textEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveTextEvent:(nonnull NXMTextEvent *)event;

// was - (void)attachmentEvent:(nonnull NXMMessageEvent *)attachmentEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveImageEvent:(nonnull NXMImageEvent *)event;

// - (void)messageStatusEvent:(nonnull NXMMessageStatusEvent *)messageStatusEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMessageStatusEvent:(nonnull NXMMessageStatusEvent *)event;

// was - (void)typingEvent:(nonnull NXMTextTypingEvent *)typingEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveTypingEvent:(nonnull NXMTextTypingEvent *)event;

// was - (void)memberEvent:(nonnull NXMMemberEvent *)memberEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMemberEvent:(nonnull NXMMemberEvent *)event;

// was - (void)legStatusEvent:(nonnull NXMLegStatusEvent *)legStatusEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveLegStatusEvent:(nonnull NXMLegStatusEvent *)event;

// was - (void)mediaEvent:(nonnull NXMEvent *)mediaEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMediaEvent:(nonnull NXMMediaEvent *)event;
  • Utilice username en lugar de userId.

  • NXMCallDelegate renombrado:

// was - (void)statusChanged:(nonnull NXMCallMember *)callMember;
- (void)didUpdate:(nonnull NXMCallMember *)callMember status:(NXMCallMemberStatus)status;
- (void)didUpdate:(nonnull NXMCallMember *)callMember muted:(BOOL)muted;

// was - (void)DTMFReceived:(nonnull NSString *)dtmf callMember:(nonnull NXMCallMember *)callMember;
- (void)didReceive:(nonnull NSString *)dtmf fromCallMember:(nonnull NXMCallMember *)callMember;
  • NXMEvent y NXMMemberEvent añadir objeto miembro en lugar de memberId:
@property (nonatomic, readonly, nonnull) NXMMember *member;
  • NXMImageInfo propiedades renombradas:
@property NSInteger sizeInBytes; // was size
@property NXMImageSize size; // was type
  • NXMMessageStatusEvent propiedad renombrada:
@property NSInteger referenceEventId; // was refEventId
  • NexmoClient logger expuesto - NXMLogger objeto:
[NXMLogger setLogLevel:NXMLoggerLevelDebug];
NSArray *logNames = [NXMLogger getLogFileNames];

Eliminado

  • NXMLoggerDelegate
NXMClient myClient = ...;
[myClient setLoggerDelegate:LoggerDelegate];

0.3.0 - 2019-06-03

Añadido

  • Interoperabilidad con los SDK de JS y Android: ahora se pueden realizar llamadas entre aplicaciones que utilicen los SDK de iOS, JS o Android.

Cambiado

  • NXMCallMember - añadido canal miembro con datos de dirección:
@interface NXMCallMember : NSObject
...
@property (nonatomic, readonly, nullable) NXMChannel *channel;
...
@end
@interface NXMChannel : NSObject

@property (nonatomic, readonly, nonnull) NXMDirection *from;
@property (nonatomic, readonly, nullable) NXMDirection *to;

@end
@interface NXMDirection : NSObject

@property (nonatomic, assign) NXMDirectionType type;
@property (nonatomic, copy, nullable) NSString *data;

@end

Eliminado

  • NXMCallMember's phoneNumber y channelType fueron eliminados.

0.2.56 - 2019-01-24

Añadido

  • Cambia el archivo de registro.

Cambiado

  • Mejoras en la gestión de la memoria.
  • Recoge los eventos nuevos y perdidos en los cambios de red.
  • Devolución de objetos Usuario en lugar de Ids.
  • Corrección de errores.
  • Añadir non-null o nullable a las propiedades.
  • Cambie el nombre de call.decline a call.reject.

0.1.52 - 2019-01-01