?? swi.c
字號:
else
sprintf(SndBuff, "can subd n=%s sc=dtd\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010092);
break;
case 3010093:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
if (Sw->NewSrv[NOT_DISTURB] == '1')
GetResultNECG30REG();
else
GetResultNECG30CAN();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010100);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
// === 12-缺席
case 3010100:
if (Sw->NewSrv[ABSENTEE] == '-') {
Go(3010110);
break;
}
GoSub(3000050);
break;
case 3010101:
if (Sw->NewSrv[ABSENTEE] == '1')
sprintf(SndBuff, "reg subd n=%s sc=abs\r", Sw->Tel);
else
sprintf(SndBuff, "can subd n=%s sc=abs\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010102);
break;
case 3010103:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
if (Sw->NewSrv[ABSENTEE] == '1')
GetResultNECG30REG();
else
GetResultNECG30CAN();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010110);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
// === 13-縮位撥號
case 3010110:
if (Sw->NewSrv[SPEED_CALL] == '-') {
Go(3010120);
break;
}
GoSub(3000050);
break;
case 3010111:
if (Sw->NewSrv[SPEED_CALL] == '1')
sprintf(SndBuff, "reg subd n=%s sc=abd\r", Sw->Tel);
else
sprintf(SndBuff, "can subd n=%s sc=abd\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010112);
break;
case 3010113:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
if (Sw->NewSrv[SPEED_CALL] == '1')
GetResultNECG30REG();
else
GetResultNECG30CAN();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010120);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
// === 14-追查惡意
case 3010120:
if (Sw->NewSrv[MALICIOUS_TRACE] == '-') {
Go(3010130);
break;
}
GoSub(3000050);
break;
case 3010121:
if (Sw->NewSrv[MALICIOUS_TRACE] == '1')
sprintf(SndBuff, "reg mtr n=%s\r", Sw->Tel);
else
sprintf(SndBuff, "can mtr n=%s\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010122);
break;
case 3010123:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
if (Sw->NewSrv[MALICIOUS_TRACE] == '1')
GetResultNECG30REGMTR();
else
GetResultNECG30CANMTR();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010130);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
// === 15-呼出限制
case 3010130:
if (Sw->NewSrv[CALL_RESTRICT] == '-') {
Go(3010140);
break;
}
GoSub(3000050);
break;
case 3010131:
if (Sw->NewSrv[CALL_RESTRICT] == '1') {
GetPara(Sw->Para, "PASS=", tmp, 8);
sprintf(SndBuff, "reg subd n=%s sc=ocb ocb_pid=%s\r", Sw->Tel, tmp);
}
else
sprintf(SndBuff, "can subd n=%s sc=ocb\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010132);
break;
case 3010133:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
if (Sw->NewSrv[CALL_RESTRICT] == '1')
GetResultNECG30REG();
else
GetResultNECG30CAN();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010140);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
// === 16-反極性
case 3010140:
if (Sw->NewSrv[FJX] == '-') {
Go(3010150);
break;
}
GoSub(3000050);
break;
case 3010141:
if (Sw->NewSrv[FJX] == '1')
sprintf(SndBuff, "mod subd n=%s chrg_ccls=rpol\r", Sw->Tel);
else
sprintf(SndBuff, "mod subd n=%s chrg_ccls=nctl\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3010142);
break;
case 3010143:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30MOD();
if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
Go(3010150);
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
case 3010150:
Sw->ReturnCode = 0;
if (Sw->SP > 0)
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
/* ======== NECG30 實裝統計 ======== */
// Sw->ExkPtr = 0 set in function AcceptRequestPacket
case 3200000:
GoSub(3000050);
break;
case 3200001:
//view subd n=8330000-8339999 opt=total
if (strlen(Sw->Exk[Sw->ExkPtr]) == 3)
sprintf(SndBuff, "view subd n=%s0000-%s9999 opt=total\r",
Sw->Exk[Sw->ExkPtr], Sw->Exk[Sw->ExkPtr]);
else
sprintf(SndBuff, "view subd n=%s000-%s999 opt=total\r",
Sw->Exk[Sw->ExkPtr], Sw->Exk[Sw->ExkPtr]);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3200002);
break;
case 3200002:
if (Sw->timer > CIL_TIMEOUT) {
Sw->ReturnCode = 4;
strcpy(Sw->Para, "");
Go(100);
}
break;
case 3200003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30VIEW();
if (Sw->ReturnCode != 0) {
strcpy(Sw->Para, "");
Go(100);
break;
}
if (GetNumOfLineNECG30() == 0) {
Sw->ReturnCode = 9999;
strcpy(Sw->Para, "");
Go(100);
break;
}
Sw->ExkPtr ++;
if (strlen(Sw->Exk[Sw->ExkPtr]) == 0) {
Sw->ReturnCode = 0;
sprintf(Sw->Para, "TOTAL=%d", Sw->InstLine);
Go(100);
}
else
Go(3200000);
break;
/* ======== F150V8 Login ======== */
case 5000000: // Delay
if (Sw->timer >= F150DELAY) Go(5000001);
break;
case 5000001:
strcpy(SndBuff, "\x05\x05");
Send2Switch();
ChangeETX(Sw->TcpNodeName, "\x03");
strcpy(Sw->RcvBuff, "");
Go(5000002);
break;
case 5000003: // Delay
if (Sw->timer >= F150DELAY) Go(5000004);
break;
case 5000004:
sprintf(SndBuff, "%s;", Sw->Password);
Send2Switch();
ChangeETX(Sw->TcpNodeName, "");
strcpy(Sw->RcvBuff, "");
Go(5000005);
break;
case 5000006:
if (strstr(Sw->RcvBuff, "< \x03")) { // Login OK
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
Sw->ReturnCode = 0;
Go(5000007); // Go to delay
break;
}
if (strstr(Sw->RcvBuff, "\x7f\x7f\x0d\x0a\x0d\x0a\x03")) { // Pass error
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultF150V8Login();
strcpy(Sw->Para, "");
Go(100);
break;
}
Go(5000005);
break;
case 5000007: // Delay
if (Sw->timer >= F150DELAY) Rtn();
break;
/* ======== F150V8 CHA SUB; ======== */
case 5000050:
strcpy(SndBuff, "CHA SUB;");
Send2Switch();
//ChangeETX(Sw->TcpNodeName, "");
strcpy(Sw->RcvBuff, "");
Go(5000051);
break;
case 5000052:
if (strstr(Sw->RcvBuff, " \x03")) { // OK
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
Sw->ReturnCode = 0;
ChangeETX(Sw->TcpNodeName, "\x7f\x7f\x0d\x0a\x0d\x0a\x03");
Go(5000053); // Go to delay
break;
}
if (strstr(Sw->RcvBuff, "\x7f\x7f\x0d\x0a\x0d\x0a\x03")) { // Error
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultF150V8CHASUB();
strcpy(Sw->Para, "");
Go(100);
break;
}
Go(5000051);
break;
case 5000053:
if (Sw->timer >= F150DELAY) Rtn();
break;
/* ======== F150V8 New Line ======== */
case 5001000:
GoSub(5000000);
break;
case 5001001:
GoSub(5000050);
break;
case 5001002:
GetPara(Sw->Para, "LL=", tmp, 30);
if (Sw->V5 == 1)
sprintf(SndBuff, "STCH,DN=%s,ST=1,UL=%s,", Sw->Tel, tmp);
else
sprintf(SndBuff, "STCH,DN=%s,ST=1,LL=%s,", Sw->Tel, tmp);
if (strlen(Sw->NewSrv) < MAX_NEWSRV_LEN) {
Sw->ReturnCode = 3; // NewSrv parameter error
strcpy(Sw->Para, "");
Go(100);
break;
}
if (Sw->NewSrv[TOLL_CALL] == '1')
strcat(SndBuff, "CAT=2;"); /* 國內長途 & 雙音頻 */
else
strcat(SndBuff, "CAT=19;"); /* 雙音頻 */
Sw->NewSrv[DTMF] = '-'; /* 消雙音頻標志 */
Sw->NewSrv[TOLL_CALL] = '-'; /* 消國內長途標志 */
Send2Switch();
strcpy(Sw->RcvBuff, "");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -