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.

Versión 9.5.1 - 11 de enero de 2024

Arregla

  • Corregido error al hacer networkRequest datos a cadena

Versión 9.5.0 - 21 de noviembre de 2023

Nuevo

  • Apoyar eventos pendientes (perdidos member:invited)

Versión 9.4.0 - 04 de septiembre de 2023

Nuevo

  • Ayuda ephemeral evento
// send ephemeral event
conversation
  .sendEphemeralEvent({ state: "INVITED" })
  .then((event) => {
    console.log(event)
  });

Versión 9.3.1 - 30 de agosto de 2023

Arregla

  • Fijar NexmoAPI envoltura de error para v0.3 Puntos finales de la Conversation API

Notas de publicación

Versión 9.3.1 - 19 de junio de 2023

Arregla

  • Fijar NexmoAPI envoltura de error para v0.3 Puntos finales de la Conversation API

Versión 9.3.0 - 01 de junio de 2023

Nuevo

  • Añadir state para consultar param para application.getConversations() para la ConversationsPage objeto
// iterate through conversations
application
  .getConversations({ state: "INVITED" })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });

Arregla

  • Definición de tipo fija para Conversation marca de tiempo al objeto
  • Por defecto socket.io consulta session_version a 0.0.1 a menos que enableInboundOffer por defecto será 0.0.2

Versión 9.2.6 - 23 de mayo de 2023

Cambios

  • Añadir métricas de reconexión WS

Versión 9.2.5 - 23 de mayo de 2023

Arregla

  • Definición de tipo fija para enableEventsQueue y enableInboundOffer
  • Añadir acknowledgeEvents en la configuración para permitir el seguimiento del acuse de recibo de eventos de websocket

Versión 9.2.4 - 19 de abril de 2023

Arregla

  • Emisión reconnecting evento de socket en intento de reconexión

Versión 9.2.3 - 30 de marzo de 2023

Cambios

  • Actualizar socket.io-client a la versión 4.6.1

Versión 9.2.2 - 13 de marzo de 2023

Arregla

  • Fijar ConversationEventsProcessor iniciar varias veces la misma conversación

Versión 9.2.0 - 21 de diciembre de 2022

Cambios

  • Añadir enableInboundOffer bandera a configurar para la configuración de llamadas entrantes
  • Eliminar Ice Servers por defecto de webrtc STUN configuración del servidor
  • Sustituir api.nexmo URL a api.vonage URL

Versión 9.1.5 - 24 de octubre de 2022

Arregla

  • Corrección de un error al volver a invitar a un usuario a una conversación.

Versión 9.1.4 - 23 de septiembre de 2022

Cambios

  • Utilice v2 de Nexmo Conversation Websocket

Versión 9.1.3 - 07 de septiembre de 2022

Fijar

  • Corregir la definición del módulo typescript

Versión 9.1.1 - 19 de agosto de 2022

Fijar

  • Corregir el orden de los eventos para rtc:transfer en conversaciones con nombre

Versión 9.1.0 - 16 de agosto de 2022

Nuevo

  • Utilizar medios precargados en las llamadas entrantes (inicio WebRTC ice en cuanto se invita a un miembro a una convocatoria)

Fijar

  • Eliminar public-ip debido a una vulnerabilidad de seguridad (actualizada con is-ip)

Versión 9.0.0 - 30 de junio de 2022

Cambios de última hora

  • Cambie el nombre de login() para createSession()
rtc.createSession(token).then((application) => {
  console.log(application);
}).catch((error) => {
  console.log(error);
});
  • Cambie el nombre de logout() para deleteSession()
rtc.deleteSession().then((response) => {
  console.log(response);
}).catch((error) => {
  console.log(error);
});

Cambios

  • Mover la creación de conexiones websocket a la createSession() función

Versión 8.7.3 - 14 de junio de 2022

Cambios

  • Se ha añadido la autenticación mediante token a connectivityReport()
rtc.connectivityReport(token, {
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});
  • Se ha añadido la autenticación mediante token a checkMediaServers()
rtc.checkMediaServers('token', 'nexmo-api-url','dc').then((responseArray) => {
 console.log(responseArray);
}).catch((error) => {
  console.log(error);
});

Versión 8.7.2 - 27 de mayo de 2022

Fijar

  • Eliminadas dependencias npm no utilizadas.

Versión 8.7.1 - 11 de mayo de 2022

Nuevo

  • Añadido nuevo checkMediaServers() para devolver una lista con el estado de conexión de los servidores de medios para un centro de datos específico.
rtc.checkMediaServers('nexmo-api-url','dc').then((responseArray) => {
	console.log(responseArray);
}).catch((error) => {
  console.log(error);
});
  • Añadido nuevo checkMediaConnectivity() para devolver el estado de la conexión de un único servidor multimedia.
rtc.checkMediaConnectivity('ip-address','1').then((response) => {
  console.log(response);
}).catch((error) => {
	console.log(error);
});

Cambios

  • Actualización connectivityReport() para devolver el tiempo de conexión en ms para la conexión a servidores https, wss y media

Versión 8.6.0 - 21 de abril de 2022

Nuevo

  • Se ha añadido un argumento de objeto opcional a la función connectivityReport()con campo opcional dcListCallback que acepta una función de devolución de llamada para actualizar la lista de centros de datos
rtc.connectivityReport({
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Versión 8.5.0 - 20 de abril de 2022

Nuevo

  • Exponga seen() y delivered() funciones para eventos de mensajes
messageEvent.seen().then(() => {
  console.log(`Seen message with id ${messageEvent.id}`);
}).catch((error) => {
  console.log(error);
});
  • Admite nuevos eventos de estado de mensajes
    • message:seen
    • message:delivered
    • message:submitted
    • message:rejected
    • message:undeliverable
conversation.on("message:delivered", (member, event) => {
  console.log(`Message with id ${event.id} delivered to ${member.name}`);
});
  • Se han añadido nuevos objetos de estado para los eventos de mensaje que admiten los nuevos estados
    • seen_by
    • delivered_to
    • submitted_to
    • rejected_by
    • undeliverable_to

Cambios

  • Actualización connectivityReport() utilizar puntos finales adecuados por región

Versión 8.4.1 - 14 de febrero de 2022

Fijar

  • Arreglar el orden de los eventos cuando hay un hueco en los eventos entrantes

Versión 8.4.0 - 21 de enero de 2022

Nuevo

  • Añadido nuevo connectivityReport() función para obtener un informe de conectividad para todos los centros de datos y servidores de medios de Vonage
rtc.connectivityReport().then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Versión 8.3.1 - 09 de diciembre de 2021

Nuevo

  • Establezca el nivel de sincronización predeterminado para el proceso de inicio de sesión de lite a none

Versión 8.3.0 - 01 de noviembre de 2021

Nuevo

  • Añadido nuevo uploadImage() para cargar una imagen en el servicio multimedia de Vonage
const params = {
  quality_ratio : "90",
  medium_size_ratio: "40",
  thumbnail_size_ratio: "20"
};

conversation.uploadImage(fileInput.files[0], params).then((uploadImageRequest) => {
  uploadImageRequest.onprogress = (e) => {
    console.log("Image request progress: ", e);
    console.log("Image progress: " + e.loaded + "/" + e.total);
  };
  uploadImageRequest.onabort = (e) => {
    console.log("Image request aborted: ", e);
    console.log("Image: " + e.type);
  };
  uploadImageRequest.onloadend = (e) => {
    console.log("Image request successful: ", e);
    console.log("Image: " + e.type);
  };
  uploadImageRequest.onreadystatechange = () => {
    if (uploadImageRequest.readyState === 4 && uploadImageRequest.status === 200) {
      const representations = JSON.parse(uploadImageRequest.responseText);
      console.log("Original image url: ", representations.original.url);
      console.log("Medium image url: ", representations.medium.url);
      console.log("Thumbnail image url: ", representations.thumbnail.url);
    }
  };
}).catch((error) => {
  console.error("error uploading the image ", error);
});
  • Añadido nuevo sendMessage() para enviar un nuevo message a la conversación (los tipos admitidos son text, image, audio, video y file)
conversation.sendMessage({
  "message_type": "text",
  "text": "Hi Vonage!"
}).then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
conversation.sendMessage({
  "message_type": "image",
  "image": {
    "url": "https://example.com/image.jpg"
  }
})
.then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
  • Añadido nuevo MessageEvent tipo de acontecimiento
conversation.on("message", (member, messageEvent) => {
  console.log(messageEvent);
});

Cambios

  • Deprecate sendText() (utilice sendMessage() con un tipo de text en su lugar)
conversation.sendMessage({ "message_type": "text", "text": "Hi Vonage!" }).then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
  • Deprecate sendImage() (utilice uploadImage() y sendMessage() con un tipo de image en su lugar)
conversation.uploadImage(imageFile).then((imageRequest) => {
  imageRequest.onreadystatechange = () => {
    if (imageRequest.readyState === 4 && imageRequest.status === 200) {
      try {
        const { original, medium, thumbnail } = JSON.parse(imageRequest.responseText);
        const message = {
          message_type: 'image',
          image: {
            url: original.url ?? medium.url ?? thumbnail.url
          }
        }
        return conversation.sendMessage(message);
      } catch (error) {
        console.error("error sending the message ", error);
      }
    }
    if (imageRequest.status !== 200) {
      console.error("error uploading the image");
    }
  };
  return imageRequest;
})
.catch((error) => {
  console.error("error uploading the image ", error);
});

Versión 8.2.5 - 12 de octubre de 2021

Fijar

  • Corrección de errores en los permisos de audio

Versión 8.2.2 - 08 de octubre de 2021

Fijar

  • Mejora de los registros de depuración

Versión 8.2.0 - 28 de septiembre de 2021

Nuevo

  • Añadir nuevo getUserSessions() para recuperar las sesiones del usuario conectado
application.getUserSessions({ user_id: "USR-id", page_size: 20 }).then((user_sessions_page) => {
  user_sessions_page.items.forEach(user_session => {
    render(user_session)
  })
}).catch((error) => {
  console.error(error);
});

Versión 8.1.1 - 08 de septiembre de 2021

Nuevo

  • Añadir nuevo opcional mediaParams parámetro en reconnectCall para modificar el MediaStream objeto
application.reconnectCall(
  "conversation_id",
  "rtc_id",
  { audioConstraints: { deviceId: "device_id" } }
).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Actualización media.enable() docs para incluir las restricciones de audio

Arregla

  • Asignar el NXMCall estado al volver a conectarse a una llamada (STARTED, RINGING o ANSWERED)

Cambios

  • Actualización npm dependencias

Versión 8.1.0 - 02 de septiembre de 2021

Nuevo

  • Añadir reconnectCall función que permite a los usuarios volver a conectarse a una llamada en 20 segundos si se cierra la pestaña del navegador
application.reconnectCall("conversation_id", "rtc_id").then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Añadir parámetro opcional reconnectRtcId a los medios de comunicación enable() para volver a conectar los medios de comunicación para llamar a
conversation.media.enable({ reconnectRtcId: "UUID" }).then((stream) => {
  console.log(stream)
}).catch((error) => {
  console.error("error renabling media", error);
});
  • Añadir custom_data objeto en callServer función
application.callServer("<phone_number>", "phone", { field1: "test" }).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Añadir apiKey, applicationId, conversationId y conversationName cuando esté disponible en rtcstats informes analíticos

Arregla

  • Corrección de un error en la transferencia de llamadas transferred_from no estaba definido

Versión 8.0.5 - 15 de julio de 2021

Arregla

  • Fijar el from para eventos de socios
  • Actualización npm dependencias que incluyen socket-io

Versión 8.0.4 - 16 de junio de 2021

Arregla

  • Corrección de errores en DTMF envío de devolución de llamada a event_url

Versión 8.0.3 - 18 de mayo de 2021

Arregla

  • Corrección del desorden en el procesamiento de eventos internos en la cola de eventos
  • Corrección del mensaje de advertencia de obsoleto para rtcstats:report

Versión 8.0.1 - 29 de abril de 2021

Arregla

  • Actualizar las definiciones de Typescript
  • Se ha corregido un error en el escenario de llamada IP-IP con SDK nativos (no se rellenaba correctamente el campo Conversation.members Mapa)

Versión 8.0.0 - 27 de abril de 2021

Cambios de última hora

  • Deprecate Conversation.members Mapa (sólo se rellenará en un escenario de llamada)
  • Los eventos de conversación se emitirán con un subconjunto de información del Miembro
conversation.on("any:event", ({memberId, userId, userName, displayName, imageUrl, customData}, event) => {});

Cambios

  • Añadir paginado getMembers() para recuperar los miembros de una conversación
conversation.getMembers().then((members_page) => {
  members_page.items.forEach(member => {
    render(member);
  })
}).catch((error) => {
  console.error("error getting the members ", error);
});
  • Añadir getMyMember() para recuperar nuestro propio miembro en una conversación
conversation.getMyMember().then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting my member", error);
});
  • Añadir getMember() para recuperar un miembro de la conversación mediante member_id
conversation.getMember("MEM-id").then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting member", error);
});

Versión 7.1.0 - 07 de abril de 2021

Cambios

  • rtcstats:report está obsoleto. Por favor, utilice rtcstats:analyticsen su lugar
application.on('rtcstats:analytics', ({
  type: 'mos' || 'mos_report',
  mos: string,
  rtc_id: string,
  mos_report?: {
    average: string,
    last: string,
    max: string,
    min: string
  },
  report?: RTCStatsReport
}) => {}
  • Añadir reportero de registros para el registro remoto
  • Añadir personalizado getStats analizador
  • Eliminar callstats biblioteca y aplicación

Versión 7.0.2 - 30 de marzo de 2021

Arregla

  • Emitir evento 'call:status:update' cuando la aplicación está offline y la llamada desconectada

Versión 7.0.1 - 04 de febrero de 2021

Arregla

  • Eliminar el mensaje de advertencia innecesario para las transiciones de estado de llamada

Versión 7.0.0 - 02 de febrero de 2021

Cambios de última hora

  • legs debe incluirse en acl caminos en JWT creación de fichas
"acl": {
  "paths": {
    ...
    "/*/legs/**": {}
  }
}

Cambios

  • Mejorar callServer tiempo de preparación precalentando la pierna
  • Añada el rtcObject y remoto stream a la NxmCall objeto

Arregla

  • Devolución ClientDisconnected razón por la que el cliente se desconecta del SDK

Versión 6.2.1 - 24 de diciembre de 2020

Arregla

  • Volver a 6.1.1 desde 6.2.0-alpha

Versión 6.1.2 - 24 de diciembre de 2020

Arregla

  • Actualizar las definiciones de Typescript

Versión 6.1.1 - 09 de diciembre de 2020

Arregla

  • Actualizar las definiciones de Typescript

Versión 6.1.0 - 01 de diciembre de 2020

Cambios

  • Añadir enableEventsQueue a la configuración del cliente (por defecto es true)
  • Añadir interno eventsQueue mecanismo para garantizar el orden de los eventos recibidos durante una sesión

Versión 6.0.19 - 26 de noviembre de 2020

Cambios

  • Actualización reconnectionDelay a 2000 en socket.io
  • Añadir randomizationFactor a 0.55 en socket.io

Versión 6.0.18 - 19 de noviembre de 2020

Cambios

  • Actualizar la documentación

Arregla

  • Añadir reconnectionDelay a 3000 y reconnectionDelayMax a 15000 en socket.io

Versión 6.0.17 - 12 de noviembre de 2020

Arregla

  • Actualizar el identificador de sesión tras la reconexión

Versión 6.0.16 - 12 de octubre de 2020

Arregla

  • Despacho system:error:expired-token evento a nivel de aplicación
  application.on('system:error:expired-token', 'NXM-errors', () => {
    console.log('Token Expired');
  });
  • Manejar excepción no capturada de conversation:error:invalid-member-state evento

Versión 6.0.15 - 21 de septiembre de 2020

Arregla

  • Establecer SDK por defecto en un único preset candidato ICE
  • Eliminar iceGatherOnlyOneCandidate de la configuración del cliente

Versión 6.0.13 - 14 de septiembre de 2020

Arregla

  • Actualización de la lógica de reconexión de websocket para la expiración de token

Versión 6.0.12 - 01 de septiembre de 2020

Arregla

  • Actualización del flujo resuelto en la habilitación de medios

Versión 6.0.11 - 01 de septiembre de 2020

Cambios

  • Actualización de la lógica de reconexión de websockets
  • Se corrige el retraso en el establecimiento de la conexión multimedia con un candidato a hielo enviado

Versión 6.0.10 - 04 de mayo de 2020

Arregla

  • Filtrar candidatos IPv6 de iceGatherOnlyOneCandidate Oferta SDP

Versión 6.0.9 - 24 de marzo de 2020

Arregla

  • Arreglar manejador de rtc:transfer evento para refrescar la conversación

Versión 6.0.8 - 28 de febrero de 2020

Arregla

  • Corrección de la oferta webrtc duplicada enviada durante la llamada IP
  • Arreglar Safari WebRTC dependencia

Versión 6.0.7 - 16 de enero de 2020

Arregla

  • Arreglar el estado de llamada contestada en llamadas IP - IP
  • Solucionar problemas de documentación

Cambios

  • Mejorar las definiciones de TypeScript

Versión 6.0.6 - 19 de noviembre de 2019

Arregla

  • Añadir iceGatherOnlyOneCandidate y utilizarla para definir la ruta en ICE gathering proceso

Versión 6.0.5 - 19 de noviembre de 2019

Arregla

  • Actualizar el estilo de JSDocs a Docstrap plantilla
  • Cambia RTCPeerConnection ICE candidates para enviar el Protocolo de Descripción de Sesión (SDP) oferta en la primera ICE candidato reunido

Versión 6.0.4 - 14 de noviembre de 2019

Arregla

  • Eliminar los elementos de audio restantes tras transferir una llamada a una nueva conversación
  • Actualización conversation.invite() para no incluir vacíos user_id o user_name campos de las solicitudes

Versión 6.0.3 - 22 de octubre de 2019

Nuevo

  • Añadidos archivos de definición de TypeScript

Cambios

  • Se han añadido opciones para personalizar los niveles de registro en la consola de debug, info, warno error.
new NexmoClient({
  debug: 'info'
})
  • Trasladado el almacenamiento del token JWT de localStorage a NexmoClient objeto de configuración
  • Eliminados archivos innecesarios del paquete de lanzamiento NPM

Arregla

  • Orden fijo de los estados de llamada en caso de transferencia

Versión 6.0.1 - 27 de septiembre de 2019

Cambios

  • Eliminado media.record() función
  • Eliminada la opción de caché del SDK, utilizada para almacenar conversaciones y eventos.
  • Eliminada la sincronización automática de todos los conversations en inicio de sesión, cuando sync es lite o full

Versión 6.0.0 - 13 de septiembre de 2019

Cambios de última hora

  • Cambiar el valor de retorno de application.getConversations() al nuevo ConversationsPage objeto
// iterate through conversations
application
  .getConversations({ page_size: 20 })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });
  • Cambiar el valor de retorno de conversation.getEvents() al nuevo EventsPage objeto
// iterate through events
conversation
  .getEvents({ event_type: `member:*` })
  .then((events_page) => {
    events_page.items.forEach(event => {
      render(event);
    })
  });
  • Renombrar método application.callPhone a application.callServer
  • Renombrar método application.call a application.inAppCall
  • Renombrar método call.createPhoneCall a call.createServerCall
  • Renombrar clase Call a NXMCall
  • Renombrar clase ConversationClient a NexmoClient
  • Renombrar clase ConversationClientError a NexmoClientError
  • Renombrar archivos conversationClient.js y conversationClient.min.js a nexmoClient.js y nexmoClient.min.js
  • Deprecate member:call:state (utilice en su lugar member:call:status)
  • Eliminar el inicio de sesión automático en caso de reconexión del websocket y emitir el evento

Nuevo

  • Enviar y escuchar tipos de eventos personalizados en una conversación.
//sending a custom event type to a conversation
conversation
  .sendCustomEvent({type: `my_custom_event`, body: { enabled: true }})
  .then((custom_event) => {
    console.log(event.body);
  });
//listening for a custom event type
conversation.on(`my_custom_event`, (from, event) => {
  console.log(event.body);
});
  • Añadir nuevo PageConfig clase para configurar las peticiones paginadas
  • Añadir nuevo Page para envolver los resultados de las peticiones paginadas
  • Añadir configuración de paginación por defecto para conversaciones y eventos en la inicialización de ConversationClient.
  • Añadir comodín admitido para filtrar por tipos de eventos utilizando :* (por ejemplo event_type: member:*)
new NexmoClient({
  conversations_page_config: {
    page_size: 25,
    order: 'asc'
    cursor: 'abc'
  },
  events_page_config: {
    page_size: 50,
    event_type: `member:*`
  }
})
  • Añadir nuevo ConversationsPage y EventsPage que se extienden Page para envolver los resultados de las solicitudes paginadas de conversaciones y eventos
  • Añadir getNext() y getPrev() métodos para ConversationsPage y EventsPage objetos para recuperar las páginas anteriores y siguientes de conversaciones y eventos
  • Añadir conversations_page_last a application y events_page_last a conversation objeto de referencia a la última página recuperada
application.conversations_page_last
  .getNext((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation)
    })
  })
conversation.events_page_last
  .getPrev((events_page) => {
    events_page.items.forEach(event => {
      render(event)
    })
  })
  • Añade la posibilidad de realizar una llamada IP-IP a través de callServer función
// IP-IP call scenario
application
  .callServer('username', 'app')
  .then((nxmCall) => {
    // console.log(nxmCall);
  });

// IP-PSTN call scenario
application
  .callServer('07400000000')
  .then((nxmCall) => {
    // console.log(nxmCall);
  });

Cambios

  • Actualización reason para recibir reason.reason_text y reason.reason_code campos

Cambios internos

  • Cambie el nombre de Event clase a NXMEvent
  • Actualizar las solicitudes CAPI a llamadas REST para estos eventos
    • event:delivered
    • text:delivered
    • image:delivered
    • event:seen
    • text:seen
    • image:seen
    • conversation:events
    • audio:play
    • conversation:delete
    • conversation:invite
    • text
    • text:typing:on
    • text:typing:off
    • new:conversation
    • conversation:get
    • user:conversations
    • user:get
    • conversation:join
    • audio:say
    • audio:earmuff:on
    • audio:earmuff:off
    • audio:dtmf
    • audio:record
    • audio:play
    • conversation:member:delete
    • event:delete
    • audio:ringing:start
    • audio:ringing:stop
    • audio:mute:on
    • audio:mute:off
    • image
    • rtc:new
    • rtc:answer
    • rtc:terminate
    • knocking:new
    • knocking:delete

Versión 5.3.4 - 18 de julio de 2019

Arregla

  • El objeto de configuración personalizado del SDK realiza una fusión profunda con el objeto de configuración predeterminado.

Versión 5.3.3 - 29 de junio de 2019

Arregla

  • Cambiar dígito a dígito en el sendDTMF() carga útil del método de solicitud.
  • El flujo no se está terminando en una transferencia de llamada.
  • member:call no se emite si media.audio_settings.enabled es falso o no existe.

Nuevo

  • Establecer member.callStatus a started al inicializar una llamada IP - IP.
  • Establecer member.callStatus a ringing al activar el timbre con media.startRinging().

Cambios internos

  • Desplazar la limpieza del flujo de member:left a rtc:hangup en el módulo Media.

Versión 5.2.1 - 12 de junio de 2019

Nuevo

  • Añada el nuevo nexmoGetRequest método de utilidad para realizar una solicitud de red GET directamente a CS:
/**
 * Perform a GET network request directly to CS
 *
 * @param {string} url the request url to CS
 * @param {string} data_type the type of data expected back from the request (events, conversations, users)
 * @param {object} [params] network request params
 * @param {string} [params.cursor] cursor parameter to access the next or previous page of a data set
 * @param {number} [params.page_size] the number of resources returned in a single request list
 * @param {string} [params.order] 'asc' or 'desc' ordering of resources (usually based on creation time)
 * @param {string} [params.event_type] the type of event used to filter event requests ('member:joined', 'audio:dtmf', etc)
 *
 * @returns {Promise<XMLHttpRequest.response>} the XMLHttpRequest.response
 * @static
 * @example <caption>Sending a nexmo GET request</caption>
 */
  nexmoGetRequest(url, data_type, params).then((response) => {
    response.body: {},
    response.cursor: {
        prev: '',
        next: '',
        self: ''
    },
    response.page_size: 10
 });
  • Ayuda reason para member:delete, conversation.leave, member.kick, call.hangup y call.reject.
  • Escucha el member:left evento con reason:
//listening for member:left with reason
conversation.on('member:left', (member, event) => {
  console.log(event.body.reason);
});

/**
* Reason object format
*
* @param {object} [reason] the reason for kicking out a member
* @param {string} [reason.code] the code of the reason
* @param {string} [reason.text] the description of the reason
*/
  • Añadir callStatus en el campo Member que define el estado de una llamada.
  • Emita member:call:status cada vez que el member.callStatus cambios:
conversation.on("member:call:status", (member) => {
   console.log(member.callStatus);
});

Versión 5.2.0 - 30 de mayo de 2019

Nuevo

  • Añada el call instancia en application.calls mapa en createCall() función (llamada IP -IP)

  • Actualizar el parámetro del llamante en el objeto de llamada en una llamada RTPC - IP desde unknown a channel.from.number o channel.from.uri si existe

  • Emitir el nuevo leg:status:update cada vez que un miembro cambie de estado

/**
  * Conversation listening for leg:status:update events.
  *
  * @event Conversation#leg:status:update
  *
  * @property {Member} member - the member whose leg status changed
  * @property {Event} event - leg:status:update event
  * @param {string} event.cid - the conversation id
  * @param {string} event.body.leg_id - the conversation leg id
  * @param {string} event.body.type - the conversation leg type (phone or app)
  * @param {string} event.body.status - the conversation member leg status
  * @param {Array} event.body.statusHistory - array of previous leg statuses
*/
conversation.on("leg:status:update", (member, event) {
  console.log(member, event);
});
  • Añada el channel.legs campo en los actos para socios ofrecidos por CS
conversation.on(<member_event>, (member, event) {
  console.log(event);
  // member_id: <member_id>,
  // conversation_id: <conversation_id>,
  // ...
  // channel: {
  //  to: {
  //    type: app
  //  },
  //  type: app,
  //  leg_ids: [<leg_id>]
  //  legs : [{ leg_id: <leg_id>, status: <leg_status>}],
  //  leg_settings: {},
  // },
  // state: <state>,
  // leg_ids: []
});

Versión 5.1.0 - 29 de mayo de 2019

Nuevo

  • Enviar evento DTMF a una conversación
 * Send DTMF in a conversation
 *
 * @param {string} digits - the DTMF digit(s) to send
 * @returns {Promise<Event>}
 conversation.media.sendDTMF('digits')
  • Emitir nuevo evento audio:dtmf
conversation.on("audio:dtmf",(from, event)=>{
  event.digit // the dtmf digit(s) received
  event.from //id of the user who sent the dtmf
  event.timestamp //timestamp of the event
  event.cid // conversation id the event was sent to
  event.body // additional context about the dtmf
});
  • Establecer restricciones de audio personalizadas para las llamadas IP al activar el audio.
 conversation.media.enable({
    'audioConstraints': audioConstraints
 })
  * Replaces the stream's audio tracks currently being used as the sender's sources with a new one with new audio constraints
  * @param {object} constraints - audio constraints
  * @returns {Promise<MediaStream>} - Returns the new stream with the updated audio constraints.
  * @example
  * conversation.media.updateAudioConstraints({'autoGainControl': true})
  **/
  • Actualización de las restricciones de audio para las pistas de audio existentes
  conversation.media.updateAudioConstraints(audioConstraints)
 })

Arregla

  • Eliminar 'this' pasado al manejador de eventos del trabajador de caché

Cambios internos de última hora

  • Cambia el parámetro de audio multimedia de media.audio a media.audio_settings en inviteWithAudio función

Versión 5.0.3 - 23 de mayo de 2019

Cambios

  • Cambiar el comportamiento por defecto de autoPlayAudio en media.enable() de falso a verdadero
  • Pasar un autoPlayAudio a call.createCall() y call.answer() funciones (por defecto es true)

Versión 5.0.2 - 30 de mayo de 2019

Nuevo

  • Borre los archivos de imagen antes de enviar el image:delete solicitar
  • Adjuntar de flujo de audio ahora se puede elegir si va a ser automáticamente encendido o apagado a través de media.enable()
media.enable({
  autoPlayAudio: true | false
})

Cambios (internos)

  • Combinar las solicitudes GET, POST y DELETE de la red en una función genérica

Versión 5.0.1 - 30 de abril de 2019

Arregla

  • Limpiar los medios del usuario antes de salir de una conversación en curso

Cambios de última hora

  • Cambia application.conversations tipo de Object a Map

Versión 4.1.0 - 26 de abril de 2019

Arregla

  • Corregido el error por el que el flujo de audio resuelto en media.enable() provocaba eco y no era el flujo remoto
  • Resolver el flujo remoto pc.ontrack() y no el localStream de getUserMedia

Cambios

  • Cambie el nombre de localStream a stream en media.rtcObjects objeto.

Versión 4.0.2 - 17 de abril de 2019

Cambios

  • Eliminado media.rtcNewPromises

Nuevo

  • Actualización de dependencias de librerías internas
  • Se ha añadido compatibilidad con la herramienta de supervisión y notificación de errores Bugsnag.
 * @class ConversationClient
 *
 * @param {object} param.log_reporter configure log reports for bugsnag tool
 * @param {Boolean} param.log_reporter.enabled=false
 * @param {string} param.log_reporter.bugsnag_key your bugsnag api key / defaults to Vonage api key
  • Se ha actualizado la configuración de vscode para añadir una línea vacía (si no hay ninguna) al final de cada archivo al guardarlo.
  • Desactivar los candidatos de hielo goteo en la conexión de hielo
  • Esperar a que la mayoría de los candidatos se reúnan tanto en el lado local como en el remoto.
  • Añadida nueva función privada editSDPOrder(offer, answer) en rtc_helper.js reordenar la respuesta SDP cuando sea necesario
  • Para el estado de fallo de conexión rtc
    • Desactivar pierna
    • emitir nuevo evento media:connection:fail
member.on("media:connection:fail",(connection_details)=>{
  connection_details.rtc_id // my member's call id / leg id
  connection_details.remote_member_id // the id of the Member the stream belongs to
  connection_details.connection_event: // the connection fail event
  connection_details.type // the type of the connection (video or screenshare)
  connection_details.streamIndex // the streamIndex of the specific stream
});
* @event Member#media:connection:fail
*
* @property {number} payload.rtc_id the rtc_id / leg_id
* @property {string} payload.remote_member_id the id of the Member the stream belongs to
* @property {event} payload.connection_event the connection fail event
  • Añadir nuevo archivo LICENCE

Cambios de última hora (internos)

  • Eliminación de la lógica de goteo de hielo con onicecandidate controlador de eventos
  • Cambiar el formato de member:media al nuevo evento ofrecido por CS
type: 'member:media',
  from: member.member_id,
  conversation_id: member.conversation_id,
  body: {
    media: member.media,
    channel: member.channel
  }
  • Cambiar el formato de member:invited evento al nuevo ofrecido por CS
type: 'member:invited',
  body: {
    media: {
      audio_settings: {
        enabled: false,
        earmuffed: false,
        muted: false
      }
    }
  }

Versión 4.0.1 - 4 de marzo de 2019

Nuevo

  • Seleccione el nivel de sincronización para el proceso de inicio de sesión

    • fullActivar la sincronización completa para incluir conversaciones y eventos
    • liteactivar sincronización parcial, sólo objetos de conversación (vacíos de eventos)
    • noneNo sincronices nada.

    si el módulo Caché está activado, la obtención manual de una conversación la almacenará en la memoria interna.

    uso:

    new ConverationClient({'sync':'full'});
    

Arregla

  • rtcstats:report estaba duplicando instancias en cada llamada
  • eliminar screenshare restricción https

Cambios de última hora (internos)

  • Depreciación de application.activeStreamahora forma parte de application.activeStreams
  • Se ha eliminado la restricción que permitía llamar a media.enable() mientras un flujo está activo

Versión 4.0.0 - 1 de febrero de 2019

Cambios de última hora

  • renombrar SDK stitch a client
  • a la escucha de media:stream:* ahora da streamIndex en lugar de index por coherencia con los rtcObjects internos
 * @event Member#media:stream:on
 *
 * @property {number} payload.streamIndex the index number of this stream
 * @property {number} [payload.rtc_id] the rtc_id / leg_id
 * @property {string} [payload.remote_member_id] the id of the Member the stream belongs to
 * @property {string} [payload.name] the stream's display name
 * @property {MediaStream} payload.stream the stream that is activated
 * @property {boolean} [payload.video_mute] if the video is hidden
 * @property {boolean} [payload.audio_mute] if the audio is muted

Nuevo

  • Ahora se puede especificar el ID de origen de la pantalla compartida al invocar media.enable()