<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2012, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->

<!-- Regex patterns for SMS short codes by country. -->
<shortcodes>

    <!-- The country attribute is the ISO country code of the user's account (from SIM card or NV).
         The pattern attribute is a regex that matches all SMS short codes for the country.
         The premium attribute is a regex that matches premium rate SMS short codes.
         The free attribute matches short codes that we know will not cost the user, such as
         emergency numbers. The standard attribute matches short codes that are billed at the
         standard SMS rate. The user is warned when the destination phone number matches the
         "pattern" or "premium" regexes, and does not match the "free" or "standard" regexes. -->

    <!-- Harmonised European Short Codes are 6 digit numbers starting with 116 (free helplines).
         Premium patterns include short codes from: http://aonebill.com/coverage&tariffs
         and http://mobilcent.com/info-worldwide.asp and extracted from:
         http://smscoin.net/software/engine/WordPress/Paid+SMS-registration/ -->

    <!-- Albania: 5 digits, known short codes listed -->
    <shortcode country="al" pattern="\\d{5}" premium="15191|55[56]00" />

    <!-- Armenia: 3-4 digits, emergency numbers 10[123] -->
    <shortcode country="am" pattern="\\d{3,4}" premium="11[2456]1|3024" free="10[123]" />

    <!-- Austria: 10 digits, premium prefix 09xx, plus EU -->
    <shortcode country="at" pattern="11\\d{4}" premium="09.*" free="116\\d{3}" />

    <!-- Australia: 6 or 8 digits starting with "19" -->
    <shortcode country="au" pattern="19(?:\\d{4}|\\d{6})" premium="19998882" />

    <!-- Azerbaijan: 4-5 digits, known premium codes listed -->
    <shortcode country="az" pattern="\\d{4,5}" premium="330[12]|87744|901[234]|93(?:94|101)|9426|9525" />

    <!-- Belgium: 4 digits, plus EU: http://www.mobileweb.be/en/mobileweb/sms-numberplan.asp -->
    <shortcode country="be" premium="\\d{4}" free="8\\d{3}|116\\d{3}" />

    <!-- Bulgaria: 4-5 digits, plus EU -->
    <shortcode country="bg" pattern="\\d{4,5}" premium="18(?:16|423)|19(?:1[56]|35)" free="116\\d{3}" />

    <!-- Belarus: 4 digits -->
    <shortcode country="by" pattern="\\d{4}" premium="3336|4161|444[4689]|501[34]|7781" />

    <!-- Canada: 5-6 digits -->
    <shortcode country="ca" pattern="\\d{5,6}" premium="60999|88188" />

    <!-- Switzerland: 3-5 digits: http://www.swisscom.ch/fxres/kmu/thirdpartybusiness_code_of_conduct_en.pdf -->
    <shortcode country="ch" pattern="[2-9]\\d{2,4}" premium="543|83111" />

    <!-- China: premium shortcodes start with "1066", free shortcodes start with "1065":
         http://clients.txtnation.com/entries/197192-china-premium-sms-short-code-requirements -->
    <shortcode country="cn" premium="1066.*" free="1065.*" />

    <!-- Cyprus: 4-6 digits (not confirmed), known premium codes listed, plus EU -->
    <shortcode country="cy" pattern="\\d{4,6}" premium="7510" free="116\\d{3}" />

    <!-- Czech Republic: 7-8 digits, starting with 9, plus EU:
         http://www.o2.cz/osobni/en/services-by-alphabet/91670-premium_sms.html -->
    <shortcode country="cz" premium="9\\d{6,7}" free="116\\d{3}" />

    <!-- Germany: 4-5 digits plus 1232xxx (premium codes from http://www.vodafone.de/infofaxe/537.pdf and http://premiumdienste.eplus.de/pdf/kodex.pdf), plus EU. To keep the premium regex from being too large, it only includes payment processors that have been used by SMS malware, with the regular pattern matching the other premium short codes. -->
    <shortcode country="de" pattern="\\d{4,5}|1232\\d{3}" premium="11(?:111|833)|1232(?:013|021|060|075|286|358)|118(?:44|80|86)|20[25]00|220(?:21|22|88|99)|221(?:14|21)|223(?:44|53|77)|224[13]0|225(?:20|59|90)|226(?:06|10|20|26|30|40|56|70)|227(?:07|33|39|66|76|78|79|88|99)|228(?:08|11|66|77)|23300|30030|3[12347]000|330(?:33|55|66)|33(?:233|331|366|533)|34(?:34|567)|37000|40(?:040|123|444|[3568]00)|41(?:010|414)|44(?:000|044|344|44[24]|544)|50005|50100|50123|50555|51000|52(?:255|783)|54(?:100|2542)|55(?:077|[24]00|222|333|55|[12369]55)|56(?:789|886)|60800|6[13]000|66(?:[12348]66|566|766|777|88|999)|68888|70(?:07|123|777)|76766|77(?:007|070|222|444|[567]77)|80(?:008|123|888)|82(?:002|[378]00|323|444|472|474|488|727)|83(?:005|[169]00|333|830)|84(?:141|300|32[34]|343|488|499|777|888)|85888|86(?:188|566|640|644|650|677|868|888)|870[24]9|871(?:23|[49]9)|872(?:1[0-8]|49|99)|87499|875(?:49|55|99)|876(?:0[1367]|1[1245678]|54|99)|877(?:00|99)|878(?:15|25|3[567]|8[12])|87999|880(?:08|44|55|77|99)|88688|888(?:03|10|8|89)|8899|90(?:009|999)|99999" free="116\\d{3}" />

    <!-- Denmark: see http://iprs.webspacecommerce.com/Denmark-Premium-Rate-Numbers -->
    <shortcode country="dk" pattern="\\d{4,5}" premium="1\\d{3}" free="116\\d{3}" />

    <!-- Estonia: short codes 3-5 digits starting with 1, plus premium 7 digit numbers starting with 90, plus EU.
         http://www.tja.ee/public/documents/Elektrooniline_side/Oigusaktid/ENG/Estonian_Numbering_Plan_annex_06_09_2010.mht -->
    <shortcode country="ee" pattern="1\\d{2,4}" premium="90\\d{5}|15330|1701[0-3]" free="116\\d{3}" />

    <!-- Spain: 5-6 digits: 25xxx, 27xxx, 280xx, 35xxx, 37xxx, 795xxx, 797xxx, 995xxx, 997xxx, plus EU.
         http://www.legallink.es/?q=en/content/which-current-regulatory-status-premium-rate-services-spain -->
    <shortcode country="es" premium="[23][57]\\d{3}|280\\d{2}|[79]9[57]\\d{3}" free="116\\d{3}" />

    <!-- Finland: 5-6 digits, premium 0600, 0700: http://en.wikipedia.org/wiki/Telephone_numbers_in_Finland -->
    <shortcode country="fi" pattern="\\d{5,6}" premium="0600.*|0700.*|171(?:59|63)" free="116\\d{3}" />

    <!-- France: 5 digits, free: 3xxxx, premium [4-8]xxxx, plus EU:
         http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements -->
    <shortcode country="fr" premium="[4-8]\\d{4}" free="3\\d{4}|116\\d{3}" />

    <!-- United Kingdom (Great Britain): 4-6 digits, common codes [5-8]xxxx, plus EU:
         http://www.short-codes.com/media/Co-regulatoryCodeofPracticeforcommonshortcodes170206.pdf -->
    <shortcode country="gb" pattern="\\d{4,6}" premium="[5-8]\\d{4}" free="116\\d{3}" />

    <!-- Georgia: 4 digits, known premium codes listed -->
    <shortcode country="ge" pattern="\\d{4}" premium="801[234]|888[239]" />

    <!-- Greece: 5 digits (54xxx, 19yxx, x=0-9, y=0-5): http://www.cmtelecom.com/premium-sms/greece -->
    <shortcode country="gr" pattern="\\d{5}" premium="54\\d{3}|19[0-5]\\d{2}" free="116\\d{3}" />

    <!-- Hungary: 4 or 10 digits starting with 1 or 0, plus EU:
         http://clients.txtnation.com/entries/209633-hungary-premium-sms-short-code-regulations -->
    <shortcode country="hu" pattern="[01](?:\\d{3}|\\d{9})" premium="0691227910|1784" free="116\\d{3}" />

    <!-- Ireland: 5 digits, 5xxxx (50xxx=free, 5[12]xxx=standard), plus EU:
         http://www.comreg.ie/_fileupload/publications/ComReg1117.pdf -->
    <shortcode country="ie" pattern="\\d{5}" premium="5[3-9]\\d{3}" free="50\\d{3}|116\\d{3}" standard="5[12]\\d{3}" />

    <!-- Israel: 4 digits, known premium codes listed -->
    <shortcode country="il" pattern="\\d{4}" premium="4422|4545" />

    <!-- Italy: 5 digits (premium=4xxxx), plus EU:
         http://clients.txtnation.com/attachments/token/di5kfblvubttvlw/?name=Italy_CASP_EN.pdf -->
    <shortcode country="it" pattern="\\d{5}" premium="4\\d{4}" free="116\\d{3}" />

    <!-- Kyrgyzstan: 4 digits, known premium codes listed -->
    <shortcode country="kg" pattern="\\d{4}" premium="415[2367]|444[69]" />

    <!-- Kazakhstan: 4 digits, known premium codes listed: http://smscoin.net/info/pricing-kazakhstan/ -->
    <shortcode country="kz" pattern="\\d{4}" premium="335[02]|4161|444[469]|77[2359]0|8444|919[3-5]|968[2-5]" />

    <!-- Lithuania: 3-5 digits, known premium codes listed, plus EU -->
    <shortcode country="lt" pattern="\\d{3,5}" premium="13[89]1|1394|16[34]5" free="116\\d{3}" />

    <!-- Luxembourg: 5 digits, 6xxxx, plus EU:
         http://www.luxgsm.lu/assets/files/filepage/file_1253803400.pdf -->
    <shortcode country="lu" premium="6\\d{4}" free="116\\d{3}" />

    <!-- Latvia: 4 digits, known premium codes listed, plus EU -->
    <shortcode country="lv" pattern="\\d{4}" premium="18(?:19|63|7[1-4])" free="116\\d{3}" />

    <!-- Mexico: 4-5 digits (not confirmed), known premium codes listed -->
    <shortcode country="mx" pattern="\\d{4,5}" premium="53035|7766" />

    <!-- Malaysia: 5 digits: http://www.skmm.gov.my/attachment/Consumer_Regulation/Mobile_Content_Services_FAQs.pdf -->
    <shortcode country="my" pattern="\\d{5}" premium="32298|33776" />

    <!-- The Netherlands, 4 digits, known premium codes listed, plus EU -->
    <shortcode country="nl" pattern="\\d{4}" premium="4466|5040" free="116\\d{3}" />

    <!-- Norway: 4-5 digits (not confirmed), known premium codes listed -->
    <shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" />

    <!-- New Zealand: 3-4 digits, known premium codes listed -->
    <shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995" />

    <!-- Poland: 4-5 digits (not confirmed), known premium codes listed, plus EU -->
    <shortcode country="pl" pattern="\\d{4,5}" premium="74240|79(?:10|866)|92525" free="116\\d{3}" />

    <!-- Portugal: 5 digits, plus EU:
         http://clients.txtnation.com/entries/158326-portugal-premium-sms-short-code-regulations -->
    <shortcode country="pt" premium="6[1289]\\d{3}" free="116\\d{3}" />

    <!-- Romania: 4 digits, plus EU: http://www.simplus.ro/en/resources/glossary-of-terms/ -->
    <shortcode country="ro" pattern="\\d{4}" premium="12(?:63|66|88)|13(?:14|80)" free="116\\d{3}" />

    <!-- Russia: 4 digits, known premium codes listed: http://smscoin.net/info/pricing-russia/ -->
    <shortcode country="ru" pattern="\\d{4}" premium="1(?:1[56]1|899)|2(?:09[57]|322|47[46]|880|990)|3[589]33|4161|44(?:4[3-9]|81)|77(?:33|81)" />

    <!-- Sweden: 5 digits (72xxx), plus EU: http://www.viatel.se/en/premium-sms/ -->
    <shortcode country="se" premium="72\\d{3}" free="116\\d{3}" />

    <!-- Singapore: 5 digits: http://clients.txtnation.com/entries/306442-singapore-premium-sms-short-code-requirements
         Free government directory info at 74688: http://app.sgdi.gov.sg/sms_help.asp -->
    <shortcode country="sg" pattern="7\\d{4}" premium="73800" standard="74688" />

    <!-- Slovenia: 4 digits (premium=3xxx, 6xxx, 8xxx), plus EU: http://www.cmtelecom.com/premium-sms/slovenia -->
    <shortcode country="si" pattern="\\d{4}" premium="[368]\\d{3}" free="116\\d{3}" />

    <!-- Slovakia: 4 digits (premium), plus EU: http://www.cmtelecom.com/premium-sms/slovakia -->
    <shortcode country="sk" premium="\\d{4}" free="116\\d{3}" />

    <!-- Tajikistan: 4 digits, known premium codes listed -->
    <shortcode country="tj" pattern="\\d{4}" premium="11[3-7]1|4161|4333|444[689]" />

    <!-- Ukraine: 4 digits, known premium codes listed -->
    <shortcode country="ua" pattern="\\d{4}" premium="444[3-9]|70[579]4|7540" />

    <!-- USA: 5-6 digits (premium codes from https://www.premiumsmsrefunds.com/ShortCodes.htm) -->
    <shortcode country="us" pattern="\\d{5,6}" premium="20433|21(?:344|472)|22715|23(?:333|847)|24(?:15|28)0|25209|27(?:449|606|663)|28498|305(?:00|83)|32(?:340|941)|33(?:166|786|849)|34746|35(?:182|564)|37975|38(?:135|146|254)|41(?:366|463)|42335|43(?:355|500)|44(?:578|711|811)|45814|46(?:157|173|327)|46666|47553|48(?:221|277|669)|50(?:844|920)|51(?:062|368)|52944|54(?:723|892)|55928|56483|57370|59(?:182|187|252|342)|60339|61(?:266|982)|62478|64(?:219|898)|65(?:108|500)|69(?:208|388)|70877|71851|72(?:078|087|465)|73(?:288|588|882|909|997)|74(?:034|332|815)|76426|79213|81946|83177|84(?:103|685)|85797|86(?:234|236|666)|89616|90(?:715|842|938)|91(?:362|958)|94719|95297|96(?:040|666|835|969)|97(?:142|294|688)|99(?:689|796|807)" />

</shortcodes>
