Phone DigitMap: Current Default
Phone outbound route:
{([19]900xxxxxxx):},{([1-9]x?*(Mpli)):pp},{(<##:>):li},{(<#:>):ph2},{(<**70:>(Mli)):li},{(<**82:>(Mbt2)):bt2},{(<**81:>(Mbt)):bt},{(<**8:>(Mbt)):bt},{**0:aa},{***:aa2},{(<**9:>(Mpp)):pp},{(Mpli):pli}
Phone Primary Line: Trunk Group 1
ITSP A DigitMap:
(911|933|1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.S3)
ITSP B DigitMap:
(18(00|88|77|66|55|44)xxxxxxx)
ITSP C DigitMap:
(011xx.S3)
ITSP D DigitMap:
(<9:>xxxxxxxxxx|1xxxxxxxxxx)
Voice Services -> Gateways and TGs -> Trunk Group 1
Trunk List: sp2,sp3,sp1,sp4
DigitMap: ((Msp1)|(Msp2)|(Msp3)|9xxxxxxxxxx)
Voice Services -> SP1, SP2 and SP3 Service: X_NoRegNoCall: Checked
Service Providers ITSP A, B and C -> SIP -> TimerB: 10000
TGs use a 3 step process to route calls.
1st the Phone DigitMap validates the dialed number.
(Mpli) points to the primary line which is TG1 DigitMap.
TG1 points to ITSP A, B and C DigitMaps and 9xxxxxxxxxx
All these DigitMaps should validate all numbers.
In the outbound route {(Mpli):pli}
(Mpli) points to TG1 DigitMap and pli points to TG1
If the dialed number matches a rule in the TG1 DigitMap, TG1 gets control.
TG1 will process the trunks in the trunk list left to right.
If the call fails in the 1st trunk, processing will move to the next trunk.
The call can fail in 2 ways, the trunk is down or the dialed doesn't match the corresponding DigitMap.
If you dial an international number:
The 1st trunk in the list is SP2.
The dialed number doesn't match a rule in ITSP B DigitMap, so the processing moves to SP3.
The dialed number matches a rule in ITSP C, so the call is routed to SP3.
If the trunk is down, processing will move to SP1.
The dialed number matches a rule in ITSP A, so the call is routed to SP1.
Each trunk in the trunk list uses its corresponding DigitMap. This can't be changed. This is different than the normal outbound route process where you can compare the dialed number to virtually anything to route the call to a trunk.
I didn't use (Msp4) in the TG1 DigitMap.
If I did, rule <9:>xxxxxxxxxx would remove the "9" prefix during the phone DigitMap processing.
When the outbound route processes the dialed number, it will be 10 digits and be routed to SP1, not SP4.
When X_NoRegNoCall is enabled the call will immediately failover when the trunk is not registered to the provider.
It is my understanding (I might be wrong) that the OBi might think the trunk is still registered when the trunk is down. There is a registration period and the OBi might not know the trunk is down until the registration period expires and the OBi tries to re-register. In this case the OBi will wait 32 seconds (defined in TimerB) before it failovers. I changed TimerB to 10 seconds. You can probably make it less.
I removed all the **1 thru **4 processing in the outbound call route. You can remove any other rules you're not using. You can do the same in the phone DigitMap.
Disclaimer:
No guaranty the above is error free.