Étendre l'interface PhoneProvider avec les méthodes de gestion des appels; mettre à jour les talons
Ciligemment stringify Long IDs dans les réponses SmsContrôleur
L'approche à long-saut n'était pas l'effet. Appeler directement .toString() sur tous les Longs ID dans le les réponses de la carte plate du contrôleur pour ne g...
Permettre de rejouer l'accès pour les utilisateurs sans abonnement à la facturation
Ajouter JsonIgnore à VoipMessage.conversation pour empêcher la charge paresseuse lors de la sérialisation
Utiliser la conversation de chaîne dans l'ensemble de l'outil SMS pour gérer les identifiants 64 bits
Backend maintenant serialise Long en chaîne; mettre à jour tous les types de conversationId du nombre à la corde pour correspondre. Autez également le bouton d'...
Sétériner les identifiants longs en tant que cordes pour empêcher la perte de précision de la JS
CockroachDB unique-rowid() génère des entiers de 64 bits plus grands que Numéro.MAX-SAFE-INTEGER (2-53-1). JS JSON.parse silencieusement autour d'eux, provoquer...
Retirez le bouton Dossier du dupliqué de RingCentralConfig
Parent PhoneProviderSetup rend déjà un IconButton avec ArrowLeft dans l'en-tête de visualisation de configuration, faire le bouton arrière à l'intérieur de Ring...
Retour de la carte plate à partir de l'envoi du critère d'évaluation pour prévenir LazyInitializationException
VoipMessage.conversation est FetchType.LA-Y; après «Transactional commits», Jackson sérialisant l'entité lancerait LazyInitializationException provoquer un 500,...
Retour à l'org mainPhoneNombre lorsque le membre n'a pas de configuration VOIP
Membres sans membreVoipConfig (ou pas de l'ensemble de PutonNombre) utilisent maintenant le principal PhoneNumber de VoipProviderConfig comme sortie numéro, au ...
Supprimer getJwtKey() de WebhookController après la migration d'OAuth
La validation de la signature a utilisé jwtKey comme secret HMAC qui n'existe plus sur VoipProviderConfig. Sauter la validation pour maintenant être cohérente a...
Ajouter le renvoi de rappel OAuth sans redirection RestTemplate
- Ajouter noRedirectRestModèle (HttpClient.Redirect.NEVER) donc le 302 du rappel OAuth de VOIPService est transmis au navigateur au lieu d'être suivis par l...
Remplacer JWT config avec OAuth connect UI pour RingCentral
- RingCentralConfig: Bouton de connexion/déconnecter OAuth avec indicateur d'état, champ de numéro de téléphone principal, connexion de test (uniquement lorsq...
Flux de codes de réservation RingCentral à OAuth 2,0
- Nouveau contrôleur OAuth: /oauth/start (retours authUrl), /oauth/callback (code d'échange, sauvegarde les jetons), /oauth/status, DELETE/oauth/tonne - OTKVa...
Créer le schéma KamoTokens et la table de jetons d'org'oauth'token
- CRÉER SCHEMA SI NON EXISTES kamotokens - CREATE TABLE kamotokens.org.oauth-token avec un unique (org-id, fournisseur) - DROP COLUMN jwt-key de voippa prestata...
Ajouter OrgOAuthToken entity pour le stockage de jetons OAuth 2.0
- Ajouter l'entité Joueur de jquelette dans le schéma KamoTokens (kamotokens.org-oauth-token) - Ajouter OrgOAuthTokenRepository with findByOrgIdAndProvider / de...
Cartes de caractéristiques à l'égalité de hauteur et descriptions de fournisseurs sensibles à Kazoo
- Hauteur de réglage: 100 % sur l'enveloppe de mouvement FeatureCard de sorte que les cartes dans la même rangée correspondent à la carte la plus haute - Mettre...
Ajouter KamoCRM modèle de dépliant promo modèle HTML et script de génération de marionnettiste
Ajouter une dépendance de développe de marionnettiste pour la génération de flyer
Utiliser des étiquettes img simples pour les logos locaux du fournisseur de SVG
next/image ne dessert pas de manière fiable les SVG locaux sans drapeau non optimisé. Les étiquettes d'impgilents de plaine charge/les biens publics directement...
Réécrire SmsBox en tant qu'orcheur basé sur des ongles avec en-tête de contact
Ajouter SmsChatTab avec recherche, emoji, attacher, horodatage, réponses rapides
Supprimer l'identifiant du client et les champs secret de RingCentral UI
Il s'agit d'identifiants de niveau plateaux fixés une fois dans le secret K8. Les clients n'ont qu'à fournir leur clé JWT et leur numéro de téléphone principal.
Lire RingCentral client-id/secret à partir de la configuration de la plate-forme, pas par or DB
Client ID et Secret identifient l'application Kamo sur la plateforme de RingCentral ils sont partagés dans toutes les régions. Injectez-les des propriétés de Sp...
Supprimer clientId/clientSecret de VoipProviderConfig
Il s'agit d'accréditations au niveau de la plate-forme partagées dans toutes les catégories. Seuls jwtKey et mainPhoneNumber sont par or.
Utiliser un boîtier de clé de session correct pour orgID et memberID
KSessionService stocke les clés en tant qu'orgodID et memberID (capital D). Les deux contrôleurs appelaient .get("orgId") et .get("memberId") qui retourne toujo...
Montez toujours des boutons de téléphone portable et de SMS dans NavTop
Porte isVip enlevée de sorte que les boutons sont toujours visibles indépendamment de indiquer l'état du drapeau.
Ajouter Dockerfile pour VOIPService
Correspond au modèle de construction en deux étapes de la bibliothèque partagée et du service utilisé par EmailService et autres services Java.
Utiliser le nom du type de fonction comme clé avant l'identifiant numérique dans le prétraitement de la fonctionnalité d'org
Java retourne des caractéristiques avec "type: "VOIP" et un id numérique. Le la chaîne de prétraitement avait 'obj.id' avant 'obj.type', provoquant toutes les c...
Ajouter un bouton d'outil SMS à NavTop, portail softphone et SMS sur organisation.isVoip
Ajouter voip à NATS stream sujets et traiter IllegalStateException dans VoipStompRelayContrôleur
Le flux NATS ne couvrait que le chat. ' donc abonnant à voip. Illegal StateException ([SUB-90007) Pas de flux correspondants). Ajout de voip. aux sujets de flux...
Ajoutez un service de sécurité à K8s ConfigMap
KamoJwtService nécessite cette propriété pour la validation de jeton de porteur dans DavAuthFilter, mais la ConfigMap de K8s remplace application.yml et était l...
Reconfiguration de la configuration du fournisseur de téléphone pour faire correspondre le format du fournisseur de courrier électronique avec des logos, des conseils d'aide et des onglets nav
- Réécrire PhoneProviderSetup pour correspondre EmailProviderModèle de présentation: liste/config view split, AnimatePresence transitions, bouton de retour avec...
Montrer les paramètres du système de téléphone inconditionnellement afin que les orgs puissent configurer la VOIP avant de l'activer
- Retirez la porte isVoip de la section téléphonique sur la page /settings et la carte de configuration du fournisseur n'a pas de condition, de sorte qu'elle ap...
Garde contre les réponses API non-arrane en utilisationContacts hook
setBooks, fetchooksContacts, et searchContacts maintenant gérer les objets d'erreur en toute sécurité et les enveloppes paginées de printemps au lieu de s'écras...
Nom de champ correct dans findEventsNeedingSync requête from 'integration' to 'contactIntegration'
Stabiliser le rappel de la charge et réparer la réinitialisation modale dans la section PersonalProvider
Ajouter la section Calendriers et contacts personnels à l'onglet Autorisations d'adhésion des membres
Ajouter un composant PersonalProviderSection pour les intégrations de CalDav/CardDav membres
Comme ce que tu vois expédier ?
Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.