Enrich upload manifests with Asterisk CDR caller-ID data
Adds optional MySQL CDR enrichment so the softphone history tab can display who called (or was called). When ASTERISK_CDR_DSN is configured as a Forgejo repo se...
Parse CDR caller-ID fields from upload manifest
When kamo-asterisk-support includes a cdr{} section in the upload manifest (populated when ASTERISK_CDR_DSN is configured), ConversionService extracts callerIdN...
Add CDR caller-ID columns to recordings table (order 40)
Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...
Add CDR caller-ID fields to Recording entity
Adds callerIdNum, callerIdName, callDirection, and callResult columns to the Recording entity so kamo-asterisk-support can store Asterisk CDR metadata alongside...
Add COMP payment method option to subscription order wizard
COMP is a valid backend PaymentMethod enum value for complimentary platform-admin grants, but was missing from the frontend type and wizard UI — only INVOICE an...
Show platform kamocrm domain on custom domain entry
Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.
계정이없는 org 소유자를위한 빌링 버튼을 설정
Org 소유자가 계획 청구 탭을 열고 청구 계정 없음 존재, 대신 부트 스트랩 프롬프트를 표시 "contact your org 소유자" 메시지. 버튼 호출 POST /api/security/account/ bootstrap-billing (idempotent) 다음 성공에 계정을 다시로...
Orgs에 대한 부트 스트랩 청구 엔드 포인트 추가
****************************************************************************************************************************************************************...
Wave 3 변환, 낙하 수정 및 자동 번역 CI
- 파 3을 가로지르는 t()의 모든 하드코딩 영어 문자열을 대체합니다. 구성 요소 (채팅, 클럽 하우스, 지원, 메모, 파이프라인, 리드, 나브 등) - 메시지/en.json (+19 키)로 3개의 파편 - en.json (welcome, tagline, footer 텍스트, acco...
Locale 근원으로 member.language를 가진 철사 next-intl
URL없이 kamo-internal에서 다음 기반 국제화 추가 로컬 접두사. Active locale는 kamo-locale 쿠키에서 읽습니다. Authenticated member's `language` preference (을 통해 설정 지역 설정 카드 *********** 인프라...
Fall back to imaging recordings for call history + voicemails
FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
하위 파일 생성에 대한 자동 감독 KamoCRM 좌석; 홍보-비행기 endpoint
EntitlementService는 SubscriptionMember (countMember)를 통해 계산합니다. member entitlements — 활성 licensee subs의 조합, 플러스 무료 기준. Redis 청취자는 SUBSCRIPTION을 얻습니다.<uid> 핸들러. ...
회원 언어 추가 + default currency 열
NULL 열을 회원 테이블에 추가하지 새로운 회원.language (VARCHAR DEFAULT 'ENGLISH') 및 회원.기본 통화 (VARCHAR(10) DEFAULT 'USD') 필드. 기존 행은 backfilled 기본적으로 NULL constraint는 가동불능시간 없이 만족...
언어 단계 추가, 국가 시간대 선택, 스크롤 + *** 수정
- 새로운 '내 언어' 단계는 마법사에 prepended, 나라를 미러링 단계의 배치. 플래그 타일로 22개의 마케팅 지원된 로컬 목록 네이티브 이름 + 영어 툴팁; navigator.languages의 사전 선택. - '내 국가' 단계는 이제 국가와 함께 시간대를 수집, 기본적으로 *...
언어 추가 + 지역 설정 카드에 기본 통화
회원 프로필의 지역 설정 카드는 이제 편집 가능한 언어 노출 (마케팅 사이트 미러링 22 지원) 및 기본 통화 (searchable Autocomplete) 시간대에. 모든 3 득점을 통해 PUT /api / 보안 / 회원 / {id}. 보기 모드는 네이티브 언어 이름을 보여줍니다 괄호...
Persist 회원 언어 / 시간대 / 통화 가입
/register 엔드포인트는 이제 언어, 시간대 및 기본 통화를 허용합니다. 현재 국가 필드에 따라. 등록서비스 세트 국가 새로운 사용자의 시간대와 모든 네 지역 필드를 적용 신선하게 만든 회원, 국가의 기본 통화를 파생 1개가 공급되지 않을 때의 1 차 환전 매핑 (USD로 돌아가기...
Map external customer address blocks into AccountAddress on pull
Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...
/account/new copy-from-lead UX, 전체 이름 필드, 듀얼 폰, 주소; 계정 수준 주소 관리
이메일: - /account/new: per-section "Copy from Lead" 버튼 + 헤더 "Copy all from Lead" 버튼 (When LeadId param) - 이름 단면도: 접두사, 첫번째, 중간, 마지막, suffix - 듀얼 폰 (인용 + 작업) 확장 및 ...
지원 배열된 이름/email/phoneNumbers + 주소 관리 엔드포인트
- AccountController는 POST/PUT에 배열된 name/email/phoneNumbers JSON을 허용합니다. - POST의 초기 주소는 배송 (사용시 BILLINGAsBillingToo 세트), 세트 기본 포인터를 만듭니다. - 추가 5 주소 엔드포인트: GET, P...
Production-grade History + 음성 메일 탭 미디어 플레이어 도구
역사 탭 (SoftphoneHistoryTab.tsx): - 패널의 스크롤 컨테이너 내부 IntersectionObserver를 통해 무한 스크롤 - 필터 칩: 모든 / 인바운드 / 아웃바운드 / Missed / 녹음 - 화상 진찰 측이 기록 행이 있을 때 기록적인 아이콘 - Per-r...
기록 공급자 조회 란을 위한 마이그레이션 주자 + VM 아카이브 열
RECORDINGS.provider instance id (UUID) 및 공급자 external id (VARCHAR(64)) 플러스 합성 idx recordings provider lookup 인덱스 소프트 폰 역사 탭의 대량 조회 엔드포인트에 의해 사용됩니다. 또한 PHONE VO...
Persist 공급자InstanceId + 공급자내부에 기록에
Threads asterisk-support의 X-Phone-Server-Id 및 X-Asterisk-Unique-Id(UnprocessedRecording에서 알레드)를 새로운 RecordingMetadata 필드에 입력하여 이미징 시스템의 호출/voicemail 행은 소스 제공 업체...
추가 *********** HTTP 범위 지원
Kamo-internal MediaPlayer 도구에 의해 사용되는 오디오 / 비디오 이미징 자산에 대한 일반적인 스트리밍 엔드 포인트. Reuses ImageService authorization (same as /download/...) but streams with Accept-R...
녹음 재생, voicemail 아카이브, paginated voicemail, 역사 enrichment
- 새로운 기록 미디어 플레이어 도구 창을 위한 마스터 + per-channel tracks 및 metadata를 위한 대량 조회, 범위 흐르는 오디오를 가진 관제사 - CallController.getCallHistory / getVoicemails는 새로운 RecordingLooku...
녹음, 음성 메일 아카이브, MinIO 범위 스트리밍에 키 표시
- 기록: 공급자InstanceId + 공급자ExternalId를 추가하십시오 공급자 통화history/voicemail는 화상 진찰 자산에 뒤를 젓습니다 - PhoneVoicemail: add isArchived + datesoftphone 목록에서 soft-hide에 대한 - Rol...
History 탭 추가 - 검색 및 필터로 paginated Audit timeline
- LeadHistoryPanel : debounced search, *********** filter, MUI table with pagination, color-coded event chip, 할당/account 필드에 대한 회원 이름 해상도 - leadApi: getLeadHist...
GET /{id}/history 및 /{id}/history/filters 엔드포인트 추가
Paginated, filterable, 일괄 처리 배우 로딩으로 검색 가능한 리드히스토리 엔드포인트 (N+1 없음). 필터 엔드포인트는 지정된 사용 필드, 모든 레지스트리 필드, 명백한 액추에이터 및 모든 이벤트 유형을 반환합니다. 모든 mutating endpoints 이제 호출 회...
Lead-history 감사 로그 추가 - 단체, 등록, 서비스, DTO, LeadService Hooks
- LeadHistory entity (UUID PK, Plain Long FKs — FK constraints는 납 탈수 / 변환을 허용하도록 함) - LeadHistoryEventType은 인간 읽기 쉬운 상표를 가진 enum - LeadHistoryFieldRegistry : ~5...
CurrencyType enum 을 추가, 기본 통화로 CountryType 을 업데이트, Account/Organization 에 통화 추가, LeadService 에 리드 계정 할당 추가
내 계정 페이지 제목의 동적 회원 유형 라벨
제목은 org-configured를 사용하여 "내 {Member|Team Member} 계정"을 읽습니다. 행동 라벨, 회원 유형이 로드되면 자동으로 전환.
문서 버튼을 DocManager 도구 모음으로 이동
버튼은 동작 prop을 통해 /doc/manager에서만 사용할 수 있었습니다. DocManager로 모든 논리 (state, handler, DOC TYPES, menu)를 이동 모든 임베디드 인스턴스에 나타납니다. 단순 페이지.tsx 그냥 DocManager를 사용하지 않는 작업 p...