Que tal Ariel25,
Creo que lo que tienes que hacer es identificar el tipo de llamada que se va a realizar, por lo que yo encuentro 3 tipos:
1.- Llamada local
2.- Llamada a celular
3.- Lamada larga distancia
En Mexico por ejemplo todos los numero telefonicos de llamada local deben ser de 7(para toda la Mexico, excepto Guadalajara, Monterrey y Mexico DF) u 8 digitos (solo para Guadalajara, Monterrey y Mexico DF). Para llamada de larga distancia nacional se hacen de 10 digitos de la siguiente manera: Codigo para indicar larga distancia nacional (01)+codigo de area (2 o 3 digitos) + numero telefonico. Para este caso como puedes ver la clave esta en identificar el tipo de llamada que en este caso es de tipo larga distancia nacional, el cual es iniciado por un 01, entonces como puedes ver el marcaje total es de 12 digitos y no importa si el numero telefonico es de 7 u 8 digitos.
De igual manera sucede para la larga distancia internacional, la cual comienza con 001+codigo del pais+codigo de area+numero telefonico.
Existe un standard internacional que dice que todo numero telefonico en "cualqueir parte" del mundo debe ser de 10 digitos el cual aplica perfectamente para USA y Mexico.
Esto porque el numero telefonico (como local) consta de 7 u 8 digitos + 3 o 2 digitos del codigo de area, dando un total de 10 digitos.
Esto es por ejemplo: En la ciudad de Mexico todos los numeros telefonicos son de 8 digitos y el codigo de area correspondiente a la ciudad de Mexico es el 55 asi por ejemplo si una persona tiene el numero telefonico: 1234-5678, realmente su numero telefonico es el 55-1234-5678, pero si otro persona que vive en la ciudad de Mexico lequiere llamar, unicamente marca 8 digitos. Pero alguien que vive en otro estado tiene que marcar 01-55-1234-5678, Asi puedes ver que realmente el nuemro telefonico es de 10 digitos, pero ahora tuviste que marcar 12 digitos y no doce, y lo que me dice cuantos digitos tengo que marcar es cuando deteceto el 01.
Para las llamadas a celular es lo mismo, solo que estas comienzan con 044+numero telefonico.
Bueno esta es una idea ejemplificada para Mexico, lo que se me hace extranio es que comentas que se puede hacer una marcacion de hasta 20 digitos y no cumpliria con el standar internacion de marcacion telefonica.
Lo que cambia en cada pais es el acceso al serivcio de larga distancia nacional e internacional, pero segun el statndar debe ser siempre asi:
marcacion al acceso de larga distancia internacional(diferente para cada pais, en Mexico es 001, en USA es 011)+codigo de pais (a Mexico le corresponde el 52)+ codigo de area+ numero telefonico
Espero esto te de una idea para tu proyecto.
Saludos.
Elreypic.