Apologies to anyone who read my first attempt at this. It was wrong and misleading, so I deleted it! Here is my second attempt:
There is some guess work here as we do not have all your digit maps.
Assuming that Mipd exisits in one of your MspX digit maps, then if you dial 987654*10*20*30*40 Mipd in the Phone Port DigitMap will transform it to 987654@10.20.30.40 This no longer matches Mipd, which is looking for the xx*xx* etc format. Therefore this rule in your Phone Port OutboundCallRoute {(<:sip:>(Mipd)):sp1} will not apply. I guess a rule such as [^*#]@@. Is matching it and sending it out without the "sip:" prepended.
You could try something like this in your Phone Port OutboundCallRoute {(<:sip:>([^*#]@@.'@'@@.)):sp1} but that will match any sip uri.
An alternative way to achieve this is to create another digit map:
User Settings > User Defined Digit Maps > User Defined Digit MapX >
Label: ipz
DigitMap: (<:sip:>xx.@xx?x?.xx?x?.xx?x?.xx?x?|<:sip:>xx.@xx?x?.xx?x?.xx?x?.xx?x?:xx?x?x?x?)
Use {(Mipz):sp1} In your Phone Port OutboundCallRoute. Now what should happen is that in your Phone Port DigitMap Mipd will allow ip dialling, then in your Phone Port OutboundCall route Mipz will prepend the "sip:"
Let us know if any of this works, it could be useful for prepending other things.
@azrobert – what does Call History show under phone and under sp1? Also, do you have an Mipd in any of your ITSP digit maps? There are a lot of variables here