#define americano 0 #define europeo 1 #define lmax 200 // 200 #define posin 18 #define estac 53+posin #define linea 40+posin #define durac 0 +posin #define hor 22+posin #define fech 11+posin #define tranf 0 #define numero 28+posin #define ccost 0 #define proye 33+posin #define cuenta 0 #define pulsos 0 #define ruta 0 #define prinum 0 #define ring 0 #define antran 0 // anexo transferido #define fofech americano #define ladat 82+posin extern void gua_rut(char *buf); char bufli[lmax+3], bufti, bufnu[lmax+3], bufpr[lmax+3], buane[10], cring[7]; int larli, larnu, larpr; BOOL blin, btip, bnum, btra, bpry; extern char rgua[]; void in_central() { rgua[0] = '\0'; blin = FALSE; btip = FALSE; bnum = FALSE; btra = FALSE; strcpy(buane,"****"); } 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) { char dial[40] ; int i,ka,k,largo ; largo = strlen(buf); if ( largo>(12+posin) ) { if (buf[posin]=='-' && buf[posin+1]=='-' && buf[posin+2]=='-' && buf[posin+5]=='-') { strcpy(bufli,buf); larli = largo; blin = TRUE; btip = FALSE; bnum = FALSE; btra = FALSE; bpry = FALSE; strcpy(cring,"00:00"); } else if (blin && !btip && !bnum) { if (strstr(buf,"OUTGOING CALL")!=NULL) { bufti='O'; btip=TRUE; } else if (strstr(buf,"INCOMING CALL")!=NULL) { char *srin; bufti='I'; btip=TRUE; bnum = TRUE; if ((srin=strstr(buf,"RINGING"))!=NULL) { cring[0] = '0'; cring[1] = srin[8]; cring[3] = srin[10] ; cring[4] = srin[11]; } } else if (strstr(buf,"FROM TRANSFER")!=NULL) { btra = TRUE; bnum = TRUE; } } else if (blin && btip && !bnum && !bpry) { if (strstr(buf,"DIGITS DIALED")!=NULL) { strcpy(bufnu,buf); for (i=(posin+1);!isdigit(bufnu[i]);i++); for (;isdigit(bufnu[i]);i++); bufnu[i] = '\0'; larnu = strlen(bufnu); bnum = TRUE; } else if (strstr(buf,"RESTRICTION PASSWORD")!=NULL) { strcpy(bufpr,buf); for (i=(posin+1);!isdigit(bufpr[i]);i++); for (;isdigit(bufpr[i]);i++); bufnu[i] = '\0'; larpr = strlen(bufnu); bpry = TRUE; } } else if ((blin && bnum)||(blin && bpry)) { char *pbuf; if (((pbuf=strstr(buf,"DIGITS DIALED"))!=NULL) && !bpry) { for (i=13;pbuf[i]==' ' && pbuf[i]!='\r' && pbuf[i]!='\n';i++); for (k=0;pbuf[i]!='\r' && pbuf[i]!='\n' && k<40;i++) dial[k++] = pbuf[i]; dial[k] = '\0'; strcat(bufnu,dial); larnu = strlen(bufnu); } else if (((pbuf=strstr(buf,"DIGITS DIALED"))!=NULL) && bpry) { strcpy(bufnu,buf); for (i=(posin+1);!isdigit(bufnu[i]);i++); for (;isdigit(bufnu[i]);i++); bufnu[i] = '\0'; larnu = strlen(bufnu); bnum = TRUE; } else if (strstr(buf,"CALL RELEASED")!=NULL || strstr(buf,"TRANSFERRED")!=NULL) { k = 0; for (i=0;i<4 && (vestac+i)