Many providers offer a primary and secondary/backup registration server and I have routes manually configured to attempt to use the primary and if it fails to use secondary trunk providing a better QOS.
This is the model as I understand it for voicepulse as well as many others if I am correct:
There accounts are structured where you get a total of 4 ports with each trunk you purchase and then can purchase additional ports to allow for more incoming/outgoing calls on that account.
(incoming/outgoing calls) (authenticated delivery method) (phone system) (ph numbers)
Assigned # of ports -> registered trunk -> pbx -> did
Currently the system requires us to add a trunk for every did. In the case where you have a large number of did's for an office (20-30), having 20-30 registered trunks does not make any sense when in many cases the maximum you really need is a primary and a backup for each account.
the DID manager would allow you to put in each DID, assign an incoming route for that DID, and assign the DID to a group minimizing the number of trunk registrations required.
This would allow for the flexability of:
DID GROUP A = 20 DID's
DID GROUP B = 1 DID's
DID GROUP C = 4 DID's
1 PRIMARY TRUNK -> DID GROUP A
1 BACKUP TRUNK -> DID GROUP A
1 PRIMARY TRUNK -> DID GROUP B
1 BACKUP TRUNK -> DID GROUP B
1 PRIMARY TRUNK -> DID GROUP C
1 BACKUP TRUNK -> DID GROUP C
HERE IS AN EXAMPLE CONFIG FOR PRIMARY/BACKUP
-----------------------------------------------------------------------
sip.conf
-----------------------------------------------------------------------
register => username:password@jfk-primary.voicepulse.com
register => username:password@jfk-backup.voicepulse.com
[voicepulse-primary]
type=peer
context=voicepulse-in
host=jfk-primary.voicepulse.com
username=XXXXXXX
secret=XXXXXXX
qualify=yes
allow=all
canreinvite=no
dtmfmode=rfc2833
rfc2833compensate=yes
insecure=port,invite
trustrpid=yes
[voicepulse-backup]
type=peer
context=voicepulse-in
host=jfk-backup.voicepulse.com
username=XXXXXXXX
secret=XXXXXXXX
qualify=yes
allow=all
canreinvite=no
dtmfmode=rfc2833
rfc2833compensate=yes
insecure=port,invite
trustrpid=yes
[sipuser]
type=friend
host=dynamic
secret=sippassword
context=outgoing
canreinvite=no
allow=all
---------------------------------------------------------------
extensions.conf
---------------------------------------------------------------
VOICEPULSE_GATEWAY_OUT_A=voicepulse-primary
VOICEPULSE_GATEWAY_OUT_B=voicepulse-backup
exten => _1NXXNXXXXXX,n,Dial(SIP/+${EXTEN}@${VOICEPULSE_GATEWAY_OUT_A})
exten => _1NXXNXXXXXX,n,GotoIf($[${DIALSTATUS}=CHANUNAVAIL]?${EXTEN}|GatewayB)
exten => _1NXXNXXXXXX,n(GatewayB),Dial(SIP/+${EXTEN}@${VOICEPULSE_GATEWAY_OUT_B})