Using:
Phone Port Primary Line : SP2 Service
Phone Port DigitMap : ([1-9]|[1-9][0-9]|911|**0|***|(Mpli)|**1(Msp1)|**2(Msp2)|**8(Mli)|**9(Mpp))
Phone Port OutboundCallRoute : {911:li},{**0:aa},{***:aa2},{(<**1:>[x*].):sp1},{(<**2:>[x*].):sp2},{(<**8:>[x*].):li},{(<**9:>[obx*].):pp},{([x*].):pli}
SIP2/ITSPB DigitMap : (1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|<1870>xxxxxxx|011xx.|xx.)
Dialing 1234567 with or without a terminating # key works properly and sends 18701234567 to the SIP2/ITSPB provider (Google Voice).
If S4 is added to the third term of the SIP2/ITSPB DigitMap (<1870>xxxxxxxS4), using a terminating # key causes the Digit Map Processor to return only 1234567 which is sent to the SIP2/ITSPB provider (Google Voice).
From page 116 of the OBi Device Administration Guide:
(xx.|<1408>xxxxxxxS4)
In this case the DMP behaves exactly the same as the last, except that the short interdigit timer the DMP uses upon receiving the 7th digit is overridden by a 4s timer; hence the user will have up to 4s instead of 2 to dial the 8th digit.
Adding an interdigit timer override should not alter the value returned by the rule when a terminating # key is used.
Using the original/default Phone Port OutboundCallRoute, the problem does not appear to occur, but in reality, it does. It's simply masked by the fact that the SIP2/ITSPB DigitMap is envoked a second time from the Phone Port OutboundCallRoute, this time without the terminating # key, and the desired value is returned and sent to the SIP2/ITSPB provider (Google Voice).
You can observe all of the behavior described above in the Phone Port LastDialedNumber field.
There appears to be a bug in the OBi110 Digit Map Processor.