チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· kamo-shared-library
MANAGE ENTERPRISE サブスクライブ
企業は交渉され、決してセルフサービスしません。 この右ゲートは、両方の半分の半分 その: コストを把握し、組織を置く。 カテゴリ。CONSOLEではなく操作 - それに到達する行動をゲート プラットフォームコンソールの1つの画面ではなく、テナントの請求。 プラットフォームでは、通常の理由でテナントよりもむしろスピンします:テナント 管理者は、組織のセキュリティモデルを編集できるようにします。 ここで RoleRightTypeは、顧客が交渉された層を自分自身に付与することを可能にします。 EnumType.STRING として永続したので、申請は安全です.
· SecurityService
処方を書く前にチャートをチェック
アレルギーテーブル、インタラクションチェックのクエリ、 「安全コンテキスト」は、その横に座っているすべてのエンドポイント、未読です。 記録するシステム アレルギーは、それを言及せずに処方をとにかく書いて、悪化しています アレルギーを決して記録しないものよりも、練習はそれが信じているので チェック中です。 3つは練習の自身のデータが正確に答えることができることを点検します:薬剤は一致します 記録されたアレルギー、患者はすでにそれで、または誰も尋ねていない アレルギー全般 最後の 1 は独自の警告です。空のリストは "いいえ 既知のアレルギー」または「誰も尋ねていない」と、それらのうちの1つだけが処方する安全です から。 正式に記録された「知られていないアレルギー」行は、として扱われません 物質。 要求された承認、拒否しない警告。 臨床医は、 意図的に薬を処方します。 患者は軽度から数年前に反応し、システム 周りの人達が1人乗りです。 何が起こらないかは処方 Signorance では、記者が警告を見たまで、書き込みは拒否されます 彼らが進んでいる理由を書いていると言います。 その理由は、WARNでログオンする 会員、薬物および患者は、後ほどのレビューはそれが何であるかであるためです。 409 ではなく 400: 何も変形しません。 それは有効な処方である 記録されたものと競合し、同じリクエストは理由を一度成功させる お問い合わせ 警告は体内で旅行します - 唯一の「無安全」と言った拒否 すでに知っていたコンピュータのチャートを経由して誰かが狩猟を送ってください。 一致は強さおよび注入口の言葉を低下させます。 「アモキシシリン500mg」と「アモキシシリン」 同じ薬なので、異なる強度はアレルギーを隠すことができません。 "タブレット" 「経口」と「解決策」は、すべての薬物の名前の半分に表示され、それらにマッチする すべてのアレルギーに対するすべての処方をフラグします。, 作る最速の方法です。 人々は警告を読むことを止めます。 間違いなく薬物薬物薬物薬物依存症の相互作用チェックはありません。 ライセンスデータベースが必要 (ファースト・データバンク、メディ・スパン)このプラットフォームにはないし、家を成長させる 近似は、ファイルが含まれている可能性がある最も危険なことです。 インタラクションチェックのように、信頼性が高く、ほとんどのインタラクションを見逃します。 ザ・オブ・ザ・ 授業は言葉の通りです。 15テスト.
· KlusterServices
フェーズ0インフラゲート
- TURN オーバー TLS に 5349 実際の証明書 (ターンカモクラムコン証明書). なし ターン: 443 回のみのエグレスファイアウォールの背後にある顧客はメディアパスがありません。 外部に検証:リスナーアップ、チェーン検証。 - 認証ホストポート割り当てテーブル、KamoPBXのk3m1予約。 - ルーターNATルールは、インレポを文書化しました。 行方不明 pbx.kamocrm.com レコード(42.181.8.87) - k3m1 が 47.181.8.87 を主張する修正されたコターンコメント; それは 42.181.8.87 です 47.x の .87 は、関連のない第三者に所属しています。 - 実際の52000-65535(READMEは49152と述べた)への修正されたリレー範囲。 - 外部からの検証フェーズ0.shの調査。 UDPの列は、INCONCLUSIVEを報告します パスではなく: nc -z -u は、ほぼすべての UDP ポートが開いて呼び出します。 SIP と RTP パスで偽りの緑色になります.
· kamo-shared-library
購入面にプラン機能のユニットを運ぶ
カタログは、"GB/user"、"users"、"すべての機能ごとにユニットを保存しています。 "contacts" - と計画フィードDTOがそれを落としたので、すべての表面がレンダリングする 測定された特徴はベア番号を印刷しました。 価格設定画面に「ストレージ(15)」が表示される 5 / 15 / 25 / 50の比較列と、読者は利用規約に到達しなければならない ユーザごとにgigabytesを意味し、プールされたことを学習するための折り目をはるかに下回ります。 featureCode からコンシューマーを呼び出すことは、ストールブロックのサイズを on に配置するものです。 マーケティングサイトは既にあるので、代わりに値で移動します.
· KlusterServices
KamoCRM-Main-Intro-2へのインバウンド挨拶をスワップする
古いものを上書きするのではなく、新しいファイルとしてアップロードして、 KAMO ATTENDANT INTRO とダイヤルプランのリロードへの一線変更です。 再アップロードが必要。 48kHzステレオソースを8kHzモノアスタリスクに変換 要求; 70s からの 59.9s、下。 検証済みライブ: CDR は BackGround のカスタム/kamocrm-main-intro-2 および Asterisk を示しています ファイルを u law の 478954 バイトにデコードし、 8000 B/s の 59.87s を正確に.
· kamo-internal
著者 フラット レート タスク ブック, 分
SW5プレースホルダーのペインを実際のオーサリング表面に置き換えます: 3 1つのタブのサブビュー — 書籍、カテゴリ、エントリ — 続いて SubView の切替器 MarketTaxShippingTab および MarketDiscountsTab は既に使用しています 税制クラス・料金表 カテゴリーとエントリの滞在 障害者 書籍が選ばれるまで、選択した本の名前とバージョンの滞在 画面が開きます。 labourMinutes は画面上の最も大きいフィールドを意図的に記述しています。 それはです 2つのジョブを行う1つの番号 — 行を価格付け、サイズを 訪問 — タスクブックが価格表を打つ理由は全体です。 なので、 価格の先に独自の列を取得する, 独自のフレームブロックの上部に ライブ "1h 30m" の読み込みと、上記の警告を持つエントリーエディタ それを欠落しているエントリをカウントテーブル. 定価のあるエントリの本 期間がないと、追加の手順で価格リストです。 ダウンストリームは、起こったことを知らせることができます。 また、2つの部分に表面がなしで働くことができません上陸します: メニュー プロキシは、このパスをカバーしません: 商取引/引用は、キャッチオールを持っていますが、それは /commerce/quotes にスコープ付けされるため、すべての呼び出しは 404'd になります。 ブラウザ 新しいルートは、PUTとGET/POST/DELETEをエクスポートします。 引用符は、引用符で更新を引用しているため、それはモデル化されていないPUTを持っています PATCH、タスクブックの更新はすべて @PutMapping です。 動詞は、すべての読み取り作業を行い、すべての回答405を保存します。 - app/lib/serviceTaskBookApi.ts, ミラーリングサービスタスクブックApi.java. すべての id は両方の方向の文字列です: defaultParts は Commerce offerings.uid 値、19 桁のユニーク rowid() 負けるロング JS の二重への低桁。 BigDecimal は数滞在 — ワイヤー mapper は、JS セーフなシリアライザーを長持ちさせ、 BigDecimal だけを残します。 2つの API の挙動はフォームを形づけ、コードの横に記録されます 作品紹介 MarketUid でリストするフィルタもアクティブ = TRUE です。 だから、あなたが持っていた本を決して見せることができなかったので、著者の表面 退職; このリストは、非濾過され、市場自体によって狭くなります。 と null フィールドは更新時に「単独で保存する」という意味なので、空白の数値入力は null として送信されるよりも省略されます。 ソースレベルのコントラクトテストでピン留め:クライアントのパスと動詞 ServiceTaskBookController のマッピングに対して、プロキシのエクスポートされた動詞 クライアントが使用しているものに対して、id は文字列に対してタイプします。 ザ・オブ・ザ・ inter-repo ハーフは SecurityService のチェックアウトなしでスキップします。 残り 常に動く.
· SecurityService
適切なタスクブックAPI
SW5 タスク 3、コントローラーの半分。 書籍、カテゴリ、タスク、オプション、 GET /{bookUid}/tasks/by-code/{code} - 見積りや作業注文を調べる 保存されたtaskCodeを保持するときに実行します。 単一のインデックスクエリです。 idx service task book code に対して、fetch-the-book-and-scan ではなく、 それがエンドポイントである理由である、数百のカタログ上のライン項目。 読み込みには VIEW SERVICE WORK が必要です。書き込みには MANAGE SERVICE WORK が必要です。 両方の土地 SW1 と両方とも POSController の 9 つのサービスエンドポイントを既にゲートします。 ザ・オブ・ザ・ 管理者はこの1つの意図的に似ていません CommerceMarketController、 どこでも @PreAuthorize を実行し、セッションのみを要求する 存在 - 同じ穴SW4は、注文とSW1で見つかったサービス作業。 ServiceTaskBookRightsGateTest は、すべてのハンドラをピンで固定します。 ミューテーションは、ビューの右側に定着します(MANAGEは、権利におけるビューの子供です ツリーは、書き込みの VIEW を受け入れることはサイレントダウングレードです)、ハンドラなし 顧客の VIEW OWN SERVICE WORK を代替として受け入れます。 テナントはセッションから来ており、サービスが最初に渡されます。 引数は、JPQL内部の述語になります。 ここに読み込みません 行とそれがあったかチェックします。 パス変数は文字列として到着し、parseUuid を通過するので、 malformed id スプリング500ではなく400です。 '見つかりませんでした' あなたのORGに見つかりませんでした、 これは、リポジトリが尋ねた唯一の質問であり、唯一の呼び出し者に答える お問い合わせ.
· kamo-shared-library
Org-scoped CRUDとコードの解像度でタスクブックサービス
SW5 タスク 3、ライブラリの半分。 ServiceTaskBookServiceは、書籍、カテゴリ、 org-scoped API の背後にあるタスクとオプション、および resolveTaskByCode - のオプション タスクコードを格納する際に、引用符または作業順序を調べます。 です。 idx service task book code に対する単一のインデックスクエリで、 ServiceTaskの直接ブックFKは、フェッチ・ザ・ブック・テン・スキャンではありません。 各エントリ ポイントは、その最初の引数として orgId をとり、それを渡す JPQL が述語を運ぶリポジトリ。 uid と checks の読み込みなし その後のオーガナイザー; その形状は6つの商取引のエンドポイントを作るものです SW1の修理前のクロステナント読み取り。 サービスタスクブックサービスShapeTest 両方の半分をピン - 署名ルールと「すべてのサービスワーク @ クエリ名 組織.id' タスク1が作成しなかった2つのリポジトリが必要:カテゴリと オプションは、自分のorgを運ぶので、そのorg-scopedは、 ブック(オプションの2つのホップ)。 Ids と timestamps は両方の方向の文字列として残します。 お問い合わせ 19桁 ブラウザのロングとJSON番号は2倍で、同じ SW4 で文字列になるために、強制的に QuoteConversionResult.orderUid をトラップします。 エンティティを渡すのではなく、トランザクション内のマップを読み込む コントローラーは、オープン・イン・ビューに限っていません。 削除はカスケードではなく拒否します: 依然として価格のエントリを保持する本 409に答えてもタスクを保持しているカテゴリ。 書籍を再編する isActive/effectiveUntil は、すべての販売された行が再解決できるままにします.
· kamo-internal
サービス市場向けの価格設定、税金、ティアの譲渡
サービス市場は、概要、ベンダー、契約の3つのタブを正確に取得しました。 お客さま・税金・送料・割引・料金はすべて門限 CommerceType === 'RETAIL' で、サービスオーガメントの3つの面を隠しました。 税務クラス(税務&配送のサブビュー)、価格表(サブビュー) 割引と価格設定)、およびアカウントティア(顧客)。 3つの動き 名前付けされた述語の述語の後ろ、サポート PRICING SURFACES、従って理由は住んでいます ルールの横に垂直を追加して1つの編集です。 お客様が割引で旅行する必要があります:priceList.customerTierポイント AccountTier は、層の表面の葉のない価格のリストを偽りない そのフィールドは埋められない。 商品と在庫は、RETAIL専用にとどまります。 タスクブックは製品ではありません カタログ、およびサービスのorgを空のプロダクト格子示すことは無くなります お問い合わせ サービス専用のタスクブックタブエントリ(下部ハイフンキー)を追加します。 市場タブは、カバレッジテストなしで警察されます)。 MarketTaskBookTabは 通知をレンダリングするプレースホルダ; 著者の表面は次および それを卸し売り取り替えて下さい.
· kamo-internal
クレームへの送金申請
「未適用のお金」は、受給者は、誰も主張に添付されていないことを送信したお金です、 キューが見えるだけ。 POST INSURANCE PAYMENTSは、 それに達する方法無しの操作。 ラインバイライン, なぜなら、それは、受給者の擁護者であるからです. ランプの合計から クレームは、どの手順が拒否されたのか、なぜその疑問に答えることができません 否定的なパターンのキューは答えるために存在し、魅力は議論しなければならない。 クレームは、唯一の識別子であるペイラーの引用符の数によって発見されます。 送金が行われる。 ピントして線を見てみると違い 支払った支払人や、類似したものに対する投稿の間。 行空白を残すと、ペイアがそれを解決していないことを意味し、ダイアログは次のように述べています。 クレームは、すべての行が図を運ぶまで開いています。 その文章がなければ 誰かがゼロをタイプし、まだ働いているクレームを閉じます。 Amounts は、すべての方法で文字列を保持します。 それらを "validate" に入れる バイナリの浮動小数点はお金に戻り、クレーム行の0.1 + 0.2は 患者さまの残高が支払われ、その理由は言うまでもありません.
· SecurityService
ペイラーの引用数でクレームを探す
送金の投稿は、決済するクレームを要求し、送金は不要 内部 ID — 送信された練習の数だけ。 この検索がなければ、適用 お金は、クレームの送金とハンティングから番号を読み取ることを意味します 支払いが間違ったものに達する方法です。 ペイラーが行ごとに認め、投稿するので、その行でクレームを返す 1行につきます。 404 そのような番号がない場合: "我々はその主張を持っていません number" は、誰かの投稿ニーズに答え、空の成功オブジェクトの読み込みです。 それについて何も主張として.
· kamo-internal
見ていることができない4つのこと
それぞれが作業エンドポイント、クライアント機能、人のための方法がなかった お問い合わせ 注文ループを閉じます。 open-loops のキューは、順序付けテストのため存在します 誰も追いつくことは診断が見逃される古典的な方法です。 お問い合わせ 誰もクリアできないキューは、開口部を止める人です。 理由は尋ねられます 「患者様と見直された結果」と「キャンセル」のため、 他の場所 " 同じ行を閉じ、最初の手段は、誰かが結果を見たことを意味します。 薬を止める。 所定のリストでのみ提供: 報告 薬は他の人の処方です。, この練習は記録することができますし、 停止できません。 理由は - 終了するコース、不寛容と 相互作用は、すべての処方を終了します。, そして、最後の2だけは、それがそのまま停止する必要があります 再び処方. アカウントIDが取得できるようになりました。 パネル ボタンの後ろではなく、すでにマウントされている患者にアクセスする方法をロードします。 誰がそれを尋ねる最初の質問だから、誰かを招待 誰がすでにスーパーシードに署名しています。 完成した輸出を収集します。 スタート、監視、キャンセル、 決してダウンロードされません。, 実行中のすべてのポイントです。. マニフェストは 最初にフェッチし、ファイルがそこから来る:バルク輸出は1 NDJSON / 1 リソースタイプ、そして id を推測すると、静かなレコードリリースが生成されます 不完全な。 何も呼ばれていない fetchWaitingRoom を削除しました。 PracticeDayPanelの導体 すでに読み込まれた日から同じセット — 2 ではなく 1 往復 それ以外はスケジュールに不一致できません。 コメントは言うので、 未使用のラッパーは、次の人の監査に欠落した画面として読みます.
· kamo-shared-library
フラットレートタスクブックを追加
エントリが labourMinutes を運ぶ価格のタスクカタログ — その番号 ラインの価格とサイズの両方が訪問します。 サービスLineItem.taskCode、SW3に上陸、 ServiceTask.code BY VALUE と FK ではなく、本がバージョンアップされているので、 販売されたラインは、エントリの後にも販売されたときに意味するものを意味し続ける必要があります 再価格または退職されます。 ServiceTaskCategoryは、それを再利用するのではなく、製品カテゴリをミラーリングします。 製品カテゴリは、製品カテゴリマッピングを通じて提供するために結合されるので、共有 1つのツリーに「排水クリア」と「キッチンタップ」を入れます。 効果的 ウィンドウは hr/timecard/MemberPayRate から持ち上げられます。 ServiceTaskは、オプションを通じてそれに到達するのではなく、直接その本を保持します カテゴリ: t.category.book は implicit 参加です。 内側の参加なので、すべての未分類のタスクは「タスク」から静かに消えます この本。 columnDefinition は、すべての FK とすべての要素集合カラムでピン留めされます。 マッピングから DDL をエクスポートすることで検証: 参加列がない場合 DEFAULT では、未設定の FK は、ランダムな親 ID を発明する代わりに null に値します。 読み込まれるすべてのリポジトリは、クエリ内の org-scoped で、その後にチェックされることはありません.
· InitializerService
PBX課金スキーマ、バックフィル、カタログ
PbxBillingSchemaMigration は @Order(0) です。カラムを追加するからです。 ザ・オブ・ザ・ 共有ライブラリのエンティティティティティは、ビルドが始まる瞬間からphone cost mode をマップします。 OrgBillingPolicy を JPA で読み込み、SELECT で出力します。 このランナーを遅らせると、先ほどの人が死ぬので、まったく実行しません。 "column ... は存在しません" と、実行全体がダウンします。 org extension billing days は公開されていますが、そのスキーマではありません。 voipテーブルです。 これは、(org id、日、addon code、subscribe uid)、一つにユニークです 列はメールの同等よりも広いので、2つの請求グループを持つorgは保持します 2つの監査行は、他の1つではなく上書きします。 サブスクリプション uid はありません NULL は正確にSQL の nulls-are-distinct ルールは、そのインデックスを破ることができません。 メニュー 課題を修復 InstanceSyncServiceは、すべてのスイープで時代を超越してきました。9人のメンバーは1人で、 全 20 番目の拡張子行は null を読みます。 空白を埋めるだけ: config 側 制約のない拡張子文字列に結合するので、それはより弱いレコードであり、決して 設定する ID を上書きします。 PbxAddonCatalogMigrationの種は、すでにすべてのカタログに両方のアドオンを追加します メールを販売し、 EMAIL HOSTING 行に org, 市場 および 対応プラン 2つからハードコードされたIDではなく、その方法をスコープド テナントは同じコードでアドオンを所有しています。 カモCRMPricing 積込み機は、あまりにもそれらを取得します, のために カタログはこちら - 作成専用なので、修正だけで編集 既にデータベースに存在しない.
· BillingService
延長によるビル電話サービス
PriceModel.PER EXTENSION、独自の予約数量キー、アロケータ、 ナイトリー・レコシラー、除去ゲート、サマリーAPI - 携帯電話のツイン データがどこにいてもメールボックスの作業が異なります。 複数のインスタンスは、そのすべてを通る差です。 orgは実行できます KamoPBX サーバと RingCentral サーバを一度に起動すると、両方のアドオンが課金されます。 同じ月: allocator は 1 サブスクリプション PER CODE ごとにカウントを返します。 サブスクリプションは、属性がなかったコードをゼロで処理します。 お問い合わせ 特別なものではなく、通常のパスをゼロにするために、未使用のコードを駆動させます 郵便調整担当者が必要とする場合。 PER EXTENSION は、PER MAILBOX の再利用ではなく、独自のプライシングモデルであり、その extensions の下のカウント: mailboxes ではなく:. 二つの連鎖が走る 独立して、他の量を乱すことはできません。 ライセンス, 決して メーターで計られたStripeの価格は量を直立させ、全を失敗させます サブスクリプションコール。 PhoneCostMode は MailCostMode の兄弟です。 mail cost mode はカラム名を false にし、サイレントに移動します。 所有者がメールを支払った人を変更したときに電話のお金。 属性が続く 割り当てられたメンバーは直接-延長は第一次概念を必要としません、従って MEMBER VOIP CONFIG.MEMBER ID はユニークで、MemberVoipConfigController のリターンです。 2番目の主張で409は、リンクは既に両側に排他的です。 org extension billing days はサブスクリプションだけでなく、その日の鍵を握っています。 コード。 メールテーブルがないので、GROUP PAYS OWNの2番目の課金グループの下に それぞれのグループでは最初の監査行と日の監査行が間違っていますが、 最後に。 コピーではなくフォローアップとして記録。 共有 lib voip.billing パッケージは @EnableJpaRepositories - に リストは明示的であり、失敗モードはサービスが最初から拒否するサービスです.
· kamo-marketing
電話アドオンを携帯電話のアイコンに与える
PER EXTENSION は既に "extension/month" としてレンダーしています - addOnUnitLabel はそれを処理します そして変更を必要としません。 アイコンマップは、下部のカタログに鍵をつけています。 コードと一致しないキーはエラーではなく、サイレントに戻ります 雷ボルト。 新しいPBXコードが2つだけ追加されます。 その地図で3 古いエントリ (kamo email hosting、video conferencing、add storage) は一致しません シードコードは、単に推測するのではなく、単独で残っています.
· kamo-internal
拡張機能が管理される拡張機能のコストを表示します
ExtensionUsagePanel は、メールボックスとストレージパネルの横にある stats タブにインストールします。 クラス別、カタログレート、月間合計、およびプレーンルール 言語。 org が実行できるので、クラスルールは一度に表示できます。 KamoPBXサーバとRingCentralサーバを同じ月で - ケースメールは 決して作り出しません。 無料の数字は、請求可能なものと同じ重量で与えられます。 デバイス 両方のクラスで無料、および割り当てられていない拡張子 - キュー、IVR、リンググループ - サードパーティのルールの下で無料であり、通常は過半数です。 両方とも コピーで主張するのではなく、集計者によって測定される。 add-a-phone-server のピッカーに座って、2つのルールを続けてから実行 両方がハードな方法を学びましたので、電子メールの作業. オープンに失敗するので、請求 オルガミッドマイグレーションをストランドすることはできません。 プロバイダタイプをロックしない org は、電話サーバーとすべての 4 つの orgs のライブインスタンスを既に実行しています。 今日はアドオンコードをまったく保持せず、すでにサーバーに伝えます add-on を使うと false になります。 ロックされたカードは理由によって示されます 単なるグレーアウトではなく、 レートは、カタログから来る, 決してハードコードされていない: UIに書かれているレート カタログの変更が初めて嘘になり、それがいつ失敗しない です.
· KlusterServices
キューイングタイムアウトと「プレス 0」を両方ともボイスメールへ
ハンドロールされたダイヤル() + を置換します。 app queue でキューループを移動します。 決定する 要素は DTMF: ディール() がダイヤルプランと一致しない 実行中は、Dial() 上で「保持中に 0 を押下」できません。 ザ・オブ・ザ・ キューの `context = kamo-queue-exit` の設定は、それが可能になるものです。 エクステンション -> その拡張に転送 1 または 2 → キュー 0 -> ストレートからボイスメール、挨拶やホールドまで 10分→ボイスメール 悪い exten -> "invalid" プロンプト, その後、キュー メインラインボイスメールはメールボックス8100で、スタッフの1つを意図せず mailboxes では、メインラインのメッセージが誰かの個人的なボイスメールに上陸しません。 playback() は playback() と playmail() で再生されます。 `s` と呼びます。 二つの発見は、それを運転しました: -********************でインストールされたコピーは静かに ボイスメールのリロードと次の呼び出しの間に削除され、ボイスメールが落ちた ビルトインに戻り「延長の人...利用できません」。 ザ・オブ・ザ・ spool は app voicemail/FreePBX によって管理されます。 音/ はありません。 - `s` オプションは、挨拶だけでなく、指示をスキップしますが、 指示として記述する文書だけ。 録音をしたことがない すべてで再生します。 Playback + `s` は、録画 -> beep -> を正確に記録します。 各パスを別々に検証したライブ: - キュータイムアウト:queue log EXITWITHTIMEOUT、CDR dcontext=kamo-voicemail lastapp=Playback custom/kamocrm-highcallv..., ユーザフィールド QS:TIMEOUT - 0 を押します: リングメンバーで RINGCANCELED でキュー log EXITWITHKEY|0 を押して、 そして同じボイスメールの足 - 記録+店:msg0000.gsmはmailbox 8100に書きました - 回答:queue log CONNECT PJSIP/8080 → お問い合わせ 維持する価値のある2つのテストノート。 `channel origine` キャップは ~30s で呼び出します。 長いテストをトランクし、ダイヤルプランの欠陥のように見えます。 サイレントテスト 録画はmaxsilence=10で破棄されるため、空のINBOXは意味しません maxsilence=0 を一時的に設定し、復元することで、録画が壊れています。 メニュー キュー結果はそうでなければ 見えない外部のqueue log.
· kamo-shared-library
第三者サーバーの拡張機能が課金されない
Queues、IVR、リンググループ、スペアは、誰も割り当てられない拡張子です、 サードパーティのルールの下に、彼らは自由です - 1つの生産のorgの12 16 個の使用可能な拡張子。classify() はそれらをサイレントに落としたので、番号 どこにも存在し、 stats パネルは、彼らが自由だっただけを主張することができます ではなく、それを見せる。 同一の dedup キーで計算される 請求可能なパスの使用、従って自由な数 チャージがない場合、ダブルカウントできません.
· kamo-shared-library
課金可能な携帯電話の拡張子をカウント
パーメールボックスのアグリゲーターの電話ツインを追加します。 PbxBillingClass with a 排気VoipProviderTypeスイッチとデフォルトアームなし、OrgPbxBillingAggregator (スプリングステレオタイプなし - BillingService はビーンを宣言)、毎日の監査 スナップショット。 1つの構造差は、すべての下流を介して実行されます。 org email providers は、 org id に一意なので、1 つのメールのアドオンは、決して請求できません。 VOIP PROVIDER INSTANCE は org ごとに多くの行なので、 org は KamoPBX を実行できます。 RingCentral は 1 回と 2 つのアドオンの請求書で同じ月. 故障は したがって、拡張ごとにクラスを運ぶ1つのフラットリスト、およびcountByClass()ドライブ 特別なケースではなく、通常のパスをゼロにするために、未使用のコード。 VoipProviderType は EnumType.ORDINAL なので、何もそれに付随しません。 順序および分類をピンでテストして下さい。 FREE PBX は、第三者に分類されます。ピッカーは、PBX をオンプレミスとして提供しています。 顧客独自のAsteriskです。 KAMO PBX はホスト型だけなので と、KAMO PBX インスタンスが存在しないので、KamoPBXProvider はまだから投げます。 すべてのメソッドは、PBX HOSTING は、今日では何も請求しません。 両代の記録が読み込まれる -**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** MEMBER VOIP CONFIG - 会員の電話設定画面が両方書いているので、 union は管理者が設定したものです。 お金を決める番号 背景スイープがゼロになる1つの列に休むべきではありません。 InstanceSyncService がそれに対して何をしていたのか。 エクステンション BillingDay はサブスクリプションだけでなく、日とコードにキーをつけます。 2つの請求グループを持つorgは、1つの上書きではなく2つの監査行を保持します その他.
· KlusterServices
8000および8080を同時にリングする把握musicの列
`kamocrm-hold` MOHクラス、shuffled としてアップロードされた8つのホールドトラック。 ザ・オブ・ザ・ FreePBX の `music` テーブルの行の `random=1` からランダムな順序が来る、 これは、`sort=random` を musiconhold additional.conf に生成するものです。 conf ではなく DB に、または、次の FreePBX が上書きします。 挨拶の後のルーティング: エクステンション -> その拡張(変更なし)に転送 1 または 2 → キュー タイムアウト -> キュー 悪い exten -> "invalid" プロンプト, その後、キュー キューはループ内の****************です。 一度にリングを鳴らし、勝ちに答え、そして発信者は音楽を握ります リングバックの代わりに、 会員は、生の PJSIP エンドポイントではなく、 から-did-direct ON PURPOSE:FreePBXの拡張ダイヤルプランを通過する 各エクステンションのリングタイマーを適用し、その人に呼び出し手を渡す 鳴ることの反対であるボイスメール。 ループに要求されるように帽子が、あります。 問題がExecIfであるガード: NOANSWER は、完全なタイムアウトのために本当に鳴ることを意味します。 CHANUNAVAIL(ノーボディ) 登録)、CongeSTIONおよびBUSYはミリ秒単位で、そう無くなります MusicOnHoldは、Gotoがタイトなスピンになるのを一時停止します。 両メンバーで測定 deregistered: CPU の 1 秒、キューの 45 秒を渡る 24 のログ ライン。 また、WeeketExtenの猶予ウィンドウを上げて、音楽を再生するので、手持ちから キューへの挨拶にはサイレントギャップはありません。 検証済みライブ: PJSIP/8080 下にリング状態で観察 ************************************************************************************ オーディオは ConfigMap ではなく、 1.1 MB と 7.7 MB のトラックがうまくいく エッチングオブジェクトの制限を過ぎます。 どちらのセットも asterisk-lib hostPath に住んでいます。 変換コマンドは、名前を付けるグローバルの横にあるドキュメントです.
· kamo-internal
ひとつのメッセージの絵文字と、正しいメッセージ
参加者は、個別にチャットをお願いしました。 彼らは同じメッセージングメニューに上陸 ウィンドウは、コピーとアンスエンドの横にある。 原子炉は、気泡の下のチップバーとしてレンダーする - emoji、その使用した多くの人々、そして 視聴者がそれらの1つであるかどうか、チップ自体がトグルとして反応し、 未反応は2つではなく1つの制御です。 反応するツールチップの名前、解決 セッションメンバーはすでに保持しているウィンドウをリストします。 "+" の末尾はピッカーを開きます すでにそれを掛けるバーがある場所; 反応のないメッセージはまだ通過します メニュー ピッカーは、実際に使用して既存に拡大する6人の人々として開きます 320px パネルが320px のチャット ウィンドウにドロップされるため、検索可能な1つがオンデマンドです。 速い反作用。 編集は、SENDERが書いたものを保持するボックスのバブルを交換します。元のテキストではなく、 読者の翻訳は、保存とエスケープを解除するために Enter で探しているかもしれません。 エスケープ ウィンドウクロームに到達するのではなく、そこに止まり、チャット全体を閉じました キャンセルされた編集に。 編集されたメッセージは、誰にとっても "(編集済み)" を運びます。 誰かが正直にそれを読んでいた後に編集する。 開示は、なぜ編集、未送信とは異なり、 見てきたメッセージにはまだ提供されていました。 箱が開いたとき、会話は誰かを編集していると伝えられます。 インディケータは、タイピング作業とウェブ上で何も起こっていないため、両端に存在しました お問い合わせ 受信機が階段をクリアするので、参照カウントと間隔で再発行 3秒後のインジケーターと長い補正は、そうでなければ停止したように見えます。 組織のチャットポリシーがこれをフリーズしたときに、両方のコントロールがコンポーサーとオフになります 会員:サーバー上で同じゲートを通過し、その制御を提供 提供していないよりも、拒否が悪くなります。 @kamo/chat-core 0.1.8 と @kamo/realtime 0.1.1 を取る.
· MediaService
Emoji でメッセージに反応し、送信したメッセージを正しいものにします
POST ********************は、発信者の絵文字をセットまたはクリアし、 メッセージ全体の反応セットなので、サーバーのコンバージを競ったクライアント 自分の推測ではなく、状態。 反応は、同じセッションのメンバーシップとして扱われます。 返答しないメンバーが、送信するような、同じ組織のチャットポリシーをチェックしてください。 どちらでも回答できません。 emoji自体は信頼できません。 他の人の何人かの下の動詞をレンダリングされます みんなの会話でメッセージを発信するので、ゲートはホワイトリストの形と構造的です。 ゼロ幅のジョイナー、セグメントが複数のピクトグラフを保持しない 家族や家族を 皮膚と結合された専門職を拒絶し、テキストとともに2つの反応である、 参加者とフラグの半分だけ。 PATCH /api/media/messages/{id} はメッセージを修正しました。 誰にでも、意図的にゲートされていない 1 つのルールの unsend の 1 つのルールは — 共有ライブラリのコミットを参照してください。 2つが異なります。 空白のボディをファイルなしでメッセージに拒否します(メッセージの書き方) 独自のルールを持つ、それを中断し、すでに外部に配信されたメッセージを拒否 ソーシャルプラットフォーム(ここではコピーを受け取ることができます)、メッセージのキャッシュされた翻訳をドロップします。 そして、それが言うために使用されるものをファイル。 また: MESSAGE DELETED と ATTACHMENT REVOKED は、現在 `id` と `messageId` を実行しています。 リレー messageId フィールドを持たない ChatMessageDto を介してすべてのフレームをプロジェクトするので、両方のイベント id: null と、すべての購読者がそれらを破棄したブラウザに達しました。 再ロードされるまで、他のサイドの画面に滞在しました。 リレーの javadoc は、大声で言う サイレントドロップ可能なものだから、それが許可リストです.
· kamo-shared-library
症状の emoji 反応とメッセージの送信者は正しいことができます
会員が個々のチャットについて尋ねた2つのこと:会話中の絵文字の人 送信したメッセージの修正と、メッセージの修正の能力を1つにまとめることができます。 MEDIA OBJ REACTIONSは、1列(メッセージ、メンバー、絵文字)の1列で、 emojiあたりのカウントではありません。 どの質問でも反応がWHOについて尋ねます:破片はトグルです、従ってそれ ビューアがすでにそれにあるかどうか、反応するツールチップの名前を知る必要があります。 ザ・オブ・ザ・ ユニークな制約は、レースのダブルクリックでトグルを安全にするものです。 編集は、現在のボディとしてMediaObjMsg.messageを維持し、DATE EDITEDをスタンプし、ファイルをファイルします MEDIA OBJ MSG EDITS に置換されるボディ。 その表は、編集がそうでない理由に対する答えです 「誰が見たのか」に門っていうのは、 unsend は単語を消えますので、 事実が読者の後ろに書き込まれている会話を停止する理由である後、それを拒否 後ろ; typo, 一方, 誰かがそれを読んだ後ほとんど常に気づく, そして 同じ門は、必要なときに正確に修正を拒否します。 ディスクロージャーの支払い ではなく、すべての読者はメッセージが編集されたと伝えられ、そのメッセージが保存されていることを より上書きではなく。 ChatMessageDto は、イベントの両方のフィールドを獲得します。 DTO がドキュメントではないこと: メディアサービスでSTOMP リレーにNATS を宣言し、固定フィールドリストを再構成します。 なので、ブラウザに到達しないと宣言しないフィールド.
· KlusterServices
記録された挨拶、ダイヤルバイ延長、オペレータへの1/2
録音されたイントロで音楽オンホールドパターンを置き換えます。 メニュー 挨拶を再生し、聴く 同時に、呼び出し側は最初の秒からダイヤルできます。 プレイバック() ファイルが終了するまでのキープレッションは無視されます。無視されるのは70秒です。 - 1 と 2 は、オペレータの拡張に行きます。 - 挨拶の終わりによってダイヤルされる何もオペレータに、の後で行きます 4秒の猶予ウィンドウなので、最後の単語でダイヤルを開始した発信者は、 終わり;私達が移動した後、2番目の数字が到着しないで。 - 直接ダイヤルマッチ [3-9]XXXではなく XXXX。 XXXX は "1" も 1 つ Asteriskは4桁の拡張子の部分的なマッチなので、Asteriskは TIMEOUT(digit) は、そのアウトと呼び出し主が 4 秒を聴くことができる前に サイレンス。 費用は1と2が予約されるので、延長は始まらない メニューが既に必要である。 延長は2523→8912(ブラジル)および2000→8000(Erik)を再番号しました。 ザ・オブ・ザ・ WebRTC エンドポイント ブロックは、NUMBER の拡張機能でキー化されているため、サイレントに再番号を付ける そこに拡張子をストランド:それはまだWS上で登録しますが、DTLS / ICEなし 媒体は決して確立し、発信者は接続された呼出しを得ません オーディオ。 8000 は 2000 年にブロックを一切持っていませんでした。 ダイヤル1、ダイヤル2、または何も言わないすべての発信者。 挨拶オーディオは、このConfigMapにはありません:1.1 MBで、それはetcdを吹きます オブジェクトの制限。 これは asterisk-lib hostPath と変換コマンドに住んでいます その名のグローバルに隣接するドキュメントです。 最後まで一貫したライブエンド: 挨拶プレイ(バックグランドカスタム/kamocrmメインイントロ)。 1 -> did-direct 8000; 8912 -> すべての 3 つのメッセージでそのボイスメールを呼び出します。 未知の拡張子はpbx-invalidを再生し、8000に落ちます.
· KlusterServices
インバウンドオートアテンダント - ホールド+ダイヤルバイエクステンションの音楽
インバウンドコールはどこにも行かなかった:`incoming`テーブルは完全に空だった、 そのため、配送されたコールでさえ、デッドエンドの呼び出しになります。 参加者のコンテキストを追加します。 読む2つの調整可能。 WaitExtenのm()オプションはメカニズムです。それは音楽オンホールドクラスと音楽オンホールドクラスを再生します。 同時に数字を収集します。 背景()/Playback() は終了時に停止します file と MusicOnHold() は何も収集しませんので、「音楽をまで表現することはできません 発信者ダイヤル。 このボックスにIVRモジュールがインストールされていない(ivr detailsなし) 表)音楽ではなく、記録された発表をしたい。 書き上ではなく、 grep ガードの下にある extends custom.conf に追加 it: kamo-asterisk-support は、同じファイルでマーカー区切られたブロックを所有しています。 バイト単位でバイト単位で保存します。 また、 /var/log/asterisk/cdr-csv を作成します。 cdr csv は ERROR *and* をログに記録しました ディレクトリがイメージから存在しないため、すべてのコールレッグを警告します。 MySQL CDRは、何も壊れていないので、読み込まれたものですが、 Asteriskログ — コール障害を診断するために使用される同じログ。 検証済みのライブ: 参加者の回答とWaitExten(45,m(デフォルト)で保持)。 無効な拡張子は、pbx-invalid を再生し、音楽に戻ってループします。 有効 拡張子は、did-direct と rang PJSIP/8080 (ANSWERED, 20s) から到達します。 ザ・オブ・ザ・ ATTENDANT TRIES カウンターはラベルでも初期化され、`menu` に達する $[ + 1] を左にせず、次に次の値を破損したパースエラー GotoIfは、大声で失敗するのではなく、どこかに意図されていない呼び出しを送信します。 インバウンドルートとカスタムデスティネーションの行はFreePBX MariaDBに住んでいます (永続的StatefulSet) はここに再現されていない.
· InitializerService
会員1名分の1つの共有カレンダー
暫定はそれの下に何もなかったので、2つの同時最初の負荷両方 インサート。 すでに作ったものを崩壊 - 全体の20の重複行 7つの組織と13の会員、最古の賞金、敗者非アクティブ化 削除されたものではなく、最初に再配置されたものではなく、 カレンダー一式ごとの部分的な一意の索引は不可能です。 変数が PROVISIONED カレンダーにあるための一部: プレーンユニーク 組織のインデックスは、メンバーの所有を禁止し、組織上の1つを禁止します。 会員は、会員が自由に作成する追加カレンダーを禁止します.
· kamo-internal
緊急アクセスを見直し、最後の2面をゲート
ブレークガラスレビューエンドポイントは、何も呼ばれていないクライアント機能を持っていました。 緊急チャートアクセスを記録し、画面が表示されない ツイート ブレークガラスの誰もレビューは、コントロールではなく、監査のトレイルです。 交付金が時速化され、理由が最初の場所にある理由の反対。 レコードオフィス、コンプライアンス面、そしてそれが示す6番目のタブです 述べた理由動詞 — その文は、レビューの全体の物質であり、 そしてそれの合計された版は何も決定しません。 欠落していた2つの門。 ブレークガラスボタンは今だけ提供されて BREAK GLASS PATIENT ACCESS を保持する役割; 誰かにそれを示さない 正直な答えがそれであるとき、それはそれらにrefusalが任意であることを教えます使用して下さい 自分の役割は緊急アクセスを含まないため、その文章を取得する 代わりに。 そして、開示会計は、その背後にある独自のセグメントです。 VIEW DISCLOSURE ACCOUNTING: 患者様のためのコピーの作成と読書 自分の記録がすでに消えている場所のレジャーは異なるジョブです。 それは人達が達することができる何かをゲートするために26の臨床権利の最後です.
· kamo-internal
作業を見つけたキューからクレームを上げて送信する
収益サイクルは7つのキューを読み取り、クレームを上げることができませんでした。 それぞれの書き込みは今 画面上に住んでいるのではなく、その必要性を直面するキューを掛ける お問い合わせ "Never charge" は、チャージなしで実行された手順のリストであり、記載されていない 理由 - 何も失敗し、誰も言ったことは何もない - そのための便利なこと 各行は料金を作成します。 行は、それが存在したらキューを残します。 キューのポイントです。 DRAFTではまだクレームのみで送信できます。 受入クレームの再送信 練習が2回支払われる方法であり、その後再発行され、支払者の重複 ロジックは、注目に依存するものではありません。 確認によると、クレームはドラフトであり、送信前に確認すると、 2つのステップは意図的に分けられ、「上げられた」だけは残っているので 人々はそれを信じて、それは賃金に行ってきました。 両方のアクションは、MANAGE CLAIMS なしで不在です。 拒否はサーバーの所有物を運びます 自己ペイの制限または欠落した権限を名前付ける文。 この画面が発明できるものよりも多くの使用.
· kamo-internal
患者の詳細情報を修正する
一度に記入し、固定しないで下さい。 パネルは概要の下に坐ります 設定画面ではなく、誰かがミスペルトに気づく瞬間だから 名前は、彼らがそれを見ている瞬間です - そして、それはすべてで何もレンダリングしません EDIT PATIENT デモグラフィックなし 実際に変更したユーザーのみが送信されます。 サーバは不在 フィールドだけで、何が読み込まれたのかを区別すると、その練習に当てはまります。 各列をレンダーしない画面で、その列をサイレントに空にすることはできません。 オムツ。 再インデックスの結果は、保存前に記述されます。 名前または日付 患者の重複チェックとレコードのリクエストに対する再ファイルを変更する 他の慣行; そう言っても、結婚の名前は化粧品と結果を見て もはや使用しない名前の下の忍耐強いfindableです。 MRNは編集可能で、編集できません。 外部の世界の名前がこの方法である 人、および再番号は、すべての参照に支払者、実験室および前の手紙を打ち消します すでに保持している.
