परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· VOIPService
एक परिभाषा से, इनबाउंड वेबहुक यूआरएल को सर्व करें
एक व्यवस्थापक ने एक टेक्स्ट प्रदाता को जोड़ने के लिए कामो के इनबाउंड URL को पेस्ट करना होगा वाहक का अपना कंसोल, और कुछ भी नहीं बताया कि यह क्या था। उस कदम को याद करना पहले किसी भी परीक्षण के पक्ष में कोई लक्षण नहीं: संदेश पूरी तरह से भेज देते हैं और हर उत्तर छोड़ दिया जाता है। ************* हार्डकोड के बजाय सेवा की कारण के लिए ब्राउज़र में रिंगसेंट्रल की रीडायरेक्ट यूआरआई परोसा जाता है: मूल्य एक तैनाती संपत्ति से आता है, और फ्रंटेंड में एक प्रति आत्मविश्वास रखता है वास्तविक एक चाल के बाद पुराने होस्ट को प्रदर्शित करना। यूआरएल अब एक परिभाषा है। TelnyxProvisioner इसे ग्राहक के रूप में देखता है मैसेजिंग प्रोफाइल और सेटिंग्स स्क्रीन इसे किसी को उसके द्वारा चिपकाने के लिए दिखाती है हाथ; जब वे दो तार थे तो कुछ भी विफल नहीं होगा - एक व्यवस्थापक को केवल URL को कॉन्फ़िगर करने का निर्देश दिया गया है सुनना InboundWebhookUrls वह परिभाषा है, और इसके परीक्षण का दावा है कि हर यह स्लग इनबाउंडSmsNormalizer के माध्यम से वापस हल करता है, इसलिए दोनों पक्ष सहमत होते हैं। किसी तालिका के बजाय निर्माण द्वारा किसी को अद्यतन करने के लिए याद रखना चाहिए। एंडपॉइंट यह भी रिपोर्ट करता है कि क्या एक वाहक की पलटाव वास्तव में वायर्ड है - एक हस्ताक्षर चेक और एक पार्सर। किसी वाहक के लिए यूआरएल को सौंपना जिसका पेलोड कुछ भी पढ़ा नहीं सकता कि कुछ ऐसी चीज़ को कॉन्फ़िगर करने के लिए एक निर्देश होगा जो तब मना कर देता है हर संदेश, जो स्पष्ट रूप से कह रहा है कि यह अभी तक समर्थन नहीं है से भी बदतर है।.
· kamo-internal
एक सेटिंग जो हर नंबर को फोन सिस्टम पर कवर करती है
अनुमोदित रूटिंग डिज़ाइन में तीन टेयर थे और उनमें से केवल दो तक पहुंच योग्य थे। एक नंबर अपने स्वयं के टेक्स्ट प्रदाता को नाम दे सकता है और विफल हो सकता है कि फोन सर्वर था अपने आप को पाठ करने के लिए कहा - लेकिन मध्य स्तरीय, "जब तक कोई संख्या अन्यथा कहती है, हमारे पाठ Telnyx के माध्यम से जाते हैं, TextRouter में लागू किया गया था और कहीं भी सेट करने योग्य नहीं था। An एक FreePBX पर दो सौ DIDs के साथ संगठन को दो सौ पंक्तियों को संपादित करना पड़ा। एक तथ्य व्यक्त करें, जो डेटा प्रविष्टि नौकरी है, नंबर स्क्रीन को होना चाहिए था बचना। यह अब फोन सर्वर पर ही एक ड्रॉपडाउन है। नामकरण की तीन चीजें: - मर्ज (Last) को बचाने के लिए चलाता है। इसके ऊपर प्रत्येक प्रदाता शाखा ASSIGNS इसके बजाय कॉन्फ़िगरेशन जेसन, इसलिए इसका पहला संस्करण था चुपचाप Telnyx सर्वर पर गिरा दिया - एक प्रदाता जिसकी शाखा होती है इसके बाद यह मूल रूप से बैठ गया। - "Nothing - प्रत्येक नंबर को व्यक्तिगत रूप से सेट करें" एक खाली विकल्प के बजाय, क्योंकि एक खाली ड्रॉपडाउन एक निर्णय के बजाय unset के रूप में पढ़ा। - कुंजी दो संदर्भों में दो भाषाओं में एक स्ट्रिंग है, और बहाव है SILENT: सेटिंग बचाता है, ड्रॉपडाउन अभी भी प्रदाता को दिखाता है जो था उठाया, और गिरावट पर निर्भर हर संख्या चुपचाप के माध्यम से गिर जाता है फोन सर्वर के माध्यम से texting - जो FreePBX के लिए सभी पर texting का मतलब है। तो फॉर्म आयात DEFAULT TEXT INSTANCE KEY, और textRouteContract.test.ts पिन यह TextRouter.java के खिलाफ रास्ता billingCycles.test.ts पिन बिलिंग enum। कि गार्ड जानबूझकर क्या यह साबित करता है के बारे में ईमानदार है। क्रॉस रेपो आधा छोड़ देता है जब भी भाई-बहन चेकआउट अनुपस्थित है या कहानी - जो अधिकांश समय है - इसलिए इसे "जब वह स्रोत उपलब्ध है" नाम दिया गया है और एक पास का मतलब है "नहीं" विपरीत, कभी "सत्यापित" नहीं। हमेशा रनों का दावा वह होता है जो हमेशा रन करता है जब गार्ड को उद्देश्य पर इसे तोड़ने से जांच की गई तो एक नाम पकड़ लिया। Design doc updated: दोनों सीमाएं इसे deferred के रूप में सूचीबद्ध - एक वाहक केवल संगठन किसी उत्तर को थ्रेड करने में असमर्थ है, और MMS Telnyx के माध्यम से — दोनों बंद हैं 8eaebfb.
· kamo-internal
एक स्टेटस बदलाव पर प्रतिक्रिया न केवल एक टिप्पणी के लिए
एक निश्चित घटना पर "वार" एकमात्र सबसे प्राकृतिक चीज है जो किसी को भी एक में कहना चाहता है बग धागा, और केवल टिप्पणियों पर प्रतिक्रियाओं की पेशकश करने के लिए यह कहने के लिए एक टाइपिंग का मतलब है। घटना गोली के तहत केन्द्रित, और जब तक पंक्ति hovered है छिपा, चिप्स की तरह एक टिप्पणी पर।.
· kamo-internal
लाइव थ्रेड अपडेट और प्रतिक्रियाएं जो वास्तव में पहुंच योग्य हैं
धागे के दो हिस्सों का निर्माण किया गया था और फिर असंबद्ध छोड़ दिया गया। सर्वर ने हर टिप्पणी और स्टेटस इवेंट को `chat.session.{guid}` में प्रकाशित किया है। चूंकि फीचर उतरा, और सब्सक्राइब नहीं - इसलिए ट्रांसक्रिप्ट केवल स्थानांतरित हो गया जब पाठक ने खुद कुछ पोस्ट किया, और दो लोग उसी की प्रशंसा करते हैं रिपोर्ट में अलग-अलग इतिहास देखा जब तक उनमें से एक फिर से लोड हो गया। अब सदस्यता लें उसी संदर्भ के माध्यम से `TicketChat` का उपयोग करता है, पहले लोड के बाद ऐसा हो गया है फ्रेम पहुंचने के मध्य में पहले से ही उड़ान में पहले से ही पृष्ठ द्वारा ओवरराइट नहीं किया गया है। यह फिर से पढ़ने के बजाय फ्रेम को समाप्त करने के बजाय पेज, जो कि किसके विपरीत है चैट करता है और जानबूझकर: एक चैट सैकड़ों संदेशों को चलाता है, एक बग थ्रेड एक है मुट्ठीकरना, और फ्रेम न तो उत्तर उद्धरण और न ही प्रतिक्रिया सूची - एक जब तक कि कुछ और ने फिर से लोड नहीं किया, तब तक परिशिष्ट पंक्ति अपने उद्धरण के बिना प्रदान करेगी। प्रतिक्रियाएं ख़राब थीं: सर्वर, सर्विस और डीटीओ क्षेत्र सभी भेज दिया गया, और कोई नहीं ग्राहक इसमें से किसी तक पहुंच सकता है। वहाँ कोई मार्ग नहीं था, कोई एपी विधि और नहीं खींचा। यह सब अब तीन है, और `isReacted` यात्राओं के रूप में राज्य के बजाय ASKED किया जा रहा है एक डेल्टा की तुलना में, इसलिए दो बार फ्लिप करने के बजाय एक रेसिंग डबल-क्लिक अभिसरण; सर्वर का जवाब इसमें विलय करने के बजाय पंक्ति की सूची को बदल देता है। चार इमोजी, इनलाइन की पेशकश की। एक बग थ्रेड एक चैट नहीं है - उपयोगी प्रतिक्रियाएं हैं "मैंने इसे भी मारा", "इस पर दिखने" - और एक पूर्ण पिकर इससे अधिक नियंत्रण होगा। बातचीत के लिए उपयोग किया जाता है। अप्रयुक्त चिप्स केवल उनके होवर पर खींचे जाते हैं टिप्पणी, इसलिए दस टिप्पणियां चालीस ग्रे बटन नहीं हैं। परीक्षण उद्देश्य पर websocket संदर्भ नकली: असली है DEFAULT एक नहीं है कि केवल चेतावनी देता है, तो एक परीक्षण के बिना एक प्रदाता के दायरे में पारित किया जाएगा जबकि सदस्यता पूरी तरह से अनुपस्थित थी।.
· MediaService
थ्रेड पेज अपने रीडर का नाम देता है और एक अप्रयुक्त सहायक ड्रॉप करता है
`viewerMemberId` धागा पृष्ठ पर, इसलिए सांत्वना दर्शक के अपने आप को बता सकती है किसी अन्य व्यक्ति से प्रतिक्रियाएं /api/user-info को दूसरे कॉल के बिना होती हैं। रेफरी एक दूसरे से भरा Async लाने के लिए खाली है, और एक प्रतिक्रिया चिप जो बिना भरे शुरू होता है और खुद को एक पल बाद में विफल होने के रूप में पढ़ता है क्लिक करें। एक स्ट्रिंग, कारण के लिए इस सुविधा में हर आईडी एक है: एक 19-अंक int64 खो देता है JSON.parse. `none()` चला गया है - खाली मामले के लिए एक सुविधा के रूप में लिखा गया है और कभी नहीं कहा जाता है।.
· VOIPService
वास्तव में Telnyx खाता सेटअप का निर्माण, MMS ले लो, और एक वाहक-केवल org को धागे को पकड़ो
तीन अंतराल, और पहली विशेषता बिल्कुल काम नहीं कर रही थी। TELNYX PROVISIONING WAS DEFINED and CALLED by NOTHING TelnyxProvider.provision(), सुनिश्चित करेंMemberCredential() और ************* सभी अस्तित्व में हैं और कोई कॉलर नहीं था। इसलिए व्यवस्थापक ने एक एपीआई कुंजी को पास किया, बचाया, फोन सर्वर को बनाया गया था, और कुछ भी जो कुछ भी अपने Telnyx खाते में बनाया गया था - जिसके बाद उसके बाद प्रदाता ने वॉयस कॉल = झूठे और एसएमएस = झूठे एक उपाय के साथ उन्हें बताते हुए बताया प्रेस सेव, जो हमेशा के लिए कुछ नहीं किया जाएगा। TelnyxSetupService अब हर अद्यतन पर और हर अद्यतन पर चल रही है, जिस तरह से JustCall's webhook पंजीकरण पहले से ही करता है। यह कनेक्शन लिखता है और मैसेजिंग-प्रोफाइल ids को वापस configJson में, यही कारण है कि यह एक सेवा है और नहीं प्रदाता में एक पंक्ति: एक प्रदाता उस कॉन्फ़िगरेशन से बनाया गया है और इसमें कोई नहीं है भंडार अब कई टकसालों को असाइन करना जो सदस्य के एसआईपी क्रेडेंशियल और संदेश प्रोफ़ाइल को नंबर संलग्न करता है - सबसे अधिक उपयोगकर्ताित मैनुअल चरण, और कोई लक्षण नहीं है, क्योंकि एक अटैच संख्या पूरी तरह से भेजती है और कभी नहीं प्राप्त करना एमएमएस तेलिनिक्स मीडिया urls लेता है, कभी नहीं बाइट्स। JustCall पहले से ही यह वास्तव में हल हो गया था एक रेडिस समर्थित सार्वजनिक लिंक के साथ; यह बस JustCall के लिए नामित किया गया था। यह अब विस्तारित है एक तटस्थ आउटबाउंडमीडियाहैंडऑफ़, इसलिए एक बीन दोनों और कोई JustCall कॉल साइट पर काम करता है या परीक्षण बदल गया। दोनों Telnyx रेल मीडिया ले जाते हैं, और हर इनकार कहा जाता है - नहीं वाहक पर MMS, कोई हैंडऑफ़ कॉन्फ़िगर नहीं किया गया है, या एक फ़ाइल प्रकाशक अस्वीकार करता है - तो एक सदस्य कभी नहीं देखता है एक पाठ चुपचाप लापता चित्र के साथ आता है। एक CARRIER-ONLY ORG अब एक अनुबंध हो सकता है यह निर्धारित करने के बजाय पिछले प्रतिबद्ध दस्तावेज की सीमा है। VOIP CONVERSATIONS.INSTANCE ID is nullable (kamo-shared-library ae95b01e), तो एक संख्याओं और एक वाहक के साथ org और कोई फोन सर्वर के बजाय उत्तर को थ्रेड नहीं कर सकता है इसे गिरा दिया गया। दो चीजें जो इसके साथ चलनी थीं: - डेडप। SQL DISTINCT के रूप में NULLs का व्यवहार करता है, इसलिए मौजूदा अद्वितीय सूचकांक बंद हो जाता है वास्तव में पंक्तियों को कवर करना यह परिचय देता है। पर आंशिक अद्वितीय सूचकांक (ORG ID, MEMBER ID, EXTERNAL PHONE NUMBER) WHERE INSTANCE ID is NULL. - दो NPEs पहले null के लिए इंतजार। NATS कार्यक्रम का निर्माण मानचित्र के साथ किया गया था। जो एक शून्य VALUE पर फेंकता है - नीचे के हैंडलर द्वारा पकड़ा गया और चेतावनी पर लॉग इन किया गया, इसलिए सदस्य की एसएमएस विंडो हमेशा अपडेट नहीं होगी। SmsController बुलाया ToString() on it outright. दोनों के लिए डीडीएल डॉक्स/एसक्यूएल/ में होता है और हाथ से लागू होता है; प्रारंभकर्ता सेवा नहीं है इस क्लस्टर में तैनात।.
· kamo-shared-library
एक पाठ वार्तालाप बिना फोन सर्वर के मौजूद हो सकता है
VOIP CONVERSATIONS.INSTANCE ID नहीं था, जो चुपचाप फैसला किया कि हर टेक्स्ट थ्रेड एक PBX से संबंधित है। एक संगठन जो नंबर और मैसेजिंग खरीदता है एक वाहक और उत्तर से सभी पर कोई कॉल नहीं - texting-only, कोई फोन सर्वर कहीं भी - एक धागे के लिए कोई VoipProviderInstance नहीं है। वेशभूषा Send सकता है (एक संख्या का अपना पाठ मार्ग फोन सर्वर की आवश्यकता नहीं है) और हर जवाब में था गिरा दिया, क्योंकि ingest इसे नीचे दायर करने के लिए एक बातचीत का निर्माण नहीं कर सकता है। Null अब एक वास्तविक राज्य है और javadoc कहते हैं कि इसका मतलब क्या है, जिसमें वस्तु शामिल है यह कभी नहीं होना चाहिए: एक BulkTextProviderInstance आईडी। दोनों टेबल UUID-keyed हैं और गलत फैक्ट्री को आई डी सौंपने के बजाय "इस तरह के उदाहरण नहीं" के रूप में विफल रहता है जोर से विफल रहा। Dedupe null जीवित रहता है, लेकिन मुक्त करने के लिए नहीं - SQL NULLs को अलग तरह से व्यवहार करता है, इसलिए मौजूदा अद्वितीय सूचकांक इन पंक्तियों को कवर करने से रोकता है। डीडीएल के बगल में वीओआईपीसेवा एक जोड़ता है (ORG ID, MEMBER ID, EXTERNAL PHONE NUMBER) WHERE Instance ID वास्तव में उस मामले के लिए नल है।.
· kamo-internal
जिस योजना ने आपको उस पृष्ठ पर यात्रा की थी जो इसे बेचती है
"व्यापार के लिए चलें" ने बिलिंग कंसोल को कुछ भी नहीं चुना। पसंद व्यक्ति बस बनाया गया था फर्श पर गिरा दिया और उन्हें फिर से इसे बनाने के लिए कहा गया था, एक स्क्रीन पर चार योजनाओं की सूची और कोई नहीं - इस यात्रा पर एक पल जहां वे था पहले से ही निर्णय लिया। अब कोड उसी क्वेरी स्ट्रिंग को सब-टैब के रूप में सवारी करता है, जो PlanLinks.ts द्वारा निर्मित और पढ़ा जाता है। कारण उप-टैब है: एक मान्यता प्राप्त मूल्य डिजाइन द्वारा नजरअंदाज किया जाता है, इसलिए एक टाइपो एक उत्पन्न करता है वह लिंक जो काम करता है, कहीं कहीं ज्यादा गिरता है और वह नहीं है जहां उसने कहा कि यह चल रहा था। एक मॉड्यूल दोनों ही हिस्सों का मालिक है जो एक परीक्षण पकड़ देता है। जिस तरह से ऊपरी-cased, क्योंकि योजना कोड की तुलना समानता के खिलाफ की जाती है हर जगह कैटलॉग करें और एक लिंक एक दूसरी वर्तनी का आविष्कार करने के लिए कोई जगह नहीं है। मान्य नहीं यहाँ - इस मॉड्यूल को पता नहीं है कि क्या योजनाएं मौजूद हैं, इसलिए एक कहानी बुकमार्क अपने कोड को ओवर करता है और सांत्वना उस बात को अनदेखा करती है कि वह किस चीज से मेल नहीं खा सकता है, बल्कि उस व्यक्ति पर गलती करने के बजाय जो उसके बाद होता है उनके द्वारा दिए गए एक लिंक। सांत्वना पक्ष अलग से उतर रहा है, एक समवर्ती सत्र के पास उस फ़ाइल पर है।.
· kamo-shared-library
जब उनके कार्ड विफल हो जाता है तो दो अक्षर एक ग्राहक हो जाता है
बिलिंग सर्विस इन को भेजने के लिए चाहते थे क्योंकि डनिंगनोटिफायर लिखा गया था। यह उन्हें **************** - एक समापन बिंदु जो कभी नहीं है ईमेल सेवा पर मौजूद, जहां उस उपसर्ग के तहत एकमात्र नियंत्रक कार्य करता है निर्देशिका तस्वीरें — और डिजाइन द्वारा 404 निगल, क्योंकि एक मेल विफलता होना चाहिए स्ट्राइप को वेबहुक नहीं बनाते। तो एक ग्राहक जिसका कार्ड समाप्त हो गया एक डेटाबेस मिला पंक्ति और मौन: कोई पत्र नहीं, कोई बैनर नहीं, कुछ नहीं। पहले वे जानते थे कि यह था ऐप्स एक सप्ताह बाद खोलने से इनकार करते हैं, जब अनुग्रह अवधि समाप्त हो जाती है। दो canonical टेम्पलेट्स, निरंतर/dotted कुंजी के बाद मानव संसाधन विभाजित और ई-हस्ताक्षर परिवार पहले से ही - बिलिंग का उपयोग करते हैं। भुगतान failed और billing.service suspended, बीज हर दूसरे की तरह प्रति-ऑर्ग। दोनों एक सदस्य के बजाय खाते पर बिलिंग पते पर जाते हैं, क्योंकि जो व्यक्ति भुगतान करता है वह नियमित रूप से वह व्यक्ति नहीं है जो साइन इन करता है, और दोनों लिंक स्ट्राइप के होस्टेड इनवॉइस के लिए सीधे: किसी ऐसे व्यक्ति जिनकी पहुंच अभी रुक गई है उत्पाद के लिए भुगतान करने के लिए उत्पाद में नहीं होना चाहिए। शब्दकरण यह काम करता है कि सतह नहीं हो सकती है। पहला कहना है कि क्या है बकाया, क्या रुक जाता है, और सही दिन यह बंद हो जाता है। दूसरी ओर "नोथिंग को हटा दिया गया है", क्योंकि यह उस क्षण का डर है और नहीं स्क्रीन का उत्तर दिया गया था। बिलिंग सर्विस आधा - /api/email/templates/send पर DunningNotifier इंगित करता है, जो अस्तित्व में है और आंतरिकAuth Filter के पीछे है - अलग से भूमि।.
· kamo-internal
एक प्लान कार्ड कहता है कि यह इसके नीचे एक में क्या जोड़ता है
पिकर ने एक कीमत, एक सीट छत और एक वाक्य दिया। $46 और $80 के बीच चयन उस पर सीट एक स्पष्ट उत्तर के साथ एक निर्णय है, और अधिकांश टीमों के लिए यह गलत है - कैटलॉग ने पूरी क्षमता मैट्रिक्स को सभी के साथ ले लिया है और खरीद पृष्ठ कभी नहीं इसकी एक पंक्ति दिखायी गयी। प्रत्येक कार्ड में अब वह नाम दिया गया है जो उस पर स्विच करता है जो पिछले नहीं है, चार पर बाकी के लिए एक गिनती के साथ समय। Derived, नीचे नहीं लिखा: PlanAddsOver read the same फीचर पंक्तियों / मायप्लान रेंडर्स, इसलिए एक कैटलॉग परिवर्तन दोनों को स्थानांतरित करता है और न ही कहानी जा सकता है। केवल नाम - एक विशेषता कैटलॉग का नाम नहीं है बल्कि दिखाया गया है SHARED MAILBOXES to someone who has never see this product.
· kamo-internal
बिक्री तक पहुंचने का एक तरीका, और एक सीट नियंत्रण जो योजना की सीमा को जानता है
ContactSalesDialog has KamoCRM Inc. का अपना विवरण - Sales@KamoCRM.com और (949) 298-9960 x1 - स्थिरांक के रूप में, जानबूझकर। इस मंच पर प्रत्येक अन्य पता संबंधित है किरायेदार के लिए, और इसको हल करने के लिए एक ही रास्ता एक ग्राहक को एक के बारे में पूछने के लिए भेज देगा KamoCRM अपने संगठन की बिक्री लाइन के लिए वापस योजना बना रहा है। दोनों लाइव लिंक के साथ-साथ पाठ, प्रतिलिपि बटन के साथ; फोन href के रूप में विस्तार किया जाता है;ext=1 तो एक टैप डायल करता है। एक घटक, जिसका उपयोग प्लान पेज और कंसोल द्वारा किया जाता है, क्योंकि फोन नंबर कोई नोटिस नहीं करता है कहानी वास्तव में क्या दो प्रतियां उत्पन्न होती हैं। नए ग्राहकों को लेने वाले पृष्ठ के तीन तरीकों में कंसोल का प्लान कार्ड गलत था। एंटरप्राइज ने प्रति सीट $ 99 मुद्रित किया - इसका प्लान टाइप CUSTOM और kamocrm.com है "कस्टम", इसलिए एक कंपनी दो अलग-अलग चीज़ों को बता रही थी - और यह एक उम्मीद थी एक मूल्य के तहत "33% बंद लागू" बैज के पास नहीं था। यह अब आवेदन पर मूल्य पढ़ता है, कोई आंकड़ा नहीं है, और केवल वही चीज प्रदान करती है जो वास्तव में इसे आगे बढ़ा सकती है: एक बातचीत। स्टार्टर और बिजनेस ने कभी भी एक बार $ 99 प्रति सीट स्टार्टअप शुल्क का उल्लेख नहीं किया, जो एक पांच सीट ऑर्डर पर $ 495 है - पूरा पहला चालान - जैसा कि यह कुछ नहीं था, यह उद्धृत किया गया। सीट स्टेपर 9,999 तक चला गया जो भी योजना चुनी गई थी। ************* हमेशा वास्तविक छत को लागू किया है, इसलिए कोई चालीस सीट स्टार्टर ऑर्डर बना सकता है, इसके लिए कुल ऐड-अप को देखते हुए, और उस नंबर पर इंगित करने वाले कुछ भी नहीं के साथ बचाने से इनकार कर दिया जाना चाहिए। गलत था। यह अब योजना की सीमा पर रुक जाता है और कहते हैं कि किस योजना ने इसे सेट किया और क्या किया है; जब तक किसी योजना को चुना जाता है तब तक इसे अक्षम किया जाता है, क्योंकि छत उस पसंद की संपत्ति है; और एक छोटी योजना चुनने के बजाय मूल्य निर्धारण पांच सीटों के साथ गिनती आती है सर्वर ऑब्जेक्ट तक बारह लोग। clampSeattoPlan पिकर के साथ साझा किया जाता है और परीक्षण किया, क्योंकि उसी नियम को जब SEATS चल जाता है और जब PLAN करता है तो उसे पकड़ना पड़ता है। इसके अलावा: प्राथमिक CTA MUI का डिफ़ॉल्ट नीला था - एक सफेद लेबल कंसोल पर, एक रंग पर कोई भी व्यक्ति से संबंधित पृष्ठ, एकल सबसे महत्वपूर्ण बटन पर।.
· kamo-internal
एक नंबर स्क्रीन, इसलिए कॉल और टेक्स्ट विभिन्न कंपनियों से आ सकते हैं
एक संगठन अपनी संख्या को एक कंपनी से खरीदता है और कॉल के जवाब देता है दूसरा। यह सामान्य है, और कामो इसका वर्णन नहीं कर सकता: texting एक संपत्ति थी सदस्य के फोन सर्वर में से एक, इसलिए एक org जिसका DIDs और SMS Telnyx से आया और जिनकी कॉल अपने स्वयं के FreePBX द्वारा उत्तर दिया गया था, वह सभी पर टेक्स्ट नहीं कर सकता था। सेटिंग्स → फोन → नंबर वह है जहां अब कहा जाता है, और यह बीच बैठता है प्रदाता और एक्सटेंशन क्योंकि यह क्रम में काम होता है। एक पंक्ति एक वाक्य के रूप में पढ़ती है - "+1 (949) 555-1212 - सारा चेन · कॉल रिंग ऑन Office PBX · Texts Telnyx के माध्यम से जाते हैं - प्रदाता ids का ग्रिड नहीं। संख्या पहले व्यक्ति आते हैं, क्योंकि वे दो चीजें हैं जो एक प्रशासक हैं वास्तव में जानता है। बचाव के फैसले, और एक नंबर टैब.टेस्ट। tsx सुरक्षा के लिए मौजूद है: एक फोन सर्वर जो टेक्स्ट को टेक्स्ट ड्रॉपडाउन, अक्षम, के साथ बंद नहीं किया जा सकता है इसका कारण यह है। इसे फ़िल्टर करना स्पष्ट कार्यान्वयन है और यह है वह जो किसी को अटक जाता है - एक प्रशासक जो अपने फोन को नहीं ढूंढ सकता उस सूची में सिस्टम यह निष्कर्ष निकाला है कि स्क्रीन टूट गई है, जबकि वह "फ्रीपीबीएक्स" पढ़ता है पाठ संदेश नहीं भेज सकते" इसके बजाय एक पाठ प्रदाता को जोड़ने के लिए जानता है। कारण सर्वर से, जहां प्रत्येक प्रदाता अपने आप को लिखते हैं। "मेरे नंबर खोजें" आयात करता है कि प्रदाता पहले से ही जानते हैं, क्योंकि टाइपिंग तीस DIDs सही ढंग से किसी को पूछने की बात नहीं है और गलत तरीके से एक चुपचाप विफल रहता है। तेलिनिक्स दोनों पिकर्स में शामिल होते हैं। इसका कार्ड वेबहुक जनता पर अपने अधिकांश शब्दों को खर्च करता है कुंजी: यह API कुंजी से Telnyx पोर्टल के एक अलग पृष्ठ पर है, और लापता इसमें कोई लक्षण नहीं है - पाठ पूरी तरह से बाहर जाते हैं और हर उत्तर को मना कर दिया जाता है। यह कार्ड भी कहता है कि Telnyx क्या नहीं है, इसलिए यह एक निर्णय है। इससे पहले कि वे बाद में एक खोज के बजाय प्रतिबद्ध हैं। कामो जहाजों कोई Telnyx लोगो; एक tinted प्रारंभिक हमारे होने के बारे में ईमानदार है, जहां कुछ खींचा गया उनके निशान की तरह देखने के लिए नहीं होगा। इसे बनाने के दौरान दो चीजें मिलीं: - NumbersTab's reload 't' पर निर्भर है, और useTranslations एक वादा नहीं करता है स्थिर पहचान - इसलिए प्रभाव हर रेंडर पर फिर से चल रहा है और स्क्रीन कभी नहीं लोड हो रहा है। कोई त्रुटि नहीं, सिर्फ एक स्थायी स्पिनर। परीक्षण ने इसे पकड़ लिया। - सेटिंग्स मेनू और प्रदाता लेबल मानचित्र दोनों कवरेज परीक्षण है कि है एक नए टैब और एक नए प्रदाता के लिए रखरखाव की मांग की। दोनों ही सही थे।.
· VOIPService
NUMBER द्वारा रूट टेक्स्ट, और इसके दोनों तरफ Telnyx जोड़ें
एक संगठन एक कंपनी से अपनी डीआईडी और इसकी टेक्स्टिंग खरीद सकता है और जवाब दे सकता है दूसरे के साथ कॉल करें। कामो व्यक्त नहीं कर सकता कि: एक सदस्य का पाठ एक था उनके फोन सर्वर की संपत्ति, इसलिए एक org जिसकी संख्या Telnyx से हुई थी और जिनके कॉल को उनके स्वयं के FreePBX द्वारा उत्तर दिया गया था, वे सभी पर पाठ नहीं कर सकते थे - FreePBX sms(false) घोषित करता है, प्रवेश द्वार ने किसी भी प्रदाता तक पहुंचने से पहले मना कर दिया, और सलाह "एक एसएमएस प्रदाता को जोड़ें" ने एक रेल का नेतृत्व किया जो एक ऐसी रेल को खोल नहीं सकता था जो एक को खोल नहीं सकता था बातचीत। इसलिए प्रश्न प्रदाता से संख्या में चले गए। ORG PHONE NUMBER कहते हैं कि कौन एक संख्या का मालिक है, जो अपने कॉल का जवाब देता है और क्या वह करता है इसके पाठ TEXT ROUTE KIND ने अनुमान लगाने के बजाय उदाहरण आईडी के बगल में बैठता है इसके अलावा, क्योंकि दो उम्मीदवार तालिकाएं दोनों UUID-keyed हैं और एक id है गलत कारखाने के लिए जोर से विफल नहीं है - यह "कोई ऐसा उदाहरण नहीं" के रूप में विफल रहता है, और पाठ कभी नहीं भेजा जाता है। InboundRail ने पहले से ही उस खतरे को दस्तावेज दिया। TextRouter तीन स्तरों में हल: संख्या का अपना मार्ग, फिर एक डिफ़ॉल्ट नाम दिया गया फोन सर्वर द्वारा (एक PBX पर 200 DIDs एक सेटिंग है, 200 पंक्तियों नहीं), फिर फोन सर्वर स्वयं - जो वास्तव में आज के व्यवहार का है, इसलिए एक org कि कभी नहीं खुलता है नंबर स्क्रीन कुछ भी कॉन्फ़िगर नहीं किया गया है। थोक रेल अंत में भेजने का अनुबंध प्राप्त करता है। TextSender में दो एडाप्टर हैं और SmsGateway इसके बारे में बात करता है, इसलिए BulkTextProvider.send Text — whose errorMessage is हमेशा कुछ वाहक egetMessage () - अब एक सॉकेटटाइमआउट एक्सेप्शन नहीं डाल सकता है किसी के सामने एक ग्राहक को टेक्स्ट करने की कोशिश कर रहा है। अब BulkTextInboundController अपने संदेश को VoipMessageService में सौंप दें। बजाय एक कीवर्ड रिकॉर्डिंग इसलिए वाहक संख्या पर जवाब एक बातचीत हो जाता है। कीवर्ड संभालना बाहर नहीं चला; यह नीचे चला गया, क्रम में हर दूसरे रेल पहले से ही शेयर VoipNumberOwnership लाभ SOURCE ORG NUMBER उच्चतम प्राथमिकता पर: अन्य दो स्रोत एक स्तंभ से स्वामित्व को सत्यापित करते हैं जो एक संख्या पकड़ते हैं, जबकि यह एक पंक्ति है जिसका पूरा उद्देश्य यह कहना है कि कौन इसका मालिक है। Telnyx एक फोन सर्वर और एक वाहक दोनों के रूप में आता है। एक फोन सर्वर के रूप में यह है पहले एक ईमानदार नहीं होने के बारे में: कोई आवाज मेल नहीं, कोई उपकरण, कोई कतार नहीं, कोई नहीं एजेंट राज्यों - और उनमें से प्रत्येक झूठे झंडे अब एक वाक्य एक सदस्य है पढ़ सकते हैं, क्योंकि एक क्षमता जो किसी लिखित कारण के साथ झूठी है, एक के रूप में प्रस्तुत करता है कामकाजी दिखने वाली खाली स्क्रीन। यही कारण है कि क्या क्षमता लिमिट और फोन कैपेबिलिटी के लिए कर रहे हैं; एसएमएस के बाद से smsUnabilityReason() था, और बाकी के अब इसकी सतह भी है। इसके सॉफ्टफोन क्रेडेंशियल को ORG के स्वयं के साथ छोटा किया जाता है एपीआई कुंजी, इसलिए रिंगसेंट्रल के विपरीत, प्रत्येक सदस्य को एक वाहक में सवार करना पड़ता है पोर्टल जानने लायक दो बातें: -ऑर्गफोन नम्बरसर्विस ने फोनप्रोवाइडर फैक्टर @Lazy को लिया। चक्र वास्तविक है और वैध और स्प्रिंग बूट ने डिफ़ॉल्ट रूप से परिपत्र संदर्भों को मना कर दिया है क्योंकि 2.6 - इसके बिना संदर्भ शुरू नहीं होता है, और यहां कोई इकाई परीक्षण नहीं होता है इसलिए, क्योंकि वे सभी अपने Docstors को हाथ से तार करते हैं। - एक पाठ-केवल org (numbers और एक वाहक, कोई फोन सर्वर) भेज सकते हैं लेकिन नहीं कर सकते एक जवाब धागा: VOIP CONVERSATIONS.INSTANCE ID NULL नहीं है और NULL का हिस्सा है। dedupe सूचकांक। यह गिरावट अब एक एआरआरओआर है जिसने चेतावनी के बजाय संख्या का नाम दिया है। ORG PHONE NUMBER का DDL हाथ से लागू होता है - डॉक्स / SQL /। प्रारंभिक सेवा नहीं है इस क्लस्टर में तैनात।.
· kamo-shared-library
Telnyx, पहला प्रदाता जो एक फोन सर्वर और एक वाहक दोनों है
तेलिनिक्स एसआईपी ट्रंकिंग, डीआईडी और मैसेजिंग बेचता है, और एक संगठन उन लोगों को खरीद सकता है स्वतंत्र रूप से रुक जाता है। इस मामले के लिए है: DIDs और Texts Telnyx से खरीदा, ग्राहक के अपने FreePBX द्वारा जवाब देने वाले कॉल के साथ। इसे एक में मिलाना प्रवेश उन लोगों को एक ही निर्णय होने के लिए मजबूर करेगा, इसलिए TELNYX को दोनों के पास भेजा जाएगा। VoipProvidertype and BulkTextProvidertype. दोनों enumtype.ORDINAL हैं, इसलिए दोनों appends अंत में हैं। थोक पाठ एक संपत्ति अपने javadoc में दस्तावेज किया था और कुछ भी नहीं द्वारा लागू; अब यह एक ही ordinal परीक्षण फोन enum है, जहां किसी को जोड़ने का दावा किया प्रदाता को पहले से ही बंद करने और सोचने के लिए बनाया जा रहा है। टेलिनिक्स बिल THIRD PARTY: ऑर्ग का अपना खुद का Telnyx खाता है और Telnyx भुगतान करता है। प्रति मिनट और प्रति संदेश, तो क्या Kamo बिल के लिए एकीकरण है। An unassigned Telnyx लाइन लागत कुछ भी नहीं है, जो सही है - एक टेलीफोनी क्रेडेंशियल इसके पीछे कोई सदस्य नहीं है। कोई संस्करण टक्कर नहीं। 17 सर्विस पिन 1.6.0 और हर सर्विस डोकरफ़ाइल पुनर्निर्माण यह पुस्तकालय मुख्य रूप से, इसलिए एक टक्कर उन सभी को एक संस्करण को हल करने के लिए छोड़ देगी यहीं मौजूद नहीं है। हाल ही में इसके अलावा प्रकार / एक ही तरह से भेज दिया।.
· kamo-internal
शेल्फ प्रति ऐप कार्ड को प्रतिस्थापित करता है, और चार अपनी पंक्तियों को ठीक करता है
लॉन्चपैड प्रति एक कार्ड की दीवार थी। ऐप शेल्फ हर एक को सूचीबद्ध करता है एक एकल फलक में उन ऐप्स, जो प्रत्येक करता है और उसके अंदर सब कुछ करता है, तो टाइलों का ग्रिड दो बार समान नाम कह रहा था। क्या होता है? लॉन्चपैड पर छोड़ दिया गया शेल्फ, विजेट और सदस्य के पिन नोट हैं। उनके साथ एक unpinned एप्लिकेशन को फिर से शुरू करना - यह कार्ड का कोने का नियंत्रण था, और शेल्फ का अपना पिन अब यह है। होमकार्डपिनकंट्रोल और ऐपपैन के साथ गए कार्ड; LEAF TOOL KEYS एक ऐसी चीज थी जिसने उन्हें जीवित किया और अब NavRegistry में बैठता है, विकल्पों के अलावा यह वर्णन करता है। चार शेल्फ खुद को ठीक करते हैं: - शेवरॉन पिन से पहले आता है, इसलिए हर पिन उसी ऊर्ध्वाधर लाइन पर बैठता है चाहे उसकी पंक्ति किसी भी चीज़ पर खुलती है या नहीं। 8 पंक्तियों पर सत्यापित, एक x. - अब खोला गया आधा बढ़ता है: यह एक पंक्ति का एक फ्लेक्स आइटम है, इसलिए इसकी मुख्य धुरी है चौड़ाई और खिंचाव केवल अपनी ऊंचाई तक पहुंच गया - यही कारण है कि इसकी पंक्तियां क्यों हैं उनके द्वारा दिए गए स्तंभ से कम बंद कर दिया गया था। - एक अकेला ओपन ऐप बटन दोनों अक्षों पर केंद्रित होता है, और इसके लेबल को आकार दिया जाता है। पैनल में विस्तार से। सूची में 8px लीड-इन को इसके साथ गिराया जाता है, या यह एक तरफा ऑफसेट का 8px है जो सेंटिंग को केंद्रित होने से रोकता है। - वह बटन अब "ओपन ऐप" पढ़ता है।.
· BillingService
एक योजना के स्टार्टअप शुल्क, और लाइव ऑफर, तार पर
PlanDto ने केवल आवर्ती दर को ले लिया, इसलिए एक योजना को उद्धृत करने वाली हर सतह ने एक मूल्य उद्धृत किया ग्राहक को शुल्क नहीं लिया जाएगा: कमोसीआरएम का स्टार्टअप शुल्क $ 99 एक सीट है, जो $ 495 है। एक महीने से पहले पांच सीट स्टार्टर ऑर्डर बिल किया जाता है। सार्वजनिक मूल्य निर्धारण पृष्ठ हमेशा होता है इसे दिखाया गया; इन-ऐप सतहों का कोई रास्ता नहीं था। प्लान पेलोड अब भी बाजार में चल रहे प्रस्ताव को पूरा करता है, उसी तरह से हल होता है भविष्यवाणी करते हैं कि वास्तव में एक आदेश छूट। एक पेज कोटिंग सूची मूल्य लाइव 33%-ऑफ के बगल में ग्राहक की असफलता में पदोन्नति गलत है और चूक होने के बाद छूट को उद्धृत करना हमारा गलत है - न तो एक नंबर है जो एक पेज खुद के लिए फैसला कर सकता है।.
· kamo-internal
रिपोर्ट के धागे में दराज, ठंडे बस्ते में डालने, और मुद्दे पर्सिस्ट
`SystemBugThread` सब कुछ प्रस्तुत करता है जो किसी ने एक रिपोर्ट के बारे में बताया है और हर किसी ने एक रिपोर्ट के बारे में बताया है। यह स्थिति वर्तमान स्टेटस कॉलआउट के तहत हुई है: कॉलआउट उत्तर "अब यह क्यों है", जो अधिकांश पाठकों के लिए आया है, और ट्रांसक्रिप्ट जवाब "यह कैसे हुआ?", जो एक निश्चित जरूरतों पर चौथा प्रयास है। यह पढ़ता है **************** और मीडिया सत्र समापन बिंदु नहीं कंसोल में प्रत्येक अन्य ट्रांसक्रिप्ट का उपयोग करता है। वे सत्र सदस्यता द्वारा अधिकृत हैं; एक बग धागा हर किसी द्वारा पढ़ा जा सकता है REPORT दिखाई देता है, जो दूर है उन लोगों की तुलना में व्यापक सेट जो उस पर तैनात हैं। एक संवाद अब सभी तीन स्थितियों के लिए टिप्पणी एकत्र करता है जो एक ले जाते हैं। वे शब्दों में भिन्न होता है और क्या क्षेत्र खाली रह सकता है, और दोनों पढ़े जाते हैं स्थिति बंद - इसलिए ठंडे बस्ते में डालने और मुद्दे पर्सिस्ट एक खाली और एक इनकार अभी भी मना कर दिया नहीं। शीर्षक सूट का अनुसरण करता है: एक इनकार एक निर्णय बताता है, एक ठंडे बस्ते में डालने एक देरी बताते हैं, और एक असफल फिक्स रिपोर्ट जो अभी भी टूटी हुई है, और सभी का नेतृत्व करते हुए तीन "डेनियल के लिए रेसन" ने पिछले एक को अपोलोजी के रूप में पढ़ा। इश्यू पर्सिस्ट अपने खुद के बटन के बगल में फिक्स सत्यापित और अपना खुद का समापन बिंदु है, खींचा गया 'canReportIsuePersists' से - सर्वर का जवाब, कभी व्युत्पन्न नहीं। इसके दर्शक हैं फिक्स सत्यापित की तुलना में व्यापक और इसकी प्रस्थान स्थिति अलग हैं, इसलिए एक ग्राहक इसे `canManage` से या स्वामित्व से प्रभावित करने से इसे ठीक से छिपाना होगा इसके लिए यह मौजूद है। यह एक ही कारण के लिए ट्रेज ड्रॉपडाउन में अक्षम है: एक रिपोर्ट को फिर से खोलने के कारण स्थिति ले जाने के लिए मौजूद है छोड़ देंगे। `SystemBugDrawerTriage` ने नामकरण के लायक एक स्कोपिंग फिक्स प्राप्त किया - धागा का संगीतकार है उसी पृष्ठ पर एक textarea और दस्तावेज़ क्रम में पहली बार आता है, और `[role="dialog"]`` दोनों को अलग नहीं बताता क्योंकि दराज उस भूमिका को भी करता है। uncoped लुकअप ने टिप्पणी बॉक्स में इनकार कारणों को टाइप किया और इनकार को खाली करने के लिए भेजा।.
· EmailService
System BUG COMMENT के लिए चर का पूर्वावलोकन करें
उनके बिना टेम्पलेट संपादक छेद जहां के साथ नए अक्षर प्रस्तुत करता है रिपोर्ट संख्या, प्रेषक और बटन जाओ, जो एक टूट टेम्पलेट के रूप में पढ़ता है बजाय एक लापता पूर्वावलोकन के रूप में। उनके बीच कोई टिप्पणी नहीं है, जानबूझकर: पत्र एक बोली नहीं है। A रिपोर्ट का धागा हर किसी द्वारा पढ़ा जा सकता है, रिपोर्ट दिखाई दे रही है, लेकिन यह पत्र एक व्यक्ति को संबोधित किया जाता है और किसी अन्य मेल की तरह आगे बढ़ता है।.
· InitializerService
System bug.media session guid, and इसके लुकअप सूचकांक
एक रिपोर्ट के टिप्पणी धागे के पीछे स्तंभ, मिलान ************* - VARCHAR(36), क्योंकि MEDIA SESSIONS.GUID है अपने आप में 36-character स्ट्रिंग कॉलम और एक प्रकार का बेमेल शामिल होने पर पाया जाता है जो कुछ भी नहीं है उससे क्वेरी समय। Nullable, and no backfill. प्रति मौजूदा रिपोर्ट में एक सत्र के बीज का मतलब है चार लेखन सही क्रम में सही क्रम के साथ तालिकाओं, जो उस सेवा के अंतर्गत आता है जो सही क्रम में है। पहले से ही पता चलता है कि कैसे - `SystemBugService.ensureThread` इसे पहले स्पर्श पर करता है। A null. यहां का मतलब है " अभी तक खोला नहीं", कभी भी त्रुटि नहीं।.
· SecurityService
एआई को भेजें हर किसी को धागे पर बताता है, न केवल रिपोर्टर
प्रेषण उसी पत्र मीडिया सर्विस को भेजता है, इसलिए इसके दर्शकों को स्थानांतरित करना होगा। उसी तरह: रिपोर्ट के थ्रेड माइनस में हर प्रतिभागी जिन्होंने कभी अभिनय किया, प्रत्येक केवल रिपोर्टर के बजाय अपने स्वयं के ग्रीटिंग और उनके स्वयं के टाइमज़ोन के साथ। आंशिक चलने को साझा करने के बजाय यहां डुप्लिकेट किया गया है, और दोहराव है जानबूझकर - इस सेवा में कोई मीडिया सर्विस क्लाइंट नहीं है, और एक तो एक प्रेषण जोड़ने एक ईमेल को संबोधित कर सकते हैं, स्टेटस लिखने के रास्ते पर HTTP कॉल डाल सकते हैं। The नियम यह दोहराता है दो पंक्तियां हैं, और दोनों पक्ष उसी के माध्यम से जाते हैं। `SystemBugStatusEmail` predicates.
· MediaService
एक रिपोर्ट के पीछे धागा, और दो स्थितियां जो एक की जरूरत है
`SystemBugThreadservice` पूरी सुविधा है: एक रिपोर्ट का MediaSession, स्थिति उनके लेखक द्वारा दिए गए कारण से इसमें लिखी गई घटनाओं, जो किसी को भी टिप्पणी करता है यह देख सकता है कि रिपोर्ट छोड़ सकती है, जवाब देती है, प्रतिक्रियाएं और प्रति सदस्यीय mute. हर प्रविष्टि बिंदु SystemBugController है, कभी मीडिया कंट्रोलर नहीं। नहीं tidiness — जेनेरिक मीडिया सत्र सदस्यता द्वारा अधिकृत समापन बिंदुओं, और एक बग धागा हर किसी द्वारा पढ़ा जा सकता है REPORT दिखाई देता है, जो एक दूर व्यापक सेट है उन लोगों की तुलना में जिन्होंने उस पर पोस्ट किया है। यहाँ सदस्यता का मतलब है "वह हिस्सा लिया है" और यह तय करने के लिए मौजूद है कि कौन लिखा गया है। बग के स्वयं के माध्यम से धागे को रूट करना दृश्यता नियम वह है जो उस नियम को उस स्थान पर रखता है जो उसका मालिक है। धागे को आलस्य रूप से बनाया जाता है और बीजित नहीं होते हैं। रिपोर्ट पहले मौजूद धागा किया, इसलिए `media session guid` nullable है और `ensureThread` इसे भरता है। पहला स्पर्श - पंक्ति के अपने निर्माण समय के साथ मुद्रित एक निर्दिष्ट घटना लिखने, और किसी भी `denial reason` को स्थानांतरित करने से पहले पंक्ति अभी भी ट्रांसक्रिप्ट में चली जाती है कॉलम को साफ़ करना। उस बीजिंग के बिना, एक धागे के साथ स्तंभ की जगह पुराने डिजाइन की रिपोर्ट के अनुसार एक वाक्य को चुपचाप फेंक दिया जाएगा रखना `thread()` यह लिखने योग्य है जो इसे करता है; `detail()` रहता है केवल इसलिए क्योंकि यह गर्म पथ है। `reportIsuePersists` एक रिपोर्ट और एकमात्र क्षमता पर सबसे व्यापक कार्रवाई है कि दर्शक द्वारा संकीर्ण नहीं है: किसी को भी जो इसे देख सकता है वह कह सकता है कि ठीक विफल रहा है, क्योंकि जो व्यक्ति टूटे हुए फिक्स में जाता है वह अक्सर ऐसा व्यक्ति नहीं होता जो रिपोर्ट दायर की। यह एसटीएटीयूएस द्वारा इसके बजाय संकीर्ण है - एक रिपोर्ट जिसमें कभी दावा नहीं किया जाता है निश्चित रूप से विरोधाभासी नहीं है। स्टेटस ईमेल अब प्रति प्रतिभागी एक पत्र की योजना बना रहा है। `plans()` इसलिए नियम स्प्रिंग संदर्भ के बिना परीक्षण योग्य रहता है, और फ्री-स्टैंडिंग कमेंट उनके तहत ChatEmailNoticeService के मौजूदा लेजर की सवारी करते हैं स्वयं का टेम्पलेट कुंजी - प्रति प्राप्तकर्ता को एक पत्र पढ़ने तक, पचाने, सम्मान प्राप्त करने तक।.
· kamo-shared-library
शेल्विंग, असफल फिक्स और एक रिपोर्ट का पूरा टिप्पणी इतिहास
एक रिपोर्ट वास्तव में एक वाक्य रखा। `system bug.denial reason` को ओवरराइट किया गया था प्रत्येक बाद की स्थिति में बदलाव, इसलिए एक बग जो इनकार कर दिया गया था, समझाया गया, फिर से खोला गया, तय किया गया और पाया कि अभी भी टूट गया है चार में से एक कारण से बाहर और पढ़ने के लिए कोई रास्ता नहीं बाकी स्पष्ट फिक्स एक नोट कॉलम के साथ एक `system bug history` तालिका है। उस तालिका फिर थ्रेडिंग, इतिहास, प्रतिक्रियाओं, संलग्नक, प्रति सदस्यीय म्यूट को संपादित करना है Unreaded state. पहले से ही प्रत्येक समर्थन टिकट है। तो एक रिपोर्ट के बजाय एक मीडिया सत्र हो जाता है, नीचे एक नया `SYSTEM BUG` प्रकार, जैसा कि 'supportTicket' पहले से ही करता है: स्थिति में बदलाव उनके लेखक द्वारा दिए गए कारण को लेकर सिस्टम संदेश के रूप में लिखा गया है, टिप्पणियां साधारण लोगों के रूप में। इसके साथ दो स्थितियां आती हैं। SHELVED पार्क-not-refused है, जो `WONT FIX` सकता है नहीं कहते - एक कतार स्थिति है और दूसरा निर्णय है, और एक रिपोर्टर ने कहा "हमने फैसला नहीं किया" काम के बारे में जो केवल इंतजार कर रहा है, फाइलिंग रिपोर्ट बंद कर देता है। ISUE PERSISTS इसका वजन है: एक शिप फिक्स जो नहीं पकड़ता था। दोनों की आवश्यकता एक कारण; एक जानबूझकर अभी भी नहीं करता है, क्योंकि केवल वहाँ एक को मजबूर करना लोगों को एक पूर्ण स्टॉप टाइप करने के लिए सिखाता है। एक बग थ्रेड पर सदस्यता का मतलब यह नहीं है कि इसका मतलब चैट पर है। धागा है प्रत्येक व्यक्ति द्वारा पढ़ा जा सकता है REPORT दिखाई देता है; `MediaSessionMember' पंक्तियों का मतलब है "वह हिस्सा लिया है", और फैसला जो ईमेल किया गया है और जो muted है। क्यों नहीं यहां मीडिया कंट्रोलर के माध्यम से सेवा की जाती है, जिसका अभिगम नियम IS सदस्यता है। स्टेटस लेटर के दर्शकों का अनुसरण करता है: हर पार्टिसिपेंट मिनस द अभिनेता, बल्कि अकेले संवाददाता की तुलना में। पुराने "रिपोर्टर ने इसे स्थानांतरित कर दिया, इसलिए कुछ भी नहीं भेजें" veto जारी करने वालों ने उन लोगों को सूचित किया है, जिनमें से सभी ने लिखा था ठीक है कि सिर्फ विफल रहा है।.
· kamo-internal
एक दस्तावेज़ रूपरेखा, और पृष्ठ के अपने आकार में एक कंकाल
केवल नायक एक वास्तविक शीर्षक था। अन्य सभी - लेजर की नौ श्रेणियां, खाता पैनल, वाचा, प्रत्येक अपग्रेड विकल्प - एक स्टाइल div था, इसलिए एक स्क्रीन रीडर था उपयोगकर्ता के पास सेटिंग्स क्षेत्र में सबसे लंबे पृष्ठ पर एक स्थान था और बीच में जाने का कोई तरीका नहीं था श्रेणियां वे अब h2 और h3 हैं, और लेजर के साथ ARIA accordion पैटर्न का अनुसरण करता है शीर्षक WRAPPING इसके टॉगल: दूसरे तरीके से घोंसला किया गया है कि श्रेणी के हिस्से के रूप में घोषित किया गया है नियंत्रण और स्टॉप कहीं भी आप कूद सकते हैं। लोडिंग स्टेट एक केंद्रित स्पिनर था, जो यहां गलत साधन है। एक अनुरोध पूरी स्क्रीन को भर देता है, इसलिए स्पिनर कुछ भी नहीं और समाप्त लेआउट के बीच में बैठे थे। फिर एक बार पहुंचे और पाठक के नीचे सब कुछ स्थानांतरित कर दिया। कंकाल वास्तविक रखता है अनुपात - अपने रेल के साथ हीरो बैंड, लंबे लेजर कॉलम, का छोटा स्तंभ इसके बगल में पैनल - इसलिए आगमन एक कूद के बजाय एक भरा हुआ है। यह अपनी खुद की कोई गति नहीं रखता MUI की लहर से परे; पृष्ठ में वास्तव में एक जानबूझकर एनीमेशन है और इसे नहीं करना चाहिए पहले ही स्क्रीन पर क्या था, इसके साथ प्रतिस्पर्धा करें। टेस्ट रूपरेखा और समझौते घोंसले को पिन करते हैं, साथ ही दो चीजें जो लेजर सही हो जाती हैं और चुपचाप सही हो रहा बंद हो जाएगा: कैटलॉग का "100.0000" 100 के रूप में प्रस्तुत किया गया, और एक बोओलेन फीचर कभी असीमित के रूप में वर्णित नहीं है।.
· kamo-internal
भगवान नियमों को आकर्षित करें अब सर्वर रखता है
उपयोगकर्ता टैब हर किसी के लिए हर देवता पंक्ति को बंद कर देता है, और दोनों हिस्सों में गलत थे। Too ढीला, क्योंकि ताला केवल इस घटक में रहता था - पीछे के समापन बिंदु यह किसी भी व्यक्ति से सीधे कॉल का उत्तर देता है, जिसमें प्रबंधक होते हैं। बहुत तंग, क्योंकि यह भी संपादित करने के लिए हकदार एक कॉलर बंद कर दिया। गॉडअकाउंटगार्ड है अब अधिकार, और दराज उसी प्रतिक्रिया से callerIsGod पढ़ता है जैसे पंक्ति: हर किसी के लिए बंद, एक सहकर्मी के लिए रहते हैं, और जोर से कहा जब यह लाइव होता है तो चेतावनी टोन, क्योंकि एक संपादन योग्य देवता पंक्ति सामान्य लगती है। सिंथेटिक ध्वज एक नियंत्रण था जो भगवान पंक्ति पर रहते थे, और यह है स्क्रीन पर सबसे भारी - यह खाता बिल्कुल प्रामाणिक होने से रोकता है। यह उसी फाटक को बाकी के रूप में ले जाता है। मानवाधिकार एक देवता लक्ष्य पर वापस ले लिया जाता है। सर्वर इसे दोनों दरवाजे पर मना कर देता है, और एक ऐसा बटन जो पेशकश की जाती है और फिर पढ़ने को गलती के रूप में मना करने से इनकार कर देता है यह नियम है। accountIsGod प्रोफ़ाइल से जिस तरह से सदस्य प्रकार की सवारी करता है पहले ही करता है, और सर्वर केवल एक ईश्वरीय पाठक को बताता है।.
· SecurityService
केवल एक देवता एक देवता को प्रशासित कर सकता है और कोई देवता अवैयक्तिक नहीं है।
Manage USERS ब्रेक-ग्लास पहचान पर पहुंच गया। उपयोगकर्ता एडमिनकंट्रोलर संरक्षित केवल सिस्टम उपयोगकर्ता, इसलिए एक गैर-जारी धारक एक देवता खाते को निष्क्रिय कर सकता है और अपने लाइव सत्र को रद्द करें, अपने साइन-इन पहचानकर्ताओं को फिर से लिखना, इसे सिंथेटिक ध्वज दें, या इसके लिए पासवर्ड रीसेट मेल करें - उनमें से प्रत्येक व्यक्ति को लोगों को नुकसान पहुंचाने का एक तरीका जो अन्यथा ऐसा नहीं करेगा। सांत्वना ने पहले से ही पंक्ति को अछूत के रूप में वापस ले लिया और इसलिए एक टिप्पणी में कहा; स्क्रीन के पीछे कुछ भी सहमत नहीं है। GodAccountGuard सहकर्मी नियम प्लेटफार्मAdministratorController लागू करता है पहले से ही उन अधिकारों के खाते में भगवान के मंच अधिकार पर आयोजित किए गए। खाता दो दरवाजे के कमजोर था: किसी का पासवर्ड लेना एक है अपने अधिकारों को प्राप्त करने की शुरुआत। यह सभी पांच लेखन पथों की रक्षा करता है, और उपयोगकर्ताAccountEditPolicy की PLATFORM ADMIN आर्म, जो एक ही अधिकार का दूसरा अधिकार है। सतह - सदस्य प्रोफ़ाइल की पहचान अद्यतन और व्यक्तिगत पते दोनों समापन बिंदु पढ़ना खुला रहता है, इसलिए सांत्वना से इनकार समझा जा सकता है। लक्ष्य बंद हो जाता है और कॉलर खुले में विफल रहता है, जानबूझकर: एक पंक्ति जो कि एक पंक्ति है नहीं पढ़ा जा सकता है भगवान, एक पंक्ति जो मौजूद नहीं है, और एक कॉलर जो हल नहीं किया जा सकता है। केवल एक प्रतिबंध उठाने का फैसला करता है जिस तरह से प्रत्येक तरफ जाता है। प्रत्यावर्तन एक ही लक्ष्य को मना कर दिया जाता है, जिसमें कोई सहकर्मी नहीं होता है। The क्रॉस-ऑर्ग दरवाजा हमेशा भगवान से मना कर दिया है ************* सेटिंग्स पेज के पीछे एक ही-ऑर्ग दरवाजा कभी नहीं किया, जिसने इसे सस्ता बना दिया दो तरीके में एक देवता को हाथ देने वाले खिलाड़ी को मंच का अंतिम अधिकार जिस तरह से वापस आती है, इसलिए यह कोई अपवाद नहीं है - किसी अन्य देवता के लिए भी नहीं। प्रतिक्रियाएं अब callerIsGod ले जाती हैं, और सदस्य पेलोड खाता हैIsGod एक ईश्वरीय पाठक के लिए। उनके बिना कंसोल को हर देवता पंक्ति को लॉक करना पड़ता है हर किसी के लिए, एक कॉलर सहित संपादन के लिए हकदार है।.
· kamo-internal
कर्मचारी वाक्य लिख सकते हैं ग्राहक पढ़ता है
ग्राहक दृश्यमान नोट में एक स्तंभ, एक डीटीओ क्षेत्र और एक योजना पृष्ठ था जो इसे प्रस्तुत करने के लिए तैयार था, और किसी के लिए यह निर्धारित करने का कोई तरीका नहीं है - इसलिए हर्मनी का एकमात्र ऐसा ही था जो कभी अस्तित्व में था, और केवल वही ही क्योंकि यह हाथ से बीज था। यह आंतरिक नोट पर "ग्राहक को यह दिखाने" स्विच के बजाय दूसरा बॉक्स है। एक स्विच सहयोगियों के लिए लिखित वाक्य का पुन: उपयोग करने के लिए आमंत्रित करता है, और आंतरिक नोट वह है जहां स्टाफ रिकॉर्ड क्या किया गया था और किसके लिए; यह केवल कुछ प्रकाशित करने पर कैंडिड रह सकता है लेखन का एक अलग कार्य है। खाली सामान्य जवाब रहता है - ग्राहक के साथ कोई समझौता नहीं नोट अभी भी इसकी संरचित शर्तों से पूर्ण रूप से प्रस्तुत करता है। दोनों नोट्स अब सूची में लेबल किए गए हैं, क्योंकि उनके बीच का अंतर संपूर्ण है बिंदु और एक unlabelled दूसरा अनुच्छेद पहले से अधिक के रूप में पढ़ता है।.
· kamo-internal
सॉफ्टफोन एक इनबॉक्स हो जाता है, और एक एसएमएस विंडो एक धागा है
एसएमएस टूल विंडो एक बारह कुंजी डायलपैड पर खोला गया और फिर एक तीन टैब बन गया विंडो - चैट / टेम्पलेट्स / CRM - शीर्षक "Conversation #a3f1c8de-...". कोई नहीं यह है कि कोई भी पाठ संदेश का उपयोग कैसे करता है और तीनों टैबों में से दो वास्तविक नहीं थे: SmsCrmTab DUMMY CONTACT और DUMMY ACTIVITY ("जॉन स्मिथ, Acme Corp", हार्डकोडेड, हर ग्राहक के बारे में हर सदस्य को दिखाया गया है जबकि एक वास्तविक रिवर्स पहले से ही SoftphoneCRM में मौजूद है, और SmsTemplatesTab ने पांच-item पढ़ा जबकि वीओआईपीसर्व के SmsTemplateController को कुछ भी कहा जाता है। अपने ग्रंथों को देखने के लिए कहीं भी नहीं था: खिड़की ने एक वार्तालाप दिखाया और एक दूसरे तक नहीं पहुंच सकता, इसलिए एक धागे के लिए एकमात्र मार्ग एक आने वाले थे अधिसूचना आप पर एक विंडो पॉपिंग, या इंटरेक्शन सेंटर। खिड़की - दो राज्यों, कोई टैब नहीं: एक प्राप्तकर्ता पिकर, या एक धागा। टेम्पलेट्स में स्थानांतरित वास्तविक एपीआई पर संगीतकार का बोल्ट बटन; हेडर की जानकारी के लिए संपर्क विवरण फलक SoftphoneCRM. SmsCrmTab, SmsTemplatesTab, smsTemplateData और SmsNewConversation को हटा दिया जाता है। - रचना प्राप्तकर्ता-पहले है और इसमें कोई संदेश बॉक्स नहीं है। यही कारण है कि क्या बनाता है क्लोज़-एंड-फोकस केस सुरक्षित: एक विंडो जो पहले से ही खुलने के पक्ष में बंद हो जाती है निर्माण द्वारा खाली बंद कर देता है, इसलिए "एक उपकरण विंडो को कभी नहीं खोना चाहिए कि कोई सदस्य क्या है? टाइप किए गए "किसी भी सावधानीपूर्वक हैंडलिंग के बिना रखती है। - संपर्क फलक `display` के साथ स्वैप करता है, कभी भी एक सशर्त प्रतिपादन नहीं करता है - कि हर बार जब कोई उस पर नजर रखता है तो संगीतकार को नष्ट कर देगा, जो है पुराने टैब बार के उत्पादन में असफलता। एक बातचीत, एक विंडो टूल स्टोर हमेशा props पर deduped है। बातचीतId -- Un-minimize, उठना, चमकना। यह फोन नंबर द्वारा खोला गया एक एसएमएस विंडो नहीं देख सकता क्योंकि SmsTool ने id को स्थानीय राज्य में हल किया और कभी स्टोर को कभी नहीं बताया, इसलिए खोलना कहीं से भी बातचीत ने पहले के शीर्ष पर एक दूसरी विंडो बनाई। SmsTool अब आईडी को अपने स्वयं के props पर पैच करता है (जैसा कि चैटटूल इसके लिए करता है) सत्रगाइड) और संपर्क के साथ खिड़की शीर्षक। प्राप्तकर्ता को चुनना तीन तरीके तय करते हैं: यहां बनाएं, यहां अपनाएं, या उस विंडो को ऊपर उठाएं जिसमें यह है इसे बंद करें। सॉफ्टफोन पांचवां बिल्ला TEXTS टैब, जो पहले से ही अस्तित्व में है, से बना है इंटरेक्शन सेंटर - उपयोग वार्तालापराव की पाठ बाल्टी, वार्तालापराव, UnreadForRow, openConversation - प्लस खोज और एक नया संदेश बटन। The बैज पढ़ना UnreadContext.bySurface.sms, पहले से ही सॉकेट पर रहते हैं, तो यह लागत नहीं। संपर्क नाम ConversationRow ने स्वीकार किया "एक नंबर से सर्वर-साइड रिवर्स लुकअप नहीं है एक संपर्क नाम के लिए, इसलिए एक पाठ पंक्ति अपनी संख्या से शीर्षक है। नया ************* दर्पण मेलबॉक्स डायरेक्टरी का आकार और सूचकांक CanonicalPhone द्वारा संपर्क, ब्राउज़र में क्योंकि प्राप्तकर्ता खोज भार वैसे भी एक अनुक्रमणिका फिर से शीर्षक, TEXTS सूची और नेविगेटर। इसके अलावा, SmsNotificationListener ने प्रत्येक सॉकेट फ्रेम INBOUND पर मुहर लगाई और घटना हमेशा की दिशा को नजरअंदाज कर दिया है, इसलिए एक सदस्य की अपनी आउटबाउंड पाठ वापस ग्राहक के रूप में प्रस्तुत किया गया और उनके लिए एक खिड़की उठाया उन्होंने कुछ किया था। विंडो अब पूरे टेक्स्टिंग सतह को चालू करती है टीम या फ्रीपीबीएक्स को छोड़ने के बजाय जीईटी / एसएमएस / क्षमता को यह पता चलता है दबाने से चुप्पी में भेज दिया जाता है, और एक मना करने वाला प्रेषक प्रदाता की अपनी सजा दिखाता है संदेश के साथ चिह्नित नहीं दिया गया। वीओआईपीसेवा की आवश्यकता होती है जो / sms / क्षमता और भेजने के परिणाम को जोड़ता है।.
· kamo-internal
एक मुफ्त योजना गोली, और दोनों गोलियों के पीछे / मायप्लान पर एक पृष्ठ
परीक्षण गोली दो बार रहती थी - नौसेना रेल और लॉन्चपैड - उलटी गिनती के साथ, सदस्य-प्रकार के गेट और स्टाइलिंग ने उनके बीच मुकाबला किया। दोनों ने एक लाइव ट्रायल पर प्रवेश किया, इसलिए एक जिस संगठन का परीक्षण सिर्फ समाप्त हो गया था, उस पर कुछ नहीं देखा: कोई गोली नहीं, कोई स्पष्टीकरण नहीं, कोई गोली नहीं संकेत है कि उत्पाद छोटा हो गया था। और न तो गोली कहीं भी चला गया, इसलिए कोई सदस्य जो समझा गया कि उलटी गिनती अगले कदम नहीं थी। अब दोनों राज्यों को एक बार प्लानफिल में परिभाषित किया गया है, जो रेल के दो आकार और दोनों आकार रखता है। लॉन्चपैड का तीसरा स्थान है जबकि एक ही स्थान पर माइनिंग तय करता है। यह प्रत्येक टीम के सदस्य को दिखाता है और LINKS केवल उन लोगों के लिए जो योजना पर कार्य कर सकते हैं; हर किसी के लिए टूलटिप है पूरे फीचर, यही कारण है कि हर राज्य में केवल एक जुड़वां नाम है जो इसके बजाय पूछने के लिए है। /myplan उत्तर जहां संगठन खड़ा है, कितने समय तक इसका उपयोग किया जा सकता है, क्या है? बड़ा प्लान जोड़ता है, और इसके द्वारा बातचीत की गई शर्तों। रखने लायक तीन चीजें: शब्द रेल नायक है, और यह तीन अर्थों वाला एक उपकरण है - एक परीक्षण करने के लिए draining इसकी समय सीमा, एक भुगतान योजना अपने बिलिंग अवधि के माध्यम से चलती है, इसके अंत में एक समाप्त परीक्षण। यह अपनी वास्तविक चौड़ाई पर रखा गया है और राज्य के बजाय एक कीफ्रेम के साथ एनिमेटेड है, इसलिए एक धीमी स्क्रिप्ट या एक असफल हाइड्रेशन अभी भी एक खाली बार के बजाय असली आंकड़ा दिखाता है। लेजर प्रिंट मूल्य, नहीं ticks। कैटलॉग वास्तविक संख्या - 100 संपर्क करता है, दो पाइपलाइनों, 4 जीबी एक सीट, असीमित - और वे क्या एक मालिक पर फैसला कर रहे हैं। Excluded पंक्तियाँ नीचे रहने, बेहोश करने और छँटाई: वे उन्नयन के लिए तर्क हैं, और उन्हें छिपाने के लिए फ्री प्लान पूरा करेगा। अपग्रेड एक अंतर है, एक मूल्य ग्रिड नहीं है। पाठक के पास पहले से ही एक योजना है; उनका सवाल क्या वे प्राप्त करते हैं कि उनके पास नहीं है। मूल्य से आदेश दिया - कितने पंक्तियों द्वारा एक योजना रोशनी बराबर दिखती है और नहीं, क्योंकि एक अतिव्यापी बड़ी योजना कम जोड़ सकती है। ख़रीदना अभी भी बिलिंग कंसोल में होता है, जो इस गहरे लिंक को सब-टैब से जोड़ता है। पुनर्निर्माण यहां चेकआउट एक चीज का दूसरा कार्यान्वयन होगा जिसमें दो नहीं होना चाहिए। पैलेट हाउस कन्वेंशन का अनुसरण करता है - एक योजना-* रैंप - रंग-प्राइमरी से मिश्रित - साथ में एक अपवाद: राज्य रंग तय कर रहे हैं, क्योंकि एक संगठन जिसका ब्रांड एम्बर है अन्यथा अपने भुगतान किए गए रंग में एक परीक्षण बिल्ला पहनते हैं, और एक चीज यह पृष्ठ मौजूद है कहने के लिए यह बात नहीं कह सकती।.
· BillingService
ग्राहक के अपने प्लान पेज के पीछे एक समापन बिंदु
GET/api/billing/self/plan उत्तर सब कुछ /myplan renders: योजना, क्या संगठन वास्तव में उपयोग कर सकता है, कैटलॉग के खिलाफ तुलना करने के लिए, सीटें और उनके रोस्टर, भंडारण, नवीकरण और किसी भी बातचीत समझौते। छह के बजाय एक अनुरोध, लोडिंग राज्यों से परे एक कारण के लिए: एक्सेस टियर ईमानदारी से ब्राउज़र में निर्णय नहीं लिया जा सकता है। यह निर्णय लेने का मतलब है लेखा की सूची सदस्यों, और एक सदस्य केवल उन्हें सूचीबद्ध कर सकता है यदि वे पहले से ही स्वीकार किए जा रहे हैं। तो यहीं तय किया गया है, दो बार - क्लाइंट गेट निर्णय लेता है कि क्या करना है? पढ़ना - और एक SELF PAY कॉलर को सीट रोस्टर, संगठन टोटल्स और पेलोड प्राप्त होता है। समझौता कभी नहीं किया गया था। थक्का मारा: किसी ने नेटवर्क टैब को पढ़ा एक पृष्ठ जिसे वे खोलने की अनुमति देते हैं, उन्हें कुछ भी नहीं पता होना चाहिए। परीक्षण नामकरण लायक जाल है। एक परीक्षण सदस्यता प्लान कोड = मुफ्त पर बैठता है, क्योंकि TrialAdminService स्थान पर मुक्त दोष पंक्ति को परिवर्तित करता है, जबकि Entitlement Service अनुदान संपूर्ण सूची असीमित। एक परीक्षण के दौरान योजना की अपनी फीचर पंक्तियों की सेवा करना होगा एक ग्राहक को बताएं कि उनके पास एआई, ई-हस्ताक्षर या एसएसओ नहीं है जबकि वे बीच में हैं सभी तीनों का उपयोग - सप्ताह में वे तय कर रहे हैं कि क्या खरीदना है। इसलिए एक सक्रिय परीक्षण रिपोर्ट सूची का संघ शामिल है। एक लंबित परीक्षण जानबूझकर नहीं करता है: इसकी घड़ी शुरू नहीं हुआ है, और आशाजनक अन्यथा एक झूठ है, उत्पाद पहले क्लिक पर विरोधाभासी है। समझौते को वापस लिया जाता है, कभी ट्रांसक्रिप्ट नहीं किया जाता है। गद्य ग्राहक दृश्यमान है और केवल वही; आंतरिक नोट कभी सेवा नहीं छोड़ते। और अगली सीट की लागत एक संख्या है SetupFee.forAdded सीटें - वही कोड जो चार्ज को बढ़ाता है - बल्कि एक के बजाय वाक्य नियम का वर्णन करते हुए, क्योंकि एक वाक्य एक दूसरा कार्यान्वयन है जो करेगा अंत में पहले से असहमत है।.
· SecurityService
जो एक संगठन की योजना बना रहा है, और कौन इसे बदल सकता है
कंसोल बता सकता है कि एक परीक्षण चल रहा था और कुछ नहीं। entitlementSource है "TRIAL" या null, इसलिए स्वतंत्र, समाप्त-त्रिय, भुगतान और संकलित संगठन सभी समान थे। मूल्य - यही कारण है कि एक संगठन जिसका परीक्षण अभी समाप्त हो गया था, कोई गोली नहीं, कोई गोली नहीं स्पष्टीकरण, और कोई संकेत नहीं है कि उत्पाद छोटा हो गया है। योजनाMode राज्य और योजनाAccessTier नाम है जो उस पर कार्य कर सकते हैं। दोनों सवारी प्रत्येक पृष्ठ पहले से ही लोड हो जाता है, इसलिए उन गोलियों को पढ़ा जाता है जो उन्हें अतिरिक्त लागत नहीं देते हैं। किसी भी मार्ग पर अनुरोध - जो मायने रखता है, क्योंकि नौसेना रेल उन सभी पर निर्भर करता है। entitlementSource जानबूझकर untouched है। यह आज दो मूल्यों है और दो द्वारा पढ़ा जाता है गोली साइटों प्लस, पूर्व-authentication, ************* जो लॉगिन और रजिस्टर स्क्रीन को पेंट करता है; इसे चौड़ा करने से सभी तीनों का मतलब बदल जाएगा एक बार। Precedence PAID है > COMP > TRIAL ACTIVE > TRIAL PENDING > TRIAL EXPIRED > मुफ्त ओवर साझा isLive नियम द्वारा फ़िल्टर की गई सदस्यता - एक ही बिलिंगसर्विस की सदस्यता EntitlementModeResolver का उपयोग करता है, इसलिए दो PAST DUE खाते के अंदर के बारे में असहमति नहीं कर सकते इसकी कृपा अवधि। यह लोड-असर है: एक Free DEFAULT पंक्ति को साइनअप पर बीज दिया जाता है और कभी नहीं होता है जब एक योजना खरीदी जाती है तो हटा दिया जाता है, इसलिए "पहली पंक्ति मिली" अधिकांश भुगतान के लिए मुफ्त रिपोर्ट करता है ग्राहक टियर को ब्राउज़र के बजाय यहां हल किया जाता है क्योंकि ब्राउज़र इसे हल नहीं कर सकता है ईमानदारी से: इसे खाता-सदस्यता पंक्तियों से निर्णय लेने का मतलब लिस्टिंग सदस्य है, जो पहले से ही सूचीबद्ध हैं। आवश्यकता होती है पहुँच तय किया जा रहा है। केवल एक खाता वित्त पोषण पर निर्भर करता है संगठन - प्लेटफ़ॉर्म स्टाफ नियमित रूप से खातों को कहीं और लक्षित करता है।.

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