亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? swi.c

?? 電信數字交換機用戶數據聯機下載入磁帶程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* SWI.C : 用戶數據管理系統交換機接口
   Jason Chen, 97.11.18
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <time.h>
#include "commsdms.h"
#include "swi.h"

/*=================== INI file variables ==================
   In order to convert string to value,
   all numeric INI variables must be long */
char   HostName[INI_LEN];
char   SWIPort[INI_LEN];                /* SWI service name */
char   OfficeFileName[INI_LEN];
char   NECG30UserName[INI_LEN];
long   TimeOut;                         /* Time out */
long   LOG;
long   TIDLen;
long   NECG30AutoConnTime;

struct SwitchStru *Switch;
struct SwitchStru *Sw;      // Current switch pointer
struct ExkStru    *Exk;
int    SwitchNum, SwPtr;
int    ExkNum, ExkPtr;

char   WarnHost[64];        // Warnning center client host name

char   SndBuff[512];
char   RcvBuff[MAX_TCP_STREAM_BUFFER+256];
char   LogBuff[MAX_TCP_STREAM_BUFFER+256];

time_t systime;

int    QUIT = 0;

void main(void)
{
char   Copywrite[]="SWI v1.0, Switch interface of Subscriber's Data Management System, Copywrite by Jason Chen, 1997.11";
int    i;
char   TcpNodeName[24], tmp[128];


/* 1. Initialize */
signal(SIGHUP,  SIG_IGN);
signal(SIGQUIT, Quit);
signal(SIGPIPE, SIG_IGN);
signal(SIGINT,  SIG_IGN);
signal(SIGTERM, SIG_IGN);

ReadINIFile();
ReadExkFile();
SetupTcp();

time(&systime);                     /* use for timer() */

while (!QUIT) {

    timer();

    /* Read tcp packet */
    if (SelectTcpStream(RcvBuff, TcpNodeName) == 1) {
       if (strlen(TcpNodeName) > 8) { /* >2 is request source */
            sprintf(LogBuff, "Rcv : %s\n", RcvBuff);
            LogInfo(LogBuff);
            AcceptRequestPacket(TcpNodeName);
            }
         else {
            sscanf(TcpNodeName, "%d", &SwPtr);
            if (Switch[SwPtr].Busy == 1) {
                strcat(Switch[SwPtr].RcvBuff, RcvBuff);
                Switch[SwPtr].Step[Switch[SwPtr].SP] ++;
                Switch[SwPtr].timer = 0;
                }
            }
       }

    /* Switch */
    /* step = SwitchType * 1000,000 + FunctionCode * 1000 */
    for (SwPtr=0; SwPtr<SwitchNum; SwPtr++) {
        Sw = Switch + SwPtr;

        // NECG30 Auto connect
        // if NECG30AutoConnTime == 0 then disable auto connect
        if (Sw->Busy == 0 && Sw->SwitchType == NECG30) {
            if (NECG30AutoConnTime != 0 && Sw->timer > NECG30AutoConnTime) {
                Sw->SP = 0;
                Go(3000000);
                Sw->Busy = 1;
                break;
                }
            }

        // 移機時, NewSw第一步為0
        if (Sw->Busy == 0 || Sw->Step[Sw->SP] < 10) continue;

        switch (Sw->Step[Sw->SP]) {
/* ======== Return result ======== */
            case 100:
                ReturnResult(Sw->ReqSrc, Sw->TID, Sw->ReturnCode, Sw->Para);
                if (Sw->Func == 7 && Sw->ReturnCode != 0) {
                    if (Sw->NewSw != NULL)
                        Sw->NewSw->Busy = 0;
                    }
                if (Sw->Connect == 0) {
                    if (Sw->ReturnCode != 4) {
                        Sw->DisconnectTimes = 0;
                        Sw->Connect = 1;
                        Send2Warn();
                        LogWarn();
                        }
                    }
                else {
                    if (Sw->ReturnCode == 4)
                        Sw->DisconnectTimes ++;
                    else
                        Sw->DisconnectTimes = 0;
                    if (Sw->DisconnectTimes >= 1) {
                        Sw->DisconnectTimes = 0;
                        Sw->Connect = 0;
                        Send2Warn();
                        LogWarn();
                        }
                    }
                Sw->Busy = 0;
                if (Sw->ReturnCode == 4) {
                    if (Sw->SwitchType == NECG30) {
                        Sw->SP = 0;
                        Go(3000000);
                        Sw->Busy = 1;
                        }
                    if (Sw->SwitchType == _5ESS) {
                        Sw->SP = 0;
                        Go(9000000);
                        Sw->Busy = 1;
                        }
                    }
                break;

/* ======== Wait switch return ======== */
/* When rcv data, the step will be +1 automaticly
   and timer = 0 */
            case 2000002:   //Login
            case 2000052:   //PSD
            case 2001002:   //New Line
            case 2002003:   //Remove
            case 2003002:   //Stop
            case 2005002:   //Restore
            case 2008002:   //ChangeDN
            case 2008005:
            case 2010004:   //NewSrv
            case 2010008:

            case 3001002:   //NewLine
            case 3002002:   //Remove
            case 3002005:
            case 3003002:   //Stop
            case 3004002:   //Pause
            case 3005002:   //Restore
            case 3005005:
            case 3006002:   //復活
            case 3008002:   //ChangeDN
            case 3008005:
            case 3010002:   //雙音頻
            case 3010012:   //長途
            case 3010022:   //熱線服務
            case 3010032:   //呼叫等待
            case 3010042:   //三方通話
            case 3010052:   //呼叫轉移
            case 3010062:   //鬧鐘
            case 3010072:   //遇忙轉移
            case 3010082:   //遇忙回叫
            case 3010092:   //免打擾
            case 3010102:   //缺席
            case 3010112:   //縮位撥號
            case 3010122:   //追查惡意
            case 3010132:   //呼出限制
            case 3010142:   //反極性

            case 5000002:   //Login
            case 5000005:
            case 5000051:   //CHA SUB
            case 5001003:   //New Line
            case 5002003:   //Remove
            case 5003003:   //Stop
            case 5004003:   //Pause
            case 5005003:   //Restore
            case 5008002:   //Change DN
                            //New Srv
            case 5010003:   //0-雙音頻
            case 5010013:   //1-國際長途
            case 5010017:   //  國際長途PRI
            case 5010023:   //2-國內長途
            case 5010033:   //3-熱線服務A
            case 5010043:   //4-熱線服務B
            case 5010053:   //5-呼叫等待
            case 5010063:   //6-三方通話
            case 5010073:   //7-呼叫轉移
            case 5010083:   //8-鬧鐘
            case 5010103:   //10-遇忙回叫
            case 5010113:   //11-免打擾
            case 5010123:   //12-缺席
            case 5010133:   //13-縮位撥號
            case 5010142:   //14-追查惡意
            case 5010153:   //15-呼出限制

            case 6000002:   //Login
            case 6000005:
            case 6000051:   //CHA SBS
            case 6001003:   //New Line
            case 6002003:   //Remove
            case 6003003:   //Stop
            case 6004003:   //Pause
            case 6005003:   //Restore
            case 6008002:   //ChangeDN
                            //NewSrv
            case 6010003:   //0-雙音頻
            case 6010013:   //1-國內長途
            case 6010023:   //2-國際長途
            case 6010033:   //3-熱線服務A
            case 6010043:   //4-熱線服務B
            case 6010053:   //5-呼叫等待
            case 6010063:   //6-三方通話
            case 6010073:   //7-呼叫轉移
            case 6010083:   //8-鬧鐘
            case 6010093:   //9-遇忙轉移
            case 6010103:   //10-遇忙回叫
            case 6010113:   //11-免打擾
            case 6010123:   //12-缺席
            case 6010133:   //13-縮位撥號
            case 6010142:   //14-追查惡意
            case 6010153:   //15-呼出限制
            case 6010157:
            case 6010902:   //DIS TIP

            case 9001001:   //NewLine
            case 9001100:
            case 9002001:   //Remove
            case 9002002:
            case 9002005:
            case 9002100:
            case 9003001:   //Stop
            case 9003100:
            case 9005001:   //Restore
            case 9005100:
            case 9008001:   //ChangeDN
            case 9008002:
            case 9008100:
            case 9010001:   //NewSrv1
            case 9010100:
            case 9010011:   //Read Newsrv, read 1st '<'
            case 9010013:   // read 2nd '<'
            case 9010014:   // read 3rd '<'
            case 9010016:   //NewSrv2
            case 9010102:
            case 9010018:   //Call restrict command2
            case 9010104:
            case 9200100:   //CIL
            case 9200003:
                if (Sw->timer > TimeOut) {
                    Sw->ReturnCode = 4;
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;


/* ======== NEC Login ======== */
            case 2000000:   // Delay
                if (Sw->timer >= NECDELAY) Go(2000001);
                break;

            case 2000001:
                strcpy(SndBuff, "<");
                Send2Switch();
                ChangeETX(Sw->TcpNodeName, "<  ");
                strcpy(Sw->RcvBuff, "");
                Go(2000002);
                break;

            case 2000003:
                sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                LogInfo(LogBuff);
                Sw->ReturnCode = 0;
                ChangeETX(Sw->TcpNodeName, "");
                Go(2000004);
                break;

            case 2000004:   // Delay
                if (Sw->timer >= NECDELAY) Rtn();
                break;

/* ======== NEC PSD ======== */
            case 2000050:
                GoSub(2000000);
                break;

            case 2000051:
                sprintf(SndBuff, "PSD:N=%s;", Sw->Tel);
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(2000052);
                break;

            case 2000053:
                if (GetPacketNEC() == 1) {
                    sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                    LogInfo(LogBuff);
                    NECMapErrCommon();
                    if (Sw->ReturnCode == 0 && Sw->SP > 0)
                        Rtn();
                    else {
                        strcpy(Sw->Para, "");
                        Go(100);
                        }
                    }
                else
                    Go(2000052);
                break;

/* ======== NEC New Line ======== */
            case 2001000:
                GoSub(2000000);
                break;

            case 2001001:
                GetPara(Sw->Para, "LL=", tmp, 30);
                sprintf(SndBuff, "SOD:NEW,N=%s,EL=%s,LC=101010,", Sw->Tel, tmp);
                if (Sw->NewSrv[TOLL_CALL] == '1')
                    strcat(SndBuff, "RC=003;");
                else
                    strcat(SndBuff, "RC=002;");
                Send2Switch();
                strcpy(Sw->RcvBuff, "");
                Go(2001002);
                break;

            case 2001003:
                if (GetPacketNEC() == 1) {
                    sprintf(LogBuff, "Rcv from %s: %s\n", Sw->Office, Sw->RcvBuff);
                    LogInfo(LogBuff);
                    NECMapErrNEW();
                    if (Sw->ReturnCode == 0) {
                    	Sw->NewSrv[DTMF] = '-';
                    	//Sw->NewSrv[INT_CALL] = '-';
                    	Sw->NewSrv[TOLL_CALL] = '-';
                        GoSub(2010002);     // Go NewSrv
                        }
                    else {
                        strcpy(Sw->Para, "");
                        Go(100);
                        }
                    }
                else
                    Go(2001002);
                break;

            case 2001004:
                Sw->ReturnCode = 0;
                if (Sw->SP > 0)
                    Rtn();
                else {
                    strcpy(Sw->Para, "");
                    Go(100);
                    }
                break;

/* ======== NEC Remove ======== */
            case 2002000:
                GoSub(2000050);     //PSD, get EL
                break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩影视精品| 色婷婷国产精品| 亚洲一区二区五区| 日韩伦理av电影| 国产精品高潮呻吟| 一区在线观看免费| 中文乱码免费一区二区| 中文字幕第一页久久| 中文字幕av在线一区二区三区| 久久久不卡网国产精品二区| 久久久精品黄色| 久久久久国产成人精品亚洲午夜| 亚洲精品在线网站| 3d成人动漫网站| 欧美va亚洲va| 日韩欧美成人一区二区| 久久综合给合久久狠狠狠97色69| 久久亚洲春色中文字幕久久久| 亚洲精品一区二区三区99| 日本一区二区视频在线| 亚洲婷婷国产精品电影人久久| 亚洲黄色小视频| 日韩高清国产一区在线| 久久99精品久久久久久| 国产一区二区免费视频| 97se亚洲国产综合自在线观| 在线日韩国产精品| 日韩视频在线一区二区| 国产精品美女一区二区在线观看| 亚洲精品一二三| 久久99在线观看| 91麻豆免费看片| 欧美日韩一级片在线观看| 精品久久久久久亚洲综合网| 亚洲欧洲另类国产综合| 午夜伦欧美伦电影理论片| 国产呦萝稀缺另类资源| 色哟哟欧美精品| 欧美成人bangbros| 一区二区三区中文字幕精品精品| 日日夜夜一区二区| www.亚洲在线| 日韩欧美在线123| 亚洲欧美日韩国产中文在线| 麻豆精品久久久| 欧日韩精品视频| 国产精品嫩草影院av蜜臀| 美女性感视频久久| 欧美午夜精品一区二区三区| 26uuu精品一区二区| 亚洲成人免费在线观看| www.久久精品| 久久影音资源网| 日韩电影在线观看网站| 色www精品视频在线观看| 国产欧美精品一区| 免费精品99久久国产综合精品| 欧美三级韩国三级日本三斤| 日韩无一区二区| 亚洲国产精品久久一线不卡| 成人午夜视频网站| 久久久久久久久岛国免费| 日韩av电影免费观看高清完整版| 99国产精品久| 亚洲欧洲www| 国产成人精品www牛牛影视| 精品99999| 国产一区二区伦理片| 精品美女在线播放| 美女脱光内衣内裤视频久久网站 | 欧美不卡视频一区| 香蕉影视欧美成人| 欧洲色大大久久| 亚洲已满18点击进入久久| 99国产麻豆精品| 亚洲黄色av一区| 欧美在线不卡一区| 亚洲一区二区三区在线播放| 色噜噜偷拍精品综合在线| 一区二区免费在线| 欧美性一二三区| 肉肉av福利一精品导航| 日韩欧美国产综合| 经典一区二区三区| 日本一区二区三区dvd视频在线| 国产麻豆成人精品| 久久久三级国产网站| 精品系列免费在线观看| 久久午夜国产精品| 成人美女视频在线观看| 中文字幕一区二区三区视频| 91麻豆免费看片| 亚洲第一激情av| 678五月天丁香亚洲综合网| 蜜臀av国产精品久久久久| 精品少妇一区二区三区视频免付费| 精品影院一区二区久久久| 久久久久久久久一| www.在线欧美| 亚洲午夜精品网| 日韩女优制服丝袜电影| 成人免费毛片aaaaa**| 亚洲青青青在线视频| 91精品蜜臀在线一区尤物| 国产乱码精品一区二区三 | 亚洲欧美另类久久久精品| 欧美精品在线一区二区三区| 国产一区二区三区电影在线观看 | 亚洲成人免费在线| 欧美一级片在线| 国产suv精品一区二区883| 有码一区二区三区| 久久精品夜夜夜夜久久| 色哟哟国产精品| 精品无码三级在线观看视频 | 一区二区三区四区在线免费观看| 欧美三级日韩三级| 成人精品免费网站| 日本不卡一区二区三区| 亚洲欧美区自拍先锋| 日韩一区二区免费在线电影 | 亚洲国产精品一区二区www在线| 欧美tickling挠脚心丨vk| 91年精品国产| 精品一区二区三区免费观看| 夜夜嗨av一区二区三区网页| 亚洲精品一区二区在线观看| 欧美亚洲丝袜传媒另类| 成人性色生活片| 久久69国产一区二区蜜臀| 一区二区三区欧美久久| 日本一二三不卡| 欧美va亚洲va| 欧美一区二区三区在线观看视频| 成人午夜电影网站| 国产一区二区伦理| 久久精品国产一区二区| 亚洲成人激情社区| 亚洲六月丁香色婷婷综合久久| 欧美一区二区在线不卡| 欧美日韩免费高清一区色橹橹| va亚洲va日韩不卡在线观看| 国产露脸91国语对白| 精品一区二区三区在线观看| 喷白浆一区二区| 午夜精品一区在线观看| 亚洲香蕉伊在人在线观| 亚洲欧美一区二区久久| 中文字幕在线不卡视频| 国产拍揄自揄精品视频麻豆| 亚洲精品一线二线三线| 2020国产精品| 国产亚洲精品bt天堂精选| 国产视频一区二区三区在线观看| 欧美精品一区二区在线观看| 欧美r级电影在线观看| 久久先锋影音av| 久久久亚洲精品石原莉奈| 精品国产百合女同互慰| 精品乱人伦一区二区三区| 久久蜜桃香蕉精品一区二区三区| 欧美xxxxxxxx| 日本一区二区三区电影| 国产精品午夜在线| 亚洲女同一区二区| 亚洲第一成年网| 蜜臀av一级做a爰片久久| 免费高清在线一区| 国产精品一级黄| av在线不卡电影| 欧美午夜片在线观看| 日韩精品自拍偷拍| 国产欧美一区二区在线观看| 中文字幕中文字幕一区| 一区二区三区四区五区视频在线观看| 亚洲日本欧美天堂| 午夜精品一区二区三区免费视频 | 亚洲精品美腿丝袜| 午夜不卡在线视频| 看电视剧不卡顿的网站| 国产69精品久久久久777| 一本久久a久久精品亚洲| 在线成人免费观看| 久久九九久久九九| 亚洲综合久久av| 国产精品亚洲一区二区三区在线| 99精品桃花视频在线观看| 9191久久久久久久久久久| 久久精品欧美日韩| 亚洲猫色日本管| 久久精品国产亚洲一区二区三区| 成人午夜又粗又硬又大| 欧美精品高清视频| 国产精品久久久久久久浪潮网站 | 亚洲码国产岛国毛片在线| 韩国精品一区二区| 在线免费观看日本欧美| 久久久精品人体av艺术| 天天影视网天天综合色在线播放| 懂色av一区二区三区蜜臀|