खाते और परियोजना तक पहुँच
अनुमत आईपी पते से HTTPS के माध्यम से सक्षम API खाते का उपयोग करें। परियोजना उसी खाते की होनी चाहिए और हटाई गई नहीं होनी चाहिए। पोर्टिंग ऑर्डर की कार्यप्रक्रिया से मिली परियोजना की विशिष्ट आईडी का उपयोग करें, उसकी संख्यात्मक डेटाबेस आईडी या किसी फ़ोन नंबर का नहीं। अनुरोध बनाते समय परियोजना की आईडी को यूआरएल-एन्कोड करें।
नंबर जोड़ने की तैयारी करें
यह कार्रवाई मौजूदा नंबर पोर्टिंग परियोजना में बदलाव करती है। पहले अपनी पोर्टिंग ऑर्डर कार्यप्रक्रिया के माध्यम से नंबरों और ग्राहक की अनुमति की पुष्टि करें। प्रत्येक नंबर को पूर्ण अंतरराष्ट्रीय अंकों के रूप में लिखें, दोहराए गए नंबर स्वयं हटाएँ और परियोजना की मौजूदा नंबर सूची जाँचें। मनमाने नंबरों की जाँच करने के लिए इस एंडपॉइंट का उपयोग न करें।
मौजूदा पोर्टल इस रूट को कॉल करने से पहले नंबरों की वैधता जाँचता है और उन्हें मानक रूप में बदलता है। पुराने एंडपॉइंट को सीधे इस्तेमाल करने पर वही सुरक्षा उपाय नहीं मिलते: वह इनपुट के आरंभ और अंत के रिक्त स्थान हटाता है, लेकिन फ़ोन नंबर के प्रारूप, देश कोड, दोहराव या परियोजना की कार्यप्रक्रिया की स्थिति की जाँच नहीं करता।
POST अनुरोध
स्थानीय numbers.json फ़ाइल निम्न संरचना के साथ बनाएँ। ये नंबर काल्पनिक हैं; इन्हें चुनी गई परियोजना के लिए अधिकृत नंबरों से बदलें।
{
"numbers": [
"12025550123",
"12025550124"
],
"isocode": "US"
}curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--header "Content-Type: application/json" \
--data-binary @numbers.json \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/addnumbers"| फ़ील्ड | अर्थ |
|---|---|
| numbers | नंबरों की स्ट्रिंग का गैर-खाली ऐरे, या प्रत्येक नई पंक्ति में एक नंबर वाली स्ट्रिंग देना अनिवार्य है। खाली प्रविष्टियाँ हटा दी जाती हैं और आरंभ तथा अंत के रिक्त स्थान हटा दिए जाते हैं। अल्पविराम से अलग किए गए पाठ को अलग-अलग नंबरों में नहीं बाँटा जाता। |
| isocode | जोड़ी जाने वाली पंक्तियों के लिए वैकल्पिक देश कोड। इसे न देने या खाली छोड़ने पर परियोजना के स्थान का उपयोग होता है। हैंडलर दिए गए मान के आरंभ और अंत के रिक्त स्थान हटाता है, लेकिन उसे बड़े अक्षरों में नहीं बदलता और न ही उसकी वैधता जाँचता है। सही देश कोड बड़े अक्षरों में स्वयं दें। |
इस उदाहरण में application/json के साथ POST का उपयोग करें। फ़ॉर्म से भेजा गया POST इनपुट भी पढ़ा जाता है। यह विधि अनुरोध दोहराने पर एक ही प्रभाव सुनिश्चित करने वाली कुंजी या इस एंडपॉइंट के लिए सुरक्षित बैच आकार की कोई निर्धारित गारंटी नहीं देती; अनुमानित सीमा पर निर्भर रहने के बजाय ऐसे बैचों के रिकॉर्ड का मिलान करें जिन्हें आसानी से सँभाला जा सके।
लौटाया गया परिणाम
काल्पनिक प्रतिक्रिया का उदाहरण।
{
"status": {
"code": 200,
"msg": "Success add numbers"
},
"response": {
"uniqueid": "PROJECT_EXAMPLE",
"count": 2,
"numbers": [
{
"id": 21,
"number": "12025550123",
"status": 0,
"status_str": "Pending",
"isocode": "US"
},
{
"id": 22,
"number": "12025550124",
"status": 0,
"status_str": "Pending",
"isocode": "US"
}
]
}
}प्रतिक्रिया में जिन प्रविष्टियों को जोड़ने का प्रयास किया गया है, उन्हें Pending चिह्नित किया जाता है। परिणाम बताने से पहले वह डेटाबेस में प्रत्येक प्रविष्टि जोड़ने के परिणाम की पुष्टि नहीं करती। इसलिए केवल गिनती या लौटाई गई आईडी इस बात का प्रमाण नहीं है कि हर पंक्ति स्थायी रूप से सहेजी गई थी। Pending चिह्नित प्रविष्टि का अर्थ ऑपरेटर की स्वीकृति, निर्धारित स्थानांतरण या पूरा हो चुका सक्रियण नहीं है।
दोबारा प्रयास करने से पहले रिकॉर्ड का मिलान करें
- नंबर जोड़ने से पहले परियोजना की नंबर सूची पढ़ें और जिन नंबरों को जोड़ना है उनका विवरण अपने अनुरोध रिकॉर्ड में रखें।
- नंबर जोड़ने का अनुरोध एक बार भेजें।
- परियोजना की नंबर सूची दोबारा पढ़ें और जोड़े जाने वाले हर नंबर का मिलान करें। दोहराए गए नंबरों और प्रत्येक नंबर की स्थिति की जाँच करें।
- यदि अनुरोध का समय समाप्त हो जाए, त्रुटि लौटे या परिणाम अस्पष्ट हो, तो दोबारा प्रयास करने से पहले सूची फिर से पढ़ें। कुछ प्रविष्टियाँ पहले ही जुड़ चुकी हो सकती हैं।
- पूरा अनुरोध बिना जाँच के दोहराने के बजाय पोर्टिंग ऑर्डर की कार्यप्रक्रिया या सहायता सेवा के माध्यम से गायब या दोहराई गई पंक्तियों का समाधान करें।
हैंडलर लेनदेन या दोहराव से बचाव के बिना एक-एक करके प्रविष्टियाँ जोड़ता है। प्रक्रिया बाधित होने पर पहले लिखी गई प्रविष्टियाँ बनी रह सकती हैं; false लौटाने वाला विफल प्रविष्टि-जोड़ प्रयास भी बताई गई गिनती में शामिल हो सकता है। अनुरोध दोहराने से दोहराई गई पंक्तियाँ जुड़ सकती हैं। हैंडलर स्वयं कोई घटना दर्ज नहीं करता और न ही ऑपरेटर द्वारा नंबर का स्थानांतरण पूरा करता है।
पुरानी प्रणाली की त्रुटियाँ
POST के अलावा किसी अन्य विधि पर API कोड 403 लौटता है। परियोजना मौजूद न होने, हटाई गई होने या खाते की न होने पर API कोड 404 लौटता है। नंबर का इनपुट खाली होने पर भी API कोड 404 लौटता है। प्रमाणीकरण और स्रोत आईपी संबंधी प्रतिबंध लागू होते हैं। पुरानी प्रणाली के ये कोड यह प्रमाणित नहीं करते कि प्रसंस्करण शुरू होने के बाद पहले कोई प्रविष्टि नहीं जोड़ी गई थी।
बिलिंग और स्थानांतरण का दायरा
समीक्षित हैंडलर परियोजना में नंबरों की पंक्तियाँ जोड़ता है और उसमें सीधे खाते से राशि काटने या ऑपरेटर को अनुरोध भेजने की कोई कार्रवाई नहीं है। इससे पूरी नंबर पोर्टिंग सेवा मुफ़्त नहीं हो जाती और न ही सहमत पोर्टिंग शुल्क निष्प्रभावी होते हैं। स्थानांतरण की अपेक्षा करने से पहले परियोजना की अनुमति, दस्तावेज़ और समीक्षा संबंधी आवश्यकताएँ पूरी करें।