बिलिंग सिस्टम और डिबगिंग टूल को एक ही डेटा अलग-अलग समय पर चाहिए होता है। ज़्यादातर प्लेटफ़ॉर्म उन्हें अलग-अलग प्रतियाँ देते हैं। Bird पर एक ही रिकॉर्ड दोनों काम करता है, और कॉल खत्म होते ही उसे पढ़ा जा सकता है। इससे उसके साथ मिलान करने में दो बातें बदलती हैं: लेग किसे माना जाता है, और लागत कब आती है।
एक रिकॉर्ड में क्या होता है?
एक रिकॉर्ड में फ़ील्ड के तीन समूह होते हैं, और हर समूह एक अलग सवाल का जवाब देता है।
क्या हुआ। status कॉल का परिणाम है, जो answered, no answer, rejected, failed या unknown में से एक होता है। इसके साथ, SIP प्रतिक्रिया अंतिम SIP कोड है। जहाँ कॉल को किसी कैरियर के बजाय Bird ने अस्वीकार किया हो, वहाँ अस्वीकृति का कारण बताता है कि कॉल किस जाँच में विफल हुई। इन तीनों को साथ पढ़ने पर निदान मिलता है, और SIP प्रतिक्रिया कोड का क्या अर्थ है में बताया गया है कि ये आपस में कैसे जुड़ते हैं।
कब हुआ। Started वह समय है जब Bird को कॉल मिली। Answered वह समय है जब कॉल उठाई गई, या यह तथ्य कि वह नहीं उठाई गई। Ended वह समय है जब कॉल समाप्त की गई। इनकमिंग कॉल पर, Inbound route दर्ज करता है कि डायल किए गए नंबर को क्या करने के लिए सेट किया गया था, और Trunk उस ट्रंक का नाम बताता है जिस पर कॉल आई या जिस पर उसे पहुँचाया गया।
कितनी लागत आई। बिल योग्य समय, कुल अवधि और कॉल की लागत।
इनके साथ दो पहचानकर्ता भी होते हैं, और इन्हें एक-दूसरे की जगह इस्तेमाल नहीं किया जा सकता। कॉल ID (vcl_…) रिकॉर्ड का अपना पहचानकर्ता है। सपोर्ट से संपर्क करते समय इसे बताएँ, और अपने लॉग में इसी से मिलान करें। सेशन ID (vcs_…) एक कॉल के सभी लेग में साझा होता है।
एक कॉल दो रिकॉर्ड के रूप में क्यों दिखती है?
क्योंकि एक रिकॉर्ड पूरी कॉल का नहीं, बल्कि एक लेग का विवरण होता है, और कुछ कॉल में एक से ज़्यादा लेग होते हैं।
फ़ॉरवर्ड की गई कॉल ऐसी ही होती है: इनबाउंड लेग और आउटबाउंड लेग अलग-अलग रिकॉर्ड होते हैं, जिनका सेशन ID एक ही होता है। अगर आप रिकॉर्ड को कॉल मानकर गिनते हैं, तो फ़ॉरवर्ड की गई कॉल ठीक उतनी ही ज़्यादा गिनी जाएँगी। अगर आप सभी रिकॉर्ड की अवधि जोड़ते हैं, तो जिस समय दोनों लेग साथ चल रहे थे, वह दो बार गिना जाएगा।
इसका हल सेशन ID है। कॉल चाहिए हों तो इसके आधार पर समूह बनाएँ, और लेग चाहिए हों तो रिकॉर्ड को अलग-अलग पढ़ें। आपको कौन-सा चाहिए, यह सवाल पर निर्भर करता है: डिलीवरी की समस्या लेग का सवाल है, जबकि ग्राहक अनुभव या वॉल्यूम का सवाल आम तौर पर सेशन का होता है।
मेरी लागत अवधि से मेल क्यों नहीं खाती?
बिल योग्य समय में रिंग होने का समय शामिल नहीं होता। लागत कॉल के साथ नहीं, बल्कि कॉल समाप्त होने के बाद दर्ज की जाती है।
बिल योग्य समय कुल अवधि नहीं है। बिल योग्य समय कॉल का जवाब दिए जाने से लेकर कॉल काटे जाने तक चलता है। कुल अवधि में वह समय भी शामिल होता है जब तक किसी के उठाने से पहले कॉल की घंटी बजती रही। एक रिकॉर्ड में दोनों दर्ज होते हैं। जो मिलान चुपचाप गलत मान का उपयोग करता है, उसमें हर उत्तर दी गई कॉल पर घंटी बजने की अवधि जितना अंतर आता है, और हर बिना उत्तर वाली कॉल पर पूरी अवधि जितना।
लागत कॉल के बाद आती है। रिकॉर्ड में लागत तब आती है जब उसकी रेटिंग हो जाती है, और यह कॉल खत्म होने का ठीक वही पल नहीं होता। तुरंत लाया गया रिकॉर्ड बाकी हर तरह से पूरा हो सकता है, फिर भी उसमें कोई कीमत नहीं होती। अगर आप लगभग रीयल टाइम में खर्च की गणना कर रहे हैं, तो लागत मौजूद होने पर ही उसे पढ़ें, और उसकी अनुपस्थिति को कभी शून्य न मानें। यह केवल औपचारिकता नहीं है: यहाँ लागत का न होना और शून्य लागत दो अलग तथ्य हैं, और दोनों को एक जैसा मानने से खर्च कम आँका जाता है।
हालाँकि, इंतज़ार करना हमेशा हल नहीं होता। बिना उत्तर वाली कॉल की कोई लागत नहीं होती और कभी होगी भी नहीं। उत्तर दी गई कॉल जिसमें लागत लगातार नहीं आती, वह भी रेटिंग का इंतज़ार नहीं कर रही होती। रिकॉर्ड यह नहीं बताता कि आप इन दोनों में से किसे देख रहे हैं। बार-बार पोल करते रहने के बजाय कॉल ID के साथ सपोर्ट से संपर्क करें।
कौन-सी कॉल कभी दिखाई नहीं देतीं?
जिस कॉल को Bird स्वीकार करने से पहले ही अस्वीकार कर देता है, उसका कोई रिकॉर्ड नहीं बनता, इसलिए लॉग आपके खाते तक पहुँची हर चीज़ का पूरा ब्योरा नहीं है।
जिस कॉल को Bird बिल्कुल स्वीकार नहीं कर सकता, उसे रिकॉर्ड बनने से पहले ही लौटा दिया जाता है, इसलिए वह कभी लॉग तक नहीं पहुँचती। ट्रंक की IP अनुमति सूची ऐसा ही एक अस्वीकरण है। जो पता इस सूची में नहीं है, वहाँ से आई कॉल SIP लेयर पर अस्वीकार कर दी जाती है और आमतौर पर उसका कोई रिकॉर्ड नहीं बनता। इसलिए आपके ट्रंक की जाँच करने वाला हमलावर बहुत सारा ट्रैफ़िक पैदा कर सकता है, जिसका उस जगह कोई निशान नहीं मिलता जहाँ आप स्वाभाविक रूप से देखेंगे। गलत कॉन्फ़िगर किया गया PBX, यानी किसी कंपनी की कॉल रूट करने वाला बिज़नेस फ़ोन सिस्टम, नए पते से यही करता है।
व्यावहारिक नतीजा यह है कि "there is nothing in the call log" जितना लगता है, उससे सीमित सवाल का जवाब देता है। इसका मतलब है कि कोई कॉल स्वीकार नहीं की गई, यह नहीं कि कोई प्रयास ही नहीं हुआ। जब कोई फ़ोन सिस्टम बताए कि उसकी कॉल विफल हो रही हैं और लॉग खाली हो, तो अनुमति सूची सबसे आखिर में नहीं, सबसे पहले जाँचें। वॉइस समस्या निवारण में इस प्रक्रिया का बाकी हिस्सा है।
मैं रिकॉर्ड कैसे निकालूँ?
एक कॉल के लिए, उसे कॉल लॉग में खोलें और ऊपर बताए गए फ़ील्ड पढ़ें। लॉग सूची को फ़िल्टर करता है और उसमें खोज करता है, और चल रही कॉल को पूरी हो चुकी कॉल से अलग दिखाता है।
कई कॉल के लिए, वॉइस API कॉल को ऐसे रिकॉर्ड के रूप में लौटाता है जिन्हें आप पेज-दर-पेज देख सकते हैं। वॉइस आँकड़ों के एंडपॉइंट उन्हें दिन, घंटे, देश और रिस्पॉन्स कोड के हिसाब से एकत्र करते हैं। किसी पैटर्न से जुड़े सवाल का जवाब रिकॉर्ड पेज-दर-पेज देखने के बजाय आँकड़ों से मिलता है।
कॉल लॉग में रिकॉर्ड के हर फ़ील्ड और सूची को फ़िल्टर करने के तरीके का दस्तावेज़ है।
संक्षेप में
एक कॉल के कई रिकॉर्ड हो सकते हैं।
हर लेग का अपना रिकॉर्ड होता है, और साझा session id ही उन्हें एक समूह में जोड़ता है। फ़ॉरवर्ड की गई कॉल के दो रिकॉर्ड होते हैं, एक नहीं।
बिल योग्य समय कॉल उठाने से कॉल काटने तक का होता है।
यह कुल अवधि नहीं है, क्योंकि कुल अवधि में घंटी बजने का समय भी शामिल होता है। दोनों दर्ज होते हैं, इसलिए मिलान सही वाले से करें।
लागत शुरू में मौजूद नहीं होती, और कभी-कभी कभी नहीं आती।
रेटिंग हो जाने के बाद ही रिकॉर्ड में लागत आती है। अगर किसी उत्तर दी गई कॉल में अब भी लागत नहीं है, तो वह रेटिंग का इंतज़ार नहीं कर रही, इसलिए कॉल ID लेकर सपोर्ट से संपर्क करें।
कुछ कॉल कभी कोई रिकॉर्ड नहीं बनातीं।
जिस कॉल को Bird स्वीकार करने से पहले ही अस्वीकार कर देता है, वह लॉग में कुछ नहीं छोड़ती, इसलिए लॉग आपके खाते तक पहुँची हर चीज़ का पूरा ब्योरा नहीं है।