Notes de mise à jour

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

Fixe

  • La configuration du handshake de la socket est effacée lors de la déconnexion

5.0.0 - 2022-09-01

Ajouté

  • Prise en charge de XCFrameworks pour M1

4.3.2 - 2022-07-01

Fixer

  • Correction de la transition entre la mise en sourdine et le rétablissement de la sourdine sur les objets multimédias
  • Correction de l'analyse des événements pour NXMCustomEvent.customType

4.3.1 - 2022-05-09

Fixer

  • Fixer [NXMConversation sendMessage:message completionHandler:handler] pour NXMMessageTypeImage, NXMMessageTypeAudio, NXMMessageTypeVideo et NXMMessageTypeFile les types de messages.

4.3.0 - 2022-04-28

Ajouté

  • pushNotificationTTL a été ajoutée à la propriété NXMClientConfig pour définir le TTL des notifications push.
  • [NXMConversation sendMarkDeliveredMessage:message completionHandler:handler] a été ajoutée pour envoyer des accusés de réception.
  • [NXMConversation sendMarkSeenMessage] prend désormais en charge le statut "vu" pour tous les messages.
  • NXMMessageStatusTypeSubmitted, NXMMessageStatusTypeRejected, NXMMessageStatusTypeUndeliverable États ajoutés à NXMMessageStatusEvent

4.2.1 - 2022-04-06

Fixe

  • [NXMClient uploadAttachmentWithType:name:data:completionHandler:] méthode pour télécharger des pièces jointes qui renvoient des données d'image

4.2.0 - 2022-03-24

Ajouté

  • Soutien aux call:transfer à l'intérieur NXMCall
  • [NXMCallDelegate call:didTransfer:event:] pour recevoir un nouvel événement de transfert d'appel lorsque l'appel est transféré vers une nouvelle conversation.

Améliorations

  • Dépendance WebRTC mise à jour vers la version 84.0.22.

4.1.0 - 2022-02-25

Ajouté

  • [NXMClient getDeviceId] pour récupérer l'identifiant de l'appareil.

4.0.6 - 2022-02-15

Fixe

  • Correction des avertissements DSYM

4.0.5 - 2022-02-15

Ajouté

  • Support Bitcode

4.0.4 - 2022-01-14

Fixe

  • La file d'attente pour le traitement des événements d'appels entrants est par défaut non suspendue.

4.0.3 - 2021-12-13

Fixe

  • Tête de parapluie.

4.0.2 - 2021-12-07

Fixe

  • Dépendances CocoaPods.

4.0.0 - 2021-12-06

Ajouté

  • [NXMConversation sendMessage:completionHandler:] pour envoyer des NXMMessage.
  • [NXMClient uploadAttachmentWithType:name:data:completionHandler:] pour télécharger des pièces jointes.
  • NXMMessage représente un message à envoyer.
  • NXMMessageType pour les messages de type text, image, audio, video, file, template, vcard et custom.
  • NXMEventTypeMemberMessageStatus, un nouveau NXMEventType représente un événement relatif à l'état d'un message de membre qui peut être reçu sur un site Web de l NXMConversation.

Améliorations

  • Dépendance WebRTC mise à jour vers la version 84.0.0.
  • Appliquer les directives pour les NXMCallMemberStatus pendant les appels.

Modifié

  • NXMDirectionType renommé en NXMChannelType.

Déclassé

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

3.3.0 - 2021-11-22

Ajouté

  • NXMClientConfig's apiPinning et websocketPinning champs facultatifs pour activer l'épinglage HTTP et SSL des sockets web.
  • [NXMPinningConfig fromPublicKeys:] pour créer une configuration d'épinglage basée sur une clé publique.
  • NXMConnectionStatusReasonSSLPinningError décrivant la mise à jour d'une connexion client en raison d'une erreur d'épinglage SSL.

Modifié

  • Version iOS minimale prise en charge (IPHONEOS_DEPLOYMENT_TARGET) est passé à 10.3.

3.2.1 - 2021-11-08

Fixe

  • Stocker les événements pendant que la conversation est en cours de téléchargement pour éviter de les manquer

3.2.0 - 2021-10-19

Ajouté

  • NXMClientConfig.autoMediaReoffer pour permettre de reconnecter automatiquement les médias lorsque les interfaces réseau changent.
  • [NXMClientConfig description] pour une NXMClientConfigdescription de l'instance.
  • NXMMediaConnectionStatus énumérer.
  • [NXMConversationDelegate conversation:onMediaConnectionStateChange:legId:] pour recevoir une notification de changement d'état de la connexion média.
  • [NXMConversation reconnectMedia] pour déclencher une reconnexion des médias.
  • [NXMClient reconnectCallWithConversationId:andLegId:completionHandler:] pour reconnecter un appel à partir d'un identifiant de conversation et d'un identifiant de segment.
  • NXMCall.conversation pour obtenir la conversation associée à un appel.

Déclassé

  • [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

Ajouté

  • [NXMClient inAppCallWithCallee:completionHandler:] pour effectuer des appels in-app.
  • [NXMClient serverCallWithCallee:customData:completionHandler:] pour effectuer les appels au serveur, en spécifiant éventuellement customData.

Améliorations

  • Appels API internes optimisés pour la création de conversations.

Déclassé

  • [NXMClient call:callHandler:completionHandler:] méthode.
  • NXMCallHandler énumérer.
  • [NXMLogger getLogFileNames] méthode.

3.0.1 - 2021-07-12

Fixe

  • Envoi de DTMF pendant les appels.
  • Terminaison des médias préchauffés.

Modifié

  • NXMMemberEvent's member remplacé par memberId.

3.0.0 - 2021-07-01

Ajouté

  • Ajouté NXMMemberSummary renvoyée par [NXMConversation getMembersPageWithPageSize:order:completion:] (paginé), représentant un sous-ensemble d'informations sur les membres.
  • Ajouté NXMMemberEvent's invitedBy qui représente le nom de l'invitant, s'il existe.
  • Ajouté NXMEventEmbeddedInfo à tous les événements renvoyés par NXMEvent's embeddedInfo et contenant le NXMUser liés à l'événement.
  • Ajouté [NXMConversation getMemberWithMemberUuid:completion:] qui renvoie le membre en fonction de son identifiant.

Améliorations

  • Permettre à 1 000 membres de participer à une conversation.
  • Améliorée callServer temps de préparation en préchauffant la jambe.
  • Média désactivé après l'événement de raccrochage RTC.
  • Correction de la gestion des événements liés à la saisie de texte.

Changements en cours

  • Supprimé NXMCallMemberremplacée par NXMMember.
  • Supprimé NXMCallMember's status, déplacé à [NXMCall callStatusForMember:member:].
  • Supprimé [NXMCallMember mute:] converti en [NXMMember enableMute] et [NXMMember disableMute].
  • Supprimé NXMConversation's allMembers (remplacé par [NXMConversation getMembersPageWithPageSize:order:completion:] (paginé)).
  • Supprimé [NXMConversationUpdateDelegate conversation:didUpdateMember:withType:]remplacée par [NXMConversationDelegate conversation:didReceiveMemberEvent:] avec les états possibles suivants : NXMMemberStateInvited, NXMMemberStateJoined et NXMMemberStateLeft. Peut être souscrit à l'aide de NXMConversation's delegate.
  • Renommé NXMCall's otherCallMembers à allMembers.
  • Renommé NXMCall's myCallMember à myMember.
  • Les legs doit être incluse dans le acl chemins sur JWT la création de jetons.
"acl": {
  "paths": {
    ...,
    "/*/legs/**": {}
  }
}

2.5.0 - 2020-11-23

Modifié

  • Renommé NXMCallMemberStatusCanceled à NXMCallMemberStatusCancelled.
  • Renommé NXMLegStatusCanceled à NXMLegStatusCancelled.

Améliorations

  • Notifié avec NXMCallMemberStatusCancelled sur NXMCallDelegate pour raccrocher l'appel.

2.4.0 - 2020-09-24

Ajouté

  • Exposer la raison NXMConnectionStatusReasonTokenExpired sur l'état de la connexion NXMConnectionStatusDisconnected pour les NXMClientDelegate.

2.3.0 - 2020-08-17

Ajouté

  • [NXMClientConfig AMS] méthode statique.

Fixe

  • Analyse des événements personnalisés.

2.2.2 - 2020-07-20

Fixe

  • Synchronisation des événements après déconnexion du socket.

2.2.1 - 2020-07-06

Fixe

  • Erreur d'appel au serveur signalée par NXMCallDelegate à la fin de l'appel.

Améliorations

  • Amélioration de la gestion des événements d'appel.
  • Amélioration de la gestion de l'expiration des conversations.

2.2.0 - 2020-04-22

Ajouté

  • Ajouté isConnected à la méthode NXMClient pour afficher l'état actuel de la connexion.
[NXNClient.shared isConnected]

Fixe

  • Événement API client_ref manipulation.

2.1.10 - 2020-04-16

Améliorations

  • Amélioration de la mise en œuvre de la collecte des candidats à la CIE unique.

2.1.9 - 2020-04-14

Fixe

  • NXMClientConfig les implémentations de l'initialisateur de commodité.

2.1.8 - 2020-04-02

Ajouté

  • Ajouter useFirstIceCandidate paramètres à NXMClientConfig
NXMClientConfig *config = [[NXMClientConfig alloc] initWithApiUrl:restUrl
                                                     websocketUrl:wsUrl
                                                           ipsUrl:ipsUrl
                                             useFirstIceCandidate:NO];

2.1.5 - 2020-03-18

Améliorations

  • Mise à jour du format d'enregistrement des appareils pour les environnements de production.

2.1.1 - 2020-03-05

Ajouté

  • NXMClient's getConversationsPageWithSize:order:filter:completionHandler: pour obtenir des conversations avec la radiomessagerie.

Déclassé

  • NXMClient's getConversationsPageWithSize:order:completionHandler: pour obtenir des conversations avec la radiomessagerie.

Améliorations

  • Le Client SDK est maintenant construit avec Xcode 11.

2.1.0 - 2020-01-31

Ajouté

  • NXMPushPayload pour les notifications push personnalisées.
 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

Ajouté

  • NXMHelper avec descriptionForEventType: méthode.
  • NXMConversation's getEvents: remplacée par la méthode 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: et previousPage: sont désormais non nuls.

Fixe

  • Appel conversation.getEvents a renvoyé un NXMMemberEvent avec le champ member fixé à nil.

1.2.3 - 2019-12-17

Fixe

  • conversation.getEvents a renvoyé quelques NXMEventcontenant une valeur nulle fromMember
  • Ajout d'une description userInfo pour NXMErrors.

1.2.2 - 2019-12-12

Fixe

  • Ajout de la prise en charge de DTLS dans WebRTC.
  • didReceiveCall et didReceiveConversation n'être appelé qu'une seule fois pour le même appel ou la même conversation.
  • Ajout d'une option permettant d'activer la notification push avec un seul pushKit ou userNotification de l'argent.
  • Correction pour NXMClientConfig les URL des régions.
  • En cas de connexion avec un utilisateur non valide, le système renvoie NXMConnectionStatusReasonUserNotFound.
  • Ajout d'architectures de construction : armv7 et armv7s.

1.2.1 - 2019-12-05

Ajouté

Configuration du serveur ICE :

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

Cette configuration est facultative et une valeur par défaut sera définie si elle n'est pas spécifiée.

Remarque : setConfiguration doit être utilisé avant d'accéder à NXMClient.shared.

Fixe

Corrigé nil pour les fromMember pour NXMConversation événements.

1.2.0 - 2019-12-03

Ajouté

NXMClient's getConversationsPageWithSize:order:completionHandler: pour obtenir des conversations avec la radiomessagerie.

NXMConversationsPagequi représente la page récupérée, fournit les méthodes d'instance suivantes :

  • hasNextPage / hasPreviousPage pour vérifier si l'extraction de pages en avant/en arrière est possible et
  • nextPage: / previousPage: pour récupérer de manière asynchrone la page suivante/précédente.

Modifié

NXMClient's getConversationWithUUid:completionHandler: (qui s'appelle désormais getConversationWithUuid:completionHandler:).

1.1.1 - 2019-11-21

Ajouté

NXMClientConfig afin de modifier la configuration du centre de données. Comment l'utiliser ?

[NXMClient setConfiguration:NXMClientConfig.DC];

NXMClient setConfiguration est facultatif, la configuration prendra une valeur par défaut.

Remarque : vous devez appeler setConfiguration avant d'utiliser la méthode NXMClient.shared.

1.1.0 - 2019-11-14

Fixe

  • Prise en charge des notifications push d'iOS 13.
  • Démarrer la stabilité de l'appel du serveur.
  • Réception d'un événement DTMF en cours d'appel et de conversation.

Ajouté

NXMConversationDelegate a reçu la méthode d'événement DTMF :

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

Modifié

NXMClient - La méthode d'activation des notifications push par le client a été modifiée. param pushKitToken - uniquement pour les appels VoIP push (appels entrants). param userNotificationToken - tous les types de poussée :

- (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

Fixe

  • NexmoClient en cas de déconnexion, renvoie un rappel d'erreur pour toutes les fonctions.
  • CallMember calculé en fonction de l'état actuel de l'étape.
  • CallMember prend en charge les états d'échec, d'occupation, de dépassement de délai et d'annulation.
  • Les membres du comité de soutien sont invités.
  • Conversation a des méthodes médiatiques.
  • NexmoClient est désormais unique.
  • La méthode d'appel a été modifiée pour utiliser une chaîne de caractères au lieu d'un tableau.
  • NexmoClient les méthodes de délégation ont été renommées.

Ajouté

  • Ajout d'un support de conversation :
NXMConversation myConversation;
[myConversation enableMedia];   // my media will be enabled
[myConversation disableMedia];  // my media will be disabled
  • Ajout d'un membre invité :
NXMConversation myConversation;
[myConversation inviteMemberWithUsername:@"someUsername"
                              completion:myCompletionBlock];
  • Ajout de l'initiateur de l'État membre :
NXMMember *member = someMember;
NSDictionary<NSValue *, NXMInitiator *> *initiators = member.initiators;

NXMInitiator leftStateInitiator = initiators[NXMMemberStateLeft];
leftStateInitiator.isSystem;
leftStateInitiator.userId;
leftStateInitiator.memberId;
leftStateInitiator.time;
  • Ajouté NXMConversationUpdateDelegate pour être informé des mises à jour concernant les membres, comme les médias, les jambes et l'état.
  • Ajouté updatesDelegate à la propriété NXMConversation:
@property (nonatomic, weak, nullable) id <NXMConversationUpdateDelegate> updatesDelegate;

Exemple :

@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

Modifié

  • NXMClient est maintenant un singleton :
NXMClient.shared // the shared instance of NXMClient
  • Renommé :
@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 renommé :
@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 a été renommée en allMembers:
NXMConversation myConversation = someConversation;
NSArray<NXMMember *> * allMembers = myConversation.allMembers // return the all conversation members

- (void)joinMemberWithUsername:(nonnull NSString *)username // username instead of userId
  • NXMConversationDelegate les méthodes renommées :
// 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;
  • Utilisation username au lieu de userId.

  • NXMCallDelegate renommé :

// 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 et NXMMemberEvent ajouter un objet membre au lieu de memberId:
@property (nonatomic, readonly, nonnull) NXMMember *member;
  • NXMImageInfo propriétés renommées :
@property NSInteger sizeInBytes; // was size
@property NXMImageSize size; // was type
  • NXMMessageStatusEvent propriété renommée :
@property NSInteger referenceEventId; // was refEventId
  • NexmoClient logger exposé - NXMLogger objet :
[NXMLogger setLogLevel:NXMLoggerLevelDebug];
NSArray *logNames = [NXMLogger getLogFileNames];

Supprimé

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

0.3.0 - 2019-06-03

Ajouté

  • Interopérabilité avec les SDK JS et Android - Les appels peuvent désormais être passés entre les applications utilisant les SDK iOS, JS ou Android.

Modifié

  • NXMCallMember - ajout d'un canal membre avec des données de direction :
@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

Supprimé

  • NXMCallMember's phoneNumber et channelType ont été supprimées.

0.2.56 - 2019-01-24

Ajouté

  • Modifier le fichier journal.

Modifié

  • Amélioration de la gestion de la mémoire.
  • Récupérer les événements manquants et nouveaux sur les changements de réseau.
  • Renvoi des objets User au lieu des Ids.
  • Correction de bugs.
  • Ajouter non-null ou nullable aux propriétés.
  • Renommer call.decline à call.reject.

0.1.52 - 2019-01-01