The german dial-plan is completely variable, which means you cannot tell UCM how many digits he needs to collect. Instead of a 9 for an outside line they use 0. Further a long distance call is not 91 it is 00. Internationial is 000 instead of 9011. You see that they just pile up 0s the farther you go. The easiest route-pattern is simply 0.! (assuming UCM) but this would incur interdigit timeout. To avoid waiting for an interdigit timeout, you need to specify "overlap sending" on the gateway so all digits are pulsed out as you continue dialing. The PSTN knows when it will be happy with the amount of digits and connect the call. If you like more granularity (COS for different users) you may configure more different route-patterns like 0.0! for long distance and 0.00! for international calls.
Just a very short intro in variable dial-plans.