Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-internal
Nom court et description de l'organisation en tête HTML
DynamicMetaLoader définit maintenant document.title sur siteNameShort (était siteName) et écrit la description de l'ordonnance dans l'étiquette de méta-description. Static mise en page.tsxback actualisé en valeurs génériques.
· SecurityService
Inclure la description de l'orge dans config.json
Ajouter le champ de description pour construireConfigJson() et passes org.getDescription() à partir de writeConfigFiles() de sorte que le disque config.json porte l'orge description des frontends à utiliser dans les balises de méta HTML.
· kamo-internal
Liste des tickets en couleur globe par appel de conversations de demandeur
· MediaService
Ajouter la recherche de présence de demandeur pour les agents de liste de billets
· kamo-internal
Ajouter Inclure Compagnie à la pop-up du marché et le nom de la société
Market add/edit popup (LeadMarketManager): - Radiocommande "Nom de l'entreprise d'emprunt" / "Individual Only" (nécessaire) - Défauts non mis en place sur le nouveau marché; prérimages lors de l'édition - Validé et envoyé en tant qu'inclueCompany dans la demande de création/mise à jour Porte de données en plomb (LeadManager): - La colonne de l'entreprise indique le nom de la société pour les prospects à partir des marchés inclus de la société - Affiche "Pas de spécification" lorsqu'il s'agit de la société, c'est-à-dire de la société, mais le nom est vierge - Montre "-" pour les marchés pour lesquels Compagnie-faux/nulle - La recherche rapide (AG Grid quickFilter) inclut automatiquement les valeurs de l'entreprise Créer une forme de lead (CreateLeadClient): - Rendre conditionnellement le champ de texte du nom de l'entreprise lorsque le marché inclutCompany-true - Le champ est facultatif (maximum 50 chars), câblé pour soumettre le chargeur utile via le leadApi leadsApi: companyName mappé par createLead et updateResent Lead
· InitializerService
Ajouter les colonnes d'inclusion d'entreprises et de noms d'entreprise
LeadCompanyColumnRunner (Ordre 40) ajoute de manière idempotent : - lead-markets.include-company (BOOLEAN, nullable) - suivi de la question de savoir si un le marché exige la raison sociale sur les pistes - lead.company-name (VARCHAR(50), nullable) et nom de l'entreprise stocke à le niveau de plomb lorsque le marché a inclusCompany-true
· SecurityService
Expose inclue la société dans les réponses de la configuration d'admission et de la configuration du marché
Les deux Maintenant inclure le drapeau de la société include afin que le frontend sache s'il faut montrer le champ de nom de société sur la création de plomb.
· kamo-shared-library
Ajouter Inclure Compagnie à LeadMarket et nom de la société à plomb
- L'entité du marché principal comprend l'entreprise (Boolean, nul) - Entité de plomb obtient le nom de la société (marquette, max 50, nul) LeadMarketDTO, CreateLeadMarketRequest, UpdateLeadMarketRequest carry includeCompany - LeadDTO détient companyNom et expose la société à l'intérieur de MarketInfoDTO Nom de l'entreprise - Les câbles LeadMarketService incluent Company à la création/mise à jour - LeadService câbles companyNom sur la création/mise à jour et la préserve dans toutes les conversions de types de prêts hypothécaires
· kamo-internal
Afficher le chemin du type de vente dans Add Lead sous-titré
Remplacer le type de vente et le sous-type du marché à la ligne "Ajouter à" la forme reflète les étiquettes utilisées dans la pop-up Edit Market à :: Rendre compte "Ajout à la commercialisation (Service et hypothécaire résidentiel)" lorsqu'un sous-type est ensemble, "Ajout à "Market" (Service)" lorsque seul un parent est fixé, et "Ajouter à la "Market" lorsqu'aucun type de vente n'est fixé.
· kamo-internal
Unified PhoneSdk supportant RingCentral et sip.js (FreePBX)
Le crochet de téléphone mobile utilisé pour instancier le téléphone-ton-tonneriel inconditionnellement, qui a jeté sur n'importe quelle forme d'identifiant FreePBX parce que ce SDK est codé en dur pour Le format de provisionnement de RingCentral. - L'interface PhoneSdk définit une surface agnostique de fournisseur (démarrage, arrêt, inviter, plus a PhoneSdkSession avec - RingCentralPhoneSdk enveloppe le téléphone-ton-tonnercis, préservant l'opérateur existant Comportement des RC. - SipJsPhoneSdk enveloppe sip.js (UserAgent et Inscription et Invitation), Charge l'audio distant via la connexion par pair négociée, supporte en dialogue re-INVITE pour la mise en attente/le nonhold, et se réfère pour le transfert. - createPhoneSdk choisit l'adaptateur de creds.provider (RING-CENTRAL, FREE-PBX, KAMO-PBX). - useSoftphone pilote désormais le SDK unifié et surface l'erreur réelle du SDK Texte en enregistrementError au lieu du SDK générique 'Phone SDK n'a pas réussi à initialiser la chaîne. - Ajout de la dépendance sip.js.
· VOIPService
Certificats SIP sensibles à l'information WSS pour les softphones de navigateur
Le point de terminaison /api/voip/sip/ricials retourne désormais les identifiants d'un côté navigateur La pile SIP peut effectivement utiliser: transport WSS, domaine public, et une URL wsServers. - SipController résout le MemberVoipConfig du membre, valide la VOIP est activé et une extension est attribuée, puis des routes vers le membre spécifique instance (et pas primaire de l'organisation). Retourne les 409 descriptions lorsque le membre n'est pas configuré plutôt que de produire des justificatifs vides. - SipInfo gains wsServers pour SIP-over-WebSocket; SipCredentialsApagnes afin que le frontend choisisse le bon adaptateur SDK (RingCentral WebPhone) vs SIP.js pour FreePBX/KamoPBX). - FreePBXProvider dérive le domaine SIP de la base configuréeUrl et par défaut wsServers à wss://-host-:8089/ws. Convain d'annulation par instance (sipDomain, sipWsServer, sipWssPort, sipTransport) lire dans le document configJson couvrir les déploiements fractionnés lorsque le SIP se termine sur un nom d'hôte différent ou Traefik termine le TLS à /ws sur le port 443. - PhoneProviderFactory analyse les nouveaux champs et les flux optionnels de configJson Ils sont dans un enregistrement SipTransportConfig sur FreePBXProvider. - RingCentralProvider étiquete ses identifiants avec provider-RING-CENTRAL.
· KlusterServices
Ajouter WSS WebRTC transport pour navigateur softphones
Le chan'pjsip d'Asterisk lie maintenant un transport WebSocket clair à 0,0,0:8089 et Traefik met fin à la TLS (port 443) Donc kamo-internal peut enregistrer des softphones de navigateur sur le joker existant cert sans gérer les certs à l'intérieur de la gousse. - configmap-k1m1.yaml: startup.sh écrit pjsip.transports-cutom.conf avec le WS transport et pjsip.endpoint-custom-post.conf avec webrtc-yes surpasse les annulations pour les extensions existantes (8080, 2523), épinglées au transport WS. - service.yaml: exposition au port 8089 (sip-ws) sur le service freepbx afin que le nouveau IngressRoute peut le cibler; la dose est sur hostNetwork donc cette carte à la Port de l'hôte de k1m1 8089. - ingress route-ws.yaml: HostRegexp et PathPrefix(/ws) prioritaire 100 itinéraires WebSocket met à niveau vers freepbx:8089 sans la chaîne kamo-middlewares cette chaîne inclut la compresse, qui corromprait les trames SIP-over-WS.
· SecurityService
Ajouter/noms du point d'extrémité de retour de l'identifiant pour tous les membres, quel que soit l'état
Les filtres de point de terminaison par département pour les membres d'équipe actifs uniquement, mais l'extension Les affectations peuvent faire référence aux membres de base ou aux membres inactifs. Utilisation/noms pour Résolution du nom d'identification où la couverture importe plus que l'état d'activité.
· kamo-internal
Forme de plomb à un seul coup à/leads/nouveau
Refactor Ajouter le plomb d'une feuille multi-onglets en page sur une route dédiée à/leads/new afin qu'il puisse être relié directement. Le marché actuel est passé par le biais de l'affaire du marché et de la présélection. Marché principal, fournisseur et produit sont maintenant nécessaires; le contact nécessite au moins un de premier/dernier/préférisé nom et un e-mail ou un téléphone. Les sous-types hypothécaires et tout marché Les champs de forme personnalisée marqués isDisplayOnIntake sont rendus en ligne. Le succès, redirige vers /leads/view/-id-.
· SecurityService
Ajouter un critère d'évaluation
Retourne les ventesType, sous-Type et customForms pour un marché par marketId le formulaire Add Lead peut rendre les champs de sous-type et les formulaires personnalisés d'admission sans créer au préalable une avance.
· kamo-internal
Ajouter l'affichage sur la bascule d'admission, auto-verrouillage lorsque Requis est activé
· kamo-internal
Ajouter isplayOnIntake to FormField Types de scripts
· kamo-shared-library
Coerce isDisplayOnIntake-vraie quand est requis-vrai dans CustomFormService
· kamo-shared-library
Ajouter isDisplayOnIntake pour créer/actualiser les demandes DTO
· kamo-shared-library
Expose isDisplayOnIntake dans FormFieldDTO
· kamo-shared-library
Ajouter la colonne IS-DISPLAY-ON-INTAKE à l'entité FormField
· kamo-internal
Lien vers le nom du membre attribué à leur page de paramètres téléphoniques
· kamo-internal
Ajouter l'affichage du nom du membre et le bouton de désaffectation à l'onglet d'extensions par instance
· kamo-internal
Afficher les noms des membres et ajouter Action Unassign à l'onglet extensions de niveau d'org
· kamo-internal
Configuration VOIP en fil à l'intention des sélecteurs d'extension du fournisseur avec application d'assignation
· kamo-internal
Ajouter des DTO typés, une méthode API désaffectée et mettre à jour des types de VOIP VOIP
· VOIPService
Ajouter le critère d'évaluation de l'assignation DELETE à VoipExtensionsContrôleur pour les personnes adminées
· VOIPService
Ajouter MemberVoipConfigContrôleur pour la configuration VOIP membre avec affectation d'extension
· kamo-shared-library
Ajouter findAdSysignedMemberId requêtes methods to PhoneExtensionRepository
· kamo-internal
Persister boîte aux lettres active dans les URL querays params
Le changement de boîtes aux lettres met maintenant à jour l'URL (?mailboxType, ?mailboxId, ?mailboxbox) La rafraîchissement du navigateur restaure la même boîte aux lettres. MessageBrowser lit Wind.location.search dans son utilisation paresseur Initialiseur état à restaurer activeMailbox avant le premier rendu, et pousse les mises à jour d'URL via router.remplacez-le sur chaque événement modifié par boîte aux lettres. FolderSidebar lit le les mêmes URL params après getAccessibleMailboxes résout donc la liste déroulante reflète la sélection rétablie.

Votre univers vous attend.
Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.
Gratuit pour toujours — aucune carte de crédit requise