チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· SecurityService
Config.json に org の説明を含める
BuildConfigJson() に説明フィールドを追加し、org.getDescription() を渡します。 writeConfigFiles() から、 それらは config.json が org's を継承します。 HTMLメタタグで使用するフロントエンドの記述.
· kamo-internal
リクエストチャット接続によるカラーチケットリスト
· MediaService
チケットリストエージェントのアドオンプレゼンスリクエスト検索
· kamo-internal
Add リードにポップアップと会社名を販売するためにincludeCompanyを追加します
市場追加/編集ポップアップ(LeadMarketManager): - 無線制御「会社名を追跡」/「個人専用」(必須) - デフォルトは新しい市場で設定解除します。編集時に事前に入力します - create/update リクエストでincludeCompanyとして検証および送信 リードデータグリッド(LeadManager): - 会社列は、会社名を示しています。 - 会社=true を含むが、名前が空白であるときに「指定なし」を表示 - 会社=false/null を含む市場のための "-" を表示 - クイック検索(AG Grid QuickFilter)は、自動的に会社の値を含みます リードフォーム(CreateLeadClient): - 条件付きレンダリング会社 市場が含まれているとき名前のテキスト フィールドCompany=true - フィールドはオプションです(最大50文字)、リードApiを介してペイロードを提出する有線 リードアピ:会社 名前 createLead と updateLead リクエストでマッピング
· InitializerService
Include company と company name カラムを追加
LeadCompanyColumnRunner (オーダー40) は、 -鉛 markets.include company(BOOLEAN、nullable) — かどうかを追跡 市場は鉛の会社名を要求します - lead.company name(VARCHAR(50)、nullable) — 会社の名称を格納 市場がincludeCompany=trueを持っている場合のリードレベル
· SecurityService
Expose には、intake-config および Market-config 応答の企業が含まれます
メニュー メニュー 現在、includeCompany フラグが含まれているので、フロントエンドは表示するかどうかを知っています リード作成の会社名フィールド.
· kamo-shared-library
リードにadMarketとCompanyNameを追加
- LeadMarket の実体はinclude company (ブーリアン、nullable) を得ます - リードエンティティティは、Company nameを取得します(文字列、最大50、nullable) - LeadMarketDTO, CreateLeadMarketRequest, UpdateLeadMarketRequestキャリー会社 -鉛DTOは会社名およびexposesにMarketInfoDTOの中の会社を運びます メニュー 運送会社名 - LeadMarketServiceワイヤーは作成/更新の会社を含んでいます - LeadService ワイヤーs companyName の作成/更新およびmortgageのタイプ転換を渡る保存
· kamo-internal
Add リード字幕のセールスタイプパスを表示する
市場の販売タイプとサブタイプを「追加」ラインに追加するので、 フォームは、編集市場ポップアップで使用されるラベルをミラーリングします メニュー レンダリングとして サブタイプが「{Market} (サービス > 住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅用住宅 親のみの設定時に「{Market} (Service) へ追加」する。 販売タイプが設定されていない場合は「{Market}」に追加します.
· kamo-internal
ユニファイド PhoneSdk 対応 RingCentral + sip.js (FreePBX)
ソフトフォンのホックは無条件にリング セントラル網電話をインスタンス化するのに使用しました、 どの FreePBX のクレデンシャル シェイプで、SDK がハード コード化されているため RingCentralのWSSプロビジョニングフォーマット。 - 新しいPhoneSdkインターフェイスはprovider-agnostic表面を定義します(開始、停止、 メニュー プラス a PhoneSdkSession と **************************** - RingCentralPhoneSdk はリング セントラル web フォンを包み、既存のものを予約します RCの動作。 - SipJsPhoneSdk は sip.js (UserAgent + Registerer + Inviter/Invitation) をラップします。 交渉された仲間の接続によって遠隔可聴周波、サポートを付けて下さい ホールド/アンホールドのためのin-dialog re-INVITE、および転送のための参照。 - createPhoneSdk は creds.provider (RING CENTRAL からアダプターを選びます、 FREE PBX、KAMO PBX。 - useSoftphone は、統一された SDK を駆動し、実際の SDK エラーを表面化します。 一般的な 'Phone SDK の代わりに、registerError のテキストが失敗しました 文字列を初期化します。 - sip.js@0.21.2の依存関係を追加します.
· VOIPService
ブラウザ用WSS-aware SIP認証
/api/voip/sip/credentials エンドポイントは、ブラウザー側で認証情報を返すようになりました。 SIP スタックは、WSS トランスポート、パブリックドメイン、wsServers URL を実際に使用できます。 - SipController は、メンバーのMemberVoipConfig を解決し、 VOIP を検証します。 有効で拡張機能が割り当てられ、メンバーの特定にルーティング インスタンス(org のプライマリではありません)。 会員が退会した際の409sを返す 空の資格情報を作成するのではなく、設定されていません。 - SipInfoは、SIP-over-WebSocketのwsServersを獲得しました。 SipCredentials 結果の利益 プロバイダーは、フロントエンドが正しいSDKアダプタ(RingCentral WebPhone)を選ぶようにします FreePBX/KamoPBX 用の SIP.js と対 - FreePBXProvider は構成された baseUrl から SIP ドメインを導き出します wsServers のデフォルトは ws://<host>:8089/ws です。 パーインスタンスオーバーライド (sipDomain, sipWsServer, sipWssPort, sipTransport) は configJson から読み込みます。 SIP が異なるホスト名で終了したり、 ポート 443 の /ws で TLS を終了します。 - PhoneProviderFactory は、新しいオプションの configJson フィールドとフィードをパースします。 FreePBXProvider で SipTransportConfig レコードに格納します。 - RingCentralProviderはprovider=RING CENTRALで認証情報をタグ付けします.
· KlusterServices
ブラウザソフトフォン用のWSS WebRTCトランスポートを追加
Asterisk の chan pjsip は 0.0.0.0:8089 で普通の WebSocket の輸送を結合しました ************************でTLSを終了 (ポート 443) そのため、kamo-internalは、既存のワイルドカードの上にブラウザのソフトフォンを登録することができます pod の内部の certs を管理しない cert。 - configmap-k1m1.yaml:startup.sh は pjsip.transports custom.conf と書きます。 WS トランスポートと pjsip.endpoint custom post.conf と webrtc=yes オーバーライド 既存のエクステンション (8080, 2523) は、WS の輸送にピン留めされています。 -service.yaml:フリーブックスサービスでポート8089(sip-ws)を公開するので、新しい IngressRouteはそれをターゲットにすることができます。 Podはホストネットワーク上にあるため、このマップは k1m1 ホストのポート 8089. - ingressroute-ws.yaml: HostRegexp + PathPrefix(/ws)を優先する100ルート WebSocket は freepbx:8089 *without* kamo-middlewares チェーンにアップグレードします — そのチェーンは、SIP-over-WSフレームを破損させる圧縮を含みます.
· SecurityService
/names エンドポイントを state に関係なく、すべてのメンバーに対して id→name を返すようにします
実行中のエンドポイントフィルタは、アクティブなチームメンバーのみ、ただし拡張機能 割り当ては、ベースメンバーまたは非アクティブメンバーを参照することができます。 /name を使う 活動状態以上のカバレッジが重要であるID→nameの決断.
· kamo-internal
/leads/newでリードフォームを追加
Refactor Add 専用ルートにページ内のマルチタブペインからリードを追加します。 /leads/new で直接リンクできます。 現在の市場は渡されます ?marketId= および前選択として。 リード市場、ベンダー、製品 必要はあります;接触は最初の/last/preferredの少なくとも1つを要求します 電子メールまたは電話の1つ。 モーゲージサブタイプフィールドと任意の市場 isDisplayOnIntake をフラグする custom-form フィールドをレンダーします。 お問い合わせ 成功すると、 /leads/view/{id} にリダイレクトします.
· SecurityService
メニュー エンドポイント
SalesType、subType、および customForms を MarketId で返す Add リードフォームは、サブタイプフィールドとインテークカスタムフォームをレンダリングできます 最初にリードを作成することなく.
· kamo-internal
必要に応じて、インテークトグル、自動ロックの表示を追加
· kamo-internal
Add isDisplayOnIntake に FormField TypeScript タイプ
· kamo-shared-library
Coerce isDisplayOnIntake=true が customFormService で必須=true の場合
· kamo-shared-library
Add isDisplayOnIntake 作成/更新リクエスト DTO
· kamo-shared-library
露出はFormFieldDTOのDisplayOnIntakeです
· kamo-shared-library
IS DISPLAY ON INTAKE カラムを FormField 組織に追加
· kamo-internal
割り当てられたメンバー名を電話設定画面にリンクする
· kamo-internal
パーインスタンス拡張タブにメンバー名表示とアンサインボタンを追加
· kamo-internal
会員名を表示し、Unassign アクションを org レベルの拡張子 タブに追加
· kamo-internal
ワイヤー VOIP 構成を割り当ての執行のprovider+extension セレクターに
· kamo-internal
型付きDTOを追加し、APIメソッドを割り当て、メンバーシップPermissionsTab VOIPタイプを更新
· VOIPService
Add 管理者のunassignのためのVoipExtensionsControllerへのDELETEの割り当てエンドポイント
· VOIPService
MemberVoipConfigControllerを VOIP config に追加して、拡張子割り当てを追加
· kamo-shared-library
Add findByAssignedMemberId クエリメソッドをPhoneExtensionRepositoryに追加する
· kamo-internal
URL クエリ パラメータの持続的なメールボックス
メールボックスを切り替えると、URL(?mailboxType、?mailboxId、?mailbox)が更新されます。 ブラウザをリフレッシュすると、同じメールボックスが復元されます。 メッセージブラウザの読み込み window.location.search のレイジー使用状態の初期化に復元 最初のレンダーの前に ActiveMailbox を実行し、URL の更新を経由して押します あらゆるメールボックス変更イベントにルータ.replace. FolderSidebarは読みます getAccessibleMailboxes の後に同じ URL パラメータが解決するため、ドロップダウン 復元された選択を反映します.
· kamo-marketing
Add Flowroute to integrations hub page
