--- say.c Wed Dec 22 00:18:32 2004 +++ /Users/ezamudio/Documents/downloads/asterisk/asterisk-1.0.5/say.c Thu Feb 3 14:51:45 2005 @@ -820,46 +820,76 @@ { int res = 0; int playa = 0; - int mf = 1; /* +1 = Masculin; -1 = Feminin */ + //EZL: originalmente era 1, lo pongo en 0 + int mf = 0; /* +1 = Masculin; -1 = Feminin */ char fn[256] = ""; if (!num) return ast_say_digits_full(chan, 0,ints, language, audiofd, ctrlfd); if (options && !strncasecmp(options, "f",1)) mf = -1; + //comienza mod EZL + else if (options && !strncasecmp(options, "m", 1)) + mf = 1; + //termina mod EZL while (!res && num) { if (playa) { snprintf(fn, sizeof(fn), "digits/y"); playa = 0; } else if (num == 1) { - if (mf < 0) - snprintf(fn, sizeof(fn), "digits/%dF", num); - else - snprintf(fn, sizeof(fn), "digits/%d", num); - num = 0; - } else if (num < 31) { - snprintf(fn, sizeof(fn), "digits/%d", num); + //comienza mod EZL + if (mf < 0) { + snprintf(fn, sizeof(fn), "digits/1F"); + } else if (mf == 0) { + snprintf(fn, sizeof(fn), "digits/1"); + } else if (mf > 0) { + snprintf(fn, sizeof(fn), "digits/1M"); + } + //termina mod EZL num = 0; } else if (num < 100) { + //comienza mod EZL + if (num % 10 == 1) { + if (mf <= 0) { + snprintf(fn, sizeof(fn), "digits/%d", num); + } else { + snprintf(fn, sizeof(fn), "digits/%dM", num); + } + } else { + snprintf(fn, sizeof(fn), "digits/%d", num); + } + //termina mod EZL + num = 0; + /*} else if (num < 100) { snprintf(fn, sizeof(fn), "digits/%d", (num/10)*10); num -= ((num/10)*10); if (num) - playa++; + playa++;*/ } else if (num == 100) { snprintf(fn, sizeof(fn), "digits/cien"); num = 0; } else { - if (num < 1000) { + //comienza mod EZL + if (num < 200) { + snprintf(fn, sizeof(fn), "digits/100-and"); + num -= ((num / 100) * 100); + //termina mod EZL (bueno y va el ELSE de aqui abajito) + } else if (num < 1000) { snprintf(fn, sizeof(fn), "digits/%d", (num/100)*100); num -= ((num/100)*100); + //comienza mod EZL + } else if (num >= 1000 && num < 2000) { + snprintf(fn, sizeof(fn), "digits/thousand"); + num -= 1000; + //termina mod EZL } else { if (num < 1000000) { res = ast_say_number_full_es(chan, num / 1000, ints, language, options, audiofd, ctrlfd); if (res) return res; num = num % 1000; - snprintf(fn, sizeof(fn), "digits/mil"); + snprintf(fn, sizeof(fn), "digits/thousand"); } else { if (num < 2147483640) { res = ast_say_number_full_es(chan, num / 1000000, ints, language, options, audiofd, ctrlfd);