परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· VOIPService
VOIP कॉन्फ़िगरेशन सेव पर सिंक टीम सदस्य फोनवर्क एक्सटेंशन
· SecurityService
बैकफिल टीममेम्बर फोनवर्क एक्सटेंशन सदस्य वीओआईपी कॉन्फिग से स्टार्टअप पर
· kamo-internal
वायर कॉल फीचर्स सेटिंग्स एंड-टू-एंड प्रदाता अमूर्तता के माध्यम से
- VoipApi: CallFeaturesDto टाइप, getCallFeatures () और setCallFeatures () API कॉल जोड़ें - useSoftphone: add ************* स्टेट लोड स्टार्टअप पर एपीआई से; SetCallForward/setAutoAnswer कार्रवाई एपीआई के माध्यम से बनी रहती है; ऑटो-answer जब सुविधाएँ सक्रिय होती हैं तो कॉल-फॉरवर्ड प्रभाव इनबाउंड कॉल पर ट्रिगर होता है - सॉफ्टफोनपैनल: स्थानीय-केवल कॉल फीचर स्टेट को हटा दें; तार कॉल फॉरवर्ड टॉगल और सॉफ्टफोन संदर्भ में नंबर इनपुट; वायर ऑटो उत्तर सॉफ्टफोन संदर्भ में टॉगल; 'Manage Extended A/V' के लिए नेव बटन का नाम बदलें सेटिंग - ऑडियो स्लाइडर सिंक पहले से ही useAVSetting घटना बस के माध्यम से कार्यात्मक था - कोई परिवर्तन की जरूरत
· VOIPService
कॉल फीचर जोड़ें एपीआई - कॉल फॉरवर्ड + ऑटो-answer प्रदाता अमूर्तता के माध्यम से वायर्ड
- CallFeaturesDto और SetCallFeaturesRequest POJOs जोड़ें - प्रदाता क्षमताओं के लिए CallForward / AutoAnswer झंडे जोड़ें - डिफ़ॉल्ट getCallFeatures/setCallFeatures to PhoneProvider interface - रिंगसेंट्रल: उत्तर देने वाले नियमों REST API (UnconditionalForwarding) के माध्यम से कार्यान्वयन - FreePBX: GraphQL addCallforward mutation के माध्यम से लागू - CallFeaturesController: GET/PUT/api/voip/call/features — DB प्राइमरी, प्रदाता-native सिंक
· kamo-shared-library
सदस्य जोड़ेंCallFeatures इकाई और कॉल फॉरवर्ड और ऑटो-answer वरीयताओं के लिए भंडार
· kamo-asterisk-support
प्रारंभिक प्रतिबद्ध - FreePBX रिकॉर्डिंग अपलोडर (GO)
समाप्त WAV रिकॉर्डिंग के लिए घड़ियाँ ****************, Asterisk UNIQUEID द्वारा समूह बहु-पैर कॉल पैर, और प्रत्येक बैच को अपलोड करने के लिए APIService/api/voip/recording/upload using a VOIP RECORDING UPLOADS-scoped एपीआई कुंजी। फ़ाइल को केवल डिस्क से हटा दिया जाता है जब प्लेटफ़ॉर्म स्टोरेज की पुष्टि करता है। बूटस्ट्रैप idempotently प्रबंधक custom.conf के माध्यम से एक AMI उपयोगकर्ता का प्रावधान करता है और एक्सटेंशन custom.conf के माध्यम से मिक्समॉनिटर () प्रति चैनल हुक स्थापित करता है, फिर Asterisk अपने डायलप्लान / प्रबंधक मॉड्यूल को फिर से लोड करने के लिए पूछता है। दोनों प्रबंधित ब्लॉक स्पष्ट रूप से चिह्नित बैनर से घिरा हुआ है ताकि व्यवस्थापक अनुकूलन जीवित रहे। Dockerfile, k8s k1m1 और k2m1 (Deployment + ConfigMap +) के लिए प्रकट होता है गुप्त टेम्पलेट), ********************** बाकी दर्पण मंच का, और स्टैंडअलोन FreePBX होस्ट के लिए एक गैर तकनीकी README.txt।.
· kamo-internal
VOIP RECORDING UPLOADS स्कोप + रिकॉर्डिंग पाइपलाइन काउंटर / ट्यूनेबल
- APIManager: नया VOIP RECORDING UPLOADS स्कोप विकल्प (कैमो-asterisk-support द्वारा उपयोग किया जाता है) FreePBX होस्ट पर वॉयसमेल अपलोड करने और APIService के माध्यम से रिकॉर्डिंग कॉल करने के लिए होस्ट करता है। - VoipSmsTab: चार काउंटरों के साथ नया "Recording Pipeline" कार्ड (voicemail to) प्रक्रिया, प्रक्रिया करने के लिए कॉल, त्रुटि में ध्वनि मेल, त्रुटि में कॉल) - ताज़ा प्रत्येक 30s, उपयोग **************** नया "Recording" प्रसंस्करण" कार्ड के साथ voipVmBatchSize / voipCallBatchSize / voipPollSeconds ट्यूनेबल्स। - सिस्टमConfigApi: अद्यतन विस्तार () नए ट्यूनेबल भेजने के लिए; रिकॉर्डिंगStats () जोड़ें। - प्रकार / फोन: सिस्टम कॉन्फ़िगरेशन Dto तीन नए ट्यूनेबल लाभ; VoipRecordingStatDto जोड़ा गया।.
· SecurityService
सिस्टम-config रिकॉर्डिंग आँकड़े + रिकॉर्डिंग-प्रोसेसिंग ट्यूनेबल
************* चार काउंटर रिटर्न kamo-internal सेटिंग्स → प्लेटफॉर्म → कॉन्फ़िगरेशन → VoIP/SMS पर उजागर टैब (vmPending, callPending, vmError, callError). - PUT/api/security/system-config अब voipVmBatchSize, voipCallBatchSize स्वीकार करता है, डेमन सर्विस रिकॉर्डिंग-प्रोसेसर ट्यूनेबल्स के लिए वीप पोलसेकोन्ड। - ToDto () में नए फ़ील्ड शामिल हैं ताकि फ्रंटेंड उन्हें वापस पढ़ सकें।.
· DaemonService
रिकॉर्डिंगप्रोसेसरJob + NATS ने ताजा अपलोड के लिए शॉर्टकट किया
- नई क्वार्ट्ज नौकरी रिकॉर्डिंगप्रोसेसरजोब हर मिनट टिक्स करता है, स्वतंत्र रूप से भेजता है वीएम और कॉल बैच समवर्ती रूप से रूपांतरण सेवा के लिए ************* ************* voipCallBatchSize} टोपी के रूप में। - न्यू रिकॉर्डिंगरिसीव्ड कन्सोमर voip.recording.received NATS विषय की सदस्यता लेता है। ताजा अपलोड पर रूपांतरण सेवा द्वारा उत्सर्जित और तत्काल रन को ट्रिगर करता है, इसलिए एक ताजा चरणबद्ध रिकॉर्डिंग का इंतजार करने के बजाय सेकंड के भीतर प्रसंस्करण शुरू होता है आवधिक मतदान पर। - Configmap daemon.jobs.recordings.cron और daemon.jobs.recordings.cron ********** यह बात करता है।.
· ConversionService
रिकॉर्डिंग ingest + FFmpeg प्रसंस्करण पाइपलाइन
- नया ************* समापन बिंदु चरणों multipart अपलोड एपीआई सेवा द्वारा MinIO बाल्टी में अग्रेषित **************** और एक UnprocessedRecording मंचन पंक्ति बनाता है। Idempotent on retries उपयोग (phoneServerId, asteriskUniqueId). - नया **************** समापन बिंदु (डेमन सर्विस द्वारा कहा जाता है) नाली पंक्तियाँ: डाउनलोड चरणबद्ध WAVs, एक एकल Opus/WebM में कॉल पैर मिलाते हैं FFmpeg amix के माध्यम से मास्टर, प्रति चैनल WAVs ट्रांसकोड ट्रैक के रूप में VM RECORDING (8)/ CALL RECORDING (9) ImageAssoctype. - न्यू FfmpegService रैपर (transcodeToOpusWebm / mixToOpusWebm) टाइमआउट के साथ और टेम्पफ़ाइल क्लीनअप। - NATS प्रकाशक voip.recording का उत्सर्जन करता है। हर चरण में अपलोड पर प्राप्त होता है। डेमन सर्विस अपने आवधिक मतदान को कम कर सकती है। - Dockerfile रनटाइम स्टेज (अल्पाइन ffmpeg जहाजों) में ffmpeg स्थापित करता है डिफ़ॉल्ट रूप से libopus)। - ConfigMap exposes ************* साझा क्रॉस-सर्विस इसलिए नए समापन बिंदु एपीआई सेवा को प्रमाणित कर सकते हैं और डेमन सर्विस कॉलर।.
· APIService
VoipRecordingअपलोड कंट्रोलर के लिए kamo-asterisk-support अपलोड
POST/api/voip/recordings/upload Kamo-asterisk-support से multipart निकायों को स्वीकार करता है FreePBX होस्ट पर चल रहा है। X-Api-Key को मान्य करने के लिए नया VOIP RECORDING UPLOADS है। कार्यक्षेत्र (**************** सत्यापन कैश का फिर से उपयोग करना), फिर मल्टीपार्ट पेलोड + मेटाडाटा हेडर (X-Phone-Server-Id) को आगे बढ़ाता है, X-Asterisk-Unique-Id, X-Recording-Kind, X-Primary-Extension) to रूपांतरण Service *************
· kamo-shared-library
UnprocessedRecording स्टेजिंग इकाई, ImgDat ट्रैक ट्रैक ट्रैक, रिकॉर्डिंग इमेजिंग सेवा
- फिक्स ImageAssoctype आईडी टकराव: VM RECORDING=8, CALL RECORDING=9 (दोनों में) MY DOCS को 4 पर दोहराना। - जोड़ें ********** तो एक मास्टर रिकॉर्डिंग ले जा सकते हैं मौजूदा थंबनेल अवधारणा के साथ प्रति चैनल ओपस / वेबएम ट्रैक। - Opus-in-WebM कंटेनरों के लिए ImageMimetype.AUDIO WEBM (audio/webm) जोड़ें रूपांतरण पाइपलाइन द्वारा उत्पादित। - न्यू अनप्रोसेसर्डरिकॉर्डिंग (UUID id, IS VM, PHONE SERVER ID, EXTENSION) ASTERISK UNIQUE ID, IS PROCESSED, IS ERROR, ERROR MESSAGE, RESULT IMG ID, DATE CREated, DATE PROCESSED) स्थिर इकाई + के लिए भंडार Kamo-asterisk-support → रूपांतरण सेवा → DaemonService पाइपलाइन। - नई रिकॉर्डिंग सेवा जो एक मास्टर ओपस / वेबएम मास्टर को इमेजिंग के लिए अपलोड करती है प्रति चैनल Opus/WebM ट्रैक ImgDat.trackCount के माध्यम से संलग्न के साथ। - सिस्टम कॉन्फ़िगरेशन: voipVmBatchSize / voipCallBatchSize / voipPollSeconds जोड़ें डेमन सर्विस रिकॉर्डिंग-प्रोसेसर ट्यूनेबल्स के लिए।.
· kamo-asterisk-support
प्रारंभिक प्रतिबद्ध - FreePBX रिकॉर्डिंग अपलोडर (GO)
समाप्त WAV रिकॉर्डिंग के लिए घड़ियाँ ****************, Asterisk UNIQUEID द्वारा समूह बहु-पैर कॉल पैर, और प्रत्येक बैच को अपलोड करने के लिए APIService/api/voip/recording/upload using a VOIP RECORDING UPLOADS-scoped एपीआई कुंजी। फ़ाइल को केवल डिस्क से हटा दिया जाता है जब प्लेटफ़ॉर्म स्टोरेज की पुष्टि करता है। बूटस्ट्रैप idempotently प्रबंधक custom.conf के माध्यम से एक AMI उपयोगकर्ता का प्रावधान करता है और एक्सटेंशन custom.conf के माध्यम से मिक्समॉनिटर () प्रति चैनल हुक स्थापित करता है, फिर Asterisk अपने डायलप्लान / प्रबंधक मॉड्यूल को फिर से लोड करने के लिए पूछता है। दोनों प्रबंधित ब्लॉक स्पष्ट रूप से चिह्नित बैनर से घिरा हुआ है ताकि व्यवस्थापक अनुकूलन जीवित रहे। Dockerfile, k8s k1m1 और k2m1 (Deployment + ConfigMap +) के लिए प्रकट होता है गुप्त टेम्पलेट), ********************** बाकी दर्पण मंच का, और स्टैंडअलोन FreePBX होस्ट के लिए एक गैर तकनीकी README.txt।.
· kamo-internal
पूरी तरह से चित्रित SoftphoneContacts के साथ नकली संपर्क टैब बदलें
एक नए SoftphoneContacts घटक को निकालता है जो सॉफ्टफोन संपर्कों को तार करता है वास्तविक संपर्कों के लिए टैब एपीआई via useContacts ()। 4 हार्डकोडित नकली बदलता है सभी संपर्क पुस्तकों से लाइव डेटा के साथ संपर्क करें। सुविधाएँ: - ड्रॉपडाउन चयनकर्ता के साथ बुक और ग्रुप फिल्टर गोलियां - घोषित खोज, अंतिम / प्रथम / पूर्ण नाम द्वारा क्रमबद्ध - रंग-कोडित अवतार प्रारंभिक (परिचय हैश), फोटो समर्थन - hover-reveal Quick-call बटन के साथ संपर्क सूची - विस्तार दृश्य (रिप्लेस सूची) फोन, ईमेल, org, नोट्स दिखा रहा है - सभी क्षेत्रों के लिए इनलाइन संपादन मोड (फोन / ईमेल मल्टी-वैल्युम ऐड / रिमूव के साथ) - पुष्टिकरण चरण के साथ संपर्क हटाएं - खाली और लोडिंग कंकाल राज्यों - "नया संपर्क" / संपर्क पर नेविगेट करता है? कार्रवाई = निर्माण संपर्क / page.tsx को ऑटो-ओपन करने के लिए संवाद बनाते समय ? क्रिया = रचना क्वेरी पैराम मौजूद है (सॉफ्टफोन "न्यू" बटन द्वारा उपयोग किया जाता है)।.
· kamo-internal
इंटरेक्शन सेंटर में भूमिका के आगे इनलाइन टेक्स्ट के साथ एक्सटेंशन चिप बदलें
· kamo-internal
मैनुअल फोन एक्सटेंशन फ़ील्ड निकालें; बचाने के लिए सुरक्षा सेवा के माध्यम से वीओआईपी एक्सटेंशन लिखें
· SecurityService
उप-विभाग प्रतिक्रिया में फोनवर्क एक्सटेंशन शामिल करें; सदस्य पुट पर फोनवर्कएक्सटेंशन स्वीकार करें
· kamo-shared-library
जोड़ें ************* टीम मेम्बर के लिए सहायक
· kamo-internal
वायर VAD + पुश-टू-टॉक; हटाने योग्य सेटिंग्स
- vadEnabled अब वॉइसएक्टिविटी के रूप में पारित किया गया ब्राउज़र को कॉल के लिए माइक खोलने पर टॉगल का सम्मान करता है - पुशटोटॉक ऑटो-मैट्स माइक ऑन कॉल स्वीकार करता है और keydown/keyup स्थापित करता है वह श्रोता जो बिना सोचे समझे हुए हॉटकी का आयोजन किया जाता है - हटाई गई सेटिंग्स जिसमें कोई कार्यात्मक वायरिंग नहीं था और कार्यान्वित नहीं किया जा सकता है मानक ब्राउज़र WebRTC एपीआई के माध्यम से: micGain (SIP पाइपलाइन में गेननोड नहीं), हाईपासफ़िल्टर, शोरGate, vadThreshold, HDVoice, कैमराबैकग्राउंडBlur (requires ML), कैमराब्राइटनेस / कैमराकंट्रास्ट (CSS पूर्वावलोकन केवल) - तदनुसार AVSetting इंटरफ़ेस और DEFAULT AV SETTINGS को साफ किया; हटाने के बाद असंतुलित टॉगल ग्रिड
· kamo-internal
खोज फिल्टर के साथ स्क्रॉल करने योग्य रिंगटोन सूची
रिंगटोन कैटलॉग पैनल को दाहिने कॉलम ऊंचाई और स्क्रॉल से मेल खाता है जब सूची ओवरफ्लो हो जाती है तो सदस्यों को अधिक स्वर के रूप में नेविगेट कर सकते हैं जोड़ा जाता है। एक खोज क्षेत्र को जोड़ता है जो लेबल या फ़ाइल नाम से फ़िल्टर करता है, साथ में स्पष्ट बटन और एक खाली राज्य संदेश।.
· kamo-internal
कैटलॉग में सात और रिंगटोन जोड़ें
Adds Battleship Horn, Demon Horn, Land Line, 1985 रिंग, ऑफिस फोन, रिंगिंग ओल्ड फोन, और ओले / पब्लिक / साउंड / रिंगटोन / और तार के तहत उन्हें RINGTONE CATALOG में इसलिए वे मौजूदा के साथ दिखाई देते हैं डिफॉल्ट / Sci-Fi / बजर / साइलेंट विकल्प ऑन द रिंगटोन्स सबटाब।.
· kamo-internal
Sci-Fi और Buzzer रिंगटोन को कैटलॉग में जोड़ें
दो नए रिंगटोन परिसंपत्तियों के तहत /सार्वजनिक / ध्वनि / रिंगटोन / और उन्हें RINGTONE CATALOG में पंजीकृत करता है ताकि वे रिंगटोन में दिखाई दें सबटाब और डिफ़ॉल्ट आने वाले सॉफ्टफोन टोन के रूप में सेट किया जा सकता है।.
· kamo-internal
तीन कॉलम ऑडियो लेआउट, ड्रॉप सेव्ड-बैनर, चौड़ाई भरें
ऑडियो को माइक्रोफोन के रूप में subtab बाहर ले जाता है lg+ स्क्रीन पर पूरी पंक्ति (md अभी भी उन्हें दो-अप, xs स्टैक जोड़ती है)। The एडवांस्ड कार्ड अपने संकीर्ण स्तंभ के अंदर एक ऊर्ध्वाधर स्टैक में स्विच करता है। "सेटिंग्स स्वचालित रूप से बचाया" पाद लेख को हटा देता है - व्यवहार निहित है और कार्ड सिर्फ अंतरिक्ष ले रहा था। फोर्स सेक्शनकार्ड पैनल चौड़ाई: 100% और alignItems = "stretch" जोड़ती है प्रत्येक subtab's ग्रिड के लिए तो कार्ड हमेशा अपने स्तंभ किनारे करने के लिए किनारे भरने।.
· kamo-internal
ऑडियो / वीडियो / रिंगटोन subtabs में विभाजित AV सेटिंग्स
ऑडियो / वीडियो टैब को तीन आंतरिक सबटाब में पुनर्गठित करता है और देता है प्रत्येक क्षैतिज रूप से बाहर इसलिए सेटिंग्स दृश्य के भीतर फिट बिना हम पहले खड़ी स्क्रॉल की दीवार थी। इसके अलावा वास्तविक पर इंगित करने के लिए रिंगटोन कैटलॉग को ठीक करता है /ध्वनि / रिंगटोन.mp3 परिसंपत्ति के बजाय phantom पथ के तहत /ध्वनि / रिंगटोन /, इसलिए पूर्वावलोकन और हमेशा पर सॉफ्टफोन सत्र एक एकल canonical रिंगटोन साझा करें।.
· kamo-internal
ऑडियो / वीडियो सेटिंग्स टैब और तार को सॉफ्टफोन में जोड़ें
प्रति-डिवाइस एवी वरीयताओं की दुकान (स्थानीय भंडारण, मशीन-विशिष्ट) जोड़ती है, नहीं roaming) प्लस एक पूरी तरह से चित्रित टैब पर / सेटिंग / सदस्य /<id> के लिए माइक्रोफोन, स्पीकर, रिंगर और कैमरे को कॉन्फ़िगर और परीक्षण करना। सॉफ्टफोन टूल विंडो, रिंगटोन प्लेबैक और एसआईपी एसडीके एडाप्टर अब इन सेटिंग्स को लाइव सम्मान दें: सेटसिंकआईडी के माध्यम से डिवाइस रूटिंग, getUserMedia बाधाओं (deviceId + EC/NS/AGC/sample rate), DTMF स्वर मात्रा, रिंगर डिवाइस + स्वर चयन, mute-on-join, और डेस्कटॉप सूचनाएं।.
· kamo-internal
हमेशा पर एसआईपी सत्र के साथ ऑटो पॉपअप + रिंगटोन इनबाउंड कॉल
केवल तभी रजिस्टर करने के लिए इस्तेमाल किया गया था जब पॉपअप टूल विंडो खुली थी - इसे बंद करें और इनबाउंड कॉल चुपचाप याद किए गए। सत्र को एक में छोड़ दें सॉफ्टफोनप्रोवाइडर ने प्रामाणिक टूलवैपर पर मुहिम शुरू की, इसलिए SIP REGISTER है जब ऑपरेटर में हस्ताक्षर किया जाता है और किसी भी इनबाउंड INVITE ऑपरेटर का ध्यान आकर्षित करता है। - app/hooks/usesoftphone.ts: कार्यान्वयन हुक का नाम बदलकर यह सुनिश्चित करने के लिए Softphonesession का उपयोग करें कि इसे वास्तव में एक बार माउंट किया जाना चाहिए प्रति सत्र (यह SIP क्रेडेंशियल्स और REGISTER का मालिक है)। - ************* नया सॉफ्टफोनप्रोवाइडर सत्र चलाता है एक बार हुक, राज्य को संदर्भ के माध्यम से उजागर करता है, और इसके आने पर प्रतिक्रिया करता है कॉल संक्रमण - एक उपकरण के माध्यम से सॉफ्टफोन टूल विंडो पॉप: ओपन कस्टम इवेंट (single-instance, इसलिए यह सिर्फ ध्यान केंद्रित करता है कि क्या पहले से ही खुला है) कॉलर आईडी के साथ शीर्षक, और उपयोगकर्ता तक एक लूप पर / ध्वनि / रिंगटोन.mp3 खेलते हैं स्वीकार करता है / अस्वीकार करता है / दूरस्थ लटकाया जाता है। सार्वजनिक उपयोगSoftphone() हुक पढ़ता है संदर्भ से। - **************** संदर्भ में आयात स्विच करें। ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************** ***************************** ************************************** ******************************************************************** *********************************************************************************************************************************************************** ******************************************************************************************************************************** SoftphoneProvider इसलिए सत्र के रूप में लंबे समय तक रहता है auth राज्य। क्लासिक NA कैडेंस (440Hz + 480Hz, 2s ऑन, 4s साइलेंस) so audio.loop=true एक प्राकृतिक अंगूठी / रोकें / अंगूठी पैटर्न पैदा करता है। ~72 KB. ब्राउज़र प्रारंभिक प्ले () को तब तक अवरुद्ध कर सकते हैं जब तक उपयोगकर्ता ने चेतावनी दी है। पृष्ठ; ऑपरेटर ने आम तौर पर कम से कम एक बार कॉल करके क्लिक किया है। इसलिए यह शायद ही कभी अभ्यास में एक मुद्दा है।.
· KlusterServices
बीज pbx.k1.kluster.kamocrm.com एक स्थिर डोमेन के रूप में
ब्राउज़र को SIP-over-WSS की आवश्यकता होती है, जो वास्तविक के साथ होस्टनाम पर उतरने के लिए TLS प्रमाणन FreePBX admin / WS होस्टनाम को STATIC DOMAINS में जोड़ें, इसलिए ऑटो-cert seeder प्रावधानों एक प्रति होस्ट Let's Encrypt cert इसके लिए इसके बजाय, यह Traefik पहुँच लॉग में दिखाई देता है। एक बार जब प्रमाण जारी किया जाता है, तो अस्थायी आंतरिक.kamocrm.com/voip-ws पथ (पहले वर्कअराउंड के रूप में प्रस्तुत) सेवानिवृत्त हो सकते हैं और सॉफ्टफोन कर सकते हैं canonical pbx.k1.kluster.kamocrm.com/ws URL का उपयोग करें।.
· kamo-register
HTML हेड में org लघु नाम और विवरण का उपयोग करें
Config.json siteNameShort के साथ org-API आधारित शीर्षक तर्क बदलें शीर्षक अन्य साइटों के समान पैटर्न का अनुसरण करता है: "Register - {siteNameShort}". config.json से विवरण मेटा टैग जोड़ता है। अप्रयुक्त useThemeConfig आयात को हटा देता है।.
· kamo-login
HTML हेड में org लघु नाम और विवरण का उपयोग करें
DynamicMetaLoader अब "Login - {siteNameShort}" के लिए दस्तावेज़ सेट करता है। और मेटा विवरण टैग में ऑर्ग विवरण लिखते हैं। स्थैतिक लेआउट.tsx गिरावट अद्यतन; hardcoded KamoCRM OG/Twitter मेटाडाटा हटा दिया।.
· kamo-internal
HTML हेड में org लघु नाम और विवरण का उपयोग करें
DynamicMetaLoader अब document.title to siteNameShort (was siteName) और मेटा विवरण टैग में ऑर्ग विवरण लिखते हैं। स्थैतिक लेआउट.tsx गिरावट सामान्य मूल्यों के लिए अद्यतन किया गया।.

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं