By putting patterns in the trunk you are restricting what it can send so remove everything from the trunk and then with prefix 9 match pattern X. in the outbound route anything you dial prefixed with a 9 will be forwarded to the trunk dropping the 9. It would be better to put more match patterns in the outbound route so only legitimate numbers are sent to the trunk so assuming long distance numbers have to be prepended with a 1 and local numbers with 1703, I suggest prefix 9 match pattern 1NXXNXXXXXX, prepend 1 prefix 9 match pattern NXXNXXXXXX, prepend 1703 prefix 9 match pattern NXXXXXX, prefix 9 match pattern 011X., prefix 9 match pattern X11, prefix 9 match pattern 0 and anything else you might need.
9|. is not a valid digit pattern for either phone.
More importantly, this is an example why end users get a bad opinion of IP voice systems. Installers must take the time to program the phones correctly.
A dial plan must contain every possible digit combination a user may dial. When the dial plan is matched the phone completes the call without the need to press send.
notwithstanding, a catchall at the end of the allowed patterns sometimes helps reduce aggravation - wouldn’t you agree? Once there is delay in sending the number (or need to press a SEND key) then one realizes that a pattern needs to be added - it’s a little better than dialing and being stopped by a congestion tone.
“9|.” should not be used on the phones (even though it is a valid string) - it would strip the 9 which would stop the call (in this situation).
I don’t really understand why prefixes are still used, but to each his own - I use them strictly in testing or forcing specific routes/trunks.