Morocco Phone Numbers: +212 Country Code Format & Validation Guide
Learn Morocco's +212 country code, phone number format (10-digit with 0, 9-digit international), validation patterns, mobile prefixes (06/07), area codes, and ANRT regulations for developers.
Morocco uses country code +212 with a 10-digit domestic format (starting with 0) or 9-digit international format. This guide covers validation patterns, mobile prefixes (06/07), area codes for major cities, ANRT regulations, emergency numbers, VoIP integration, and number portability implementation for developers building telecommunications applications.
Morocco Country Code: +212 Dialing System Explained
Morocco's country code is +212. The telephone numbering system, regulated by the National Telecommunications Regulatory Agency (ANRT), uses a closed numbering plan requiring the full 10-digit number for all domestic calls (starting with 0) or 9 digits for international format (after +212). Multiple prefixes can serve the same geographic area—Casablanca has 10 different prefixes across operators.
Validation Examples:
JavaScript
// Basic Morocco number validationfunctionvalidateMoroccoNumber(number) {
// Domestic format: 10 digits starting with 0const domesticPattern = /^0[2567][0-9]{8}$/;
// International format: +212 followed by 9 digitsconst internationalPattern = /^\+212[2567][0-9]{8}$/;
// Remove spaces, hyphens, parentheses for validationconst cleaned = number.replace(/[\s\-\(\)\.]/g, '');
if (domesticPattern.test(cleaned)) {
return {
valid: true,
format: 'domestic',
type: getNumberType(cleaned)
};
} elseif (internationalPattern.test(cleaned)) {
return {
valid: true,
format: 'international',
type: getNumberType(cleaned.slice(4)) // Remove +212
};
}
return { valid: false, reason: 'Invalid format' };
}
functiongetNumberType(number) {
const prefix = number.slice(0, 2);
if (prefix === '06' || prefix === '07') return'mobile';
if (prefix === '05') return'urban_landline';
if (prefix === '02') return'rural_landline';
if (prefix === '08') return'special_service';
return'unknown';
}
// Test casesconsole.log(validateMoroccoNumber('0612345678')); // Valid mobileconsole.log(validateMoroccoNumber('+212 612 345 678')); // Valid internationalconsole.log(validateMoroccoNumber('0520123456')); // Valid Casablanca landlineconsole.log(validateMoroccoNumber('061234567')); // Invalid - wrong lengthconsole.log(validateMoroccoNumber('0812345678')); // Valid special service
Understand these domestic calling rules to ensure your applications correctly handle local calls within Morocco.
Standard Calling Rules
Always use the complete 10-digit number format: This includes the leading '0' and the area code.
Include the leading '0' for all domestic calls: This distinguishes domestic calls from international ones.
Area codes are mandatory nationwide: These codes identify the geographic region and sometimes the service provider.
Spacing is optional but recommended for readability: For example, 05 20 12 34 56 improves visual clarity.
Best Practice: Store numbers in your system with the '+212' prefix. This international format ensures compatibility for both domestic and international calls, simplifying your data management.
Regional Considerations
Morocco's numbering structure varies by region and service type:
Urban Areas: Primarily use the 05 prefix for landlines. Landline numbers follow the structure 05ZABPQMCDU, where the digits after 05 represent the regional area (RR) and local area (LL), followed by the subscriber number. Multiple prefixes can exist within a single urban area—for example, Casablanca has 10 different prefixes, each potentially belonging to different operators.
Rural/Southern Areas: May use the 02 prefix for landlines in certain regions. The 02 prefix generally covers southern areas of Morocco.
Mobile Networks: Use the 06 and 07 prefixes nationwide. Mobile numbers follow the structure 0ABPQMCDU, where A takes the value 6 or 7 for currently active mobile services. This consistent prefix pattern simplifies mobile number identification and processing across all geographic regions.
Note: Morocco's closed numbering plan requires dialing the complete 10-digit number even for local calls because the same geographic area can be served by multiple prefixes across different operators.
Morocco Area Codes for Major Cities
City
Area Code
Full Prefix
Example Format
Casablanca
522-529
0520-0529
0522 12 34 56
Rabat
537
0537
0537 12 34 56
Marrakech
524
0524
0524 12 34 56
Fes
535
0535
0535 12 34 56
Tangier
539
0539
0539 12 34 56
Meknes
535
0535
0535 12 34 56
Oujda
536
0536
0536 12 34 56
Agadir
528
0528
0528 12 34 56
Tetouan
539
0539
0539 12 34 56
Kenitra
537
0537
0537 12 34 56
Note: Major cities may have multiple area codes. For instance, Casablanca uses codes from 0522 through 0529 across different operators and districts.
Source: ANRT National Numbering Plan; Telephone numbers in Morocco (ITU standards)
How to Call Morocco Internationally
Handle international calls with specific procedures for both dialing from and into Morocco.
Calling From Morocco
To call internationally from Morocco:
Dial the international prefix:00
Enter the country code: For example, 33 for France or 1 for the United States
Dial the local number without its leading zero (if applicable): Each country has its own numbering conventions
Example: Calling France (33)
Text
00 33 1 23 45 67 89 # French number format
Calling Into Morocco from Abroad
To call Morocco from another country:
Use the country code:+212
Omit the leading '0' from the Moroccan number: Use the remaining 9 digits
Example: International format for Moroccan numbers
Using 00212 instead of +212 (both valid, but + is standard)
Including the leading 0 in international format (incorrect)
Wrong digit count (must be 9 after +212, or 10 with leading 0)
Invalid prefixes (must start with 2, 5, 6, or 7 after country code)
Emergency and Special Service Numbers
Ensure your applications correctly handle emergency and special service numbers so users can access critical services.
Emergency Services Network
Service
Number
Availability
Notes
Police
190
24/7
Also 112 from mobile phones
Royal Gendarmerie
177
24/7
Military police
Ambulance/Fire
150
24/7
Combined emergency service
Civil Protection
150
24/7
Same as Ambulance/Fire
Important: Emergency numbers are toll-free and function without a SIM card or credit balance. Note that 911 does not work in Morocco—always use the local emergency numbers listed above.
Source: UK Government Foreign Travel Advice for Morocco (accessed August 2025); ANRT emergency services guidance
Special Service Numbers
Access various services through these numbers with specific dialing patterns:
Toll-Free Services (080): Customer service lines, government helplines, and public information services. Free from fixed telephone networks but may incur surcharges when calling from mobile lines.
Premium Services (089): Professional consulting, entertainment services, and specialized information lines. Premium-rate services include gaming, ringtone downloads, and other paid content. Pricing varies by service; users are charged per minute or per call at rates significantly higher than standard calls.
Short Codes (3-5 digits): Utility services, banking services, operator assistance, weather updates, government information, and social services. Each operator and service uses specific short codes.
Common Short Codes:
Service
Short Code
Operator
Notes
Customer Service
121
Orange Morocco
Customer support
Customer Service
120
INWI
Customer support
Customer Service
555
Maroc Telecom
Number inquiry, customer service
Balance Check
#111#
Maroc Telecom
Check account balance
Balance Check
*100#
Orange Morocco
Check account balance
Balance Check
*100#
INWI
Check account balance
Pricing Notes:
Toll-free (080): Free from landlines; mobile operators may charge standard rates
Premium (089): Typically 1-5 MAD per minute; check with service provider
Short codes: Usually free or charged at local SMS/call rates
Integrate VoIP services with careful consideration of Moroccan regulations and number formats.
VoIP Regulation Status
Important Update: Morocco lifted its VoIP service ban in February 2022. Previously restricted since January 2016, VoIP services including WhatsApp calls, Skype, and other Voice over Internet Protocol applications are now legally permitted.
Regulatory Context: The ANRT reversed earlier restrictions based on evaluation of the national and international telecom market, legal context, and consumer implications. This liberalization aligns with Morocco's Digital Morocco Plan 2025-2030, which aims to improve internet access and stimulate ICT entrepreneurship.
Source: ANRT official announcements (February 2022); Digital Watch Observatory
VoIP Integration Guidelines
Licensing Requirements:
Commercial VoIP Providers: Must hold a license under ANRT/DG/N° 04-04 (April 6, 2004) for public IP telephony services
Call Centers: May use IP telephony only for "online information" services; traffic must be carried by licensed ERPT operators
Private Networks: Can use IP telephony for internal/private use without licensing
Individual Users: No license required for personal use of VoIP services (WhatsApp, Skype, etc.)
Technical Implementation:
Use authorized VoIP services: While VoIP is now permitted, ensure compliance with ANRT regulations and licensing requirements where applicable
Support Moroccan number formats: Your VoIP application must correctly handle both domestic and international formats
Configure for international format (+212): This ensures consistent behavior across different call scenarios
JavaScript
// VoIP number formatting for MoroccofunctionformatForVoIP(number) {
const cleaned = number.replace(/[\s\-\(\)\.]/g, '');
// Convert to international format for VoIPif (cleaned.startsWith('0') && cleaned.length === 10) {
return'sip:+212' + cleaned.slice(1) + '@voip.provider.com';
} elseif (cleaned.startsWith('+212')) {
return'sip:' + cleaned + '@voip.provider.com';
}
return { error: 'Invalid number format' };
}
// Exampleconsole.log(formatForVoIP('0612345678'));
// Returns: sip:+212612345678@voip.provider.com
Tip: Some VoIP services require specific configurations for optimal performance in Morocco. Consult your provider's documentation for details. Test your VoIP implementation thoroughly to ensure reliable communication.
Morocco Number Portability: How to Switch Operators
Understand how number portability – switching operators while retaining your number – impacts your applications.
Overview and Recent Developments
Morocco's number portability system has significantly improved through ANRT's commitment to consumer choice:
One-Day Porting: Porting completes within one business day. ANRT implemented this reduction in April 2024, shortening the deadline from two days to enhance competition among telecom operators (Maroc Telecom, Inwi, and Orange). Previously, in January 2020, ANRT reduced processing time from three days to two days. Consider this crucial timeline when implementing number portability features.
Zero-Cost Implementation: Porting is free for all subscribers, encouraging market mobility
Universal Availability: The service covers all operators and number types
Strong Oversight: ANRT actively monitors the system to ensure quality and compliance
Porting Authorization Code: ANRT introduced a Porting Authorization Code (Relevé d'Identité Opérateur – RIO), an identifier each operator assigns to their customer's call number, facilitating easier number portability
Sources: Ecofin Agency (April 2024); ANRT official communications
Implementation Framework
The porting process follows a streamlined workflow:
Subscriber Request: The subscriber submits a request to their new operator, providing identification and their current number.
Operator Processing: The new operator verifies eligibility, notifies the current operator, and coordinates database updates.
Service Migration: The number is ported at a scheduled time, followed by service testing and customer notification.
Eligibility Requirements:
Valid Identification: Government-issued ID or passport
Current Number Ownership: Must be the registered owner of the number
No Outstanding Debts: Account must be in good standing with current operator
Geographic Compatibility: For landlines, new operator must serve the same geographic area code
Active Service: Number must be active (not suspended or cancelled)
Required Documents:
National ID card (CNIE) or passport
Proof of address (utility bill or rental agreement) for landline portability
RIO code from current operator (obtained by calling customer service)
Signed portability request form at new operator's office
Service Interruption: Porting typically occurs overnight (during low-traffic hours). Expect a brief service interruption of 2-4 hours during the transition. ANRT mandates that interruptions should not exceed 4 hours.
Rollback Procedures: If porting fails, the number automatically reverts to the original operator within 24 hours. Subscribers are notified by SMS. No charges apply for failed porting attempts.
Integrate number portability into your systems with these considerations:
Validation: Verify the number format and eligibility for porting
Timing: Account for the one-day porting timeframe in your application logic
ANRT Developer Portal: Refer to the ANRT Developer Portal for the latest technical specifications and implementation details
JavaScript
// Number portability validation checkfunctionvalidatePortingEligibility(phoneNumber) {
// Check number format (supports both 06 and 07 prefixes for mobile)const numberPattern = /^0[6-7][0-9]{8}$/;
if (!numberPattern.test(phoneNumber)) {
return {
eligible: false,
reason: 'Invalid number format'
};
}
// Placeholder for additional validation logic (e.g., checking against a portability database)// ...return {
eligible: true,
estimatedPortingTime: '24h'
};
}
// Test casesconsole.log(validatePortingEligibility('0612345678')); // Valid mobile numberconsole.log(validatePortingEligibility('0712345678')); // Valid mobile numberconsole.log(validatePortingEligibility('0512345678')); // Invalid – landline, not eligible for this exampleconsole.log(validatePortingEligibility('061234567')); // Invalid – incorrect length
Real-World Implementation: Integrate with a portability database or API to confirm eligibility. Consider edge cases such as temporarily unavailable numbers during the porting process. Implement retry mechanisms or provide informative error messages to users. Incorporate the ANRT Porting Authorization Code (RIO) into your validation process.
For Persistent Issues: Direct users to contact their service provider's technical support with account details ready. Provide error codes and diagnostic information from your validation functions to speed resolution.
Morocco's international country code is +212. When calling Morocco from abroad, dial +212 followed by the 9-digit Moroccan number (omit the leading '0'). Example: To call Moroccan mobile 0612345678 internationally, dial +212 612 345 678. The 212 country code distinguishes Morocco from other nations in the global telephone network.
How many digits is a Moroccan phone number?
Moroccan phone numbers are 10 digits for domestic format and 9 digits for international format (after country code +212). Domestic format: 0X XX XX XX XX starts with '0', followed by prefix (05 urban landlines, 02 rural landlines, 06/07 mobile), then subscriber number. International format: +212 X XX XX XX XX (9 digits after +212, no leading '0').
How do I validate a Morocco phone number?
Use this regex pattern for basic validation: /^0[2567][0-9]{8}$/ for domestic format or /^\+212[2567][0-9]{8}$/ for international format. Ensure the number is exactly 10 digits (domestic) or 9 digits after +212 (international). Mobile numbers start with 06 or 07, landlines with 02 or 05.
Morocco mobile numbers start with 06 or 07 prefixes. These prefixes are nationwide (not region-specific) and apply to all three major carriers: Maroc Telecom, Orange Morocco, and INWI. Format: 0[6-7]XXXXXXXX (10 digits domestic) or +212 [6-7]XXXXXXXX (9 digits international). Mobile prefixes 06 and 07 help identify mobile numbers versus landlines (02/05 prefixes).
What are the emergency numbers in Morocco?
Morocco's emergency numbers are: 190 for Police (or 112 from mobile phones), 177 for Royal Gendarmerie, and 150 for Ambulance/Fire. Note that 911 does not work in Morocco. All emergency numbers are toll-free and work without a SIM card or credit balance.
Is VoIP allowed in Morocco?
Yes, VoIP is legal in Morocco since February 2022. The ANRT lifted the ban that was in place from January 2016. WhatsApp calls, Skype, and other Voice over Internet Protocol applications are now legally permitted. Ensure your VoIP service complies with ANRT regulations and licensing requirements.
How long does number portability take in Morocco?
Number portability in Morocco takes one business day (24 hours). The ANRT implemented this faster timeline in April 2024, reducing it from the previous two-day requirement. Porting is free for all subscribers and covers all operators (Maroc Telecom, Inwi, Orange) and number types.
What are Morocco's area codes for landlines?
Morocco's landlines use 05 for urban areas and 02 for rural/southern areas. Unlike mobile prefixes, area codes can vary within cities—for example, Casablanca has 10 different prefixes across operators. Morocco uses a closed numbering plan, so always dial the complete 10-digit number, even for local calls.
Conclusion
You now have a detailed understanding of Morocco's telephone numbering system. Follow these guidelines and best practices to ensure your applications handle Moroccan phone numbers accurately and efficiently. Consult the ANRT Developer Portal for the latest updates and technical specifications.
Quick Reference Checklist:
✓ Validate numbers using regex patterns for domestic and international formats
✓ Store numbers in international format (+212) for consistency
✓ Handle format conversion between domestic and international
✓ Support all valid prefixes: 02, 05, 06, 07, 08
✓ Implement proper error handling with descriptive messages
✓ Test with edge cases (special services, emergency numbers)
✓ Account for number portability in carrier detection logic
✓ Verify VoIP licensing requirements for commercial use
To call Morocco from abroad, dial the country code +212 followed by the 9-digit Moroccan number, omitting the leading '0'. For example, +212 612 345 678 would connect you to a Moroccan mobile number. This international format is crucial for proper routing from outside Morocco.
Always dial the full 10-digit number, including the leading '0' and the area code, even for local calls. Multiple prefixes can serve the same area, so using the complete number is crucial for accurate routing. For example, use 05 20 12 34 56 for a landline in Casablanca.
Morocco uses a closed numbering plan, meaning the full 10-digit number is always dialed. This is important because multiple prefixes can exist within the same geographic area, often associated with different operators, ensuring calls are correctly routed.
Use the +212 country code when making international calls to Morocco. This prefix clearly identifies the destination as Morocco, allowing for seamless connection from any country. It is also best practice to store all Moroccan numbers in your system using this format for consistency.
Yes, you can use VoIP services, but ensure the provider is authorized by the ANRT and that your application correctly handles Moroccan number formats, both domestic (0 prefixed) and international (+212 prefixed), for seamless communication.
While Casablanca primarily uses the 05 prefix for landlines, it's important to note that multiple prefixes can exist within the city. Always use the full 10-digit number for accurate routing as the prefix alone doesn't guarantee correct connection.
Emergency numbers like Police (19), Royal Gendarmerie (177), and Ambulance/Fire/Civil Protection (15) are toll-free and accessible without a SIM card. Dial the number directly from any phone.
Mobile numbers in Morocco use the 06 and 07 prefixes nationwide. This makes it easy to distinguish mobile numbers from landlines (typically 05 or 02) and simplifies number processing in applications.
Number portability in Morocco allows subscribers to switch operators while keeping their number. The process now takes one business day and is free of charge. Developers should account for this timeframe in their applications and refer to the ANRT Developer Portal for technical details.
The ANRT (National Telecommunications Regulatory Agency) regulates Morocco's telecommunications sector, including number formats, portability, and VoIP services. Their developer portal provides crucial resources for implementing compliant applications.
Number porting in Morocco is completed within one business day due to recent improvements. This fast turnaround time is important for developers to consider when handling number portability in their applications.
The ANRT Developer Portal (http://www.anrt.ma/developers) provides the most up-to-date technical information and implementation details for working with Moroccan phone numbers and related services.
Morocco uses country code +212 with a 10-digit domestic format (starting with 0) or 9-digit international format. This guide covers validation patterns, mobile prefixes (06/07), area codes for major cities, ANRT regulations, emergency numbers, VoIP integration, and number portability implementation for developers building telecommunications applications.
Morocco Country Code: +212 Dialing System Explained
Morocco's country code is +212. The telephone numbering system, regulated by the National Telecommunications Regulatory Agency (ANRT), uses a closed numbering plan requiring the full 10-digit number for all domestic calls (starting with 0) or 9 digits for international format (after +212). Multiple prefixes can serve the same geographic area—Casablanca has 10 different prefixes across operators.
Validation Examples:
// Basic Morocco number validation function validateMoroccoNumber(number) { // Domestic format: 10 digits starting with 0 const domesticPattern = /^0[2567][0-9]{8}$/; // International format: +212 followed by 9 digits const internationalPattern = /^\+212[2567][0-9]{8}$/; // Remove spaces, hyphens, parentheses for validation const cleaned = number.replace(/[\s\-\(\)\.]/g, ''); if (domesticPattern.test(cleaned)) { return { valid: true, format: 'domestic', type: getNumberType(cleaned) }; } else if (internationalPattern.test(cleaned)) { return { valid: true, format: 'international', type: getNumberType(cleaned.slice(4)) // Remove +212 }; } return { valid: false, reason: 'Invalid format' }; } function getNumberType(number) { const prefix = number.slice(0, 2); if (prefix === '06' || prefix === '07') return 'mobile'; if (prefix === '05') return 'urban_landline'; if (prefix === '02') return 'rural_landline'; if (prefix === '08') return 'special_service'; return 'unknown'; } // Test cases console.log(validateMoroccoNumber('0612345678')); // Valid mobile console.log(validateMoroccoNumber('+212 612 345 678')); // Valid international console.log(validateMoroccoNumber('0520123456')); // Valid Casablanca landline console.log(validateMoroccoNumber('061234567')); // Invalid - wrong length console.log(validateMoroccoNumber('0812345678')); // Valid special serviceSource: ANRT National Numbering Plan; ITU Telephone numbers in Morocco
Domestic Calling Essentials
Understand these domestic calling rules to ensure your applications correctly handle local calls within Morocco.
Standard Calling Rules
05 20 12 34 56improves visual clarity.Best Practice: Store numbers in your system with the '+212' prefix. This international format ensures compatibility for both domestic and international calls, simplifying your data management.
Regional Considerations
Morocco's numbering structure varies by region and service type:
05prefix for landlines. Landline numbers follow the structure 05ZABPQMCDU, where the digits after 05 represent the regional area (RR) and local area (LL), followed by the subscriber number. Multiple prefixes can exist within a single urban area—for example, Casablanca has 10 different prefixes, each potentially belonging to different operators.02prefix for landlines in certain regions. The 02 prefix generally covers southern areas of Morocco.06and07prefixes nationwide. Mobile numbers follow the structure 0ABPQMCDU, where A takes the value 6 or 7 for currently active mobile services. This consistent prefix pattern simplifies mobile number identification and processing across all geographic regions.Note: Morocco's closed numbering plan requires dialing the complete 10-digit number even for local calls because the same geographic area can be served by multiple prefixes across different operators.
Morocco Area Codes for Major Cities
Note: Major cities may have multiple area codes. For instance, Casablanca uses codes from 0522 through 0529 across different operators and districts.
Source: ANRT National Numbering Plan; Telephone numbers in Morocco (ITU standards)
How to Call Morocco Internationally
Handle international calls with specific procedures for both dialing from and into Morocco.
Calling From Morocco
To call internationally from Morocco:
0033for France or1for the United StatesExample: Calling France (33)
Calling Into Morocco from Abroad
To call Morocco from another country:
+212Example: International format for Moroccan numbers
Key Detail: All Moroccan numbers are 9 digits long (excluding the leading '0'). This consistent length simplifies validation and processing.
Format Conversion Examples
// Convert domestic to international format function domesticToInternational(domestic) { if (!/^0[2567][0-9]{8}$/.test(domestic)) { return { error: 'Invalid domestic format' }; } return '+212' + domestic.slice(1); } // Convert international to domestic format function internationalToDomestic(international) { const cleaned = international.replace(/[\s\-\(\)\.]/g, ''); if (!/^\+?212[2567][0-9]{8}$/.test(cleaned)) { return { error: 'Invalid international format' }; } const digits = cleaned.replace(/^\+?212/, ''); return '0' + digits; } // Handle common formatting errors function normalizeNumber(input) { // Remove all non-digit characters except leading + let cleaned = input.replace(/[^\d+]/g, ''); // Handle common errors if (cleaned.startsWith('00212')) { cleaned = '+212' + cleaned.slice(5); } else if (cleaned.startsWith('212') && !cleaned.startsWith('+')) { cleaned = '+' + cleaned; } return cleaned; } // Examples console.log(domesticToInternational('0612345678')); // +212612345678 console.log(internationalToDomestic('+212 612 345 678')); // 0612345678 console.log(normalizeNumber('00212-612-345-678')); // +212612345678 console.log(normalizeNumber('212 612 345 678')); // +212612345678Common Formatting Errors:
00212instead of+212(both valid, but+is standard)0in international format (incorrect)+212, or 10 with leading0)Emergency and Special Service Numbers
Ensure your applications correctly handle emergency and special service numbers so users can access critical services.
Emergency Services Network
Important: Emergency numbers are toll-free and function without a SIM card or credit balance. Note that 911 does not work in Morocco—always use the local emergency numbers listed above.
Source: UK Government Foreign Travel Advice for Morocco (accessed August 2025); ANRT emergency services guidance
Special Service Numbers
Access various services through these numbers with specific dialing patterns:
080): Customer service lines, government helplines, and public information services. Free from fixed telephone networks but may incur surcharges when calling from mobile lines.089): Professional consulting, entertainment services, and specialized information lines. Premium-rate services include gaming, ringtone downloads, and other paid content. Pricing varies by service; users are charged per minute or per call at rates significantly higher than standard calls.Common Short Codes:
Pricing Notes:
Source: ANRT Special Numbers guidance (accessed January 2025); HelloDuty Morocco Services
Morocco VoIP Regulations and Integration
Integrate VoIP services with careful consideration of Moroccan regulations and number formats.
VoIP Regulation Status
Important Update: Morocco lifted its VoIP service ban in February 2022. Previously restricted since January 2016, VoIP services including WhatsApp calls, Skype, and other Voice over Internet Protocol applications are now legally permitted.
Regulatory Context: The ANRT reversed earlier restrictions based on evaluation of the national and international telecom market, legal context, and consumer implications. This liberalization aligns with Morocco's Digital Morocco Plan 2025-2030, which aims to improve internet access and stimulate ICT entrepreneurship.
Source: ANRT official announcements (February 2022); Digital Watch Observatory
VoIP Integration Guidelines
Licensing Requirements:
Technical Implementation:
// VoIP number formatting for Morocco function formatForVoIP(number) { const cleaned = number.replace(/[\s\-\(\)\.]/g, ''); // Convert to international format for VoIP if (cleaned.startsWith('0') && cleaned.length === 10) { return 'sip:+212' + cleaned.slice(1) + '@voip.provider.com'; } else if (cleaned.startsWith('+212')) { return 'sip:' + cleaned + '@voip.provider.com'; } return { error: 'Invalid number format' }; } // Example console.log(formatForVoIP('0612345678')); // Returns: sip:+212612345678@voip.provider.comTip: Some VoIP services require specific configurations for optimal performance in Morocco. Consult your provider's documentation for details. Test your VoIP implementation thoroughly to ensure reliable communication.
Source: ANRT Telephony Regulations
Morocco Number Portability: How to Switch Operators
Understand how number portability – switching operators while retaining your number – impacts your applications.
Overview and Recent Developments
Morocco's number portability system has significantly improved through ANRT's commitment to consumer choice:
Sources: Ecofin Agency (April 2024); ANRT official communications
Implementation Framework
The porting process follows a streamlined workflow:
Eligibility Requirements:
Required Documents:
Service Interruption: Porting typically occurs overnight (during low-traffic hours). Expect a brief service interruption of 2-4 hours during the transition. ANRT mandates that interruptions should not exceed 4 hours.
Rollback Procedures: If porting fails, the number automatically reverts to the original operator within 24 hours. Subscribers are notified by SMS. No charges apply for failed porting attempts.
Source: ANRT Telephony Regulations
Technical Implementation Guidelines
Integrate number portability into your systems with these considerations:
// Number portability validation check function validatePortingEligibility(phoneNumber) { // Check number format (supports both 06 and 07 prefixes for mobile) const numberPattern = /^0[6-7][0-9]{8}$/; if (!numberPattern.test(phoneNumber)) { return { eligible: false, reason: 'Invalid number format' }; } // Placeholder for additional validation logic (e.g., checking against a portability database) // ... return { eligible: true, estimatedPortingTime: '24h' }; } // Test cases console.log(validatePortingEligibility('0612345678')); // Valid mobile number console.log(validatePortingEligibility('0712345678')); // Valid mobile number console.log(validatePortingEligibility('0512345678')); // Invalid – landline, not eligible for this example console.log(validatePortingEligibility('061234567')); // Invalid – incorrect lengthReal-World Implementation: Integrate with a portability database or API to confirm eligibility. Consider edge cases such as temporarily unavailable numbers during the porting process. Implement retry mechanisms or provide informative error messages to users. Incorporate the ANRT Porting Authorization Code (RIO) into your validation process.
Source: ANRT
Troubleshooting
Solve common issues encountered when working with Moroccan phone numbers.
Common Issues and Solutions
Failed Domestic Calls:
International Call Problems:
VoIP Connectivity Issues:
Validation Errors in Code:
// Common validation error handling function validateWithErrors(number) { const errors = []; const cleaned = number.replace(/[\s\-\(\)\.]/g, ''); // Check length if (cleaned.startsWith('0') && cleaned.length !== 10) { errors.push({ code: 'INVALID_LENGTH', message: 'Domestic format requires exactly 10 digits', received: cleaned.length }); } else if (cleaned.startsWith('+212') && cleaned.length !== 13) { errors.push({ code: 'INVALID_INTL_LENGTH', message: 'International format requires +212 followed by 9 digits', received: cleaned.length }); } // Check prefix const prefix = cleaned.startsWith('0') ? cleaned.slice(0, 2) : cleaned.slice(4, 6); if (!['02', '05', '06', '07', '08'].includes(prefix)) { errors.push({ code: 'INVALID_PREFIX', message: 'Number must start with 02, 05, 06, 07, or 08', received: prefix }); } // Check format if (!cleaned.startsWith('0') && !cleaned.startsWith('+212')) { errors.push({ code: 'INVALID_FORMAT', message: 'Number must start with 0 (domestic) or +212 (international)' }); } return { valid: errors.length === 0, errors: errors, debugInfo: { original: number, cleaned: cleaned, detectedPrefix: prefix } }; } // Example usage console.log(validateWithErrors('061234567')); // Shows INVALID_LENGTH error console.log(validateWithErrors('0812345678')); // Valid console.log(validateWithErrors('0412345678')); // Shows INVALID_PREFIX errorOperator Technical Support Contacts:
For Persistent Issues: Direct users to contact their service provider's technical support with account details ready. Provide error codes and diagnostic information from your validation functions to speed resolution.
Sources: Maroc Telecom Contact; Morocco Mobile Network USSD Codes
Frequently Asked Questions
What is Morocco's country code for phone numbers?
Morocco's international country code is +212. When calling Morocco from abroad, dial +212 followed by the 9-digit Moroccan number (omit the leading '0'). Example: To call Moroccan mobile 0612345678 internationally, dial +212 612 345 678. The 212 country code distinguishes Morocco from other nations in the global telephone network.
How many digits is a Moroccan phone number?
Moroccan phone numbers are 10 digits for domestic format and 9 digits for international format (after country code +212). Domestic format: 0X XX XX XX XX starts with '0', followed by prefix (05 urban landlines, 02 rural landlines, 06/07 mobile), then subscriber number. International format: +212 X XX XX XX XX (9 digits after +212, no leading '0').
How do I validate a Morocco phone number?
Use this regex pattern for basic validation:
/^0[2567][0-9]{8}$/for domestic format or/^\+212[2567][0-9]{8}$/for international format. Ensure the number is exactly 10 digits (domestic) or 9 digits after +212 (international). Mobile numbers start with 06 or 07, landlines with 02 or 05.Complete validation function:
import re def validate_morocco_number(number): """ Validate Morocco phone numbers in multiple formats. Returns dict with validation result and details. """ # Remove common separators cleaned = re.sub(r'[\s\-\(\)\.]', '', number) # Patterns domestic = re.compile(r'^0[2567][0-9]{8}$') international = re.compile(r'^\+212[2567][0-9]{8}$') if domestic.match(cleaned): prefix = cleaned[0:2] number_type = { '06': 'mobile', '07': 'mobile', '05': 'urban_landline', '02': 'rural_landline', '08': 'special_service' }.get(prefix, 'unknown') return { 'valid': True, 'format': 'domestic', 'type': number_type, 'formatted': f"{cleaned[0:4]} {cleaned[4:6]} {cleaned[6:8]} {cleaned[8:10]}" } elif international.match(cleaned): prefix = cleaned[4:6] number_type = { '6': 'mobile', '7': 'mobile', '5': 'urban_landline', '2': 'rural_landline', '8': 'special_service' }.get(prefix[0], 'unknown') return { 'valid': True, 'format': 'international', 'type': number_type, 'formatted': f"+212 {cleaned[4:7]} {cleaned[7:9]} {cleaned[9:11]} {cleaned[11:13]}" } return { 'valid': False, 'error': 'Invalid format or prefix', 'cleaned': cleaned } # Examples print(validate_morocco_number('0612345678')) print(validate_morocco_number('+212 612 345 678')) print(validate_morocco_number('0520-12-34-56'))Other Languages:
// Java validation public static boolean isValidMoroccoNumber(String number) { String cleaned = number.replaceAll("[\\s\\-\\(\\)\\.]", ""); return cleaned.matches("^0[2567][0-9]{8}$") || cleaned.matches("^\\+212[2567][0-9]{8}$"); }// PHP validation function validateMoroccoNumber($number) { $cleaned = preg_replace('/[\s\-\(\)\.]/', '', $number); $domestic = preg_match('/^0[2567][0-9]{8}$/', $cleaned); $international = preg_match('/^\+212[2567][0-9]{8}$/', $cleaned); return $domestic || $international; }What are Morocco's mobile phone prefixes?
Morocco mobile numbers start with 06 or 07 prefixes. These prefixes are nationwide (not region-specific) and apply to all three major carriers: Maroc Telecom, Orange Morocco, and INWI. Format: 0[6-7]XXXXXXXX (10 digits domestic) or +212 [6-7]XXXXXXXX (9 digits international). Mobile prefixes 06 and 07 help identify mobile numbers versus landlines (02/05 prefixes).
What are the emergency numbers in Morocco?
Morocco's emergency numbers are: 190 for Police (or 112 from mobile phones), 177 for Royal Gendarmerie, and 150 for Ambulance/Fire. Note that 911 does not work in Morocco. All emergency numbers are toll-free and work without a SIM card or credit balance.
Is VoIP allowed in Morocco?
Yes, VoIP is legal in Morocco since February 2022. The ANRT lifted the ban that was in place from January 2016. WhatsApp calls, Skype, and other Voice over Internet Protocol applications are now legally permitted. Ensure your VoIP service complies with ANRT regulations and licensing requirements.
How long does number portability take in Morocco?
Number portability in Morocco takes one business day (24 hours). The ANRT implemented this faster timeline in April 2024, reducing it from the previous two-day requirement. Porting is free for all subscribers and covers all operators (Maroc Telecom, Inwi, Orange) and number types.
What are Morocco's area codes for landlines?
Morocco's landlines use 05 for urban areas and 02 for rural/southern areas. Unlike mobile prefixes, area codes can vary within cities—for example, Casablanca has 10 different prefixes across operators. Morocco uses a closed numbering plan, so always dial the complete 10-digit number, even for local calls.
Conclusion
You now have a detailed understanding of Morocco's telephone numbering system. Follow these guidelines and best practices to ensure your applications handle Moroccan phone numbers accurately and efficiently. Consult the ANRT Developer Portal for the latest updates and technical specifications.
Quick Reference Checklist:
Additional Resources: