⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swi.c

📁 电信数字交换机用户数据联机下载入磁带程序
💻 C
📖 第 1 页 / 共 5 页
字号:
/* ======== NECG30 ChangeDN ======== */
            case 3008000:
                GoSub(3000050);
                break;
                
            case 3008001:    
                GetPara(Sw->Para, "NEWTEL=", tmp, TEL_LEN);
                sprintf(SndBuff, "chg subd n=%s n_new=%s\r", Sw->Tel, tmp);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3008002);
                break;

            case 3008003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30CHG();
                if (Sw->ReturnCode == 0)
                    GoSub(3000050);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

            case 3008004:
                sprintf(SndBuff, "del subd n=%s\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3008005);
                break;
                    
            case 3008006:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30DEL();
                strcpy(Sw->Para, "");
                Go(100);
                break;

/* ======== NECG30 NewSrv ======== */
// === 0-双音频
            case 3010000:
                if (strlen(Sw->NewSrv) < MAX_NEWSRV_LEN) {
                    Sw->ReturnCode = 3;
                    strcpy(Sw->Para, "");
                    Go(100);
                    break;
                    }
                if (Sw->NewSrv[DTMF] == '-') {
                    Go(3010010);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010001:
                if (Sw->NewSrv[DTMF] == '1')
                    sprintf(SndBuff, "mod subd n=%s tel_cls=pb\r", Sw->Tel);
                else
                    sprintf(SndBuff, "mod subd n=%s tel_cls=dp\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010002);
                break;

            case 3010003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30MOD();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010010);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 1-长途
            case 3010010:
                if (Sw->NewSrv[INT_CALL] == '-' && Sw->NewSrv[TOLL_CALL] == '-') {
                    Go(3010020);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010011:
            /*  国内 国际
                 -    -   ""
                 0    -   002  市话,
                 1    -   003  国内,
                 -    0   003
                 0    0   002
                 1    0   003
                 -    1   000  国际,
                 0    1   000
                 1    1   000   */
                sprintf(SndBuff, "mod subd n=%s rc_org=", Sw->Tel);
                if (Sw->NewSrv[INT_CALL] == '1')
                    strcat(SndBuff, "0\r");
                else {
                    if (Sw->NewSrv[TOLL_CALL] == '0')
                        strcat(SndBuff, "2\r");
                    else {
                        if ( ! (Sw->NewSrv[TOLL_CALL] == '-' && Sw->NewSrv[INT_CALL] == '-') )
                            strcat(SndBuff, "3\r");
                        }
                    }
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010012);
                break;

            case 3010013:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                GetResultNECG30MOD();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010020);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 3-热线服务
            case 3010020:
                if (Sw->NewSrv[HOT_LINE_A] == '-') {
                    Go(3010030);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010021:
                if (Sw->NewSrv[HOT_LINE_A] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=hls\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=hls\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010022);
                break;

            case 3010023:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[HOT_LINE_A] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010030);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 5-呼叫等待
            case 3010030:
                if (Sw->NewSrv[CALL_WAIT] == '-') {
                    Go(3010040);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010031:
                if (Sw->NewSrv[CALL_WAIT] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=cw\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=cw\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010032);
                break;

            case 3010033:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[CALL_WAIT] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010040);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 6-三方通话
            case 3010040:
                if (Sw->NewSrv[THREE_WAY_CALL] == '-') {
                    Go(3010050);
                    break;
                    }
                GoSub(3000050);
                break;

            case 3010041:    
                if (Sw->NewSrv[THREE_WAY_CALL] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=twc\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=twc\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010042);
                break;

            case 3010043:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[THREE_WAY_CALL] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010050);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 7-呼叫转移
            case 3010050:
                if (Sw->NewSrv[CALL_FORWARD] == '-') {
                    Go(3010060);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010051:
                if (Sw->NewSrv[CALL_FORWARD] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=cf\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=cf\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010052);
                break;

            case 3010053:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[CALL_FORWARD] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010060);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 8-闹钟
            case 3010060:
                if (Sw->NewSrv[WAKE_UP] == '-') {
                    Go(3010070);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010061:
                if (Sw->NewSrv[WAKE_UP] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=wup\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=wup\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010062);
                break;

            case 3010063:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[WAKE_UP] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010070);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 9-遇忙转移
            case 3010070:
                if (Sw->NewSrv[CALL_FORWARD_BUSY] == '-') {
                    Go(3010080);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010071:
                if (Sw->NewSrv[CALL_FORWARD_BUSY] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=cfbl\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=cfbl\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010072);
                break;

            case 3010073:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[CALL_FORWARD_BUSY] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010080);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 10-遇忙回叫
            case 3010080:
                if (Sw->NewSrv[CALL_STORE_BUSY] == '-') {
                    Go(3010090);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010081:
                if (Sw->NewSrv[CALL_STORE_BUSY] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=acb\r", Sw->Tel);
                else
                    sprintf(SndBuff, "can subd n=%s sc=acb\r", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(3010082);
                break;

            case 3010083:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                if (Sw->NewSrv[CALL_STORE_BUSY] == '1')
                    GetResultNECG30REG();
                else
                    GetResultNECG30CAN();
                if (Sw->ReturnCode == 0 || Sw->ReturnCode == 12)
                    Go(3010090);
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

// === 11-免打扰
            case 3010090:
                if (Sw->NewSrv[NOT_DISTURB] == '-') {
                    Go(3010100);
                    break;
                    }
                GoSub(3000050);
                break;
                
            case 3010091:
                if (Sw->NewSrv[NOT_DISTURB] == '1')
                    sprintf(SndBuff, "reg subd n=%s sc=dtd\r", Sw->Tel);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -