Elevate softphone to enterprise-grade with premium features
ENTERPRISE FEATURES: - Call Recording with visual indicator and pulsing animation - Call Transfer functionality for seamless handoffs - Call Notes with expandab...
Add expandable softphone panel to ChatBox
- Add PhoneInTalk icon button to ChatBox header for softphone toggle - Create comprehensive SoftphonePanel component with full UI - Implement dialpad with 0-9, ...
Remove connected check and add debug logging for STOMP activation
STOMP client was not activating because connected check was preventing it. Added debug logs to diagnose.
Activate STOMP client only after SockJS opens
Critical bug fix: STOMP client was being activated before SockJS opened, causing immediate disconnect. Now waits for SockJS onopen event before activating STOMP...
WebSocket कनेक्शन के लिए SockJS गिरबैक परिवहन सक्षम करें
यदि WebSocket अपग्रेड विफल हो जाता है तो xhr-streaming और xhr-polling की अनुमति दें।.
Enhance ChatBox with dynamic color system and increased height
- Increase message viewing area by 33% (DOCKED_HEIGHT: 360 -> 480) - Create ChatBoxStyles.tsx with dynamic CSS variable-based color system - Apply primary color...
पेशेवर पॉलिश के साथ चैटबॉक्स डिजाइन को आधुनिक बनाना
- सूक्ष्म ग्रे ढाल के साथ स्वच्छ सफेद पृष्ठभूमि लागू करें - प्राथमिक रंग योजना के साथ एकीकृत कस्टम स्क्रॉलबार स्टाइल जोड़ें - ढाल पृष्ठभूमि और विषम सीमाओं के सा...
उपयोग में अवैध 'सक्रिय' संपत्ति की जांच निकालेंChatWebSocket
@stomp/stompjs से क्लाइंट प्रकार में 'सक्रिय' संपत्ति नहीं है। क्लाइंट.एक्टिवेट () के बाद से अमान्य जांच को हटा दिया गया है जिसे तुरंत ग्राहक निर्माण के बाद बुल...
Wait for SockJS to open before activating STOMP client
- Fix race condition where STOMP client activated before SockJS connection was ready - Move client.activate() to SockJS onopen callback - This should fix immedi...
रूट सभी WebRTC API 8443 पोर्ट करने के लिए अनुरोध करता है
- मीडिया का उपयोग करने के लिए सभी WebRTC API मार्गों को अद्यतन किया गया। - अब WebRTC समापन बिंदुओं के लिए Traefik का उपयोग नहीं करते - मैच मीडिया एपीआई और WebSo...
रूट ऑल मीडिया सर्विस अनुरोध 8443 (bypass Traefik) पोर्ट करने के लिए
- मीडिया का उपयोग करने के लिए सभी मीडिया एपीआई मार्गों को अपडेट किया गया। - अब मीडिया सर्विस के लिए ट्रेफिक का उपयोग नहीं करते - दोनों एपीआई और WebSocket 8443 प...
8443 पोर्ट (बाहरी) से कनेक्ट करें जो नोडपोर्ट 30843 मार्गों से जुड़ा हुआ है।
- रूटर बाहरी 8443 k1m1 NodePort 30843 को आगे बढ़ाता है - ब्राउज़र media.kamocrm.com: 8443 - आंतरिक नोडपोर्ट 30843 (Kubernetes वैधता रेंज) है।
WebSocket के लिए मीडिया सर्विस पोर्ट 8443 से कनेक्ट करें
- अद्यतन WebSocket कनेक्शन media.kamocrm.com: 8443 Bypass Traefik for WebSocket-only यातायात - मीडिया सर्विस के लिए डायरेक्ट एचटीटीपी 1.1 कनेक्शन का उपयोग करता ...
HTTP / 2 संगतता के लिए WebSocket-only परिवहन प्रतिबंध निकालें
- ब्राउज़र WebSocket एपीआई HTTP / 2 (RFC 8441 लागू नहीं) का समर्थन नहीं करता है। - नेटिव वेबसोकेट को HTTP / 1.1 की आवश्यकता होती है अपग्रेड करना जो / 2 HTTP पर ...
WebSocket-only परिवहन (Disable XHR मतदान)
- [websocket, xhr-streaming, xhr-polling] से [websocket] - एक्सएचआर मतदान के लिए गिरावट को हटा देता है - बलों शुद्ध WebSocket कनेक्शन - अगर WebSocket गिरावट के ...
WebSocket सीधे media.kamocrm.com से कनेक्ट करें
- मूल दृष्टिकोण को उलटा: मीडिया से कनेक्ट करें। - अनावश्यक समान-origin जटिलता को हटा दिया - मध्यवेयर से हटाए गए / ws बायपास (आवश्यक नहीं) - आंतरिक IngressRoute ...
Kamowsmedia-service से स्पष्ट नामस्थान संदर्भ निकालें
- दोनों सेवाएं समान नामस्थान (कामो) में हैं - स्पष्ट नामस्पेस संदर्भ की जरूरत नहीं है - संभावित क्रॉस-नेमस्पेस मुद्दों से बचें
आगे से लिखना / लिखना विन्यास (ट्रैफिक द्वारा संभाला)
- Remove Next.js / ws पथ के लिए फिर से लिखना - WebSocket रूटिंग अब Traefik IngressRoute स्तर पर संभाला - Traefik मार्ग आंतरिक.kamocrm.com/ws -> सीधे मीडिया सेवा
रूट / ws सीधे ट्राफिक के माध्यम से मीडिया सर्विस के लिए अनुरोध करता है
- IngressRoute में / ws पथ के लिए समर्पित मार्ग जोड़ा गया - Routes आंतरिक.kamocrm.com/ws -> सीधे मीडिया सेवा - उसी सर्वर का उपयोग WebSocket समर्थन के लिए मीडिया...
अनुमति / ws WebSocket बिना auth redirect के समापन बिंदु
- मिडलवेयर बाईपास के लिए जोड़ा / ws पथ - SockJS को पुनर्निर्देशित किए बिना /ws /info से कनेक्ट करने की आवश्यकता है - WebSocket कनेक्शन अभी भी है *** कुकी - WebS...
उसी ओरिजिन से WebSocket कनेक्शन बदलें
- media.kamocrm.com से एक ही मूल (internal.kamocrm.com) में परिवर्तित - क्रॉस-origin WebSocket कनेक्शन मुद्दों से बचें जोड़ा गया Next.js मीडिया सर्विस के लिए प्...
WebRTC समापन बिंदुओं के लिए API प्रॉक्सी मार्ग जोड़ें
जोड़ा /api/webrtc/config प्रॉक्सी to MediaService - जनस प्रमाणीकरण के लिए जोड़ा /api / webrtc / टोकन प्रॉक्सी जोड़ा गया /api/webrtc/call/initiate, जवाब, अंत प्र...
GetDisplayMedia से अवैध कोडर संपत्ति निकालें
- सरल वीडियो का उपयोग करना: स्क्रीन साझा करने के लिए सही - बिल्ड अब सफल होना चाहिए
बिल्ड त्रुटि को हल करें - कॉलएंड के साथ फोनऑफ को बदलें
फोनऑफ़ आइकन @mui/icons-material में मौजूद नहीं है - कॉलएंड का उपयोग करना जो सही MUI आइकन है - हटाए गए अप्रयुक्त डुप्लिकेट फाइलें (ChatboxWebRTC, VideoCallView, ...
पूर्ण सहकर्मी से सहकर्मी WebRTC संकेतन के साथ बुला
पूर्ण सिग्नलिंग समर्थन के साथ जोड़ा गया उपयोगवेबआरटीसी हुक - एकीकृत WebSocket संकेतन (प्रस्ताव, उत्तर, ICE उम्मीदवारों) - उत्तर / डिकोडर बटन के साथ आने वाली कॉल...
ऑडियो / वीडियो कॉल के लिए जनस वेबआरटीसी एकीकरण जोड़ें
- WebRTC कॉल प्रबंधन के लिए जोड़ा गया उपयोगJanusWebRTC हुक इन-चैट वीडियो डिस्प्ले के लिए VideoCallPanel घटक जोड़ा गया - सहज कॉल अनुभव के लिए चैटबॉक्स के साथ एकी...
SockJS में WebSocket परिवहन बहाल करें
- वेबसॉकेट परिवहन का उपयोग करने के लिए रिवर्ट करें (पर मतदान नहीं) - WebSockets मानक हैं और ठीक से काम करना चाहिए - वास्तविक WebSocket कनेक्शन मुद्दे को ठीक करन...
HTTP / 2 मुद्दों से बचने के लिए SockJS में WebSocket परिवहन छोड़ें
- websocket के बजाय xhr-streaming और xhr-polling परिवहन का उपयोग करें - ये परिवहन WebSocket अपग्रेड की आवश्यकता के बिना HTTP / 1.1 और HTTP / 2 दोनों के साथ काम ...
HTTP / 2 WebSocket अपग्रेड मुद्दों को संभालने के लिए SockJS परिवहन को कॉन्फ़िगर करें
- WebSocket को पसंद करने के लिए स्पष्ट रूप से SockJS परिवहन आदेश को कॉन्फ़िगर करें, फिर xhr-streaming / xhr-polling के लिए वापसी - HTTP / 2 WebSocket अपग्रेड वि...
सुनिश्चित करें कि संदेश मार्ग नेक्स्ट.js द्वारा मान्यता प्राप्त है।
- मार्ग को सत्यापित करने के लिए जोड़ा गया लॉगिंग मारा जा रहा है - रूट फ़ाइल मौजूद है और संरचना Next.js 15 के लिए सही है
STOMP से गैर मौजूदा 'सक्रिय' संपत्ति निकालें ग्राहक लॉगिंग
- STOMP ग्राहक के पास 'सक्रिय' संपत्ति नहीं है - केवल 'कनेक्टेड' संपत्ति की जांच करें जो सही राज्य सूचक है
STOMP क्लाइंट से बिना समर्थित WebSocketError हैंडलर निकालें
OnWebSocketError क्लाइंटविकल्प में वैध संपत्ति नहीं है - SockJS त्रुटि हैंडलर (onerror, onclose) पहले से ही त्रुटि हैंडलिंग प्रदान करते हैं
व्यापक WebSocket त्रुटि हैंडलिंग और लॉगिंग जोड़ें
- कनेक्शन विफलताओं को पकड़ने के लिए SockJS त्रुटि हैंडलर (onopen, onerror, onclose) जोड़ा गया - मूक विफलताओं की पहचान करने के लिए कनेक्शन टाइमआउट डिटेक्शन (10 स...
Incorrect HTTPS एजेंट वर्कअराउंड निकालें
- संशोधित परिवर्तन जो प्रमाण पत्र सत्यापन को बायपास करते हैं - प्रमाणपत्र ऑटो-सर्ट सेवा (लेट की एनक्रिप्ट) द्वारा जारी किए जाते हैं, स्वयं-साइन नहीं किया जाता ह...
एजेंट के साथ HTTPS का उपयोग करें जो स्वयं-सिग्न प्रमाण पत्र स्वीकार करता है
- हमेशा HTTPS (HTTP) का उपयोग करने के लिए उलटा - अस्वीकार के साथ जोड़ा गया एचटीटीपी एजेंट अनधिकृत: स्व-संदेशित certs के लिए झूठ यह सर्वर-साइड नेक्स्ट.js मार्गों...
एसएसएल प्रमाणित मुद्दों से बचने के लिए मीडिया सर्विस के लिए Kubernetes सेवा नाम का उपयोग करें
- सर्वर-साइड नेक्स्ट.js मार्गों का अब उपयोग करें ********** - यह https://media.kamocrm.com से कनेक्ट होने पर स्वयं से हस्ताक्षरित प्रमाणपत्र त्रुटियों से बचाता ...
पुराने / एपी / सुरक्षा / मीडिया / मार्गों को हटा दें जो अनुरोधों को रोक रहे थे
- पुराने मार्ग एपीआई सेवा के लिए आगे बढ़ रहे थे, जिसमें अब मीडिया समापन बिंदु नहीं है - सभी मीडिया अनुरोधों को सीधे मीडिया सर्विस के लिए / एपीआई / मीडिया / मार्...
मीडिया सर्विस सत्र निर्माण के लिए विस्तृत त्रुटि लॉगिंग जोड़ें
लॉग मीडिया सर्विस यूआरएल को बुलाया जा रहा है - लॉग प्रतिक्रिया हेडर - पूर्ण त्रुटि विवरण के साथ बढ़ी हुई त्रुटि लॉगिंग - डीबगिंग के लिए त्रुटि प्रतिक्रिया में य...
अन्य Next.js परियोजनाओं से मिलान करने के लिए कार्यों/चेकआउट@v4 को उलट दें
- जटिल मैनुअल चेकआउट तर्क को हटा दें जो लटका हुआ था - kamo-login और kamo-register जैसे मानक कार्यों/checkout@v4 का उपयोग करें - डोकर को आसानी से उपयोग करने के ल...
फांसी को रोकने के लिए टाइमआउट के साथ उथले क्लोन का उपयोग करें
- तेजी से क्लोनिंग के लिए गहराई से 1 - जोड़ें टाइमआउट (Utow के लिए 120s, पूर्ण के लिए 300s) - यदि उथले विफल हो जाता है तो पूर्ण क्लोन में गिरना - यदि आवश्यक हो ...
कार्य निर्देशिका त्रुटि से बचने के लिए गेट क्लोन से पहले वैध निर्देशिका में परिवर्तन
- वर्कस्पेस को हटाने / बंद करने से पहले // में बदलें - केवल निर्देशिका को हटा दें अगर यह मौजूद है लेकिन एक गिट रेपो नहीं है - 'वर्तमान कार्य निर्देशिका पढ़ने मे...
Use hardcoded repository URL and set GITHUB_WORKSPACE env var
- Use direct repository URL to avoid DNS/hostname resolution issues - Set GITHUB_WORKSPACE environment variable for subsequent steps - Use env var in Docker bui...
Use git clone directly instead of relying on empty workspace
- Clone repository using git directly with repository URL - Handle both fresh clone and existing repository cases - Use working-directory for Docker build actio...
Simplify all checkout steps - remove git operations that hang
- Remove git fetch/reset/clean from deploy jobs - Forgejo runner already has code checked out - Just verify GITHUB_WORKSPACE is valid
Simplify checkout step - remove git clone that was hanging
- Remove git clone logic that was causing 20+ minute hangs - Forgejo runner already has code checked out, just verify directory - Remove unnecessary git fetch/r...
Improve checkout and Docker build context handling
- Add proper repository cloning if not already checked out - Verify Dockerfile exists before building - Use absolute paths for Docker build context - Fix workin...
Replace actions/checkout with manual git checkout to avoid DNS issues
- Replace actions/checkout@v4 with manual git checkout commands - Forgejo runner already has code checked out, just need to ensure clean state - Fixes DNS looku...
जैसा कि आप शिपिंग देखते हैं?
यह सब अपने कार्यक्षेत्र में आता है। मुफ्त योजना शुरू करें और इस पृष्ठ को एक महीने में फिर से पढ़ें।.
