Would like to know how to handle numbers arriving at the CUCM from another system with the full E.164 number as in +XXXXXXXXXXX ,number being sent from OCS client in this case. So i need to create a Route Pattern to be able to route the calls out to Telco.
CUCM7 supports E.164 route patterns - you need to precede the pattern with a \ when you are defining the route pattern.
If your telco provider cannot cope with called numbers in E.164 format then you can use Called Party Transformations to localize the numbers sent out via the gateway. There is a similar feature called Calling Party Transformations which can localize the numbers before they are presented to phone users.
These transformations are placed in partitions which are accessed by called/calling party transformation CSS's applied at either device or device pool level.
It takes a while to get your head around but after that it is actually quite useful. It is covered in the CUCM7 SRND but I would ask your Cisco SE to get a copy of the Advanced Dial Plan Design presentation that was given at Networkers (and various other events) last year.
E.164 is fully supported in UCM7 and later. You can either translate the called party information at ingress on the SIP trunk from OCS to a format that your existing dial plan supports (e.g. 91[2-9]XX[2-9]XXXXXX); or, create the necessary routing information including a route pattern. The later represents far more work to do properly because the globalized format still needs to be localized at egress toward the PSTN or end-user end point. Unless you are going to upgrade your entire dial-plan to E.164, I would suggest localizing the number at ingress from E.164.
The trick with E.164-formatted numbers is that you must escape the plus character in any field that accepts expressions. For example, a route directory number pattern field requires \+18005532447 while an external phone number mask only requires +18005532447.