[IncomeToCallCenter]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(/home/asterisk/hello.wav)
exten => s,n,HangUp
;exten = s,1,Set(CHANNEL(language)=ru)
;exten = s,n,GotoIfTime(${Worktime}?WorktimeIncome,s,1)
;exten = s,n,GotoIfTime(${Nonworktime}?NonworktimeIncome,s,1)
;;exten = s,n,GotoIfTime(${Holidays}?HolidaysIncome,s,1)
;exten = s,n,Hangup
[IncomeToCallCenterr]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(/home/asterisk/hello.wav)
exten => s,n,HangUp
;exten = s,1,Set(CHANNEL(language)=ru)
;exten = s,n,GotoIfTime(${Worktime}?WorktimeIncomee,s,1)
;exten = s,n,GotoIfTime(${Nonworktime}?NonworktimeIncome,s,1)
;exten = s,n,Hangup
char currentChar;
FILE *in;
#define getNextChar fread(¤tChar, sizeof(char), 1, in)
void main(void) {
in = fopen("text.txt", "r");
getNextChar;
while (getLexem());
}
int getLexem(void) {
string val_str;
int val_int;
int state = 0;
while (1)
switch (state) {
case 0:
if (currentChar >= 'a' && currentChar <= 'z') {
val_str = currentChar;
getNextChar;
state = 1;
}
. . .
}
}
}
string val_str;
int val_int;
int state = 0;
while (1) {
switch(state) {
case 0:
if (*in >= 'a' && *in <= 'z') {
val_str = *(in++);
state = 1;
} else if (*in >= '0' && *in <= '9') {
val_int = *(in++)-'0';
state = 2;
} else if (*in == '=') {
in++;
return (ASSIGN, NULL);
}
else
return (EOT, NULL);
break;
case 1:
if ((*in >= 'a' && *in <= 'z') || (*in >= '0' && *in <= '9')
val_str += *(in++);
else
return (IDENT, val_str);
break;
case 2:
if (*in >= '0' && *in <= '9')
val_int = val_int*10+(*(in++)-'0');
else
return (INTEGER, val_int);
break;
}
}