ডেভেলপার

GET/v3/other/{isocode}

একটি দেশের বিশেষ নম্বরের ধরন ও মূল্য তালিকাভুক্ত করুন

একটি দেশের অস্থানীয় নম্বরের ক্যাটালগ নম্বরের ধরন অনুযায়ী গোষ্ঠীবদ্ধ করে ফেরত দেয়; প্রতিটি এন্ট্রিতে থাকে অ্যাকাউন্টভিত্তিক মূল্য পরিকল্পনা, প্রয়োজনীয় শর্তের তথ্য এবং একটি next_function। গোষ্ঠীগুলোর ক্রম হলো জাতীয়, টোল-ফ্রি, ভাগাভাগি খরচের, বৈশ্বিক, মোবাইল এবং তারপর অন্যান্য ধরন। স্থানীয় নম্বর বাদ দেওয়া হয়; সেগুলোর জন্য getareas ব্যবহার করুন।

এই পৃষ্ঠায়
  1. অনুরোধ
  2. প্রতিক্রিয়া
  3. ত্রুটি
  4. প্রাপ্যতা ও পার্শ্বপ্রতিক্রিয়া

স্থানীয় নম্বর খুঁজে পাওয়ার উপায় হলো getcountries এবং getareas। জাতীয়, টোল-ফ্রি, ভাগাভাগি খরচের, বৈশ্বিক ও মোবাইল নম্বরের জন্য কল করুন other দেশের ISO কোড দিয়ে।

  • গোষ্ঠীগুলো একটি নির্দিষ্ট ক্রমে দেখানো হয় এবং কোনো এন্ট্রি নেই এমন গোষ্ঠী বাদ দেওয়া হয়।
  • প্রতিটি এন্ট্রিতে আপনার অ্যাকাউন্টের মূল্য পরিকল্পনাগুলো তালিকাভুক্ত থাকে এই ফিল্ডে: prices। পরিকল্পনা বেছে নেওয়ার সময় বিবেচনা করুন সেটির channels, monthly_price, setup_price, per_minute এবং free_minutes; আর সংরক্ষণ করুন সেটির price_id অর্ডার করার জন্য, যেখানে সংশ্লিষ্ট এন্ডপয়েন্ট এটি চায়।
  • যদি needs_registration সত্য হিসেবে গণ্য হয় এমন মান হয়, তাহলে পড়ুন restrictions অর্ডার করার আগে। ওই পাঠকে প্রদর্শনের জন্য অবিশ্বস্ত বিষয়বস্তু হিসেবে বিবেচনা করুন।
  • অনুসরণ করুন next_function: v3/getnumbers/{uuid} আপনাকে একটি নির্দিষ্ট নম্বর বেছে নিতে দেয়, আর v3/order/{uuid} সরাসরি এন্ট্রি থেকে অর্ডার করে।
  • একটি খালি response তালিকা, যার কোড 200 হওয়ার অর্থ হলো অনুরোধের সময় কোনো বিশেষ নম্বরের ধরন পাওয়া যায়নি। ক্যাটালগে সাময়িকভাবে সংযোগ করা না গেলে প্রতিক্রিয়া অসম্পূর্ণ হতে পারে অথবা বৈধ JSON নাও হতে পারে, তাই পরে আবার চেষ্টা করুন।
  • ক্যাটালগের বাইরে থাকা দেশগুলোর জন্য ফেরত আসা কোড হলো 404; এর সঙ্গে মিলে এমন HTTP স্ট্যাটাস থাকে না। সবসময় পরীক্ষা করুন status.code।

অনুরোধ

আবশ্যক: HTTP Basic অথবা Bearer টোকেন (প্রমাণীকরণ ও API প্রতিক্রিয়া দেখুন)। প্রমাণীকরণ ব্যর্থ হলে অনুসন্ধান চালানোর আগেই HTTP 401 দিয়ে উত্তর দেওয়া হয়।

GET অনুরোধে পাথে isocode দিতে হবে। পাথের ওই অংশ বাদ দেওয়া হলে তার পরিবর্তে ফর্ম-এনকোড করা isocode ফিল্ড পড়া হয়।

curl --user "$API_USER:$API_PASSWORD" 'https://api.multitel.net/v3/other/FR'
পাথ প্যারামিটার
নামধরনআবশ্যকবিবরণ
isocodestringহ্যাঁISO 3166-1 alpha-2 দেশের কোড। বড় ও ছোট হাতের অক্ষরের পার্থক্য করা হয় না; শুরুর ও শেষের ফাঁকা স্থান উপেক্ষা করা হয়। দেশটি অবশ্যই বিশেষ নম্বরের ক্যাটালগের সঙ্গে যুক্ত থাকতে হবে।

প্রতিক্রিয়া

প্রমিত আবরণ কাঠামো। সফল হলে status.code হয় 200, status.msg খালি থাকে এবং status.results হলো গোষ্ঠীর সংখ্যা। response হলো গোষ্ঠীগুলোর তালিকা। গোষ্ঠীর ফিল্ডগুলো: group_key (মানসম্মত করা ধরনের কী: national, tollfree, sharedcost, global, mobile অথবা ছোট হাতের অক্ষর ও অঙ্ক দিয়ে গঠিত অন্য কোনো কী); group_name (প্রদর্শিত নাম); group_type_uuid (ধরনের শনাক্তকারী, যার অভ্যন্তরীণ গঠন থেকে অর্থ নির্ণয় করা উচিত নয়); items। গোষ্ঠীগুলোর ক্রম হলো national, tollfree, sharedcost, global, mobile এবং তারপর অন্যান্য কী, যেগুলো group_name অনুযায়ী সাজানো হয়। যেসব গোষ্ঠীতে items নেই সেগুলো বাদ দেওয়া হয়; স্থানীয় ধরনটিও বাদ দেওয়া হয়। US-এর ক্ষেত্রে মোবাইল গোষ্ঠী বাদ দেওয়া হয়, যদি না আপনার অ্যাকাউন্টে US-এর মোবাইল নম্বর ব্যবহারের সুবিধা সক্রিয় থাকে। আইটেমগুলো প্রথমে name অনুযায়ী (বড় ও ছোট হাতের অক্ষরের পার্থক্য না করে), তারপর prefix অনুযায়ী সাজানো হয়। আইটেমের ফিল্ডগুলো: uuid (এন্ট্রির শনাক্তকারী, যার অভ্যন্তরীণ গঠন থেকে অর্থ নির্ণয় করা উচিত নয় এবং যা ব্যবহৃত হয় next_function-এ); area_uuid (ক্যাটালগ গোষ্ঠীর শনাক্তকারী, যার অভ্যন্তরীণ গঠন থেকে অর্থ নির্ণয় করা উচিত নয়); country_uuid (দেশের শনাক্তকারী, যার অভ্যন্তরীণ গঠন থেকে অর্থ নির্ণয় করা উচিত নয়); prefix ('+' ও দেশের কলিং কোড দিয়ে শুরু হওয়া পূর্ণ উপসর্গ); name (ক্যাটালগের নাম; উদ্ধৃতি চিহ্ন ব্যাকস্ল্যাশ দিয়ে এস্কেপ করা অবস্থায় থাকতে পারে); metered, overflow এবং needs_registration (ফ্ল্যাগ, যেগুলোর ধরন boolean অথবা number হতে পারে; সত্য হিসেবে গণ্য হয় এমন যেকোনো মানকে হ্যাঁ হিসেবে ধরুন); restrictions (নিবন্ধনের প্রয়োজন না হলে খালি থাকে, অন্যথায় প্রয়োজনীয় শর্তের পাঠ থাকে, যাতে HTML লাইন বিরতি ও একটি লিংক, শুরুর ও শেষের উদ্ধৃতি চিহ্ন এবং এস্কেপ করা অক্ষর থাকতে পারে; এটিকে প্রদর্শনের জন্য অবিশ্বস্ত পাঠ হিসেবে বিবেচনা করুন); state (US, CA ও PR-এর জন্য অঙ্গরাজ্যের কোড, অথবা কোনো কোড জানা না থাকলে খালি তালিকা; অন্য দেশগুলোর জন্য দেশের ISO কোড); country_iso; is_mobile (মোবাইল গোষ্ঠীতে 1, অন্যথায় 0); number_type (group_key-এর মতোই); available (এন্ট্রিটির জন্য ক্যাটালগের জানানো integer ধরনের সংখ্যা, জানানো না হলে 0); sms_coverage (কোনো বৈশিষ্ট্যে SMS বা MMS-এর উল্লেখ থাকলে 1); returns_numbers (নির্দিষ্ট নম্বরের তালিকা দেওয়া সম্ভব হলে 1); next_function ('v3/getnumbers/{uuid}' হয় যখন returns_numbers-এর মান 1, অন্যথায় 'v3/order/{uuid}'); prices; features (সক্ষমতা বর্ণনাকারী স্ট্রিংগুলোর তালিকা); group_key; group_type_uuid। প্রতিটি prices এন্ট্রিতে থাকে price_id (পরিকল্পনার শনাক্তকারী, যার অভ্যন্তরীণ গঠন থেকে অর্থ নির্ণয় করা উচিত নয়), is_customer_custom (আপনার অ্যাকাউন্টের জন্য বিশেষভাবে নির্ধারিত মূল্য প্রযোজ্য হলে true; শুধু যেসব পরিকল্পনায় চ্যানেল অন্তর্ভুক্ত নেই সেগুলোর জন্য), per_minute ও free_minutes (দশমিক সংখ্যার স্ট্রিং), setup_price ও monthly_price (দশমিকের পরে দুই ঘরসহ স্ট্রিং) এবং channels (অন্তর্ভুক্ত চ্যানেলের সংখ্যা, যার ধরন integer)। কোনো মূল্য পরিকল্পনা নেই এমন এন্ট্রি বাদ দেওয়া হয়। প্রতিটি অনুরোধে নম্বরের প্রতিটি ধরনের জন্য সর্বোচ্চ 1000 ক্যাটালগ এন্ট্রি বিবেচনা করা হয়। কোনো ধরনেরই এন্ট্রি না থাকলে response একটি খালি তালিকা হয় এবং status.results-এর মান হয় 0। সরাসরি ক্যাটালগ অনুসন্ধান ব্যর্থ হলে প্রতিক্রিয়ায় এই আবরণ কাঠামো ব্যবহৃত নাও হতে পারে অথবা কিছু গোষ্ঠী অনুপস্থিত থাকতে পারে।

প্রতিক্রিয়ার কাঠামোর উদাহরণ; এটি অ্যাকাউন্টের সরাসরি তথ্য বা বর্তমান মূল্য উদ্ধৃতি নয়।

{
  "status": {
    "code": 200,
    "msg": "",
    "results": 1
  },
  "response": [
    {
      "group_key": "tollfree",
      "group_name": "Toll-free",
      "group_type_uuid": "00000000-0000-4000-8000-0000000000a1",
      "items": [
        {
          "uuid": "0000000000000000000000000000b001",
          "area_uuid": "0000000000000000000000000000a001",
          "country_uuid": "0000000000000000000000000000c001",
          "prefix": "+33800",
          "name": "Example Toll-free",
          "metered": true,
          "overflow": 0,
          "needs_registration": 0,
          "restrictions": "",
          "state": "FR",
          "country_iso": "FR",
          "is_mobile": 0,
          "number_type": "tollfree",
          "available": 10,
          "sms_coverage": 0,
          "returns_numbers": 1,
          "next_function": "v3/getnumbers/0000000000000000000000000000b001",
          "prices": [
            {
              "price_id": "0000000000000000000000000000d001",
              "is_customer_custom": false,
              "per_minute": "0.05",
              "free_minutes": "0",
              "setup_price": "0.00",
              "monthly_price": "5.00",
              "channels": 2
            }
          ],
          "features": ["voice"],
          "group_key": "tollfree",
          "group_type_uuid": "00000000-0000-4000-8000-0000000000a1"
        }
      ]
    }
  ]
}

ত্রুটি

  • 500: msg 'ISO Code parameter is required': isocode অনুপস্থিত বা খালি। এটি অনুরোধের একটি সংশোধনযোগ্য ত্রুটি। এর সঙ্গে মিলে এমন কোনো HTTP স্ট্যাটাস নির্ধারণ করা হয় না।
  • 404: msg 'Error: no such country': দেশটি অজানা অথবা বিশেষ নম্বরের ক্যাটালগের সঙ্গে যুক্ত নয়। এর সঙ্গে মিলে এমন কোনো HTTP স্ট্যাটাস নির্ধারণ করা হয় না।
  • 401: প্রমাণীকরণ অনুপস্থিত বা ব্যর্থ হয়েছে। HTTP স্ট্যাটাস 401 দিয়ে পাঠানো হয়।

প্রাপ্যতা ও পার্শ্বপ্রতিক্রিয়া

  • কোনো অর্ডার করে না। এই এন্ডপয়েন্টের কোডে অর্থ ধার্য করার কোনো ধাপ নেই।
  • আপনার অ্যাকাউন্টের ক্যাটালগের বিবরণ ও মূল্য উদ্ধৃতি হালনাগাদ করে এবং একই পরিকল্পনাগুলোর আগের মূল্য উদ্ধৃতি প্রতিস্থাপন করে। অর্ডার করার এন্ডপয়েন্টগুলো কীভাবে এই মূল্য উদ্ধৃতি ব্যবহার করে তা আলাদাভাবে নথিভুক্ত করা আছে।
  • মূল্যগুলো আপনার অ্যাকাউন্টের জন্য নির্দিষ্ট এবং এতে বিশেষভাবে নির্ধারিত মূল্যও অন্তর্ভুক্ত থাকতে পারে। প্রতিক্রিয়ায় মুদ্রার উল্লেখ থাকে না।
  • সরাসরি ক্যাটালগ অনুসন্ধান করে, তাই অন্যান্য খোঁজার কলের চেয়ে এটি ধীর হতে পারে। এক কল থেকে পরের কলে ফলাফল বদলে যেতে পারে।