سجل التغييرات
ما الجديد؟
كل تحسين للمنصة، كما هو الشحن.
· kamo-internal
توافر الأسلاك Provider into PresenceWrapper
· kamo-internal
Add useAvailabilityWebSocket hook and AvailabilityContext
· SecurityService
توافر العضو المسيّر آلياً في لوحات الدخول، في أواى،
· MediaService
يضاف برنامج " ناتسوستومب " إلى حالة توافر الأعضاء
· SecurityService
تحديث نقاط الوصول النهائية لاستخدام قدرات الأعضاء الحالة
· SecurityService
يضاف منشور عن مدى توافر المعلومات المستكملة عن حالة الأعضاء
· InitializerService
Migrate members.is available to availability status enum
· kamo-shared-library
يستعاض عن عبارة " فوليان " المتاحة بالعضوية الحالة
· kamo-asterisk-support
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 secret, the helper: - Queries asteriskcdrdb.cdr for the call's uniqueId before uploading - Parses CLID into callerIdNum and callerIdName - Derives call direction (inbound/outbound) from src/dst vs extension - Includes a cdr{} block in the upload manifest CDR enrichment is opt-in and gracefully degraded: if the DSN is absent or the lookup fails, uploads proceed without caller-ID (existing behaviour). Adds go-sql-driver/mysql v1.7.1; Dockerfile runs go mod tidy to populate go.sum during the Docker build so no local Go installation is needed.
· ConversionService
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 callerIdNum, callerIdName, callDirection, and disposition and passes them through RecordingMetadata so the Recording row is stored with full caller-ID context.
· InitializerService
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 relying on the FreePBX CDR pipeline being available.
· kamo-shared-library
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 the audio file. RecordingMetadata gains matching fields; a backwards-compatible constructor lets existing callers pass null for all four without change.
· kamo-internal
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 and AUTO_BILL were offered. Added COMP to the SubscriptionPaymentMethod union and exposed it as a radio option.
· kamo-internal
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.
· kamo-internal
برنامج " Manage Domainزر " للملاك وأعضاء النظام من أعلى المستويات
· kamo-internal
اظهر زر البليغ لمالكي org بدون حساب
عندما يقوم مالك org بفتح تابل الخطط و لا حسابات فواتير هناك، إعرضْ a حذاء سريع بدلاً مِنْ العَمَل "إتّصلْ بك رسالة (جورج مالك) الزرّ يَدْعو POST /api/security/account/ ويعاد تحميل الحسابات على النجاح.
· SecurityService
مضافا إليه نقطة نهاية لسحب الأحذية للأوراق الموجودة سابقا
Rlm; يحفز نفس idempotent setup as the sub-org creation hook (BillingSetupService) ولكن يمكن أن يطلبه مالك org هذه المقبضات التي صنعت قبل مفاعل الفواتير ولذلك، لم يحصل قط على حساب + اشتراك في الحساب.
· kamo-internal
الموجة 3 تحويلات، إصلاح التداعيات، تحويل آلي
- يستعاض عن جميع الخيوط الإنجليزيـة المكدسـة بالمكالمات عبر الموجة 3 المكونات (الشق، النادي، الدعم، المذكرات، خط الأنابيب، الخيوط، الملاحة البحرية، إلخ) - موجة كبيرة 3 شظايا إلى رسائل/ن.جسون (+19 مفاتيح) (مرحباً، (تادلين نص أقدام على الأقدام، وحسابات (Desc/networkDesc ICU) - ستة نص ترحيب متنقل في الصفحة. - ستة طلبات: الانكليزية العميقة كقاعدة لجميع الملفات المحلية الملفات المحلية المفقودة (قبل الترجمة التحريرية) تخدم الإنكليزية بدلاً من التحطم ويعود السكان المحليون المترجمة جزئيا إلى اللغة الانكليزية للمفاتيح المفقودة -مستجدات نمط الترجمة وإعادة البناء: النشر الأولي → TranslateService port-forward → الالتزام بالملفات المحلية rebuild إعادة بناء الصورة مع الترجمة s
· kamo-register
الاسم الناطق بالاسم
· kamo-internal
Wire next-intl with member.language as locale source
يضاف التدويل المبني على النسيج التالي عبر الكامو الداخلي بدون URL مفترسات محلية ويُقرأ النشيط المحلي من كوكي الكامو - لوكالي، الذي مرآة لأفضلية العضو الموثّق بطاقة تحديد المنطقة في ******** الهياكل الأساسية: - i18n/locales.ts, i18n/request.ts: 22 supported locales matching kamo-marketing - Api/i18n/set-locale: يكتب كوكي kamo-locale مزامنة كوكي للعضو - I18nProviders: applies MUI core, x-data-grid, x-date-pickers locales and المكيف المحلي للتاريخ إلى اللغة النشطة - استخدام أجهزة الاستعلام: التاريخ المحلي للوعي/الرقم/النسبة المئوية/المساعدين المتفرغين نسبيا - MyAccountTab Regional Settings save: writes the Cookie + router.refresh عندما يغير المستخدم لغته - النصوص/الترجمة التحريرية: الترجمة التحريرية على أساس التفرغ ضد شركة TranslateService (الميرون نمط سوق الكامو) -الكتابات/الدقات الكبيرة تجميع شظايا رئيسية لكل منطقة في رسائل/ن. التغطية: - الرسائل/en.json بذرّة مشتركة. *، nav.*، وقتئذ* استخراج أولي عبر: 67 صفحة ومكوناً (اللوحة، الخيوط التجارة، البيئات، الحسابات، الاتصالات، البيئات/الآفات، البيئات/الأعضاء (ب) المكونات/التجهيزات، والمكونات/الأدوات/الصفوف اليومية، وما إلى ذلك. العديد من السمات لا تزال الأسطح تحتاج إلى تصاريح للمتابعة.
· VOIPService
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/api/api/rest/voicemail 404s), and Asterisk's CDR pipeline is also non-functional here (ODBC DSN misconfig handled separately in KlusterServices). Without these the softphone tabs render empty even when call/VM recordings exist on the imaging side. When provider.getCallHistory or provider.getVoicemails returns nothing, fall back to listing rows from the kamo.recordings table scoped by (providerInstanceId, extension, isVm). Caller-ID metadata isn't carried on Recording today so we leave from/fromNumber blank — the row still plays back through the media-player tool via recordingId. Archive filtering is preserved across both paths so a row archived via the cache stays hidden in the fallback too.
· kamo-shared-library
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 no REST/GraphQL voicemail-message API, and on this install Asterisk's CDR pipeline is also broken (separate ODBC misconfig fix in KlusterServices).
· SecurityService
مقعد وحدة إدارة عمليات حفظ السلام في منطقة البحر الكاريبي المتمتعة بالحكم الذاتي في منطقة الإنشاء دون الإقليمية؛
الاشتراك في الاجتماع (ليس في الحساب) استحقاقات الأعضاء - نقابة الملامح عبر فروع الترخيص العاملة، بالإضافة إلى خط الأساس الحر The Redis listener gain a SUBSCRIPTION: New BillingSetupService runs in two flows: - إنشاء المنظمة (الفرعية تحت بند " كامو - ر " ): Member for the creator if absent, finds-or-creates a KamoCRM account مع ذلك العضو في البداية، يفتح باب الاشتراك في حساب مستقل واستهدفت المنظمة الفرعية الجديدة، ومقاعد المبدعة كمرخّص لها + من الباطن. -بست) ) نحت من جديد KamoCRM حساب/موضوع عضو في منظمة فرعية قائمة، اختياريا نقل المرخصين المالك فقط مسارات المراقب المالي للمحاسبة تسقط (إيسيكن) حمولات العملاء على مستوى الحسابات - هذه الأعلام تعيش الآن في شهر تشرين الثاني/نوفمبر.
· InitializerService
إضافة لغة العضو + التخلف عن السداد - أعمدة العملة
يضاف عمودان غير كاملين إلى طاولة الأعضاء مدعمين بذلك عضو. (VARCHAR (10) DFAULT 'USD) الحقول. الصفوف الحالية تُسلّل إلى إخفاقات حتى يُرضى القيد غير الكامل من دون وقت راحة النافذة.
· kamo-register
أضف خطوة لغوية، وزمن قطري، ومخلّص + ***
-خطوة لغتي الجديدة جاهزة للساحر مخطط الخطوة. Lists the 22 marketing-supported locales as flag tiles With native name + English tooltip; pre-selects from navigator.languages. - "خطوة بلدي الآن جمع الزمان جنبا إلى جنب مع البلد، غير متعمدة من **************** التالي والميدانان مطلوبان للتقدم. - تقوم هيئة التسجيل الآن بإرسال اللغة/التوقيت (بالإضافة إلى البلد القائم) إلى نقطة النهاية الشقيقة حتى يتواصلوا على العضو الجديد ' ٦ ' يمكن الآن لمحتوى الخطوات المتعلقة بمسائل الأمن أن يتأرجح رأسيا - كانت الخطوة الوحيدة بدون حاوية زائدة، فهرس طويل دفع السؤال الثالث خارج الشاشة. الزر المنتهي لم يعد معاقاً قبل مستمعنا يستعاض عن سباق الـ 100 متر بـ مُلحق مُصَلَّم بالملوثات والذي أيضاً يَستنزفُ الحالةَ الحاليةَ على ملحق للمستمعين المتأخرين.
· kamo-internal
إضافة اللغة + العملة الافتراضية إلى بطاقة المجموعة الإقليمية
بطاقة تحديد الأعضاء الإقليمية الآن تعرض لغة قابلة للتجزئة (22 مؤسسة دعم محلية تعكس موقع التسويق) والعملة الافتراضية إلى جانب "تايمزون". الثلاثة ينقذون معاً PUT /api/security/members/{id}. نمط الرؤية يظهر اسم اللغة الأصلية مع الإنجليزيّة بين قوسين، بالإضافة إلى رمز العملة والاسم الكامل.
· SecurityService
لغة العضو الفارسي/الوقت/العملة عند الاشتراك
نقطة النهاية/السجلة تقبل الآن اللغة، والتوقيت، والقصر إلى جانب المجال القطري القائم. التسجيل يحدد البلد وتوقيت المستعمل الجديد وتطبيق جميع الميادين الإقليمية الأربعة على عضو مُنشأ حديثاً، يُدرّب العملة الافتراضية من البلد رسم الخرائط الأولية للطوارئ عندما لا يتم توريد واحدة (ويتراجع إلى دولار الولايات المتحدة).
· kamo-shared-library
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 (SHIPPING/BILLING). Wire the helper into the four adapters whose customer endpoints expose address blocks: - ShopifyCustomerAdapter: default_address goes to both shipping+billing, remaining addresses[] become shipping records - WooCommerceCustomerAdapter: billing block -> BILLING, shipping block -> SHIPPING - BigCommerceCustomerAdapter: addresses[] split by address_type field - MagentoCustomerAdapter: addresses[] split by **************** ids Adapters with no address data in their customer payloads (Ecwid, Wix, Shift4Shop, PrestaShop, OpenCart, Squarespace) continue to compile unchanged.
· kamo-internal
/حساب/نسخة جديدة من طراز UX، حقول الاسم الكامل، الهواتف المزدوجة، العنوان؛ إدارة العنوان على مستوى الحسابات
الجبهة: - /حساب/جديد: في كل قسم "كوبي من الرصاص" أزرار + رأس "كوبي كل من الرصاص" الزر (عندما يضرب البارم) - قسم الاسم: - الهواتف المزدوجة (الشخصية + العمل) مع التمديد و "النص الكامل" - قسم العناوين باستخدام شكل الإمبراطورية (خط 1، التفاصيل، المدينة، القسم الفرعي، البريدي، البلد) مع "استخدام كفواتير أيضاً" - قيد الاسم/البريد الإلكتروني/الهواتف المحمولة -حسابات آبي: محاسبة مطبعية، محاسب، محاسبة، محاسبة؛ أساليب جديدة: الإضافات، الإضافات، التحديث، الحذف - المحاسب: إصدار عنوان الشحن الرئيسي من صفائف العناوين الجديدة
· SecurityService
دعم الاسم المستعار/البريد الإلكتروني/الهواتف المحمولة + عناوين نهاية الإدارة
- يقبل مراقب الحسابات الاسم المستعار/البريد الإلكتروني/الرقم الهاتفي: JSON على POST/PUT - العنوان الأوّلي في نظام " أوبست " يُنشئ " (والبيع عند استخدام مجموعة " آسبيلنغتو " )، ويُحدّد النقاط الرئيسية. - إضافة 5 عناوين نهاية العنوان: GET, POST, PUT, DELETE addresses; PUT /addresses/{id}primary - موجز حسابي/ديتالي فضح اسم الشخص، موضوع الهاتف، قوائم عناوين الشحن/التعبئة، المؤشرات الرئيسية - المذكرات الميدانية على مستوى الحساب (ألغيت الملاحظات في وقت سابق)

كونك ينتظرك
ابدأ مجانا في دقائق. أضف المنتجات كلما كنت مستعدا - لا هجرة، لا دخول جديد.
مجانا إلى الأبد - لا حاجة إلى بطاقة ائتمان