Member voip config からのコール履歴拡張を解決する、phone extension ではなく
******************** は NULL で NULL Member voip config は、メンバーを拡張子に正しくマッピングしました。 使用方法 member voip config (CallFeaturesController と同じソース) は、 会員が VOIP が設定されているとき、拡張...
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...
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...
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...
録音再生、ボイスメールアーカイブ、ボイスメール、履歴濃縮
- 新しい録音 一括検索、マスター+チャネル毎のトラックのレンジストリームオーディオ、メディア再生ツールウィンドウのメタデータを備えたコントローラー - CallController.getCallHistory / getVoicemailsは、新しいRecordingLookupServiceを介して撮像録画で各行...
MemberVoipConfigController で Lambda キャプチャの最終として newExtNumber をキャプチャ
newExtNumber は、(isVoipEnabled&&&...) が内部で条件的に再割り当てされます。 ブロックは、有効に終了しない。 TeamMember 同期ブロックが読み込まれる これは、コンパイラが拒否する Optional.ifPresent() の lambda の内部から行います。 ラムダの前に最...
コール機能の追加 API — プロバイダーの抽象化による転送+自動answerの呼び出し
- CallFeaturesDtoとSetCallFeaturesRequest POJOsを追加する - ProviderCapabilities に callForward/autoAnswer フラグを追加 - デフォルトのgetCallFeatures/setCallFeaturesをPhoneProvider...
メタデータが不足しているプロバイダからの同期にメンバーの割り当てを拭かないでください
メニュー 不条件上書き PhoneExtension.assignedMemberId は、プロバイダが返した内容です。 フリーPBX (カモ会員が拡張を所有しているか追跡しないプロバイダー) listExtensions() で、resh=true 呼び出しや 同期は、すべてのメンバーの割り当てを静かにクリアします。...
ブラウザ用WSS-aware SIP認証
/api/voip/sip/credentials エンドポイントは、ブラウザー側で認証情報を返すようになりました。 SIP スタックは、WSS トランスポート、パブリックドメイン、wsServers URL を実際に使用できます。 - SipController は、メンバーのMemberVoipConfig を解...
Persist connection test result to isConnected field
- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...
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...
ライブスキーマのイントロスペクションに対するすべてのGQLクエリ/マイテーションを書き換える
すべてのフィールド名を検証し、実際のFreePBX 17スキーマに対してタイプします。 修正の完全なセット: クエリ: - fetchAllExtensions: 拡張子から存在しない 'voicemail' フィールドを削除 - fetchAllUsers → AllCoreUsers { coreUser { エ...
FetchAsteriskDetails への正しい GraphQL フィールド名
FreePBX API は "fetchAsteriskDetails とはどういう意味ですか?" を返します。 クエリとそのデータパスアクセサをそれに応じてチェックします.
GraphQL クライアントに XHR/Accept ヘッダと String レスポンスの解析を追加
FreePBXTokenCache と同じパターン: X-Requested-With + 受け付け: application/json FreePBXのHTMLリダイレクトレスポンスを抑制し、3つのコールサイトをすべて切り替える (queryOnce, restGet, restPost) から responseEn...
Add トークンエンドポイントのAccept+XHRヘッダーと未加工文字列応答解析
FreePBX はクラスター DNS 経由で呼び出されたときにテキスト/html を返しました。 ホストヘッダは、設定された PBX HOSTNAME と一致しなかった。 追加する 受け入れ: application/json と X-Requested-With: XMLHttpRequest は FreePBX を...
FreePBX API の OAuth2 スコープ文字列を修正
FreePBX スコープはトップレベルの識別子です: 'gql' (すべての GraphQL) および 'rest' (すべてのREST)。 'gql:read' はモジュールの GQL を意味します。 'read' という名前で、存在しない、無効な scope 400 エラーを引き起こします.
ドロップ stray VOIPService spec md から repo
プロジェクト慣行ごとに(.md ファイルがサービスで出荷されない).
リポジトリのスキャンにcom.kamo.z.shared.commerceを含める
最新のkamo-shared-library伝搬 メニュー (donotmodify.dao.services) はコンストラクタの依存性を持つ メニュー メニュー ザ・オブ・ザ・ サービスは VOIPService のコンポーネントのスキャンによってロードされますが、そのリポジトリは スコープから、スタートアップでU...
パーインスタンスリソースコントローラ + org集計 + 内部同期
インスタンスリソースCRUD(拡張/ユーザー/デバイス/ボイスメール): - VoipExtensionsController(@***********************************************************************************************...
マルチインスタンスプロバイダレファクタ+フルFreePBX +フロールートSMS
コアモデルの変更: 1 つの org → 多くの VoipProviderInstances (was: 1 つの org). プロバイダーの API 呼び出しは、インスタンススコープ化されます。 PhoneProviderインターフェイス: - エクステンション/ユーザー/デバイスCRUD +ボイスメールオーディオ...
Kamo-shared-library update (remove OrganizationType, add isTopLevel) のリビルド
Kamo-shared-library update (remove OrganizationType, add isTopLevel) のリビルド
Kamo-shared-library update (CREATE CHILD ORG right + application-to フラグ) のリビルド
新しい RoleRightType.CREATE CHILD ORG (id 131)、childOrgSecurityModel、13argサービス過負荷、2つの13argサービスオーバーロード、およびAppliedModelEnforcementService作成者タイプのヘルパー上の3つの適用toフラグをプルしま...
Kamo-shared-library update(appConfig upsert-only Fix)のリビルド
呼び出し元のペイロードからサービスタイプが不在であるappConfigの行を削除しなくなり、部分的なペイロードを受信したときにサイレントデータの損失を防ぐことができます.
Kamo-shared-library update のリビルド(有効なfeature Resolutionr)
新規のAppliedModelEnforcementServiceメソッド(computeAvailabilitiesMap、isAppEffectivelyEnabled、getEffectivelyEnabledAppTypes、comuteEffectiveFeatures)をピックアップするので、 orgの機能...
Bump kamo-shared-library に 1.5.0 応用モデルの執行のため
このサービスは、kamo-shared-library 1.5.0 に提供されているため、新しい AppliedModelEnforcementService、childOrgSecurityModelAppConfig のエンティティティティ、ServiceAvailability を選択します。 組織名、組織名 i...
Kamo-shared-library update(ランタイムフォースルール+DeFAULTフォールバック(MemberRightsAppliedService)
テンプレートフォースルールと、既存のカスケードの上にDEFAULT-templateフォールバックを適用し、更新された****************************をピックアップして再構築をトリガーします.
Kamo-shared-library update(マスターモデル、デフォルトロールテンプレート、強制的なソルバー)のリビルド
このサービスは、組織.branchTypeID、Organization.masterModelID、**************** を含む新しいkamo-shared-libraryリビジョンをプルするので、再構築をトリガーします 実体, RoleRightTemplateSetting タイプ enum、Defa...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Handle RC webhook validation token; make body optional for verification requests
Add MMS attachment support — multipart send, base64 storage, image display
- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...