#define americano 0 #define europeo 1 #define lmax 200 #define posin 18 #define estac 1+posin #define linea 8+posin #define durac 34+posin #define hor 23 +posin #define fech 15+posin #define tranf 64+posin #define numero 44+posin #define ccost 0 #define proye 0 #define cuenta 0 #define pulsos 0 #define ruta 0 #define prinum 0 #define ring 0 #define antran 0 // anexo transferido #define fofech americano extern char rgua[]; void in_central() { rgua[0]='\0'; } void fi_central() { } void DatCentral(char *buf, char *tel, int vestac, int vlinea,int vdurac,int vhor, int vfech, int vtranf, int vnumero, int vccost,int vproye, int vcuenta, int vpulsos, int vruta, int vprinum, int vring, int vantran, int vfofech) { int i,k,it,ka ; char aux; i =strlen(buf); aux = 0; if (i>vtranf && buf[vfech+2]=='/' && buf[vhor+2]==':' && buf[vhor+5]==':' && buf[vdurac+2]==':' && buf[vdurac+5]==':' && isalpha(buf[vtranf])) { k = 0 ; tel[k++]=buf[vestac] ; tel[k++]=buf[vestac+1] ; tel[k++]=buf[vestac+2] ; tel[k++]=buf[vestac+3] ; tel[k++] = ' ' ; tel[k++] = buf[vlinea] ; tel[k++] = buf[vlinea+1] ; tel[k++] = buf[vlinea+2] ; tel[k++] = ' ' ; if (buf[vdurac+0]!=' ') tel[k++]=buf[vdurac+0] ; else tel[k++]='0' ; if (buf[vdurac+1]!=' ') tel[k++]=buf[vdurac+1] ; else tel[k++]='0' ; tel[k++] = ':' ; if (buf[vdurac+3]!=' ') tel[k++]=buf[vdurac+3] ; else tel[k++]='0' ; if (buf[vdurac+4]!=' ') tel[k++]=buf[vdurac+4] ; else tel[k++]='0' ; tel[k++] = ':' ; if (buf[vdurac+6]!=' ') tel[k++]=buf[vdurac+6] ; else tel[k++]='0' ; if (buf[vdurac+7]!=' ') tel[k++]=buf[vdurac+7] ; else tel[k++]='0' ; tel[k++] = ' ' ; ka = k ; tel[k++] = buf[vhor] ; tel[k++] = buf[vhor+1] ; if (tel[ka]==' ') tel[ka]='0' ; tel[k++] = ':' ; tel[k++] = buf[vhor+3] ; tel[k++] = buf[vhor+4] ; tel[k++] = ' ' ; if (vfofech==americano) { for (it=0 ; it<5 ; it++) tel[k++] = buf[vfech+it] ; tel[k++] = '/'; tel[k++] = buf[6] ; tel[k++] = buf[7] ; } else { tel[k++] = buf[vfech+3] ; tel[k++] = buf[vfech+4]; tel[k++] = '/'; tel[k++] = buf[vfech+0] ; tel[k++] = buf[vfech+1]; tel[k++] = '/'; tel[k++] = buf[6] ; tel[k++] = buf[7] ; } tel[k++] = ' ' ; if (buf[vtranf]=='S' && buf[vtranf+1]=='A') { tel[k++] = 'O' ; tel[k++] = ' ' ; for (it=vnumero; it<(vnumero+17) && buf[it]!=' ' ; it++) tel[k++]=buf[it] ; } else if ((buf[vtranf]=='T' && buf[vtranf+1]=='R') || (buf[vtranf]=='E' && buf[vtranf+1]=='S')) { if (isdigit(buf[vnumero])) { tel[k++]='O' ; tel[k++]=' ' ; for (it=vnumero; it<(vnumero+17) && buf[it]!=' ' ; it++) tel[k++]=buf[it] ; } else { tel[k++]='I' ; tel[k++]=' ' ; tel[k++]='*' ; } } else { tel[k++]='I' ; tel[k++]=' ' ; tel[k++]='*' ; } tel[k++] = ' ' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = ' ' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = ' ' ; tel[k++] = '*'; // cuenta tel[k++] = ' '; for (it=0 ; it<4 ; it++) tel[k++]='0' ; //pulsos tel[k++] = ' ' ; tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = '*' ; /* ruta */ tel[k++] = ' ' ; tel[k++] = '*' ; /* primer numero */ tel[k++] = ' ' ; tel[k++] = '0' ; tel[k++] = '0' ; tel[k++] = ':' ; tel[k++] = '0' ; tel[k++] = '0' ; /* tiempo ring */ tel[k++] = ' '; tel[k++] = '*'; // anexo transferido tel[k++] = '\r' ; tel[k++] = '\n' ; tel[k++] = '\0' ; } }