콜 기능 추가 API - 공급자 요약을 통해 유선 전화 + 자동 answer
- CallFeaturesDto 및 SetCallFeaturesRequest POJOs 추가 - ProviderCapabilities에 callForward/autoAnswer 플래그 추가 - add default getCallFeatures/setCallFeatures to Phone...
MemberCallFeatures entity 및 repository for call forward and auto-answer preferences 추가
처음 커밋 - FreePBX 레코딩 로더 (GO)
시계 *********** 완성된 WAV 기록, 그룹 멀티 다리 Asterisk UNIQUEID로, 각 배치를 업로드 VOIP RECORDING UPLOADS-scoped를 사용하여 APIService /api/voip/recordings/upload API 키. 파일은 플랫폼이 저장을...
VOIP RECORDING UPLOADS 범위 + 기록 파이프라인 카운터/tunables
- APIManager: 새로운 VOIP RECORDING UPLOADS 범위 옵션 (kamo-asterisk-support 사용) FreePBX는 음성 메일을 업로드하고 APIService를 통해 녹음을 호출합니다. - VoipSmsTab : 4 개의 카운터가있는 새로운 "Record...
시스템 구성 기록 통계 + 레코딩 처리 tunables
- GET *********** 4 카운터를 반환 kamo-internal Settings → Platform → 구성 → VoIP / SMS에 노출 탭 (vmPending, callPending, vmError, callError). - PUT /api/security/system-c...
RecordingProcessorJob + NATS 숏커트
- 새로운 석영 작업 RecordingProcessorJob ticks 매 분, 독립적 인 파견 VM 및 호출 일괄 변환 서비스 *************** 사용 *********** voipCallBatchSize} 모자로. - 새로운 RecordingReceivedConsumer는 ...
기록 ingest + FFmpeg 처리 파이프라인
- 새로운 *********** endpoint 단계 multipart 업로드 최소 버킷으로 APIService에 의해 전달 **************** unprocessedRecording staging 행을 생성합니다. retries에 Idempotent 사용 (phoneServe...
VoipRecordingUploadController for kamo-asterisk-support 파일 업로드
POST /api/voip/recordings/upload는 kamo-asterisk-support에서 multipart 몸을 받아들입니다 FreePBX 호스트에서 실행. X-Api-Key는 새로운 VOIP RECORDING UPLOADS를 제공합니다. 범위 ( *********** 유...
UnprocessedRecording staging entity, ImgDat 트랙 트랙, 레코딩 이미징 서비스
- 수정 ImageAssocType ID 충돌: VM RECORDING=8, CALL RECORDING=9 (모든 것 4에 MY DOCS를 복제합니다. - 추가 *********** 그래서 마스터 녹음을 수행 할 수 있습니다 per-channel Opus/WebM는 기존의 썸네일 개념과...
처음 커밋 - FreePBX 레코딩 로더 (GO)
시계 *********** 완성된 WAV 기록, 그룹 멀티 다리 Asterisk UNIQUEID로, 각 배치를 업로드 VOIP RECORDING UPLOADS-scoped를 사용하여 APIService /api/voip/recordings/upload API 키. 파일은 플랫폼이 저장을...
완전한 기능의 SoftphoneContacts로 모의 접촉 탭을 대체하십시오
새로운 SoftphoneContacts 구성 요소는 softphone 접촉을 와이어 useContacts()를 통해 실제 접촉 API로 탭합니다. 4개의 hardcoded 모를 대체하십시오 모든 연락처 책에서 라이브 데이터와 접촉. 특징: - 드롭다운 선별기가있는 책 및 그룹 필터 알...
By-department 응답에 있는 PhoneWork 연장을 포함하십시오; 회원 PUT에 PhoneWorkExtension를 받아들이십시오
던지기 voiceActivityDetection to 우회 누락 TS DOM 유형
voiceActivityDetection는 유효한 WebRTC MediaTrackConstraints 재산입니다 그러나 TypeScript의 DOM lib를 사용하여 빌드 시간에 유형 오류를 발생시킵니다.
철사 VAD + 푸시-투-토크; unimplementable 조정을 제거합니다
- vadEnabled 이제는 buildAudioConstraints에서 voiceActivityDetection로 전달 브라우저는 호출을 위해 mic를 열 때 toggle를 존중합니다. - PushToTalk 자동 mutes mic at call accept and installs k...
debug+fix(softphone): <audio> 엘리먼트 상태, 바이트가 도착할 때 자동 리커버를 검사하고, 침묵을 유지
최근 통화에서 WebRTC 통계는 inboundBytes=39680 / 수신기를 보여준다. unmuted / ICE 쌍 성공 — 다리는 오디오를 전달했다 브라우저 — 아직 연산자는 침묵을보고. 즉, 수신기 트랙은 괜찮지만 <audio> 요소 자체는 재생되지 않습니다 : 일시적으로, mu...
검색 필터와 스크롤 벨소리 목록
벨소리 카탈로그 패널은 오른쪽 높이와 스크롤 일치 목록 과잉이 될 때 수직으로, 그래서 회원은 더 많은 톤으로 탐색 할 수 있습니다 추가. 라벨 또는 파일명 필터에 의해 검색 필드를 추가, 와 명확한 단추 및 빈 상태 메시지.
덤프 WebRTC 상태 다시 설치 후 5s + 모든 국가 변경 추적
설치 시간 덤프는 항상 muted=true와 수신기를 보여줍니다 DTLS 핸디크와 SRTP 키링은 아직 완료되지 않았습니다. "call 진단 연결하지만 오디오 없음, 우리는 꾸준한 상태에서 데이터가 필요합니다. — 5 s in we 미디어가 실제로 선택한 ICE 쌍을 흐르는지 알 수 있...
카탈로그에 7 더 벨소리 추가
Battleship Horn, 악마 Horn, 랜드 라인, 1985 링, 사무실 전화 추가, /public/sounds/ringtones/와 철사의 밑에 반지 오래된 전화 및 Olé RINGTONE CATALOG로 나타낸다. Default / Sci-Fi / 초인종 / 벨소리 서브탭의 ...
Sci-Fi 및 Buzzer 벨소리 추가
/public/sounds/ringtones/의 밑에 2개의 새로운 벨소리 자산 및 RINGTONE CATALOG에 등록하여 Ringtones에 표시됩니다. subtab는 과태 들어오는 softphone 음색으로 놓일 수 있습니다.
STUN을 구성하므로 브라우저 ICE는 양방향으로 완료할 수 있습니다
SIP 레이어에 연결된 2자 브라우저 - 투 - 브라우져 통화는 없지만 오디오 중 방향. Voicemail (편도 Asterisk → 브라우저) 일 Asterisk의 비대칭 RTP가 브라우저를 배울 수 있기 때문에 inbound 패킷의 주소. 2 파티 브리징은 양측을 필요로한다. RTP...
Dump WebRTC negotiation state on Established
To diagnose "call connects but no audio between parties", log the peer-connection state (ice / dtls / signaling) along with sender and receiver tracks (kind / e...
Load-interrupts, centered spinner, outbound ringback을 살아가는 라이브 오디오
In-call 오디오 경로에 대한 세 개의 좌표 고정 : 1. RemoteAudio.play()에 AbortError (제작 콘솔에서 볼 수 있음) "Play() 요청은 새로운 로드 요청에 의해 중단되었습니다."실제로: 그것은 스피커에서 0 오디오를 의미한다. 각 세션은 reassig...
Hangup tears down ALL live sessions, not just the primary
Self-call edge case left a session leaked: dialing your own extension creates an outbound session, then Asterisk loops the call back as a second inbound session...
Instant connecting feedback on outbound dial
Same problem the inbound Answer button had: clicking Call kicked off the SIP INVITE round-trip (1-3 seconds) but the button kept its idle "Call" appearance the ...
연결 애니메이션 + 오디오는 실제로 + 벨소리 잠금 해제
Inbound-call 경로에 대한 세 개의 좌표 고정 : 1. 수락하는 동안 시각적인 의견. 답을 클릭 버튼 모두 왼쪽 응답하지만 반응하지 않는 — SDP 협상은 1-3 s를 걸립니다 호출이 시작되기 전에, UI는 아무 표시도 하지 않았다 이름 * SoftphoneState에 isA...
ToolDock 위 Mount SoftphoneProvider 그래서 도구 창을 읽을 수 있습니다
Softphone 팝업은 "이 페이지는로드 할 수 없습니다"로 페이지를 추락했습니다. ToolProviders에 살고있는 ToolDock 내부의 도구 창 마운트 - AuthenticatedToolWrapper의 SIBLING. SoftphoneProvider는 배열되었습니다. Authe...
Grid size prop을 사용하여 AV 패널이 행을 채웁니다
MUI v7의 그리드는 flexbox 기반이므로 GridColumn sx를 사용했습니다. no-op – 자연의 폭에 렌더링 된 아이템과 빈 왼쪽 오른쪽에 공간. 지원된 크기 prop로 전환 (size={{ xs: 12, md: 6, lg: 4 }})는 각 패널을 실제로 주장합니다 12 ...
Migrate stale ringtone ID는 부하에 기본적으로
사용자의 저장된 AV 환경 설정이 더 이상 벨소리를 참조하는 경우 카탈로그 (예 : 'classic' 카탈로그 이전 trimmed), 벨소리 탭은 선택하지 않고 렌더링 softphone는 효과적으로 벨소리가 없었다. getAVSettings 지금 유효한 RINGTONE CATALOG에 ...
Three-column 오디오 레이아웃, 드롭 저장-바너, 충전 폭
마이크로 오디오 subtab을 덧붙였다 | 스피커 | 고급 lg+ 화면의 전체 행 (그들은 여전히 두 번, xs 스택을 쌍). 더 보기 고급 카드 스위치는 좁은 열 안쪽에 수직 더미에. "자동 설정 설정 설정" footer — the 행동은 implicit이고 카드는 다만 공간을 가지...
오디오/비디오/Ringtones subtabs로 분할 AV 설정
Audio/Video 탭을 3개의 내부 subtabs로 바꿔 놓습니다. 각각의 수평으로 설정은 뷰 포트 내에서 적합 우리가 전에 가지고 있던 수직 scrolling의 벽. 또한 벨소리 카탈로그를 실제 시점에 수정 /sounds/ringtone.mp3 자산 대신 phantom 경로 /s...
오디오 / 비디오 설정 탭 및 유선을 softphone으로 추가
Per-device AV 환경 설정 저장소 (localStorage, machine-specific, 로밍하지 않음) /settings/member/<id>에 완전히 기능이 있는 탭 플러스 구성 및 테스트 마이크, 스피커, 링거 및 카메라. 소프트 폰 도구 창, 벨소리 재생 및 SIP...
자동 팝업 + 벨소리와 함께 항상 SIP 세션
팝업 도구 창이 열릴 때만 등록하는 softphone 그것을 닫고 inbound 호출은 조용히 놓쳤다. 세션을 SoftphoneProvider AuthenticatedToolWrapper에 장착 된 SIP REGISTER는 운영자가 서명하고 어떤 인바운드 INVITE 연산자의 주의를 가...
Dialpad 손가락 이제 터치 장치에 등록
OnTouchStart에서 e.preventDefault()라는 다이얼패드 버튼과 관련 기사 그것은 합성 클릭 이벤트를 제출하는 브라우저를 중지 그런 다음 터치를 따르십시오. 그런 다음 onClick={handleDialpadClick}가 켜지지 않았습니다. 정제, 키를 태핑하지 않은 ...
Seed pbx.k1.kluster.kamocrm.com 정적 도메인으로
브라우저 소프트 폰은 SIP-over-WSS가 실제 호스트 이름에 착륙해야합니다. TLS 인증 FreePBX 관리자 / WS hostname을 STATIC DOMAINS에 추가하십시오. auto-cert seeder 규정 a per-host Let's Encrypt cert for it...
내부에 브라우저 SIP WSS를 호스팅합니다.kamocrm.com (실제 cert)
브라우저는 웹소켓 연결을 거부 *********** Traefik이 자체 서명 된 기본 cert를 제공했기 때문에 가까운 코드 1006 hostname에 대해 ( Let's Encrypt cert가 포함되지 않음) 다른 kamocrm.com 엔드 포인트). 컬은 우리가 시험하기 때문에 ...
Org config.json의 동적 제목 및 설명
Title.html의 인라인 JS는 hostname의 CDN 경로를 파생합니다. fetches config.json, "Meets - {siteNameShort}"에 제목을 설정합니다. 그리고 org 설명 필드에서 설명 메타 태그.
HTML 머리에 org 짧은 이름과 설명을 사용하십시오
Org-API 기반 제목 논리를 config.json siteNameShort로 대체하십시오. 제목은 다른 사이트와 동일한 패턴을 따릅니다 : "Register - {siteNameShort}". config.json에서 설명 메타 태그를 추가합니다. 사용하지 않는 useThemeCon...
HTML 머리에 org 짧은 이름과 설명을 사용하십시오
DynamicMetaLoader는 이제 "Login - {siteNameShort}"에 document.title을 설정합니다. and writes the org description into the 메타 설명 태그. Static layout.tsx fallback 업데이트; 하드 코딩...
HTML 머리에 org 짧은 이름과 설명을 사용하십시오
DynamicMetaLoader는 이제 document.title을 siteNameShort (was siteName)에 설정합니다. and writes the org description into the 메타 설명 태그. Static layout.tsx fallback은 일반적인 값으...
Config.json의 org 설명 포함
BuildConfigJson()에 대한 설명 필드를 추가하고 org.getDescription()를 전달합니다. writeConfigFiles()에서 config.json 은 org 를 나타낸다. HTML 메타 태그에서 사용하려면 frontends에 대한 설명.
마케팅 라이브 채팅 대 회원을위한 별도의 지구 존재
한국어 채팅 위젯 티켓은 requestorId로 org placeholder를 유지; 만 사용 미디어 세션은 그 행에 대한 존재. 내부 및 기타 티켓 이용 회원 존재 (보존으로 세션) 그래서 kamo-internal requestors 쇼 그들의 정통 채팅 WS가 올 때 온라인.
Beacon을 통해 서버 로그에 Pipe sip.js init 단계
브라우저 측 SDK init 실패는 현재 보이지 않습니다 — popup just “Phone SDK가 초기화에 실패했습니다” 메시지가없는, WebSocket 결코 오픈, 우리는 DevTools 출력이 없습니다. /api/softphone-debug 비콘 추가 브라우저 POST가 무엇인지...
정기적인 STOMP 존재 심박수
Redis TTL for public session 존재 그래서 에이전트는 정확한 온라인 상태를 참조하십시오.
Globe는 마케팅 방문자를 위해 미디어 세션을 사용합니다
Public-chat session GUIDs inpresent snapshot; 온라인 치료 세션 또는 요청자 회원이 연결됩니다. 손잡이 스냅샷 봉투 및 sessionGuid deltas 에 /topic/presence.
Redis에서 세션 GUID에 의해 공개 지원 채팅 추적
마케팅 방문자 사용 /ws/public-chat-native 없이 memberId; 티켓 여전히 org placeholder 회원을 requestor로 참조하십시오. 사업소개 PUBLIC public STOMP connect/disconnect, 방송 sessionGuid on /top...