API التحقق من أرقام الهواتف: ما يستطيعه وما لا يستطيعه
يفحص API التحقق من رقم الهاتف ما إذا كان الرقم سليم الصياغة بحسب قواعد خطة الترقيم الدولية ويعيد منطقته ونوع خطه، كالهاتف المحمول أو الثابت، دون الاتصال بأي شبكة. وهو يجيب عن «هل يمكن أن يكون هذا رقمًا حقيقيًا؟» لا عن «هل هذا الرقم متصل الآن؟»
هذا التمييز هو ما يحدد نوع الخدمة التي تحتاجها. التحقق على مستوى الصيغة سريع ومجاني التشغيل وخاص، أما أي شيء يبلّغ عن الحالة الحية فيعتمد على مصدر بيانات بمستوى المشغّل وكلفة لكل استعلام. وتدفع فرق كثيرة ثمن الثاني بينما كان الأول سيحل مشكلتها الفعلية.
ما يجيده التحقق القائم على القواعد
خطة الترقيم في كل بلد عامة: رموز الاتصال الدولية، والأطوال المسموح بها، ونطاقات رموز المناطق والبادئات الصالحة، وأي البادئات مخصصة للهاتف المحمول أو الثابت أو الخدمات الأخرى. ويستطيع مدقق مبني على هذه القواعد، وهو عادةً مكتبة مشتقة من بيانات libphonenumber من Google، أن يفعل الكثير:
- التوحيد. تحويل "(415) 555-0132" و"415-555-0132" و"+1 415 555 0132" إلى سلسلة E.164 نفسها، فتتوقف قاعدة بياناتك عن حمل ست صيغ لرقم واحد.
- رفض المدخلات المشوهة. يُلتقط الطول الخاطئ أو البادئة المستحيلة أو الحرف في مكان خاطئ عند النموذج، قبل أن يصل إلى مزود الرسائل القصيرة ويكلّف مالًا.
- استنتاج المنطقة. يأتي البلد أو المنطقة من رمز الاتصال والبادئة، وهذا يفيد في التوجيه والتوطين والتنسيق الافتراضي.
- تصنيف نوع الخط. يُشتق الهاتف المحمول والثابت وفئات أخرى عدة من تخصيصات البادئات.
ولأن العمل حساب بحت، فإنه يعيد النتيجة فورًا ولا يضطر الرقم إلى الإرسال إلى مورد خارجي. وهذه ميزة في الخصوصية، إذ إن أرقام الهواتف بيانات شخصية في معظم الولايات القضائية. وتعمل أداة فحص أرقام الهواتف في ipto بهذه الطريقة: فهي تستخدم محللًا مستضافًا ذاتيًا، ومخرجاتها مبنية على قواعد خطة الترقيم دون بحث حي عن المشغّل. أدخل رقمًا بالصيغة الدولية، أو اختر بلدًا لتفسير رقم محلي.
ما لا يستطيع إخبارك به
للتحقق القائم على القواعد حدود صلبة، ومن المفيد معرفتها قبل تصميم تدفق حولها.
- هل الرقم نشط. قد يتبع الرقم كل قاعدة ومع ذلك يكون غير مخصص أو مفصولًا أو أُعيد تدويره لمالك جديد.
- من يملكه. لا تقول قواعد الترقيم شيئًا عن المشترك.
- أي مشغّل يخدمه حاليًا. تعني قابلية نقل الأرقام أن مالك البادئة الأصلي غالبًا ليس المشغّل الحالي.
- هل الخط خدمة VoIP. كشف النوع المعتمد على البادئة تقريبي، وتُخصَّص الأرقام الافتراضية كثيرًا من نطاقات عادية.
بمصطلحات ipto، تعني «صالح» «معقول بحسب قواعد الترقيم». وللحصول على حقائق صلبة عن قابلية الوصول تحتاج إما إلى استعلام حي عن المشغّل أو من نوع HLR من مزود لديه ذلك الوصول، أو إلى اختبار عملي مثل إرسال رمز لمرة واحدة ورؤية هل يدخله المستخدم.
الاختيار بين النهجين
ابدأ من القرار الذي تحاول اتخاذه. فإذا كنت تنظف قائمة جهات اتصال أو توحّد المدخلات عند التسجيل أو تقرر هل تعرض علم بلد، فالتحقق القائم على القواعد كافٍ وبحث حي مدفوع مال مهدر. وإذا كنت تحمي تدفقًا عالي القيمة مثل استرداد الحساب، فأرخص اختبار لقابلية الوصول هو رمز التحقق نفسه: فهو يثبت التحكم في الرقم، وهو ما لا يفعله أي بحث.
ويصبح البحث الحي المدفوع مجديًا حين ترسل بحجم كبير وتريد تجنب دفع ثمن رسائل إلى أرقام ميتة، أو حين يجب أن تميز فئات خطوط معينة بثقة عالية. وحتى حينها، شغّل فحص الصيغة المجاني أولًا. فهو يزيل القمامة الواضحة بحيث لا تدفع إلا للبحث عن أرقام يمكن أن تكون حقيقية بصورة معقولة.
أين تندرج الأدوات من جانب IP
بيانات الهاتف أنفع بجانب بيانات الشبكة والبريد. وبحث IP إلى المشغّل شيء مختلف عن استعلام مشغّل رقم الهاتف: فهو يربط عنوان IP مصنفًا على أنه محمول بمشغّله عبر دليل MCC وMNC، على مستوى الشبكة، وليس لكل مشترك أبدًا. وتغطي أداة فحص البريد الصياغة وسجلات MX والنطاقات المؤقتة، وتدمج أداة درجة الاحتيال نتيجة الهاتف بوصفها واحدة من أربع مدخلات اختيارية إلى جانب IP والبريد وUser-Agent. وفي تلك الدرجة يرفع الرقم الذي يفشل في التحقق المخاطر، بينما يضيف الرقم المعقول القليل، وهو ما يتوافق مع مدى ضعف فحص الصيغة دليلًا على المشروعية.
وللاستزادة عن الحكم على حساب من عدة زوايا، راجع شرح التحقق من البريد المؤقت.