Frequently Asked Question

UK Outbound Route Dial Patterns
Last Updated 10 days ago

It is important to correctly configure, and limit outbound routes on your FreePBX switch. To do this we use outbound routes, and it's dial patterns which takes a dial pattern that is allowed to use the route, and then optionally does some number translation, E.164 for example. 

image

In this example, we are carefully allowing numbers starting with 01, 02, 03, 05, 07, 080 and 084 and therefore excluding premium rate numbers. We then strip off the 0 and add 44 which is often required by a SIP Trunking provider - but not always. 

NOTE: There are 'premium' rate numbers hidden within ranges now in the UK, especially some fo the 03xx numbers and now even 05xx, but these are not the premium rate 09xx or 089x numbers - so just be aware. 

prepend

prefix

match pattern

44

0

1

44

0

2

44

0

3

44

0

5

44

0

7

44

0

80

44

0

84

This will build a route in /etc/extensions_additional.conf that looks like this: 

[outrt-2] ; National
include => outrt-2-custom
exten => _01.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _01.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _01.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _01.,n,Set(_ROUTEID=2)
exten => _01.,n,Set(_ROUTENAME=National)
exten => _01.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _01.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _01.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _01.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _01.,n,Set(_NODEST=)
exten => _01.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _01.,n,Gosub(macro-outisbusy,s,1())

exten => _02.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _02.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _02.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _02.,n,Set(_ROUTEID=2)
exten => _02.,n,Set(_ROUTENAME=National)
exten => _02.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _02.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _02.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _02.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _02.,n,Set(_NODEST=)
exten => _02.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _02.,n,Gosub(macro-outisbusy,s,1())

exten => _03.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _03.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _03.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _03.,n,Set(_ROUTEID=2)
exten => _03.,n,Set(_ROUTENAME=National)
exten => _03.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _03.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _03.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _03.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _03.,n,Set(_NODEST=)
exten => _03.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _03.,n,Gosub(macro-outisbusy,s,1())

exten => _05.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _05.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _05.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _05.,n,Set(_ROUTEID=2)
exten => _05.,n,Set(_ROUTENAME=National)
exten => _05.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _05.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _05.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _05.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _05.,n,Set(_NODEST=)
exten => _05.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _05.,n,Gosub(macro-outisbusy,s,1())

exten => _07.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _07.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _07.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _07.,n,Set(_ROUTEID=2)
exten => _07.,n,Set(_ROUTENAME=National)
exten => _07.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _07.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _07.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _07.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _07.,n,Set(_NODEST=)
exten => _07.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _07.,n,Gosub(macro-outisbusy,s,1())

exten => _080.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _080.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _080.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _080.,n,Set(_ROUTEID=2)
exten => _080.,n,Set(_ROUTENAME=National)
exten => _080.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _080.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _080.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _080.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _080.,n,Set(_NODEST=)
exten => _080.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _080.,n,Gosub(macro-outisbusy,s,1())

exten => _084.,1,Gosub(macro-user-callerid,s,1(LIMIT,EXTERNAL))
exten => _084.,n,Gosub(sub-record-check,s,1(out,${EXTEN},force))
exten => _084.,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CHANNEL(accountcode)=${CALLEE_ACCOUNCODE}))
exten => _084.,n,Set(_ROUTEID=2)
exten => _084.,n,Set(_ROUTENAME=National)
exten => _084.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _084.,n,Set(_CALLERIDNAMEINTERNAL=${CALLERID(name)})
exten => _084.,n,Set(_CALLERIDNUMINTERNAL=${CALLERID(num)})
exten => _084.,n,Set(_EMAILNOTIFICATION=FALSE)
exten => _084.,n,Set(_NODEST=)
exten => _084.,n,Gosub(macro-dialout-trunk,s,1(16,44${EXTEN:1},,off))
exten => _084.,n,Gosub(macro-outisbusy,s,1())

DO NOT edit /etc/extensions_additional.conf as this will be overwritten every time you change something in FreePBX, instead edit /etc/extensions_custom.conf and add overrides there. 

This website relies on temporary cookies to function, but no personal data is ever stored in the cookies.
OK
Powered by GEN UK CLEAN GREEN ENERGY

Loading ...