phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / Article

Madagascar Phone Numbers: Format, Area Code +261 & Validation Guide (2024)

Complete guide to Madagascar phone numbers. Learn E.164 formatting, validate mobile numbers, implement MNP support, and ensure ARTEC regulatory compliance.

Madagascar Phone Numbers: Format, Area Code +261 & Validation Guide (2024)

This comprehensive guide equips you to handle Madagascar phone numbers (country code +261) effectively in your applications. You'll master emergency services handling, operator prefixes, E.164 validation rules, formatting standards, Mobile Number Portability (MNP) implementation, and ARTEC regulatory compliance. Use this practical knowledge to build compliant and efficient telecom systems.

Madagascar Emergency Numbers: Critical Services & Response

Handle emergency numbers correctly in any application dealing with Malagasy phone numbers. These short codes provide direct access to vital services. Configure your system to recognize and prioritize them.

Emergency Contact Numbers

Madagascar's emergency response system uses dedicated short codes:

  • Police (17 or 117 from mobile): Available 24/7 for criminal incidents and public safety concerns. Connects to the nearest police station. Dial 19 or 119 from mobile phones for direct police station contact. (Source: UK Foreign Travel Advice, verified 2024)
  • Fire Brigade (18 or 118 from mobile): Rapid response to fire emergencies and rescue operations, primarily in major cities.
  • Medical Emergency (124): Emergency medical assistance and ambulance dispatch. Coordinates critical care. Use Military Hospital at 403-41 and general ambulance services at 211-70 within Antananarivo.

Service Coverage and Response Times: Emergency service availability varies significantly between urban and rural areas. Urban centers like Antananarivo have established emergency infrastructure with faster response capabilities. Rural areas face substantial challenges due to limited road infrastructure, sparse coverage, and Madagascar's energy crisis (less than one-third of the population has grid electricity access). Response times in rural areas can be significantly delayed compared to urban standards. Emergency operators primarily communicate in French and Malagasy; multilingual support may be limited. (Source: IFRC Madagascar Case Study, 2020)

When calling emergency services, remain calm and state:

  1. Your exact location
  2. The nature of the emergency
  3. Any immediate risks or hazards

Madagascar Telecommunications: Network Coverage & Major Operators

Understand the telecommunications landscape to handle numbers effectively. Know the major operators (Telma, Orange, Airtel) and their respective prefixes.

Service Provider Landscape

Three major operators lead Madagascar's telecommunications market with distinct market positions:

  • Telecom Malagasy (Telma/Yas): Market leader with 14.6 million subscribers (68% market share) as of Q3 2024. Comprehensive provider offering fixed-line phone numbers (prefix 20) and mobile services (prefix 34, 38) with nationwide coverage. Expanded mobile tower infrastructure from 2,921 towers in 2021 to 3,200 towers by Q2 2024. Recently rebranded under unified Yas brand by parent company Axian Group. (Sources: Dataxis, Q3 2024; BuddeComm Madagascar Telecoms Report, October 2025)
  • Orange Madagascar: Second-largest operator with 9.4 million subscribers (estimated 31% market share) as of Q2 2024. Mobile services (prefix 32) and data services, focusing on urban and suburban areas. Actively expanding coverage to reach 90% of the population by end-2024, up from 56% coverage in early 2024. (Sources: BuddeComm, October 2025; Connecting Africa, January 2024)
  • Airtel Madagascar: Mobile services (prefix 33) with focus on digital solutions and expanding rural coverage. Estimated market share of 40%+ reported in earlier periods, though specific 2024 subscriber counts unavailable. (Source: GSMA GPM Case Study, 2013)
  • Other operators: Include Gulfsat Madagascar/Blueline (prefix 39, MVNO), Madamobil, Datacom, and Data Telecom Services (DTS, Moov). (Source: BuddeComm, October 2025)

Network Coverage Statistics

As of 2024, Madagascar's mobile network coverage improved significantly:

  • 4G/LTE Coverage: 80% of the population (Source: ARTEC, 2024)
  • 3G Coverage: 98% of the population (Source: ARTEC, 2024)
  • 2G/GSM Coverage: Still operational across all mobile operators. Africa's 2G/3G network sunsetting progresses gradually with no firm phase-out timeline established for Madagascar. Unlike developed markets, 2G networks remain critical for basic voice and SMS services in rural areas. (Source: GSMA, March 2024)
  • Satellite Broadband: Starlink launched services in April 2024, providing connectivity to previously unserved communities, with cost as the primary barrier to adoption. (Source: BuddeComm, October 2025)

Geographic Coverage: Network coverage concentrates in major urban areas including Antananarivo (capital), Toamasina, Mahajanga, Fianarantsoa, Antsiranana, and Toliara. Rural and remote areas experience limited coverage, particularly for advanced services like 4G. Madagascar's six administrative zones (Antananarivo, Toamasina, Mahajanga, Fianarantsoa, Antsiranana, Toliara) have varying infrastructure density, with Antananarivo region receiving the highest investment and coverage. (Source: ITU Madagascar Numbering Plan, 2022)

International Infrastructure Developments

Madagascar benefited from recent submarine cable investments:

  • METISS Cable: Connects Madagascar to South Africa and Mauritius, improving international connectivity.
  • 2Africa Cable: Part of the global 2Africa submarine cable project, enhancing Madagascar's international bandwidth.
  • National Fibre Backbone: Implemented by Telma, connecting major cities with progressive expansion to smaller towns. (Source: BuddeComm, October 2025)

Mobile Number Portability (MNP) in Madagascar: 48-Hour Porting

Mobile Number Portability (MNP) impacts how you design your validation systems. Account for numbers changing providers while retaining their original format.

Implementation and Benefits

MNP Status and Adoption: While MNP infrastructure exists in Madagascar with ARTEC oversight, specific launch dates and comprehensive adoption statistics are not publicly documented in recent regulatory reports. The 48-hour porting window standard applies to active MNP transactions. Implementation follows regional African standards, though uptake rates vary significantly across operators. Design your systems to accommodate MNP scenarios even if adoption rates remain moderate.

Eligibility Requirements: Customers must have an active account in good standing with no outstanding contractual obligations to their current provider. Post-paid customers may need to settle final bills before porting. Pre-paid customers generally face fewer restrictions. Verify eligibility requirements with individual operators as policies may vary.

MNP delivers several advantages:

  • Customer Freedom: Switch providers without changing your number.
  • Market Competition: MNP drives better service quality and competitive pricing.
  • Seamless Transition: Process designed for minimal service interruption.
  • Universal Support: Available across all major operators.

Technical Implementation

MNP follows these steps:

  1. Customer submits a port request.
  2. Current provider validates eligibility.
  3. New provider initiates the transfer.
  4. ARTEC (Autorité de Régulation des Technologies de Communication) oversees the transition.
  5. Number porting completes within 48 hours. Set cache TTL to 24 hours or less to account for porting delays when designing caching strategies.

Porting Fees: Individual operators set specific porting fees, which may vary. Contact operators directly for current fee schedules. ARTEC regulates maximum allowable fees to prevent anti-competitive practices. Fees typically range from nominal to moderate amounts to cover administrative costs.

Common Issues and Troubleshooting: Port failures can occur due to incorrect customer information, outstanding bills, active contracts, or technical errors. If a port fails, the customer remains with their original provider. Rollback procedures automatically revert partial ports. Customers should maintain dual-SIM capability during transition periods when possible.

How to Dial Madagascar Phone Numbers: Domestic & International

Master dialing procedures to ensure your applications correctly format and process numbers. Differentiate between local, domestic, and international calls with country code +261.

Domestic Calling Guide

Leading Zero Usage: Madagascar uses a "0" prefix for inter-operator calls within the country. When calling a subscriber on a different operator network, dial "0" followed by the operator code (AB) plus the subscriber number. For calls within the same operator network (Telecom Malagasy fixed-line), dial the 7-digit subscriber number directly without the leading zero. Mobile-to-mobile calls within the same network may omit the leading zero depending on operator implementation. (Source: ITU Madagascar Numbering Plan, 2022)

  • Local Fixed-Line (Same Operator): Direct 7-digit dialing (e.g., 20 22 345 67 for Antananarivo numbers on Telma network).
  • Inter-Operator Fixed-Line: 0 + 2-digit operator code + 7-digit number (e.g., 0 20 22 345 67).
  • Mobile Calls (Within Network): Full 8-digit number (e.g., 32 12 345 678).
  • Mobile Calls (Different Network): 0 + 8-digit number (e.g., 0 32 12 345 678).
  • Emergency Services: Short code direct dial (e.g., 17 for Police, 124 for Medical).

Call Costs: Pricing varies by operator, time of day, and call type (on-net vs. off-net). On-net calls (within the same operator) typically cost less than off-net calls. Peak rates generally apply during business hours (approximately 8:00–18:00), with reduced off-peak rates in evenings and weekends. Contact individual operators for current tariffs as pricing is competitive and subject to promotional changes.

International Calling to and from Madagascar

  • Outbound Calls: 00 + Country Code + Area Code + Number (e.g., calling France: 00 33 1 23456789).
  • Inbound Calls: +261 + Local Number (without leading 0) (e.g., +261 32 12345678). Store and use this E.164 international format internally for consistency.

Madagascar Phone Number Validation: Technical Implementation Guide

Implement validation and essential features in your systems using this practical guidance. Build robust and efficient solutions with regex patterns and E.164 formatting.

Validation Requirements

Enforce these validation rules in your system:

  1. Fixed-line Validation: Prefix: "20", Length: 9 digits total (including country code), National format: 7 digits, Regex: ^20\d{6,7}$ for national format. Geographic numbers include area codes: 20 22 (Antananarivo), 20 53 (Toamasina), 20 62 (Mahajanga), 20 75 (Fianarantsoa), 20 82 (Antsiranana), 20 94 (Toliara). Learn more about international phone number formats. (Source: ITU Madagascar Numbering Plan, 2022)
  2. Mobile Number Validation: Prefixes: "32", "33", "34", "37", "38", "39", Length: 9 digits total (including operator code), National format: 8 digits, Regex: ^3[2-4,7-9]\d{7}$. Includes 37-39 for future mobile service expansion as reserved by ARTEC. Prefix 38 allocated to Telma Mobile in October 2022. Prefix 39 allocated to Blueline MVNO in August 2013. Use phone lookup tools to verify operator assignments. (Source: ITU Madagascar Numbering Plan, 2022)
  3. Special Service Validation: Prefix: "22" (Gulfsat VSAT fixed), Length: 9 digits total, Regex: ^22\d{7}$.
  4. Toll-Free and Premium Services: Madagascar's numbering plan reserves ranges 30-39 for mobile/special services. Specific toll-free (800-type) or premium rate prefixes are not publicly documented in current ITU records. If your application requires toll-free or premium rate validation, contact ARTEC directly for current allocations.
  5. Short Codes: Emergency services (17, 117, 18, 118, 19, 119, 124) use 2-3 digit codes. Commercial short codes for value-added services may exist; validate against operator-specific lists.

Preprocessing Implementation

typescript
function preprocessMadagascarNumber(phoneNumber: string): string {
  // Remove all non-numeric characters
  let cleaned = phoneNumber.replace(/\D/g, '');

  // Handle international prefix
  if (cleaned.startsWith('00261')) {
    cleaned = cleaned.slice(5);
  } else if (cleaned.startsWith('261')) {
    cleaned = cleaned.slice(3);
  }

  // Handle leading zero
  if (cleaned.startsWith('0')) {
    cleaned = cleaned.slice(1);
  }

  return cleaned;
}

// Test case: removes non-numeric characters and international prefixes
console.log(preprocessMadagascarNumber("+261-32-1234-5678")); // Output: 3212345678
// Test case: handles numbers starting with '00261'
console.log(preprocessMadagascarNumber("002613212345678")); // Output: 3212345678
// Test case: handles numbers with spaces
console.log(preprocessMadagascarNumber("261 32 12 34 56 78")); // Output: 3212345678
// Test case: handles domestic format with leading zero
console.log(preprocessMadagascarNumber("032 12 345 678")); // Output: 3212345678

This function cleans and normalizes the input phone number, removing non-numeric characters and handling international prefixes. Complete this crucial first step before validation.

Python Implementation:

python
import re

def preprocess_madagascar_number(phone_number: str) -> str:
    """
    Preprocess Madagascar phone number by removing non-numeric characters
    and normalizing international/domestic prefixes.
    """
    # Remove all non-numeric characters
    cleaned = re.sub(r'\D', '', phone_number)

    # Handle international prefix
    if cleaned.startswith('00261'):
        cleaned = cleaned[5:]
    elif cleaned.startswith('261'):
        cleaned = cleaned[3:]

    # Handle leading zero for domestic format
    if cleaned.startswith('0'):
        cleaned = cleaned[1:]

    return cleaned

# Test cases
assert preprocess_madagascar_number("+261-32-1234-5678") == "3212345678"
assert preprocess_madagascar_number("002613212345678") == "3212345678"
assert preprocess_madagascar_number("032 12 345 678") == "3212345678"

Validation Implementation

typescript
interface ValidationResult {
  valid: boolean;
  type?: 'FIXED_LINE' | 'MOBILE' | 'SPECIAL_SERVICES' | 'EMERGENCY';
  operator?: 'Telma' | 'Orange' | 'Airtel' | 'Blueline' | 'Gulfsat' | 'Unknown';
  error?: string;
}

const VALIDATION_PATTERNS = {
  fixedLine: /^20\d{6,7}$/,
  mobile: /^3[2-4,7-9]\d{7}$/,
  specialServices: /^22\d{7}$/,
  emergency: /^1[1247]|17|18|19|24$/
};

const OPERATOR_PREFIXES: Record<string, string> = {
  '32': 'Orange',
  '33': 'Airtel',
  '34': 'Telma',
  '37': 'Reserved',
  '38': 'Telma',
  '39': 'Blueline',
  '20': 'Telma',
  '22': 'Gulfsat'
};

function validateMadagascarNumber(phoneNumber: string): ValidationResult {
  const processed = preprocessMadagascarNumber(phoneNumber);

  // Check for emergency numbers
  if (VALIDATION_PATTERNS.emergency.test(processed)) {
    return { valid: true, type: 'EMERGENCY' };
  }

  // Check for fixed-line numbers
  if (VALIDATION_PATTERNS.fixedLine.test(processed)) {
    return {
      valid: true,
      type: 'FIXED_LINE',
      operator: OPERATOR_PREFIXES[processed.substring(0, 2)] || 'Unknown'
    };
  }

  // Check for mobile numbers
  if (VALIDATION_PATTERNS.mobile.test(processed)) {
    return {
      valid: true,
      type: 'MOBILE',
      operator: OPERATOR_PREFIXES[processed.substring(0, 2)] || 'Unknown'
    };
  }

  // Check for special services
  if (VALIDATION_PATTERNS.specialServices.test(processed)) {
    return {
      valid: true,
      type: 'SPECIAL_SERVICES',
      operator: OPERATOR_PREFIXES[processed.substring(0, 2)] || 'Unknown'
    };
  }

  return { valid: false, error: 'INVALID_FORMAT' };
}

// Example test cases
console.log(validateMadagascarNumber("+2613212345678"));
// Output: { valid: true, type: 'MOBILE', operator: 'Orange' }
console.log(validateMadagascarNumber("12345"));
// Output: { valid: false, error: 'INVALID_FORMAT' }
console.log(validateMadagascarNumber("17"));
// Output: { valid: true, type: 'EMERGENCY' }
console.log(validateMadagascarNumber("+261 20 22 345 67"));
// Output: { valid: true, type: 'FIXED_LINE', operator: 'Telma' }

This function uses regular expressions to validate the processed phone number. It returns a structured object indicating validity, number type, and identified operator.

Caching Strategy

Implement caching to improve performance. Use Redis or a similar in-memory data store.

typescript
import Redis from 'ioredis';

class ValidationCache {
  private cache: Redis;
  private readonly TTL = 24 * 60 * 60; // 24 hours
  private readonly MAX_RETRIES = 3;
  private readonly CONNECTION_TIMEOUT = 5000; // 5 seconds

  constructor() {
    this.cache = new Redis({
      host: process.env.REDIS_HOST || 'localhost',
      port: parseInt(process.env.REDIS_PORT || '6379'),
      retryStrategy: (times) => {
        if (times > this.MAX_RETRIES) {
          return null; // Stop retrying
        }
        return Math.min(times * 200, 2000); // Exponential backoff
      },
      connectTimeout: this.CONNECTION_TIMEOUT,
      enableOfflineQueue: false
    });

    this.cache.on('error', (err) => {
      console.error('Redis connection error:', err);
    });
  }

  async getCachedValidation(phoneNumber: string): Promise<ValidationResult> {
    const key = `validation:${phoneNumber}`;

    try {
      const cached = await this.cache.get(key);

      if (cached) {
        return JSON.parse(cached);
      }
    } catch (error) {
      console.error('Cache retrieval error:', error);
      // Fall through to validation
    }

    const result = validateMadagascarNumber(phoneNumber);

    try {
      await this.cache.setex(key, this.TTL, JSON.stringify(result));
    } catch (error) {
      console.error('Cache storage error:', error);
      // Continue without caching
    }

    return result;
  }

  async invalidateCache(phoneNumber: string): Promise<void> {
    const key = `validation:${phoneNumber}`;
    try {
      await this.cache.del(key);
    } catch (error) {
      console.error('Cache invalidation error:', error);
    }
  }

  async batchValidate(phoneNumbers: string[]): Promise<Map<string, ValidationResult>> {
    const results = new Map<string, ValidationResult>();
    const keys = phoneNumbers.map(num => `validation:${num}`);

    try {
      const cachedValues = await this.cache.mget(...keys);

      for (let i = 0; i < phoneNumbers.length; i++) {
        if (cachedValues[i]) {
          results.set(phoneNumbers[i], JSON.parse(cachedValues[i]));
        } else {
          const result = validateMadagascarNumber(phoneNumbers[i]);
          results.set(phoneNumbers[i], result);
          await this.cache.setex(keys[i], this.TTL, JSON.stringify(result));
        }
      }
    } catch (error) {
      console.error('Batch validation error:', error);
      // Fallback to non-cached validation
      for (const num of phoneNumbers) {
        results.set(num, validateMadagascarNumber(num));
      }
    }

    return results;
  }

  async disconnect(): Promise<void> {
    await this.cache.quit();
  }
}

This implementation includes error handling, connection pooling via ioredis, retry logic with exponential backoff, and batch validation support. Balance your TTL (Time To Live) between performance and data freshness, especially considering MNP's 48-hour porting window.

Error Handling and Monitoring

typescript
import { Counter, Histogram } from 'prom-client';

// Metrics for monitoring
const validationAttempts = new Counter({
  name: 'madagascar_phone_validation_attempts_total',
  help: 'Total number of phone validation attempts',
  labelNames: ['status', 'type']
});

const validationDuration = new Histogram({
  name: 'madagascar_phone_validation_duration_seconds',
  help: 'Duration of phone validation operations',
  buckets: [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1]
});

class MonitoredValidationService {
  private cache: ValidationCache;

  constructor() {
    this.cache = new ValidationCache();
  }

  async validateWithMonitoring(phoneNumber: string): Promise<ValidationResult> {
    const startTime = Date.now();

    try {
      const result = await this.cache.getCachedValidation(phoneNumber);

      // Record metrics
      validationAttempts.inc({
        status: result.valid ? 'valid' : 'invalid',
        type: result.type || 'unknown'
      });

      const duration = (Date.now() - startTime) / 1000;
      validationDuration.observe(duration);

      // Log for audit trail
      console.log({
        timestamp: new Date().toISOString(),
        phoneNumber: phoneNumber.replace(/\d(?=\d{4})/g, '*'), // Mask for privacy
        valid: result.valid,
        type: result.type,
        operator: result.operator,
        duration: duration
      });

      return result;
    } catch (error) {
      validationAttempts.inc({ status: 'error', type: 'system_error' });

      console.error({
        timestamp: new Date().toISOString(),
        phoneNumber: phoneNumber.replace(/\d(?=\d{4})/g, '*'),
        error: error instanceof Error ? error.message : 'Unknown error',
        stack: error instanceof Error ? error.stack : undefined
      });

      throw new Error('Validation service unavailable');
    }
  }
}

Recommended SLO/SLA Targets:

  • Availability: 99.9% uptime (max 43 minutes downtime/month)
  • Response Time: p95 < 50ms, p99 < 100ms for cached validations
  • Error Rate: < 0.1% of validation requests should fail
  • Cache Hit Rate: Target > 80% for production workloads

Alerting Thresholds:

  • Alert if error rate exceeds 1% over 5-minute window
  • Alert if p99 latency exceeds 200ms for 10 minutes
  • Alert if cache hit rate drops below 60%
  • Alert if Redis connection fails

Future-Proofing

The numbering plan includes provisions for expansion:

  • Reserved ranges: Prefixes 37-39 reserved for future mobile services by ARTEC. Prefix 38 already allocated to Telma Mobile (October 2022). Prefix 39 allocated to Blueline MVNO (August 2013). Include these in your validation regex design. (Source: ITU Madagascar Numbering Plan, 2022)
  • Scalable architecture: System designed to accommodate new services and technologies.
  • Flexible number allocation system: Allows efficient management of number resources across six geographic zones and multiple operator networks.

ARTEC Regulatory Compliance: Madagascar Telecom Requirements

Understand the regulatory environment for compliance. Know ARTEC's (Autorité de Régulation des Technologies de Communication) requirements and guidelines.

ARTEC Compliance Requirements

ARTEC (Autorité de Régulation des Technologies de Communication) regulates telecommunications in Madagascar. Key compliance requirements include:

  1. Number Allocation Protocols: Adhere to structured assignment process, regular auditing, and resource optimization guidelines. Operators must obtain number blocks through formal allocation procedures.
  2. Service Standards: Monitor quality metrics, report performance data to ARTEC, and implement customer protection measures. Maintain minimum service quality levels for voice and data services.
  3. Technical Requirements: Comply with network interconnection standards established by ARTEC, ensure emergency service access (17, 18, 124) from all networks, and maintain system redundancy for critical infrastructure.
  4. Interconnection Obligations: Operators must interconnect networks and negotiate fair terms. ARTEC has authority to impose sanctions for non-compliance with interconnection requirements. (Source: WTO Trade Policy Review – Madagascar, January 2025)

Enforcement and Penalties: ARTEC enforces compliance through administrative sanctions, fines, and potential license suspension or revocation. Violations of ethics codes, non-compliance with technical specifications, service quality failures, and unauthorized spectrum use may result in penalties. Specific fine amounts are determined case-by-case based on violation severity and market impact. Repeat violations face escalating penalties. (Sources: Internews ARISA IEA Chapter 9 – Madagascar, November 2023; WTO Trade Policy Review, January 2025)

Reporting Requirements: Telecommunications operators must submit regular reports to ARTEC including subscriber statistics, coverage data, service quality metrics, interconnection traffic volumes, and revenue figures. Reporting frequencies vary by metric type (monthly, quarterly, annually). Contact ARTEC directly for specific reporting templates and submission procedures.

ARTEC Contact Information:

  • Address: Lot IVL 41 Ter B Andohatapenaka, 101 Antananarivo, Madagascar
  • Phone: +261 20 22 421 19
  • Fax: +261 20 23 215 16
  • Email: artec@artec.mg
  • Website: www.artec.mg

(Source: ITU Madagascar Numbering Plan, 2022)

For detailed regulatory updates and technical specifications, visit the ARTEC website: www.artec.mg

Frequently Asked Questions (FAQ)

What is Madagascar's country code for international calls?

Madagascar uses country code +261 for all international calls. Format international numbers as +261 followed by the local number without the leading zero. For example, a mobile number 032 12 345 678 becomes +261 32 12345678 in E.164 international format.

How do I validate Madagascar mobile phone numbers?

Validate Madagascar mobile numbers using the regex pattern ^3[2-4,7-9]\d{7}$ after preprocessing. Mobile numbers use 8 digits with prefixes 32 (Orange), 33 (Airtel), 34 (Telma), 38 (Telma), or 39 (Blueline). Reserved prefix 37 will support future mobile services. Always remove non-numeric characters and international prefixes before validation.

What are the major mobile operators in Madagascar?

The major mobile operators are Telma/Yas (14.6 million subscribers, 68% market share, prefixes 34/38), Orange Madagascar (9.4 million subscribers, ~31% market share, prefix 32), and Airtel Madagascar (prefix 33). As of 2024, 4G coverage reaches 80% of the population, while 3G covers 98%. Starlink satellite service launched in April 2024 for remote areas.

How long does Mobile Number Portability take in Madagascar?

Mobile Number Portability (MNP) in Madagascar completes within 48 hours under ARTEC oversight. The process involves submitting a port request, provider validation, transfer initiation, and ARTEC-supervised completion. Set your validation cache TTL to 24 hours or less to accommodate porting transitions.

What format do Madagascar fixed-line numbers use?

Madagascar fixed-line numbers use prefix 20 followed by area code and subscriber digits, totaling 9 digits in international format. National format: 7 digits for direct dialing. Example: Antananarivo 20 22 XXXXX. The validation regex is ^20\d{6,7}$. Telma provides most fixed-line services. International format: +261 20 XX XXXXX (without leading zero).

What are Madagascar's emergency phone numbers?

Madagascar emergency numbers are 17 or 117 (Police), 18 or 118 (Fire Brigade), and 124 (Medical Emergency). Mobile users can dial 19 or 119 for police. Configure your application to recognize and prioritize these short codes for emergency service access. Response times vary significantly between urban and rural areas.

How do I implement E.164 formatting for Madagascar numbers?

Implement E.164 formatting by preprocessing numbers to remove non-numeric characters, stripping international prefixes (00261 or 261), removing leading zeros, then adding +261 prefix. Example: 032-12-34-5678 becomes +261321234567. Store all numbers in E.164 format internally for consistency.

What are the reserved mobile prefixes in Madagascar?

ARTEC reserved mobile prefix 37 for future mobile service expansion. Prefixes 38 (Telma Mobile, allocated October 2022) and 39 (Blueline MVNO, allocated August 2013) are already in use. Include these in your validation regex (^3[2-4,7-9]\d{7}$) to future-proof your system. Currently active operational prefixes are 32 (Orange), 33 (Airtel), 34 (Telma), 38 (Telma), and 39 (Blueline).

How do I ensure ARTEC regulatory compliance?

Ensure ARTEC compliance by following number allocation protocols, monitoring service quality metrics, submitting required reports (subscriber data, coverage, traffic, revenue), implementing customer protection measures, maintaining network interconnection standards, ensuring emergency service access, and maintaining system redundancy. ARTEC enforces compliance through sanctions and fines for violations. Visit www.artec.mg for detailed technical specifications or contact ARTEC at artec@artec.mg.

What caching strategy works best for Madagascar phone validation?

Use Redis with 24-hour TTL (or less) for validation caching to accommodate Madagascar's 48-hour MNP window. Implement error handling with retry logic, connection pooling, and batch validation support. Implement cache invalidation for ported numbers. Balance performance against data freshness, especially during MNP transitions. Monitor cache hit rates (target >80%) and adjust TTL based on your application's tolerance for stale data.

African Phone Number Guides:

Phone Validation & Formatting:

Regulatory & Compliance:

Technical Implementation:

Conclusion

You now have comprehensive expertise in Madagascar phone number validation, E.164 formatting, and ARTEC regulatory compliance. Implement the formatting rules, validation patterns, and MNP considerations to build robust telecom systems. Prioritize error handling, 24-hour cache TTL for MNP transitions, and future-proofing with reserved prefixes (37-39) to maintain efficient and compliant applications.

Quick Reference Table:

Number TypePrefixLength (Digits)FormatOperatorExample
Fixed-line209 (intl) / 7 (national)^20\d{6,7}$Telma+261 20 22 34567
Mobile329 (intl) / 8 (national)^32\d{7}$Orange+261 32 1234567
Mobile339 (intl) / 8 (national)^33\d{7}$Airtel+261 33 1234567
Mobile349 (intl) / 8 (national)^34\d{7}$Telma+261 34 1234567
Mobile389 (intl) / 8 (national)^38\d{7}$Telma+261 38 1234567
Mobile399 (intl) / 8 (national)^39\d{7}$Blueline+261 39 1234567
VSAT229 (intl) / 7 (national)^22\d{7}$Gulfsat+261 22 1234567
Emergency17, 1172-3N/APolice17 or 117
Emergency18, 1182-3N/AFire18 or 118
Emergency1243N/AMedical124

Key Takeaways:

  • Madagascar uses country code +261 with 8-digit mobile numbers (prefixes 32, 33, 34, 37-39)
  • Market leaders: Telma/Yas (68%), Orange (31%), Airtel
  • 4G coverage: 80%, 3G coverage: 98% of the population as of 2024
  • 2G networks remain operational with no firm phase-out date for Madagascar
  • Mobile Number Portability completes within 48 hours via ARTEC oversight
  • Starlink satellite service launched April 2024, expanding connectivity options
  • Leading zero ("0") required for inter-operator calls within Madagascar
  • Set cache TTL to 24 hours or less to accommodate MNP transitions
  • ARTEC (www.artec.mg, artec@artec.mg) oversees all telecommunications regulations with enforcement authority
  • Validate using regex ^3[2-4,7-9]\d{7}$ for mobile, ^20\d{6,7}$ for fixed-line
  • Store all numbers in E.164 international format (+261XXXXXXXX) internally
  • Prefixes 37, 38, 39 allocated or reserved for mobile expansion since 2013-2022