Smettere di dire alle persone di aggiungere il provider di testo che hanno già aggiunto
Segnalato da una configurazione reale, e il rapporto aveva ragione. Un'organizzazione in esecuzione FreePBX ha aggiunto Telnyx come fornitore di testo, ha apert...
Dica a un membro che manca il numero, non che il loro PBX non può scrivere
Segnalato da una configurazione reale: un'organizzazione ha aggiunto Telnyx come fornitore di testo, ha aperto la finestra SMS e è stato detto "Questo server te...
Un CHECK congelato ha bloccato ogni fornitore Telnyx e JustCall dall'essere creato
Aggiungere un fornitore di testo Telnyx 500'd. Il registro lo ha chiamato chiaramente e lo schermo ha detto nulla di utile: costrizione E' il momento giusto. L...
Chiedi se QUESTO NUMERO può scrivere, non se l'org può
SmsGateway è cresciuta una disponibilità di numero-consapevole() quando il routing si è spostato sul numero, e poi nulla lo ha chiamato con un numero — entrambi...
Il messaggio "non si può testo" ha fermato un passo breve della correzione
FreePBX e Teams hanno detto a un membro di aggiungere un provider SMS sotto Phone → Providers. Questo è stato un consiglio completo fino a quando i numeri hanno...
Solo il vettore che possiede un URL webhook può verificare i suoi messaggi
Il percorso di ingresso del telefono-server aggiunto nel commit precedente verificato contro qualsiasi fornitore ha portato il numero. Questa è una superficie d...
Un server telefonico Telnyx potrebbe inviare testi e non ricevere mai uno
Telnyx è sia un server telefonico che un vettore, e un profilo di messaggistica Telnyx ha esattamente un URL webhook. Quindi un'organizzazione che ha aggiunto T...
Popolare un nuovo numero prima di insistere, non dopo
salvare() costruito un OrgPhoneNumber vuoto, ha persistito, e poi riempito in E164 e PHONE CANON — entrambi NON NULL. Funziona oggi perché il generatore UUID no...
Un contratto di invio su tutti e cinque i fornitori e smettere di rilasciare i testi in entrata
Lo strato di astrazione SMS aveva cinque fornitori in disaccordo su come fallire e un percorso in entrata che ha scartato i veri messaggi dei clienti in silenzi...
Prove the deploy by digest, not by tag
Il commit precedente si ferma `set image` essendo un no-op silenzioso. Questo afferma che risultato: dopo il rollout, il tag viene risolto per digerire al Regis...
Una ricostruzione dello stesso commit non ha dispiegato nulla e ha riferito il successo
L'immagine è contrassegnata con il commit SHA, così la ricostruzione dello stesso commit produce un riferimento di immagine identico. `kubectl set immagine` qui...
Smettere un cattivo utente di servizio JWT da disabilitare il softphone di ogni membro
Estrazione da un membro proprio JWT chiamato configFactory.require (inst), che insiste SERVICE-USER JWT del server del telefono è presente e ben formato. Quelle...
Riportare il messaggio di guasto del segnale nel reindirizzamento
Il callback RingCentral mette la frase del server nella stringa di query in modo da la scheda del membro può dire ciò che effettivamente è andato storto — quasi...
Revocare un membro riassegnato RingCentral sign-in, non dimenticare solo
Offboarding cancellato la riga delle credenziali del membro quando sono stati spostati da un telefono server. Questo era l'intero lavoro, mentre le credenziali ...
Lasciare un membro RingCentral firmare invece di coniare un JWT
La scheda delle impostazioni telefoniche di un membro ha chiesto una credenziali JWT, e questo era l'unico modo di collegarli. Un RingCentral JWT appartiene a u...
Dica a RingCentral JWT dalle credenziali dell'app incollate nella sua casella
Un org ha incollato le credenziali dell'app RingCentral JSON — il {"clientId": ..., "clientSecret": ..., "server": ...} blob la console di sviluppo mostra sulla...
Lasci un rollout finire quello che il vecchio pod stava facendo
Deploys ha sostituito l'unico pod di ogni servizio con nulla per catturare le richieste in volo. Tre impostazioni, applicate attraverso la flotta: - preStop do...
Encode JustCall query valori esattamente una volta
Il cliente ha costruito la sua query con build(true), che dichiara i valori già encoded — quindi nulla è sfuggito affatto. Il personaggio che conta è "+": ogni ...
Applicare FreePBX config dopo ogni scrittura, o l'estensione non raggiunge mai Asterisk
Estensione 8777 (Aiden Perry, kamocrm) è stato creato da KamoCRM il 2026-09-02 e mai cantato. La mutazione di FreePBX GraphQL `addExtension` aveva scritto `user...
Un account senza numero a testo da è un 409, non un 500
Starting a text threw IllegalStateException when neither the member nor the instance had an outbound number, which Spring turned into a 500 with a stack trace. ...
Una fonte di verità per le impostazioni della piattaforma
"Test Connection" ha riferito "nessun account master id" su un server di telefonia il cui l'approvvigionamento era appena riuscito, minuti prima, utilizzando lo...
Un server telefonico a metà programmato non potrebbe mai essere finito, e ha detto la cosa sbagliata
Il server KamoPBX di un org ha segnalato Errore: non trovato l'istanza del fornitore di telefono: E' il momento giusto. da quando è stato creato. L'istanza no...
Outbound external calls were missing from FreePBX call history
On an outbound external call FreePBX rewrites the CDR `src` to the trunk's outbound caller ID — the org's own DID — so a call ext 8080 placed to 9493747110 is r...
Una registrazione i cui byte sono andati risponde 410, non 500
Stessa divisione del proxy di imaging e il download dei documenti. Una registrazione chiamata che è non in deposito non è permanentemente lì, e un giocatore ha ...
L'estensione spazza non cancella più ogni assegnazione dei membri
MemberVoipConfigController.put scrive un incarico a due posti - MEMBER VOIP CONFIG e... Poi ha liberato il secondo sul suo prossimo passaggio. No. provider memo...
Date al coder delle conversazioni di testo un tiebreaker così i timestamp legati non sono caduti
ultimaActivityAt, quindi una condivisione di conversazione che timestamp esatto è stato escluso dal perso dalla lista in modo permanente, non solo male ordinato...
Portare la voce numero nav su VIEW VOICEMAIL
Ho dato a qualsiasi membro autenticato. in possesso di una riga MemberVoipConfig il conteggio di posta non-leggeta a livello di istanza nessun controllo dei dir...
Stop RingCentral OAuth firma inquilini in white label
Due difetti, entrambi sullo stesso piano, e ognuno nasconde l'altro. RingCentral rifiuta ogni valore di portata che questa applicazione può chiedere — "invalid...
Tagliare il coperchio sopra il suo proprio JVM soffitto di salto [skip ci]
L'immagine inizia il JVM con -XX:MaxRAMPercentage=70 -XX:+ SemprePreTouch, così il heap da solo può prendere il 70% del limite del contenitore e pre-touch manti...
Lavorare con la segreteria prende una destra, non solo gestire PHI
VoipVoicemailController richiesto VIEW CALL LOGS su esattamente un percorso — riproduzione, e solo quando l'organizzazione gestisce PHI. Elencando voicemails co...
Isolare la chiamata ingest per riga e link solo dopo che commette
Due difetti con una radice: ingest hanno partecipato alla transazione della spazzata. Un tiro all'interno di una transazione partecipante segna la transazione ...
Skip soft-deleted estensioni nella spazzata call-history
syncExtensions soft-deletes sfogliando lo stato a UNKNOWN piuttosto che rimuovere la riga, quindi l'elenco accumula ogni estensione che un'istanza abbia mai avu...
Chiudere un foro di posta elettronica e altri sei difetti di squadra
Recensione avversaria di 6df0008 ha confermato 24 risultati. I più importanti: CRITICAL — qualsiasi membro potrebbe eliminare la posta di un collega. Squadre v...
Scansione dei repository MFA condivisi
MfaEnrollmentService è un @Service in kamo-shared-library, quindi la wildcard @ComponentScan("com.kamo") in questa applicazione lo costruisce se questo servizio...
Harden il kubectl download contro l'egresso sfacciato [skip ci]
dl.k8s.io sopra l'ingresso del corridore cade in modo intermittente metà del trasferimento: curl: (56) OpenSSL SSL read: decryption fail or bad record mac che f...
Smettere di pinning il segreto wildcard-kamocrm-com scaduto
wildcard-kamocrm-com era un segreto multi-SAN legacy che cert-manager orfano quando il suo certificato è stato rinominato in un segreto per-host. Nulla lo ha ri...
Guardia /internal/voip con InternalAuthFilter come documentato — esso 401'd su sessione auth
VoipInternalSyncController ha sempre documentato InternalAuthFilter come sua guardia, ma /internal/voip non è mai stato in PROTECTED PREFIXES né escluso da OTK ...
Confronto costante dell'età interna (oracolo di timing)
Sostituire String.equals con MessageDigest.isEqual risposta quindi la latenza non può fallire il X-Internal-Auth condiviso byte-byte. La spazzata su tutta la fl...
Ritorno 200 tutti Falso per funzionalità di org non configurate
GET /api/voip/capabilities ha lanciato ProviderNotConfiguredException (422) quando un org non aveva alcun fornitore di telefonia, registrando un errore di conso...
Escludere /api/voip/sms/templates dal filtro sessione OTK
Gli endpoint del modello doc-07 SMS sono chiamate interne senza sessione sorvegliate da InternalAuthFilter (X-Internal-Auth), ma OTKValida Filtra ancora correva...
Implementazione POST /api/bulktext/send interno SMS transazionale
SicurezzaServizio BulkTextSmsClient (password-recupero + Impostazioni account SMS) E' sempre stato arrestato. ma il controller non è mai stato costruito, così o...
Creare la registrazione chiave dell'oggetto MinIO come il flusso di immagini
Omettere l'estensione quando FILE EXT è null/empty quindi il nome dell'oggetto corrisponde RecordingImagingService e ImagingController. Java string concat con n...
Risolvere l'estensione della cronologia delle chiamate da member voip config, non phone extension
E' stato NULL per delle estensioni anche quando... member voip config correttamente mappato il membro alla loro estensione. Utilizzo member voip config (stessa ...
Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
Cattura nuovoExtNumber come finale per la cattura di agnello in MemberVoipConfigController
nuovoExtNumber è condizionatamente riassegnato all'interno del se (isVoipEnabled && ...) blocco, che lo rende non effettivamente finale. Il blocco di sincronizz...
Non pulire l'assegnazione dei membri sulla sincronizzazione da fornitori che mancano di metadati
E' il momento giusto. incondizionatamente PhoneExtension.assignedMemberId con qualsiasi cosa il fornitore restituito. FreePBX (e qualsiasi fornitore che non rin...
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Riscrivi tutte le query/mutazioni GQL contro l'introspezione dello schema live
Verificato ogni nome del campo e digitare contro lo schema effettivo FreePBX 17. Set completo di correzioni: Query: - fetchAllExtensions: rimuovere il campo "v...
Corretto il nome del campo di GraphQL per fetchAsteriskDettagli
FreePBX API restituisce "Vuoi dire fetchAsteriskDetails?" — rinominare la salute controllare query e il suo percorso di dati accesso di conseguenza.
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.