Home‎ > ‎

    Philippines Numbering/Dialing Plan

    After messing about at length trying to find an authoritive source for this information and finding that nothing seemed to exist... Here's what information I have... let me know if you are aware of any issues.

    Overview

    The country code for the Philippines is 63.
    The international trunk access code is 00.
    The national/long distance trunk access code is 0.
    Subscriber numbers within an area code are typically 7 digits long.
    Within an area code the 7 digit subscriber number can be dialled without the area code or national/long distance trunk access code.

    Numbers should be written in one of the following formats
    For landline access within a single area code only:
    <subscriber number> e.g. 1234567 or 123 4567
    For access from any phone in the country:
    <national/long distance trunk access code><areacode> <subscriber number> e.g. 02 1234567 or 02 123 3456
    For access from anywhere in the world:
    +<country code> <area code> <subscriber number> e.g. +63 2 1234567 or +63 2 123 4567
    A less correct form of the above that could be used to make it easier for people to see where the national/long distance trunk access code should be placed:
    +<country code> (<national/long distance trunk access code>)<area code> <subscriber number> e.g. +63 (0)2 1234567 or +63 (0)2 123 4567

    Numbers SHOULD NOT be written in the following screwed up format which only seems to exist to make Metro Manila numbers look like US numbers...
    (<country code><area code>) <subscriber number> e.g. (632) 123 4567 - that's just wrong...

    Area Code Summary

    1 - Unassigned
    2, 3X, 4X, 5X, 6X, 7X, 8X - Geographic landlines
    9XX - Mobile phones

    Special Numbers

    Emergency numbers

    The national standard emergency number is 117. This can also be texted from mobile phones.
    From mobile phones at least 112 and 911 can also used.
    In addition there are a large number of individual hotline numbers used for various emergency services, 3 and 5 digit numbers exist.
    e.g.
    116 - Tourist police ??
    166 - Old national emergency number ??
    757 - Fire and Police ??
    16-211 - Meralco hotline for emergencies and customer service
    16-911 - Lifeline Rescue emergency ambulance service within Metro Manila only

    Freephone/Tollfree numbers

    Free to call/Toll free numbers are few and far between in the Philippines... a major reason would likely be that calls are typically free within an area code, so if you are in Metro Manila you can call everyone else in Metro Manila with a landline for free... Another reason has to be the obviously screwed up ways they've been implemented...

    Format a)
    1800 <8 digit number> e.g. 1800 1234 5678
    Format b)
    1027 1800 <7 digit number> e.g. 1027 1800 123 4567

    Both formats make very little sense...

    Hotlines


    There are a number of additional hotlines in addition to the emergency numbers above, some are free, others aren't... Some of those are...

    171 - PLDT customer service hotline (tollfree - 8-7 mon-fri, 8-5 sat/sun)
    172 - PLDT DSL helpdesk (tollfree - 24hrs)
    173 - PLDT repair service hotline (tollfree - 8-7 mon-fri, 8-5 sat/sun)
    187 - PLDT directory assistance (3 pesos per transaction - 8-5 7days/week)

    Asterisk style dialplan

    ;
    ; Sample dialplan below based on dialing 9 for an outside line intending to catch most options for calls in the Philippines
    ; You'd need to include these in whatever contexts you inject calls from phones/users/lines into
    ;

    ;
    ; Emergency hotline numbers that you probably want to be callable from all devices
    ;
    [trunkemergency]
    exten => 9112,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9116,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9117,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9166,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9177,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9757,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => 9911,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _916XXX,1,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ;
    ; To external international numbers prefixed by 9 and 00 international access code, 9 and + or just +
    ;
    [trunkint]
    exten => _900.,1,Verbose(2, International call to ${EXTEN:${GLOBAL(TRUNKMSD)}})
    exten => _900.,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9+.,1,Verbose(2, International call to ${EXTEN:${GLOBAL(TRUNKMSD)}})
    exten => _9+.,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _+.,1,Verbose(2, International call to ${EXTEN})
    exten => _+.,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN}))

    ;
    ; To external national numbers
    ;
    [trunknational]
    exten => _90063[1345678].,1,Goto(90${EXTEN:5},1)
    exten => _9+63[1345678].,1,Goto(90${EXTEN:4},1)
    exten => _+63[1345678].,1,Goto(90${EXTEN:3},1)
    exten => _90[1345678].,1,Verbose(2, National call to ${EXTEN:${GLOBAL(TRUNKMSD)}})
    exten => _90[1345678].,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ;
    ; To mobile phones
    ;
    [trunkmobile]
    exten => _900639XXXXXXXXX,1,Goto(90${EXTEN:5},1)
    exten => _9+639XXXXXXXXX,1,Goto(90${EXTEN:4},1)
    exten => _+639XXXXXXXXX,1,Goto(90${EXTEN:3},1)

    ; Globe
    exten => _9090[56]XXXXXXX,1,Verbose(2, Mobile call to Globe phone ${EXTEN:1})
    exten => _9090[56]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9091[567]XXXXXXX,1,Verbose(2, Mobile call to Globe phone ${EXTEN:1})
    exten => _9091[567]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9092[67]XXXXXXX,1,Verbose(2, Mobile call to Globe phone ${EXTEN:1})
    exten => _9092[67]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9093[567]XXXXXXX,1,Verbose(2, Mobile call to Globe phone ${EXTEN:1})
    exten => _9093[567]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ; Smart/PLDT
    exten => _9090[789]XXXXXXX,1,Verbose(2, Mobile call to Smart phone ${EXTEN:1})
    exten => _9090[789]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9091[0289]XXXXXXX,1,Verbose(2, Mobile call to Smart phone ${EXTEN:1})
    exten => _9091[0289]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9092[0189]XXXXXXX,1,Verbose(2, Mobile call to Smart phone ${EXTEN:1})
    exten => _9092[0189]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))
    exten => _9093[089]XXXXXXX,1,Verbose(2, Mobile call to Smart phone ${EXTEN:1})
    exten => _9093[089]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    exten => _90999XXXXXXX,1,Verbose(2, Mobile call to Smart (U Phone) phone ${EXTEN:1})
    exten => _90999XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))



    ; Sun/Digitel
    exten => _909[23][23]XXXXXXX,1,Verbose(2, Mobile call to Smart phone ${EXTEN:1})
    exten => _909[23][23]XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ; Unknown

    exten => _909XXXXXXXXX,1,Verbose(2, Mobile call to unknown operator phone ${EXTEN:1})
    exten => _909XXXXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ;
    ; To local numbers
    ;
    [trunklocal]
    exten => _900632XXXXXXX,1,Goto(90${EXTEN:5},1)
    exten => _9+632XXXXXXX,1,Goto(90${EXTEN:4},1)
    exten => _+632XXXXXXX,1,Goto(90${EXTEN:3},1)

    exten => _902XXXXXXX,1,Verbose(2, Local call to ${EXTEN})
    exten => _902XXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    exten => _9ZXXXXXX,1,Verbose(2, Local call to ${EXTEN})
    exten => _9ZXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    exten => _9ZXXXX,1,Verbose(2, Local call to ${EXTEN})
    exten => _9ZXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ;
    ; Short code hotlines
    ;
    [trunkhotlines]
    exten => _917[1-3],1,Verbose(2, Hotline call to PLDT hotline ${EXTEN})
    exten => _917[1-3],n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))

    ;
    ; Long distance context accessed through trunk interface
    ;
    [trunktollfree]
    exten => _91800XXXXXXXX,1,Verbose(2, Toll Free call to ${EXTEN})
    exten => _91800XXXXXXXX,n,Gosub(trunkdial,s,1(${GLOBAL(TRUNK)},${EXTEN:${GLOBAL(TRUNKMSD)}}))