?? swi.c
字號:
case 2002001: // Move entry
if (GetPara(Sw->RcvBuff, "EL=", tmp, 30)) {
strcat(Sw->Para, " OLDLL=");
strcat(Sw->Para, tmp);
GoSub(2000000);
}
else {
Sw->ReturnCode = 2; // Tel error
strcpy(Sw->Para, "");
Go(100);
}
break;
case 2002002:
GetPara(Sw->Para, "OLDLL=", tmp, 30);
sprintf(SndBuff, "SOD:DSC,N=%s,EL=%s;", Sw->Tel, tmp);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2002003);
break;
case 2002004:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrDSC();
if (Sw->SP > 0) // 無論是否成功都要返回
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
}
else
Go(2002003);
break;
/* ======== NEC Stop ======== */
case 2003000:
GoSub(2000000);
break;
case 2003001:
GetPara(Sw->Para, "DIR=", tmp, 30);
sprintf(SndBuff, "SOD:SPS,N=%s,,", Sw->Tel);
if (strcmp(tmp, "2") == 0)
strcat(SndBuff, "ALL;");
else
strcat(SndBuff, "ORG;");
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2003002);
break;
case 2003003:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrSPS();
strcpy(Sw->Para, "");
Go(100);
}
else
Go(2003002);
break;
//case 2003004:
// Go(2003000);
// break;
/* ======== NEC Pause ======== */
case 2004000:
strcat(Sw->Para, " DIR=2");
Go(2003000);
break;
/* ======== NEC Restore ======== */
case 2005000:
GoSub(2000000);
break;
case 2005001:
sprintf(SndBuff, "SOD:SPR,N=%s;", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2005002);
break;
case 2005003:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrSPR();
//
if (Sw->ReturnCode == 12) Sw->ReturnCode = 9;
//
if (Sw->SP > 0 && Sw->ReturnCode == 12)
Sw->ReturnCode = 20;
if (Sw->SP > 0 && Sw->ReturnCode == 0)
Rtn();
else {
strcpy(Sw->Para, "");
Go(100);
}
}
else
Go(2005002);
break;
/* ======== NEC Move ======== */
case 2007000:
GoSub(2000050);
break;
case 2007001:
// Tel err will be judge in Remove
if (GetPara(Sw->RcvBuff, "KN=", tmp, 10)) {
strcat(Sw->Para, " PASS=");
strcat(Sw->Para, tmp);
}
GoSub(2002001); // Remove
break;
case 2007002:
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) {
strcpy(Sw->NewSw->Para, Sw->Para);
Sw->NewSw->Step[0] = Sw->NewSw->SwitchType * 1000000 + 1000;
Sw->Busy = 0;
}
else {
GetPara(Sw->Para, "NEWTEL=", Sw->Tel, TEL_LEN);
Go(2001000);
}
break;
/* ======== NEC ChangeDN ======== */
case 2008000:
GoSub(2000000);
break;
case 2008001:
GetPara(Sw->Para, "NEWTEL=", tmp, TEL_LEN);
sprintf(SndBuff, "SOD:DNC,N=%s,,,,,,N=%s;", Sw->Tel, tmp);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2008002);
break;
case 2008003:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrDNC();
if (Sw->ReturnCode == 0)
GoSub(2000000);
else {
strcpy(Sw->Para, "");
Go(100);
}
}
else
Go(2008002);
break;
case 2008004:
sprintf(SndBuff, "SOD:UAN,N=%s;", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2008005);
break;
case 2008006:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrUAN();
strcpy(Sw->Para, "");
Go(100);
}
else
Go(2008005);
break;
/* ======== NEC NewSrv ======== */
case 2010000:
if (strchr(Sw->NewSrv, '1')==NULL && strchr(Sw->NewSrv, '0')==NULL) {
Go(2010010); // No NewSrv, Go NewSrv exit
break;
}
if (strlen(Sw->NewSrv) >= MAX_NEWSRV_LEN)
GoSub(2000050); // PSD
else {
Sw->ReturnCode = 3;
strcpy(Sw->Para, "");
Go(100);
}
break;
case 2010001:
if (GetNewSrvNEC())
Go(2010002);
else {
Sw->ReturnCode = 2;
strcpy(Sw->Para, "");
Go(100);
}
break;
// NewSrv Sub Entry
case 2010002:
// NewLine NewSrv entry
if (strchr(Sw->NewSrv, '1')==NULL && strchr(Sw->NewSrv, '0')==NULL) {
Go(2010010); // No NewSrv, Go NewSrv exit
break;
}
GoSub(2000000);
break;
case 2010003:
// SOD:CLC,N=xxxxxxx,,LC=101010,RC=xxx,SC=xxxxxx,AC=xx,,KN=xxxx,xx;
//sprintf(SndBuff, "SOD:CLC,N=%s,,LC=101010,", Sw->Tel);
sprintf(SndBuff, "SOD:CLC,N=%s,,,", Sw->Tel);
/* 國內 國際 RC
- - ""
0 - 002 市話,
1 - 003 國內,
- 0 003
0 0 002
1 0 003
- 1 000 國際,
0 1 000
1 1 000 */
if (Sw->NewSrv[INT_CALL] == '1')
strcat(SndBuff, "RC=000");
else {
if (Sw->NewSrv[TOLL_CALL] == '0')
strcat(SndBuff, "RC=002");
else {
if ( ! (Sw->NewSrv[TOLL_CALL] == '-' && Sw->NewSrv[INT_CALL] == '-') )
strcat(SndBuff, "RC=003");
}
}
strcat(SndBuff, ",");
//-----------
strcpy(tmp, "");
if (Sw->NewSrv[SPEED_CALL] == '1') strcat(tmp, "B");
if (Sw->NewSrv[HOT_LINE_A] == '1') strcat(tmp, "C");
if (Sw->NewSrv[CALL_STORE_BUSY] == '1') strcat(tmp, "D");
if (Sw->NewSrv[CALL_RESTRICT] == '1') strcat(tmp, "E");
if (Sw->NewSrv[WAKE_UP] == '1') strcat(tmp, "F");
if (Sw->NewSrv[NOT_DISTURB] == '1') strcat(tmp, "G");
if (Sw->NewSrv[CALL_FORWARD] == '1') strcat(tmp, "H");
if (Sw->NewSrv[CALL_WAIT] == '1') strcat(tmp, "J");
if (Sw->NewSrv[CALL_FORWARD_BUSY] == '1') strcat(tmp, "K");
if (Sw->NewSrv[ABSENTEE] == '1') strcat(tmp, "L");
if (Sw->NewSrv[THREE_WAY_CALL] == '1') strcat(tmp, "M");
if (Sw->NewSrv[LDXS] == '1') strcat(tmp, "Y");
strcat(SndBuff, "SC=");
if (strlen(tmp) != 0) {
strcat(SndBuff, tmp);
}
strcat(SndBuff, ",");
//------------
if (Sw->NewSrv[FJX] == '1') strcat(SndBuff, "AC=01");
if (Sw->NewSrv[FJX] == '0') strcat(SndBuff, "AC=00");
strcat(SndBuff, ",,");
//------------
if (GetPara(Sw->Para, "PASS=", tmp, 10)) {
strcat(SndBuff, "KN=");
strcat(SndBuff, tmp);
}
//------------
if (Sw->NewSrv[SPEED_CALL] == '1') strcat(SndBuff, ",10");
//------------
strcat(SndBuff, ";");
//------------
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2010004);
break;
case 2010005:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrCLC();
if (Sw->ReturnCode == 0)
Go(2010006); // Go to Malicious Trace
else {
strcpy(Sw->Para, "");
Go(100);
}
}
else
Go(2010004);
break;
// MaliciousTrace
case 2010006:
if (Sw->NewSrv[MALICIOUS_TRACE] == '-')
Go(2010010);
else
GoSub(2000000);
break;
case 2010007:
if (Sw->NewSrv[MALICIOUS_TRACE] == '1')
sprintf(SndBuff, "MTR:REG,N=%s;", Sw->Tel);
else
sprintf(SndBuff, "MTR:CAN,N=%s;", Sw->Tel);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2010008);
break;
case 2010009:
if (GetPacketNEC() == 1) {
sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
LogInfo(LogBuff);
NECMapErrMTR();
if (Sw->ReturnCode == 0)
Go(2010010); // Go to return
else {
strcpy(Sw->Para, "");
Go(100);
}
}
else
Go(2010008);
break;
case 2010010: // NewSrv exit
if (Sw->SP > 0)
Rtn();
else {
Sw->ReturnCode = 0;
strcpy(Sw->Para, "");
Go(100);
}
break;
/* ======== NEC 實裝統計 ======== */
// Sw->ExkPtr = 0 set in function AcceptRequestPacket
case 2200000:
GoSub(2000000);
break;
case 2200001:
//PSD:N=4500000,N=4509999,,,,,,SKP;
if (strlen(Sw->Exk[Sw->ExkPtr]) == 3)
sprintf(SndBuff, "PSD:N=%s0000,N=%s9999,,,,,,SKP;",
Sw->Exk[Sw->ExkPtr], Sw->Exk[Sw->ExkPtr]);
else
sprintf(SndBuff, "PSD:N=%s000,N=%s999,,,,,,SKP;",
Sw->Exk[Sw->ExkPtr], Sw->Exk[Sw->ExkPtr]);
Send2Switch();
strcpy(Sw->RcvBuff, "");
Go(2200002);
break;
case 2200002:
if (Sw->timer > CIL_TIMEOUT) {
Sw->ReturnCode = 4;
strcpy(Sw->Para, "");
Go(100);
}
break;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -