किसी एक देश में मौजूद व्यक्ति के लिए लिखा गया फ़ोन नंबर बाकी हर जगह अस्पष्ट होता है। शुरुआत में शून्य है या देश का कॉलिंग कोड, इसके आधार पर वही अंक अलग नंबर बन जाते हैं। E.164 लिखने का एक तय रूप देकर यह अस्पष्टता दूर करता है।
यह मानक असल में क्या परिभाषित करता है?
अंतरराष्ट्रीय नंबरों की संरचना, आठ अलग-अलग श्रेणियों में।
Recommendation ITU-T E.164, जो अंतरराष्ट्रीय दूरसंचार संघ (संयुक्त राष्ट्र की वह एजेंसी जो नंबरिंग योजना का प्रबंधन करती है) से आती है, अंतरराष्ट्रीय नंबर की हर श्रेणी के लिए अंकों की संरचना और रूटिंग विश्लेषण दोनों तय करती है:
Recommendation ITU-T E.164 provides the number structure and functionality for the eight categories of numbers used for international public telecommunication:
ये श्रेणियाँ केवल देशों के नंबरों तक सीमित नहीं हैं। भौगोलिक क्षेत्र आठ में से एक श्रेणी है। बाकी श्रेणियाँ हैं: वैश्विक सेवाएँ, अन्य वैश्विक सेवाएँ, वैश्विक उपग्रह सेवाएँ, नेटवर्क, देशों के समूह, परीक्षण के लिए संसाधन, और इंटरनेट ऑफ़ थिंग्स तथा मशीन-से-मशीन ट्रैफ़िक के लिए सेवाएँ और एप्लिकेशन। यह मानक खुद इन नंबरों का नाम भी तय करता है:
Annex A provides additional information on the structure and function of international public telecommunication numbers (hereafter referred to as "international E.164 numbers").
सही तरीके से लिखा गया नंबर कैसा दिखता है?
पहले देश का कॉलिंग कोड, फिर राष्ट्रीय नंबर, और इसके अलावा कुछ नहीं।
+31612345678 एक डच मोबाइल नंबर है। इसमें 31 देश का कॉलिंग कोड है और 612345678 राष्ट्रीय नंबर है। जो चीज़ें इसमें नहीं हैं, वे भी उतनी ही अहम हैं: कोई स्पेस नहीं, कोई हाइफ़न नहीं, कोई कोष्ठक नहीं, राष्ट्रीय डायलिंग नियम वाला शुरुआती शून्य नहीं, और 011 या 00 जैसा कोई अंतरराष्ट्रीय एक्सेस प्रीफ़िक्स नहीं।
शुरुआती + एक संकेत है, अंक नहीं। यह स्ट्रिंग पढ़ने वाले सिस्टम को बताता है कि आगे एक अंतरराष्ट्रीय नंबर है। इसे कोई डायल नहीं करता। इसलिए अंकों को स्टोर करें। विराम चिह्नों को केवल प्रस्तुति का हिस्सा मानें।
एक नंबर कितना लंबा हो सकता है?
इतना लंबा कि आपको लंबाई की जाँच नहीं करनी चाहिए।
पढ़ने योग्य स्रोत में यह नियम उससे कहीं सीमित रूप में दिया गया है, जिस रूप में इसे आम तौर पर उद्धृत किया जाता है। Google के libphonenumber FAQ के अनुसार पंद्रह अंकों की सीमा केवल राष्ट्रीय हिस्से पर लागू होती है, और सभी देश इसका पालन नहीं करते:
We support parsing and storing numbers from a minimum length of two digits to a maximum length of 17 digits currently (excluding country calling code). The ITU standard says the national significant number should not be longer than fifteen digits, but empirically this has been proven not to be followed by all countries.
इसलिए पंद्रह अंकों से लंबे हर नंबर को अस्वीकार करने वाला वैलिडेटर असली नंबरों को भी अस्वीकार कर देगा।
व्यावहारिक नियम यह है कि नंबर को मापने के बजाय पार्स करें। कोई लाइब्रेरी या लुकअप बता सकता है कि नंबर किसी असाइन की जा सकने वाली रेंज में आता है या नहीं, जो लंबाई की तुलना से पता नहीं चलता। फ़ोन नंबर सत्यापन क्या जाँचता है में बताया गया है कि हर तरह की जाँच से क्या पता चलता है।
Bird कौन-से रूप स्वीकार करता है?
देश कोड और राष्ट्रीय नंबर, जिनमें विराम चिह्न वैकल्पिक हैं।
आप देश कॉलिंग कोड और उसके बाद राष्ट्रीय नंबर भेजते हैं। अंतरराष्ट्रीय हिस्से को चिह्नित करने के नियम जान-बूझकर ढीले रखे गए हैं। शुरुआती + वैकल्पिक है और उसकी जगह 00 भी काम करता है, इसलिए +31612345678, 31612345678 और 0031612345678 तीनों एक ही नंबर दर्शाते हैं।
यह अनुमान नहीं लगाता। किसी एक देश के भीतर डायल करने के लिए लिखा गया नंबर, जिसमें देश कोड नहीं है, अस्वीकार कर दिया जाता है, उसे किसी खास देश का नहीं माना जाता। अगर कोई फ़ॉर्म राष्ट्रीय नंबर तो लेता है पर देश नहीं लेता, तो ठीक यही अस्वीकृति होती है। दोनों को एक साथ लें।
नंबर खरीदते समय वही सटीक मान भेजें जो इन्वेंटरी ने लौटाया था, उसकी दोबारा फ़ॉर्मैट की गई कॉपी नहीं। लुकअप गाइड में स्वीकार किए जाने वाले रूप बताए गए हैं, और वर्चुअल फ़ोन नंबर क्या है में बताया गया है कि नंबर मिलने के बाद आप उससे क्या कर सकते हैं।
संक्षेप में
यह ITU की एक सिफ़ारिश है, कोई फ़ॉर्मेटिंग परंपरा नहीं।
ITU-T E.164 अंतरराष्ट्रीय नंबरों की आठ श्रेणियों के लिए नंबर की संरचना तय करता है। इनमें से एक श्रेणी मशीन-से-मशीन सेवाओं के लिए है।
प्लस चिह्न एक संकेत है, अंक नहीं।
यह बताता है कि इसके बाद आने वाला हिस्सा अंतरराष्ट्रीय नंबर है, डायल करने की चीज़ नहीं। इसीलिए अंकों का सही होना ज़रूरी है।
लंबाई के आधार पर नंबर की जाँच न करें।
Google की नंबर लाइब्रेरी ITU मानक से पंद्रह अंकों के दिशानिर्देश का उल्लेख करती है और बताती है कि सभी देश इसका पालन नहीं करते।
देश कोड के बिना कोई नंबर E.164 नंबर नहीं है।
Bird केवल राष्ट्रीय नंबर को अस्वीकार कर देता है और यह अनुमान नहीं लगाता कि वह किस देश का है। नंबर के साथ देश कोड भी सहेजें।