Dodaj dzwonki Sci-Fi i Buzzer do katalogu
Zrzuca dwa nowe aktywa dzwonków w /public/sounds/ringtones/ i Rejestruje je w RINGTONE_CATALOG, aby pojawić się w dzwonkach Subtab i może być ustawiony jako dom...
Skonfiguruj STUN, aby przeglądarka ICE mogła zakończyć dwukierunkowo
Połączenia dwustronnej przeglądarki do przeglądarki w przeglądarce połączone w warstwie SIP, ale nie miały Dźwięki albo kierunek. Poczta głosowa (jednokierunkow...
Dump WebRTC negocjacyjny stan negocjacyjny na temat ustanowionego
Aby zdiagnozować "połączenie połączeń, ale bez dźwięku między stronami", zaloguj się Stan połączenia rówieśniczych (krót / dtls / signaling) wraz z nadawcą i Śc...
Dźwięk na żywo, który przetrwa przerwy obciążenie, wyśrodkowany spinner, wychodzący pierścień
Trzy skoordynowane poprawki dla ścieżki audio w nazwie: 1. AbortError na remoteAudio.play() (widoczny w konsoli produkcyjnej jako "Życie play() zostało prze...
Hangup rozrywa wszystkie sesje na żywo, a nie tylko podstawowe
Obudowa samocalna pozostawiła sesję wycieknącą: wybierając własne rozszerzenie Tworzy sesję wychodzącą, a następnie Asterisk zapętla oddzwonienie jako sekundę S...
Natychmiastowe połączenie sprzężenia zwrotnego na wychodzącym pokrętło
Ten sam problem, jaki miał przycisk odpowiedzi przychodzące: kliknięcie Call wystartował z SIP INVITE w obie strony (1-3 sekundy), ale przycisk zachował swoje b...
Połączenie animacji + audio, które faktycznie odtwarza + odblokowanie dzwonka
Trzy skoordynowane poprawki dla ścieżki dyżurów wewnętrznych: 1. Wizualne opinie podczas przyjmowania. Clicking Answer pozostawił oba przyciski Responsywne,...
Montaż SoftphoneProvider powyżej ToolDock, dzięki czemu okna narzędziowe mogą go odczytać
Otwarcie wyskakującego okienka Softphone rozbiło stronę z "Ta strona nie mogła się załadować" Ponieważ okna narzędziowe mocują się wewnątrz ToolDock, który mies...
Użyj rekwizytu wielkości siatki, aby panele AV wypełniały rząd
MUI v7's Grid jest oparty na flexbox, więc gridColumn sx używałem Był no-op - przedmioty renderowane na naturalnej szerokości i pozostawione puste Przestrzeń po...
Migracja nieświeżych identyfikatorów dzwonka do niewykonania obciążenia
Jeśli zapisane preferencje AV użytkownika odnoszą się do dzwonka, który już nie Istnieje w katalogu (np. „klasyczny” z czasów, gdy katalog był przycięte), zakła...
Trzykolumnowy układ audio, drop zapisany-baner, szerokość wypełnienia
Układa subtab audio jako mikrofon | Głośnik | Zaawansowane w całym świecie Pełny rząd na ekranach lg+ (md nadal łączy je dwu-up, xs stacks). Natcharzeńc i w tym...
Podziel ustawienia AV na podtapiaczy Audio/Video/Ringtones
Reorganizuje zakładkę Audio/Video na trzy wewnętrzne podtaby i układy Każdy pojedynek w poziomie, więc ustawienia pasują do widoku bez Ściana pionowego przewija...
Dodaj kartę audio / Video Settings i przewód do softphone
Dodaje sklep z preferencjami AV na urządzenie (lokalneStorage, specyficzne dla maszyny, Nie roamingu) plus w pełni funkcyjna zakładka na /settings/member/-id> K...
Zawsze na sesję SIP z auto-popup + dzwonek na połączeniach przychodzących
Miękkifon używany do rejestracji tylko wtedy, gdy okno narzędzia wyskakującego było otwarte - Zamknie go i połączenia przychodzące zostały po cichu pominięte. P...
Cyfry Dialpad rejestrują się teraz na urządzeniach dotykowych
Przyciski wybierania o nazwie e.preventDefault() zarówno w onTouchStart, jak i Na TouchEnd. To powstrzymuje przeglądarkę przed wystrzeleniem syntetycznego zdarz...
Seed pbx.kluster.kamormm.com jako domena statyczna
Bezkomfonowy telefon w przeglądarce potrzebuje SIP-over-WSS, aby wylądować na nazwach hosta z prawdziwym TLS cert. Dodaj nazwę hosta FreePBX / WS do STATIC_DOMA...
Przechowywaj przeglądarkę SIP WSS na stronie internal.kamocrm.com (prawdziwa certyfikacja)
Przeglądarki odmówiły połączenia WebSocket z . Z bliskim kodem 1006, ponieważ Traefik serwował swój samopodpisany domyślny certyfikat Dla tej nazwy hosta (nie p...
Dynamiczny tytuł i opis z org config.json
Inline JS w title.html czerpie tematyczną ścieżkę CDN z nazwy hosta, Pozyski config.json i nadaje tytuł "Meets - "siteNameShort" I opis meta tagi z pola opisu o...
Użyj krótkiej nazwy i opisu w głowicy HTML
Zamień logikę tytułową opartą na org-API na stronie config.jsonNameShort więc the Tytuł jest zgodny z tym samym wzorem, co inne witryny: "Register - .siteNameSh...
Użyj krótkiej nazwy i opisu w głowicy HTML
DynamicMetaLoader teraz ustawia dokument.title to "Login - ?siteNameShort" I zapisuje opis orgu w tagu meta description. Static layout.tsx fallback zaktualizowa...
Użyj krótkiej nazwy i opisu w głowicy HTML
DynamicMetaLoader teraz ustawia dokument.title do witrynyNameShort (był siteName) I zapisuje opis orgu w tagu meta opisu. Static layout.tsx fallback zaktualizow...
Dołącz opis org w config.json
Dodaj pole opisu do kompilacjiConfigJson() i pass org.getDescription() Od writeConfigFiles() więc tematyczny config.json nosi org. Opis frontendów do użycia w m...
Osobna obecność na całym świecie dla marketingu live chat vs członków
Widget widżet publiczny utrzymuje org zastępczy jako requestorId; Obecność sesji medialnych dla tych rzędów. Wewnętrzne i inne bilety używają członka Obecność (...
Pipe sip.js init kroki do dziennika serwera za pośrednictwem beacon
Awaria init SDK po stronie przeglądarki jest obecnie niewidoczna - popup Mówi "Phone SDK nie udało się zainicjować" bez wiadomości, WebSocket nigdy Otwiera się ...
Okresowy bidet o obecności STOMP dla wsparcia publicznego
Odśwież Redis TTL do obecności sesji publicznej, aby agenci zobaczyli dokładny stan online.
Globe wykorzystuje obecność sesji medialnych dla odwiedzających marketing
Poproś o publiczne sesje czatuj GUID w obecności migawki; potraktuj online, jeśli Członek sesji lub wniosku o udzielenie pomocy jest połączony. Uchwyt migawki k...
Śledź czat wsparcia publicznego przez sesję GUID w Redis
Odwiedzający marketing korzystają /ws/public-chat-native bez memberId; bilety nadal Odniesienie do członka podmiotu notariusza org jako requestor. Przyrost PRES...
Lista biletów kolorowych na całym świecie przez połączenie czatu requestor
Powierzchni SIP.js init/transport do konsoli przeglądarki
Puste komunikaty "Phone SDK nie udało się zainicjować" ukrywały rzeczywychowanie Niepowodzenie z powodu sy.js. Włącz logBuiltinEnabled, aby biblioteka napisała ...
Nie wycieraj zadania członka na syndykację dostawców, którzy nie mają metadanych
- bezwarunkowo przeredagowane PhoneExtension.assignedMemId z tym, co zwrócił dostawca. FreePBX (i każdy dostawca, który nie śledzi, który członek Kamo jest właś...
Dodaj do koszykaCompany to market popup i firmaName do leadów
Dodaj/edit popup (LeadMarketManager): - Radio sterowanie "Nazwa firmy łamie" / "Tylko indywidualne" (wymagane) - Domyślnie, aby nie zostać ustawione na nowym ry...
Dodaj include_company i kolumny nazwy firmy
LeadCompanyColumnRunner (Zamówienie 40) idempotentnie dodaje: - lead_markets.include_company (BOOLEAN, znieważalny) — śledzi, czy a toa Rynek wymaga nazwy fir...
Ekspozycje obejmują Konferenię w odpowiedziach na wloty i rynkowi
Zarówno - jak i . Teraz umiedź flagę w tym firmie, aby Frontend wiedział, czy pokazać Nazwa firmy na temat tworzenia leadów.
Dodać dodaj Company do LeadMarket i firmęName do Lead
- Podmiot LeadMarket otrzymuje w tym_kompanie (Boolean, nieważne) - Podmiot wiodący otrzymuje nazwę firmy (String, max 50, znieważalny) - LeadMarketDTO, CreateL...
Pokaż nazwę dostawcy w trybie widoku + własne rozszerzenie w edycji rozwijanej
Dwa błędy na ;) 1. Widok zrzucił surowy UUID — "Instancja 32f520b0-347a-..." — ponieważ Lista instancji została załadowana tylko wewnątrz uchwytuVoipEdit()....
Serialize ExtensionDto.assignedMemId jako ciąg znaków
Przepełnia zakres bezpiecznych bezpieczników (np. 1168485658174423046 wycieczki w obie strony 1168485658174423000 po uderzeniu numeru JSON przeglądarki). Fronte...
Dodaj rejestrowanie diagnostyczne do /names endpoint
Log orgId, liczenie członków i rozdzielczość na nazwę na osobę do diagnozy Dlaczego nazwa przydzielonego członka nie jest prawidłowo rozwiązywane.
Uczyń WebRTC config survive' pod pod ponowne uruchomienie
Poprzednie podejście (http_custom.conf z [ogólnym] nadpisem) nie W rzeczywistości zaczyna działać, ponieważ parser INI Asterisk nie honoruje wielu [ogólne] sekc...
Włącz wbudowany serwer HTTP w gwiazdach i na :8089 dla WebRTC /ws
chan_pjsip ?protocol?ws? przejażdżki transportem na szczycie res_http_websocket, Co z kolei wymaga, aby uruchomiony był wbudowany serwer HTTP Asterisk. Nat wt. ...
Pokaż ścieżkę typu sprzedaży w Add Lead subtitle
Zgaś typ sprzedaży na rynku i podtyp do linii "Dodany do" Forma odzwierciedla etykiety używane w wyskakującym okienku Edit Market w - Oddychać, jak "Dodanie do ...
Priorytetuj prawdziwe imię/ostatnią nazwę nad nazwą użytkownikaAlias dla wyświetlania
Nazwa użytkownikaAlias jest funkcjonalnie uchwytem logowania (często równym nazwie naturalnej), Nie jest to nazwa wyświetlacza. Prawdziwe nazwiska czytelne dla ...
Przenieś Tworzenie lead akcji w nagłówek, upuść lepki pręt
Zamień przycisk Usuwanie prawej Cancelu podstawową akcją Create Lead I całkowicie usuń dolny lepki pasek akcji. Dodaj z powrotem IconButton Na lewo od Leads > N...
Scope Dodaj przewijanie i stopka do obszaru treści
Forma była używana minHeight: 100vh wewnątrz rodzica, który już jest calc (100vh - 56px), wymuszając wyłącznika przewijania nawet wtedy, gdy zawartość pasuje. P...
Unified PhoneSdk obsługujący RingCentral + sip.js (FreePBX)
Hak softfonowy używany do bezwarunkowego połączenia ringcentral-web-phone, Który rzucił dowolny kształt poświadczeń FreePBX, ponieważ ten SDK jest zakodowany na...
Poświadczenia SIP WSS-aware dla softfonów przeglądarki
Punkt końcowy /api/voip/sip/credentials zwraca teraz poprawki po stronie przeglądarki SIP stack może faktycznie używać: transportu WSS, domeny publicznej i adre...
Dodaj transport WSS WebRTC do softphones browser
Asterisk's chan_pjsip teraz wiąże zwykły transport WebSocket pod numerem 0.0.0.0:8089 Traefik kończy TLS na ? (port 443) Więc kamo-wewneci może zarejestrować so...
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.