Arrêtez de dire aux gens d'ajouter le fournisseur de texte qu'ils ont déjà ajouté
Réalisé à partir d'une configuration réelle, et le rapport était juste. Une organisation en activité FreePBX a ajouté Telnyx en tant que fournisseur de texte, a...
Dites à un membre qu'il manque le numéro, non pas que son autocommutateur ne peut pas envoyer de texte
Reporté d'une configuration réelle: une organisation a ajouté Telnyx en tant que fournisseur de texte, a ouvert la fenêtre SMS, et a été dit: "Ce serveur de tél...
Un CHECK congelé a empêché chaque fournisseur de Telnyx ET JustCall d'être créé
Ajout d'un fournisseur de texte Telnyx 500'd. Le journal le nomme clairement et l'écran dit rien d'utile: contrainte Contient de la rangée défaillante (......
Demandez si ce nombre de membres peut envoyer un texte, et non si l'orge peut
SmsGateway a augmenté une disponibilité() sensible au nombre lorsque le routage est passé au nombre, Et puis rien ne l'appelait avec un nombre - les deux sites ...
Le message "vous ne pouvez pas envoyer de texte" s'est arrêté un pas en deçà du correctif
FreePBX et Teams ont demandé à un membre d'ajouter un fournisseur de SMS sous Téléphones et fournisseurs. Il s'agissait d'un conseil complet jusqu'à ce que les ...
Seul le transporteur propriétaire d'une URL d'un URL peut vérifier ses postes
Le chemin entrant du serveur téléphonique ajouté dans le précédent engagement vérifié contre Quel que soit le fournisseur portant le numéro. C'est une surface d...
Un serveur téléphonique Telnyx pourrait envoyer des SMS et ne jamais en recevoir un
Telnyx est à la fois un serveur téléphonique et un opérateur, et un profil de messagerie Telnyx a exactement une URL à crochet web. Donc une organisation qui a ...
Populez un nouveau nombre avant de le maintenir, pas après
save() a construit un OrgPhoneNumber vide, l'a persisté, puis a rempli E164 et Tempon-CANON et tous deux NON N'AUX PRESUS PAS. Il fonctionne aujourd'hui parce q...
L'un envoie un contrat à l'ensemble des cinq fournisseurs et cesse de supprimer les textes entrants
La couche d'abstraction des SMS avait cinq fournisseurs en désaccord sur la façon d'échouer et un chemin entrant qui a rejeté les messages réels des clients en ...
Prouver le déploiement par digest, et non par étiquette
L'engagement précédent s'arrête « image de mise en place» étant un no-op silencieux. Cela affirme la résultat: après le déploiement, l'étiquette est résolue à u...
Une reconstruction du même engagement n'a rien déployé et a fait état d'un succès
L'image est étiquetée avec le commit SHA, donc la reconstruction du même commit produit une référence d'image identique. L'image de set kubectl change alors rie...
Arrêter un mauvais utilisateur de service JWT de désactiver le softphone de chaque membre
Minting d'un membre JWT appelé configFactory.require(inst), qui insiste le SERVICE-UTILISATEUR JWT du serveur téléphonique est présent et bien formé. Cette accr...
Relié le message de défaillance de la connexion reportée dans la redirection
Le rappel RingCentral met la phrase du serveur dans la chaîne de requête. l'onglet du membre peut dire ce qui a réellement mal tourné - presque toujours un non-...
Révoquer l'inscription RingCentral d'un membre réaffecté, ne vous contentez pas de l'oublier
Hors embarquement supprimé la ligne des titres de souhait du membre lorsqu'ils ont été déplacés hors d'un téléphone. serveur. C'était tout le travail alors que ...
Laissez un membre de RingCentral s'inscrire au lieu de frapper un JWT
L'onglet de paramétrage d'un membre a demandé un justificatif d'identité JWT, et c'était le seul la manière de les relier. Un RingCentral JWT appartient à un ut...
Prévenez un RingCentral JWT à partir des identifiants de l'application collé dans sa boîte
Une gisure a collé les identifiants de l'application RingCentral JSON et le "clientId": ..., "clientSecret": ..., "serveur": ... blob la console du développeur ...
Laisse un déploiement finir ce que la vieille gousse faisait
Les déploiements ont remplacé la seule gousse de chaque service par rien pour saisir les demandes en vol. Trois réglages, appliqués sur l'ensemble de la flotte:...
Encode JustCall Valeurs de la requête exactement une fois
Le client a construit sa requête avec build(true), qui déclare déjà les valeurs encodées - donc rien n'a été échappé du tout. Le caractère qui compte est "-" : ...
Appliquer la configuration FreePBX après chaque écriture, ou l'extension n'atteint jamais Asterisk
L'extension 8777 (Aiden Perry, kamocrm) a été créée à partir de KamoCRM le 2026-09-02. Et jamais sonner. La mutation FreePBX GraphL 'addExtension' a écrit «util...
Un compte sans numéro à partir de est un 409, pas un 500
L'envoi d'un texte a lancé IllegalStateException lorsque ni le membre ni le cas avait un nombre sortant, que le printemps a transformé en une 500 avec une pile ...
Une source de vérité pour les paramètres de la plate-forme
"Considature d'essai" a rapporté "pas de compte maître id" sur un serveur téléphonique dont Le provisionnement vient de réussir, quelques minutes plus tôt, en u...
Un serveur téléphonique à moitié provisionné ne pourrait jamais être fini, et a dit la mauvaise chose
Le serveur KamoPBX d'un organisme a signalé des rapports Erreur: instance de fournisseur de téléphone non trouvée: depuis qu'elle a été créée. L'exemple n'a...
Les appels externes sortants manquaient de l'historique des appels FreePBX
Sur un appel externe sortant, FreePBX réécrit le CDR «src» vers le tronc ID de l'appelant sortant - l'org lui-même DID - donc un appel ext 8080 placé à Le 94937...
Un enregistrement dont les octets sont passés répond 410, pas 500
Même répartition que le proxy d'imagerie et le téléchargement des documents. Un enregistrement d'appel qui est pas de stockage en permanence n'est pas là, et un...
Le balayage de l'extension n'efface plus chaque affectation de membre
MemberVoipConfigController.put écrit une affectation à deux endroits - MEMBRE-VOIP-CONFIG et - et Puis apuré la seconde lors de sa passe suivante. Non le fourni...
Donner au codeur des conversations en texte un briseur de cravate afin que les horodatages liés ne soient pas supprimés
lastActivityAt, donc une conversation partageant ce horodatage exact a été exclu de la perdus de la liste de manière permanente, pas seulement mal ordonnée. Réc...
Porter la messagerie vocale nav count sur VIEW-VOICEMAIL
- remis à un membre authentifié en tenant une rangée MemberVoipConfig le nombre de messages non-luils à l'échelle de l'instance avec Pas de contrôle des droits,...
Arrêt RingCentral OAuth signifiant les locataires en marque blanche
Deux défauts, les deux sur le même saut, et chacun cache l'autre. RingCentral rejette toutes les valeurs de portée que cette application peut demander "invalid...
Taille de la gousse au-dessus de son propre plafond de tas de la JVM [skip ci
L'image démarre la JVM avec -XX:MaxRAMPercentage-70-XX:-TemellementPreTouch, donc le Le tas seul peut prendre 70 % de la limite du conteneur et prétouche mainti...
Travailler avec la messagerie vocale prend un droit, pas seulement en gérait PHI
VoipVoicemailController a demandé VISUER-CALL-LOGS sur exactement un chemin et une lecture, et uniquement lorsque l'organisation gère PHI. Énumérer les messages...
Isoler l'ingeste d'appel par rangée et le lien seulement après qu'il s'est engagé
Deux défauts avec une racine: ingest a participé à la transaction du balayage. Un lancer à l'intérieur d'une transaction participant marque l'opération SHARED ...
Sautez des extensions à délété douce dans le balayage du cycle d'appel
SyncExtensions s'éteint en retournant le statut à UNKNOWN plutôt qu'enlele la ligne, donc la liste accumule toutes les extensions qu'une instance a jamais eues....
Fermer un trou de la boîte à messagerie et six autres défauts d'équipe
L'examen contradictoire du 6df0008 a confirmé 24 conclusions. Les plus importantes: CRITIQUES - Tout membre peut supprimer le courrier d'un collègue. Les équip...
Scanner les référentiels partagés de l'AMF
MfaEnrollmentService est un service en kamo-shared-library, donc le caractère joker «ComponentScan("com.kamo") dans cette application le permet ou non Le servic...
Harden the kubectl téléchargement contre la sortie floconneuse [skip ci
dl.k8s.io sur la sortie du coureur chute par intermittence au moyen de transferts: curl: (56) OpenSSL SSL-read: déchiffrement raté ou mauvais enregistrement m...
Arrêtez d'épingler le secret wildcard-kamocrm-com expiré
wildcard-kamocrm-com était un secret multi-SAN hérité par ce qui est un orphelin. lorsque son certificat a été redémarré dans un secret par habitant. Rien ne l'...
Garde/interne/voix avec InternalAuthFilter comme documenté - il a 401'd sur la session auth
VoipInternalSyncController a toujours documenté InternalAuthFilter comme sa garde, mais /interne/voip n'a jamais été dans les PREFIXES PROTECTED-PREFIXES ni exc...
Comparaison secrète interne-auth à temps constant (oracle de timing)
Remplacer String.equals par MessageDigest.isEqual donc latence de réponse ne peut pas f) L'octet-pare-byte-byte partagé X-Internal-Auth. Agrandir le balayage à ...
Retour 200 allFalse pour les capacités d'orgage non config
GET /api/voip/capabilities a jeté ProviderNotConfiguredException (422) lorsqu'un org n'avait pas de fournisseur de téléphone, enregistrant une erreur de console...
Exclure /api/voip/sms/modlates du filtre de session OTK
Les critères d'extrémité du modèle de SMS doc-07 sont des appels internes sans session gardés par InternalAuthFilter (X-Internal-Auth), mais OTKValidationFilter...
Mettre en œuvre POST /api/bulktext/sender des SMS transactionnels internes
BulkTextSmsClient de SecurityService (récupération de mots de passe et compte SMS) a toujours postulé à /api/bulktext/send, Mais le contrôleur n'a jamais été co...
Clé d'enregistrement MinIO clé d'objet comme flux d'imagerie
Omettre l'extension lorsque FILE-EXT est nul/empte pour que le nom de l'objet corresponde RecordingImagingService et ImagingController. Java string concat avec ...
Résoudre l'extension de l'historique des appels à partir de member-voip-config, pas de téléphone-extension
était NULL pour certaines extensions même lorsque member-voip-config a correctement cartographié le membre à son extension. Utilisation member-voip-config (même...
Resa de secours de l'imagerie de surface lorsque le fournisseur n'a pas d'antécédents d'
KamoPBXProvider.getCallL'histoire retourne maintenant nul au lieu de lancer - donc la réponse 501 n'est plus court-circuite la reconnexion de l'imagerie. L'appe...
Résoudre l'extension du membre avant la recherche du fournisseur de VM/CDR
CallController passait memberId où FreePBX (et d'autres types de PBX les fournisseurs) s'attendent à un numéro d'extension et une liste de messages vocaux renvo...
Capture newExtNumber en finale pour la capture de lambda dans MemberVoipConfigContrôleur
newExtNumber est réglable sous condition à l'intérieur du si (isVoipEnabled...) bloc, ce qui le rend effectivement final. Le bloc de synchronisation de l'équipe...
Ne pas effacer l'affectation des membres en synchronisation des fournisseurs qui manquent de métadonnées
- Évoquètement inconditionnellement écrasée PhoneExtension.assignedMemberId avec quel que soit le fournisseur retourné. FreePBX (et tout fournisseur qui ne suit...
Utiliser extensionId en tant qu'ID externe, pas Relay node id
FreePBX retourne le même id de relais (-Xh0-W5zaW9uOg- et "extension:") pour chaque extension parce que le champ d'identification n'est pas peuplé. L'utilisatio...
Réécrire toutes les requêtes/mutations GQL contre l'introspection du schéma en direct
Vérification de chaque nom et type de champ par rapport au schéma FreePBX 17. Ensemble complet de corrections: Demandes d'information : - fetchonAllExtensions:...
Nom de champ Correct graphiqueQL pour aller chercherAsteriskDétails
FreePBX API retourne "Avez-vous envie de fetchAsteriskDetails?" vérifier la requête et son accesseur de chemin de données en conséquence.
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.