?? swi.c
字號:
case 2200003:
if (GetPacketNEC() == 0) {
Go(2200002);
break;
}
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrCommon();
if (Sw->ReturnCode != 0) {
strcpy(Sw->Para, "");
Go(100);
break;
}
if (GetNumOfLineNEC() == 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(2200000);
break;
/* ======== NECG30 Login ======== */
case 3000000:
strcpy(SndBuff, "\r");
Send2Switch();
ChangeETX(Sw->TcpNodeName, "");
strcpy(Sw->RcvBuff, "");
Go(3000001);
break;
case 3000001:
case 3000003:
case 3000005:
case 3000007:
if (Sw->timer > TimeOut) Go(3000000);
break;
case 3000002:
if (strstr(Sw->RcvBuff, " >")) {
ChangeETX(Sw->TcpNodeName, " >");
Go(3000009); // Login OK
break;
}
if (strstr(Sw->RcvBuff, "Login(")) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
strcpy(SndBuff, NECG30UserName);
strcat(SndBuff, "\r");
Send2Switch();
ChangeETX(Sw->TcpNodeName, "Password:");
strcpy(Sw->RcvBuff, "");
Go(3000003);
break;
}
Go(3000001);
break;
case 3000004:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
strcpy(SndBuff, Sw->Password);
strcat(SndBuff, "\r");
Send2Switch();
ChangeETX(Sw->TcpNodeName, " >");
strcpy(Sw->RcvBuff, "");
Go(3000005);
break;
case 3000006:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
strcpy(SndBuff, "\r");
Send2Switch();
//ChangeETX(Sw->TcpNodeName, " >");
strcpy(Sw->RcvBuff, "");
Go(3000007);
break;
case 3000008:
Sw->Connect = 1;
Send2Warn();
LogWarn();
// Continue to next step
case 3000009: // Login OK
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
Sw->Busy = 0;
break;
/* ======== NECG30 Delay ======== */
case 3000050:
if (Sw->timer >= NECDELAY) Rtn();
break;
/* ======== NECG30 New Line ======== */
case 3001000:
if (strlen(Sw->NewSrv) < MAX_NEWSRV_LEN) {
Sw->ReturnCode = 3; // NewSrv parameter error
strcpy(Sw->Para, "");
Go(100);
break;
}
GoSub(3000050);
break;
case 3001001:
GetPara(Sw->Para, "LL=", tmp, 30);
sprintf(SndBuff, "cre subd n=%s el=%s lcls=indv tel_cls=pb chrg_cls=msgr ", Sw->Tel, tmp);
if (Sw->NewSrv[INT_CALL] == '1')
strcat(SndBuff, "rc_org=0\r");
else {
if (Sw->NewSrv[TOLL_CALL] == '1')
strcat(SndBuff, "rc_org=3\r");
else
strcat(SndBuff, "rc_org=2\r");
}
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3001002);
break;
case 3001003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30CRE();
if (Sw->ReturnCode == 0) {
Sw->NewSrv[DTMF] = '-';
Sw->NewSrv[TOLL_CALL] = '-';
Sw->NewSrv[INT_CALL] = '-';
GoSub(3010000); // Go NewSrv
}
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
case 3001004:
Sw->ReturnCode = 0;
if (Sw->SP > 0)
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
/* ======== NECG30 Remove ======== */
case 3002000:
GoSub(3000050);
break;
case 3002001:
sprintf(SndBuff, "view subd n=%s\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3002002);
break;
case 3002003:
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 (!GetPara(Sw->RcvBuff, "el=", tmp, 12)) {
Sw->ReturnCode = 2; // tel error
strcpy(Sw->Para, "");
Go(100);
break;
}
GoSub(3000050);
break;
case 3002004:
sprintf(SndBuff, "del subd n=%s el=%s\r", Sw->Tel, tmp);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3002005);
break;
case 3002006:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30DEL();
if (Sw->SP > 0) // 無論是否成功都要返回
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
/* ======== NECG30 Stop ======== */
case 3003000:
GoSub(3000050);
break;
case 3003001:
GetPara(Sw->Para, "DIR=", tmp, 2);
if (strcmp(tmp, "2") == 0)
sprintf(SndBuff, "reg subd n=%s st_ope=spsal\r", Sw->Tel);
else
sprintf(SndBuff, "reg subd n=%s st_ope=spso\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3003002);
break;
case 3003003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30REG();
if (Sw->ReturnCode == 12)
GoSub(3005000); // Go to restore
else
Go(3003005);
break;
case 3003004:
Go(3003000);
break;
case 3003005:
strcpy(Sw->Para, "");
Go(100);
break;
/* ======== NECG30 Pause ======== */
case 3004000:
GoSub(3000050);
break;
case 3004001:
sprintf(SndBuff, "reg subd n=%s st_ope=trmv\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3004002);
break;
case 3004003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30REG();
if (Sw->ReturnCode == 12) Sw->ReturnCode = 20;
strcpy(Sw->Para, "");
Go(100);
break;
/* ======== NECG30 Restore ======== */
case 3005000:
GoSub(3000050);
break;
case 3005001:
sprintf(SndBuff, "can subd n=%s st_ope=spsal\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3005002);
break;
case 3005003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30CAN();
if (Sw->ReturnCode == 20 && Sw->SP == 0)
GoSub(3000050);
else
Go(3005007);
break;
case 3005004:
sprintf(SndBuff, "view subd n=%s\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3005005);
break;
case 3005006:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30VIEW();
if (Sw->ReturnCode != 0) {
Go(3005007);
break;
}
if (!strstr(Sw->RcvBuff, "st="))
Sw->ReturnCode = 12;
else
Sw->ReturnCode = 20;
if (strstr(Sw->RcvBuff, "st=del"))
Sw->ReturnCode = 2;
// Continue next step
//
if (Sw->ReturnCode == 12) Sw->ReturnCode = 9;
//
case 3005007:
if (Sw->SP > 0 && Sw->ReturnCode == 0)
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
break;
/* ======== NECG30 復(fù)活 ======== */
case 3006000:
GoSub(3000050);
break;
case 3006001:
sprintf(SndBuff, "can subd n=%s st_ope=trmv\r", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(3006002);
break;
case 3006003:
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
GetResultNECG30CAN();
strcpy(Sw->Para, "");
Go(100);
break;
/* ======== NECG30 Move ======== */
case 3007000:
GoSub(3002000); // Go to Remove
break;
case 3007001:
if (Sw->ReturnCode != 0) { // Remove not finished
strcpy(Sw->Para, "");
Go(100);
if (Sw->NewSw != Sw) Sw->NewSw->Busy = 0;
break;
}
GetPara(Sw->Para, "NEWSRV=", Sw->NewSrv, MAX_NEWSRV_LEN);
strcat(Sw->NewSrv, "-"); // Temp for Incoming Call Display
if (Sw->NewSw == Sw) {
GetPara(Sw->Para, "NEWTEL=", Sw->Tel, TEL_LEN);
Go(3001000); // Go to New Line
}
else {
//strcpy(Sw->NewSw->NewSrv, Sw->NewSrv);
strcpy(Sw->NewSw->Para, Sw->Para);
Sw->NewSw->Step[0] = Sw->NewSw->SwitchType * 1000000 + 1000;
Sw->Busy = 0;
}
break;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -