📄 cx170.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <setjmp.h>#include <signal.h>#include <varargs.h>#include <ctype.h>#include <time.h>#include <math.h>#include <mon.h>#include <assert.h>#include <errno.h>#include <srllib.h>#include <dxxxlib.h>#include <dtilib.h>#include "../include/menu.h"#include "../include/cxcj1.h"#include "../include/cxcj2.h"#include "../include/fox.h"#define MAXTERMS 9#define PH0 2147483648#define PH1 3220176896#define PH2 1048576#define DIGITS 7#define SECRET 6struct headdb dbhead;struct structdb fieldptr[128];FILE *fp;int fieldnum, recordnum;char recordptr[800];FILE *duse();FILE *duse1();void dclose();void gotorecord();double getsn();char *getsc();extern int MAXLINE ;extern int chnldev ;extern int dtidev ;extern int mychnl;extern char digch[] ;extern long rcdplc[] ;extern long rcdtim[] ;extern unsigned char fifobuf[];extern unsigned char dispbuf[];/*char *device[] = { "dxxxB1C1", "dxxxB1C2", "dxxxB1C3", "dxxxB1C4", "dxxxB2C1", "dxxxB2C2", "dxxxB2C3", "dxxxB2C4", "dxxxB3C1", "dxxxB3C2", "dxxxB3C3", "dxxxB3C4", "dxxxB4C1", "dxxxB4C2", "dxxxB4C3", "dxxxB4C4", "dxxxB5C1", "dxxxB5C2", "dxxxB5C3", "dxxxB5C4", "dxxxB6C1", "dxxxB6C2", "dxxxB6C3", "dxxxB6C4", "dxxxB7C1", "dxxxB7C2", "dxxxB7C3", "dxxxB7C4", "dxxxB8C1", "dxxxB8C2"} ;char *dti212[] = { "/dev/dtiB1T1", "/dev/dtiB1T2", "/dev/dtiB1T3", "/dev/dtiB1T4", "/dev/dtiB1T5", "/dev/dtiB1T6", "/dev/dtiB1T7", "/dev/dtiB1T8", "/dev/dtiB1T9", "/dev/dtiB1T10", "/dev/dtiB1T11", "/dev/dtiB1T12", "/dev/dtiB1T13", "/dev/dtiB1T14", "/dev/dtiB1T15", "/dev/dtiB1T16", "/dev/dtiB1T17", "/dev/dtiB1T18", "/dev/dtiB1T19", "/dev/dtiB1T20", "/dev/dtiB1T21", "/dev/dtiB1T22", "/dev/dtiB1T23", "/dev/dtiB1T24", "/dev/dtiB1T25", "/dev/dtiB1T26", "/dev/dtiB1T27", "/dev/dtiB1T28", "/dev/dtiB1T29", "/dev/dtiB1T30"} ;*/extern DL_MENU * cur_menu; /* Current active menu */extern DL_MENU * pre_menu; /* Previous menu */extern jmp_buf idlestate; /* Idle state reentry environment */extern int devhandle; /* Device handle */extern char devname[]; /* Buffer for the channel device name *//* * Function declarations */void custserv () ;void goodby(); /* if you hit key error many times,system onhook */void ltb_menu_engine () ;void cuiqian () ; /* test if you pay delay when you dial insystem */int rdsrt () ; /* check if the telephone number hassecret code */int valphone () ; /* if the phone number is valid */int delayday () ; /* the deviation of days from the day you oughtpay money */void dqmx1122 () ; /* the 'mingxi' according the date youindicated */void dymx1125 () ; /* the 'mingxi' according the month youindicated */void srv_sct() ; /* change the secret code */void bgn() ; /* let input you telephone number andsecret code */void *val_phn1();void *val_phn2();void *val_phn3();void *val_secret() ; /* check if the secret code you input isright */void *val_date() ; /* check if the date you input is valid*/void *val_month() ; /* check if the month you input is valid*/void errnwsct() ; /* tell client the new secret code heinput is invalid */extern void plymny () ; /* play a money string */void bye_acnt () ; /* exit the system because phone numberinput error many times */void bye_date () ; /* exit the system because date inputerror many times */void bye_month () ;void bye_scrt () ;void bye_bye () ;void startt () ;void etime () ;long binsrh () ;void now_cost () ;void lst_cost () ;void mon_cost () ;void yer_cost () ;void plyhth();void now_fnhu () ;void lst_fnhu () ;void mon_fnhu () ;void yer_fnhu () ;void *val_cui () ;void mxthmon () ;void mxlsmon () ;void gjqhdy () ;void gjqhsy () ;void gjqhdn () ;void gjqhdq () ;void gnqhdy () ;void gnqhsy () ;void gnqhdn () ;void gnqhdq () ;void dfhmdy () ;void dfhmsy () ;void dfhmdn () ;void dfhmdq () ;void ingjqh () ;void ingnqh () ;void inphone () ;void *val_gjqh () ;void *val_gnqh () ;void *val_phone () ;void bye_gjqh () ;void bye_gnqh () ;void bye_dfhm () ;void paymoney () ;void skidx13 () ;void skfd13 () ;long skidx2 () ;long skidx14 () ;long skidx11 () ;double skfd1 () ;void skprot () ;unsigned long compl () ;unsigned long btreval () ;unsigned long skidx3 ();void skfd3 () ;void skidx10 () ;double skfd10 () ;void now_dgd () ;void lst_dgd () ;void mon_dgd () ;void yer_dgd () ;void skidx4 () ;void skfd4 () ;void no168();void now_168 () ;void lst_168 () ;void mon_168 () ;void dmd_168 () ;int skidx5 ();//int skidx7 () ;void skfd5 () ;void skfd6 () ;void skfd7 () ;void skfd15() ;void skfd16() ;void now_myd () ;void lst_myd () ;void mon_myd () ;void dmd_myd () ;void now_mmyd () ;void lst_mmyd () ;void mon_mmyd () ;void dmd_mmyd () ;void skidx6 () ;void skidx12 () ;void skfd12 () ;void skidx15();void qwer () ;void newbtreval () ;int cmprint () ;unsigned long tbas2 () ;extern void abcd1 () ;extern void abcd2 () ;extern void abcd3 () ;extern void abcd4 () ;extern void dgd1 () ;extern void dgd2 () ;extern void dgd3 () ;extern void dgd4 () ;extern void gsm1 () ;extern void gsm2 () ;extern void gsm3 () ;extern void gsm4 () ;extern void now_myd () ;extern void lst_myd () ;extern void mon_myd () ;extern void yer_myd () ;/* Default Termination Control Block (TPT) initialization. * * NOTE: the names 'def_rp_tpt' and 'def_dg_tpt' are known and assumed * by the d4xtools.c routines. */DV_TPT def_rp_tpt[MAXTERMS] = { {IO_CONT,DX_MAXDTMF,1,TF_MAXDTMF,0,0}, {IO_CONT,DX_MAXSIL,900,TF_MAXSIL,0,0}, {IO_CONT,DX_MAXNOSIL,800,TF_MAXNOSIL,0,0}, {IO_CONT,DX_LCOFF,1,TF_LCOFF,0,0}, {IO_CONT,DX_IDDTIME,0,TF_IDDTIME,0,0}, {IO_CONT,DX_MAXTIME,0,TF_MAXTIME,0,0}, {IO_CONT,DX_DIGMASK,0,TF_DIGMASK,0,0}, {IO_CONT,DX_PMOFF,4,2,3,0}, {IO_EOT,DX_PMON,4,2,3,0}};DV_TPT def_dg_tpt[MAXTERMS] = { {IO_CONT,DX_MAXDTMF,0,TF_MAXDTMF,0,0}, {IO_CONT,DX_MAXSIL,900,TF_MAXSIL,0,0}, {IO_CONT,DX_MAXNOSIL,200,TF_MAXNOSIL,0,0}, {IO_CONT,DX_LCOFF,1,TF_LCOFF,0,0}, {IO_CONT,DX_IDDTIME,200,TF_IDDTIME,0,0}, {IO_CONT,DX_MAXTIME,0,TF_MAXTIME,0,0}, {IO_CONT,DX_DIGMASK,0,TF_DIGMASK,0,0}, {IO_CONT,DX_PMOFF,4,2,3,0}, {IO_EOT,DX_PMON,4,2,3,0}};/* Message Structure list for messages in PROMPT.VOX */DL_MSGS dl_cxcj1[] = { {"0",P1_OFF00,P1_END00}, {"1",P1_OFF01,P1_END01}, {"2",P1_OFF02,P1_END02}, {"3",P1_OFF03,P1_END03}, {"4",P1_OFF04,P1_END04}, {"5",P1_OFF05,P1_END05}, {"6",P1_OFF06,P1_END06}, {"7",P1_OFF07,P1_END07}, {"8",P1_OFF08,P1_END08}, {"9",P1_OFF09,P1_END09}, {"10",P1_OFF10,P1_END10}, {"100",P1_OFF11,P1_END11}, {"1000",P1_OFF12,P1_END12}, {"10000",P1_OFF13,P1_END13}, {"100000000",P1_OFF14,P1_END14}, {"fen",P1_OFF15,P1_END15}, {"jiao",P1_OFF16,P1_END16}, {"yuan",P1_OFF17,P1_END17}, {"dian",P1_OFF18,P1_END18}, {"qian",P1_OFF19,P1_END19}, {"datano1",P1_OFF20,P1_END20}, {"month1",P2_OFF01,P2_END01}, {"month2",P2_OFF02,P2_END02}, {"month3",P2_OFF03,P2_END03}, {"month4",P2_OFF04,P2_END04}, {"month5",P2_OFF05,P2_END05}, {"month6",P2_OFF06,P2_END06}, {"month7",P2_OFF07,P2_END07}, {"month8",P2_OFF08,P2_END08}, {"month9",P2_OFF09,P2_END09}, {"month10",P2_OFF10,P2_END10}, {"month11",P2_OFF11,P2_END11}, {"month12",P2_OFF12,P2_END12}, {"th1",P2_OFF13,P2_END13}, {"th2",P2_OFF14,P2_END14}, {"th3",P2_OFF15,P2_END15}, {"th4",P2_OFF16,P2_END16}, {"th5",P2_OFF17,P2_END17}, {"th6",P2_OFF18,P2_END18}, {"th7",P2_OFF19,P2_END19}, {"th8",P2_OFF20,P2_END20}, {"th9",P2_OFF21,P2_END21}, {"th10",P2_OFF22,P2_END22}, {"th11",P2_OFF23,P2_END23}, {"th12",P2_OFF24,P2_END24}, {"th13",P2_OFF25,P2_END25}, {"th14",P2_OFF26,P2_END26}, {"th15",P2_OFF27,P2_END27}, {"th16",P2_OFF28,P2_END28}, {"th17",P2_OFF29,P2_END29}, {"th18",P2_OFF30,P2_END30}, {"th19",P2_OFF31,P2_END31}, {"th20",P2_OFF32,P2_END32}, {"th21",P2_OFF33,P2_END33}, {"th22",P2_OFF34,P2_END34}, {"th23",P2_OFF35,P2_END35}, {"th24",P2_OFF36,P2_END36}, {"th25",P2_OFF37,P2_END37}, {"th26",P2_OFF38,P2_END38}, {"th27",P2_OFF39,P2_END39}, {"th28",P2_OFF40,P2_END40}, {"th29",P2_OFF41,P2_END41}, {"th30",P2_OFF42,P2_END42}, {"th31",P2_OFF43,P2_END43}, {"yr90",P2_OFF44,P2_END44}, {"yr91",P2_OFF45,P2_END45}, {"yr92",P2_OFF46,P2_END46}, {"yr93",P2_OFF47,P2_END47}, {"yr94",P2_OFF48,P2_END48}, {"yr95",P2_OFF49,P2_END49}, {"yr96",P2_OFF50,P2_END50}, {"yr97",P2_OFF51,P2_END51}, {"yr98",P2_OFF52,P2_END52}, {"yr99",P2_OFF53,P2_END53}, {"yr00",P2_OFF54,P2_END54}, {"yr01",P2_OFF55,P2_END55}, {"yr02",P2_OFF56,P2_END56}, {"yr03",P2_OFF57,P2_END57}, {"yr04",P2_OFF58,P2_END58}, {"yr05",P2_OFF59,P2_END59}, {"yr06",P2_OFF60,P2_END60}, {"nn", 0, 80}, {"errhaoma", P3_OFF01, P3_END01}, {"mlterrhao", P3_OFF02, P3_END02}, {"mima", P3_OFF03, P3_END03}, {"errmima", P3_OFF04, P3_END04}, {"mlterrmima", P3_OFF05, P3_END05}, {"bm_menu1122", P3_OFF06, P3_END06}, {"sumcost", P3_OFF08, P3_END08}, {"gjchcost", P3_OFF10, P3_END10}, {"gnchcost", P3_OFF11, P3_END11}, {"shcost", P3_OFF12, P3_END12}, {"calltime", P3_OFF13, P3_END13}, {"tophone", P3_OFF14, P3_END14}, {"rentpermth", P3_OFF15, P3_END15}, {"sumqian", P3_OFF16, P3_END16}, {"payfast", P3_OFF17, P3_END17}, {"zinajin", P3_OFF18, P3_END18}, {"slctkey", P3_OFF19, P3_END19}, {"keyerr", P3_OFF20, P3_END20}, {"mltkyerr", P3_OFF21, P3_END21}, {"nwsctin", P3_OFF22, P3_END22}, {"nwscterr", P3_OFF23, P3_END23}, {"nwsctmlterr", P3_OFF24, P3_END24}, {"rptnwsct", P3_OFF25, P3_END25}, {"sctcmp", P3_OFF26, P3_END26}, {"datein", P3_OFF27, P3_END27}, {"dterr", P3_OFF28, P3_END28}, {"qianfei", P4_OFF01, P4_END01}, {"qianjiao", P4_OFF01, 2161}, {"sumqianfei", P4_OFF02, P4_END02}, {"bm_menu1121", P4_OFF03, P4_END03}, {"datadel", P4_OFF04, P4_END04}, {"mltdterr", P4_OFF05, P4_END05}, {"monin", P4_OFF06, P4_END06}, {"monerr", P4_OFF07, P4_END07}, {"mltmonerr", P4_OFF08, P4_END08}, {"gjdqhin", P4_OFF09, P4_END09}, {"errgjdqh", P4_OFF10, P4_END10}, {"mlterrgjdqh", P4_OFF11, P4_END11}, {"gnqhin", P4_OFF12, P4_END12}, {"errgnqh", P4_OFF13, P4_END13}, {"mlterrgnqh", P4_OFF14, P4_END14}, {"dfhmin", P4_OFF15, P4_END15}, {"errdfhm", P4_OFF16, P4_END16}, {"mlterrdfhm", P4_OFF17, P4_END17}, {"nophoneto", P4_OFF18, P4_END18},// {"f168", P4_OFF19, P4_END19}, {"f168", PXINXI,PXINX1}, {"f113", P4_OFF20, P4_END20}, {"cthuafei", P4_OFF21, P4_END21}, {"dbfei", P4_OFF22, P4_END22}, {"qitafei", P4_OFF23, P4_END23}, {"calledno", P4_OFF24, P4_END24}, {"bm_menu113", P5_OFF01, P5_END01}, {"gjzw", P5_OFF02, P5_END02}, {"gazw", P5_OFF03, P5_END03}, {"twzw", P5_OFF04, P5_END04}, {"gnzw", P5_OFF05, P5_END05}, {"shzw", P5_OFF06, P5_END06}, {"gjf", P5_OFF07, P5_END07}, {"gaf", P5_OFF08, P5_END08}, {"twf", P5_OFF09, P5_END09}, {"gnf", P5_OFF10, P5_END10}, {"shf", P5_OFF11, P5_END11}, {"fdf", P5_OFF12, P5_END12}, {"cjf", P5_OFF13, P5_END13}, {"syf", P5_OFF14, P5_END14}, {"qtf", P5_OFF15, P5_END15}, {"ljqf", P5_OFF16, P5_END16}, {"hjf", P5_OFF17, P5_END17}, {"myzw", P5_OFF18, P5_END18}, {"myf", P5_OFF19, P5_END19}, {"hm168", P5_OFF20, P5_END20}, {"telefei", P5_OFF21, P5_END21}, {"dhhmis", P5_OFF22,P5_END22}, {"noctu", P5_OFF23,P5_END23}, {"no168", P5_OFF24,P5_END24}, {"huchu", P5_OFF25,P5_END25}, {"huru", P5_OFF26,P5_END26}, {"bypayed", P5_OFF27,P5_END27}, {"bynotpay", P5_OFF28, P5_END28}, {"datenoctu", P5_OFF29, P5_END29}, {"dateno168", P5_OFF30, P5_END30}, {"bm_menu1", P6_OFF01, P6_END01}, {"sl_menu1", P6_OFF02, P6_END02}, {"sl_menu2", P6_OFF03, P6_END03}, {"cthr", P6_OFF04, P6_END04}, {"nomyf", P6_OFF05, P6_END05}, {"thdd", P6_OFF06, P6_END06}, {"bottom", P6_OFF07, P6_END07}, {"hth", P6_OFF08, P6_END08}, {"dwdhf", P6_OFF09, P6_END09}, {"xtnihao", P6_OFF10, P6_END10}, {"yddhf", P6_OFF11, P6_END11}, {"maincall", P6_OFF12, P6_END12}, {"frommonth", P6_OFF13, P6_END13}, {"thismonth", P6_OFF14, P6_END14}, {"sumdue", P6_OFF15, P6_END15}, {"payedout", P6_OFF16, P6_END16}, {"noznj", P6_OFF17, P6_END17}, {"ctzs", P6_OFF18, P6_END18}, {"tbdhhm", P6_OFF19,P6_END19}, {"notchgsct", P6_OFF20, P6_END20}, {"nin", P6_OFF21, P6_END21}, {"duepay", P6_OFF22, P6_END22}, {"byyj", P6_OFF23, P6_END23}, {"syyj", P6_OFF24, P6_END24}, {"waiting", P6_OFF25, P6_END25}, {"unit", P9_OFF01, P9_END01}, {"d8250224", P9_OFF02, P9_END02}, {"bynomy", P9_OFF03, P9_END03}, {"gynomy", P9_OFF04, P9_END04}, {"greeting", P9_OFF10, P9_END10}, {"dial170", P9_OFF11, P9_END11}, {"xtjs", PM_OFF01, PM_END01}, {"", 0, 0}};DL_MSGS dl_cxcj2[] = { {"iypt", PN_OFF50, PN_END50}, {"yypt", PN_OFF51, PN_END51}, {"xtpt", PN_OFF52, PN_END52}, {"nypt", PN_OFF53, PN_END53}, {"sypt", PN_OFF54, PN_END54}, {"numis", PN_OFF55, PN_END55}, {"yesno", PN_OFF56, PN_END56}, {"bm_menu1", PN_OFF57, PN_END57}, {"ratemenu", PN_OFF58, PN_END58}, {"dddidd", PN_OFF59, PN_END59}, {"indfhm", PN_OFF60, PN_END60}, {"endmark", PN_OFF61, PN_END61}, {"zonetollall", PN_OFF62, PN_END62}, {"zonetollrmall", PN_OFF63, PN_END63}, {"oneper", PN_OFF64, PN_END64}, {"nofaxyet", PN_OFF65, PN_END65}, {"callbpcnt", PN_OFF66, PN_END66}, {"callbpfee", PN_OFF67, PN_END67}, {"localrate", PN_OFF68, PN_END68}, {"localxtra", PN_OFF69, PN_END69}, {"zonerate", PN_OFF70, PN_END70}, {"xtra4020", PN_OFF71, PN_END71}, {"zonenohalf", PN_OFF72, PN_END72}, {"here2area", PN_OFF73, PN_END73}, {"feepermin", PN_OFF74, PN_END74}, {"nighthalf", PN_OFF75, PN_END75}, {"here2code", PN_OFF76, PN_END76}, {"iddnohalf", PN_OFF77, PN_END77}, {"mobilrate", PN_OFF78, PN_END78}, {"xtra20", PN_OFF79, PN_END79}, {"roamrate", PN_OFF80, PN_END80}, {"rmxtra20", PN_OFF81, PN_END81}, {"rmtollfee", PN_OFF82, PN_END82}, {"gramrate", PN_OFF83, PN_END83}, {"gramcheck", PN_OFF84, PN_END84}, {"extra40", PN_OFF85, PN_END85}, {"urgent", PN_OFF86, PN_END86}, {"zonetoll", PN_OFF87, PN_END87}, {"zonetollrm", PN_OFF88, PN_END88}, {"setpass", PN_OFF89, PN_END89},// {"yddhf", PN_OFF90, PN_END90}, {"bbfee", PN_OFF91, PN_END91}, {"rgnhf", PN_OFF92, PN_END92}, {"gnqhin", PN_OFF93, PN_END93}, {"gjdqhin", PN_OFF94, PN_END94}, {"dfhmin", PN_OFF95, PN_END95}, {"monin", PN_OFF96, PN_END96}, {"datein", PN_OFF97, PN_END97}, {"yuelow", PN_OFF98, PN_END98}, {"depositfast", PN_OFF99, PN_END99}, {"phonefee", PN_OFF100, PN_END100}, {"yue", PN_OFF101, PN_END101}, {"yuenopay", PN_OFF102, PN_END102}, {"xtra30", PN_OFF103, PN_END103}, {"payfee", PN_OFF104, PN_END104}, {"", NULL, NULL}};/* * Message Table Array - This is an array of Message Tables. The physical * order of the tables will dictate the order that gt_iott() will search * for a given "message". NOTE: the name 'dl_msgtbl' is known and assumed * by the d4xtools.c routines. */DL_MSGTBL dl_msgtbl[] = { {dl_cxcj1, "../vox/cxcj1.vox", -1, IO_DEV}, {dl_cxcj2, "../vox/cxcj2.vox", -1, IO_DEV}, {NULL,NULL,-1,NULL}};/* Introductory message pointer - used when line first goes off-hook */char routnm[20] ; /* for find the place where error occured */int numptr ;DL_MENU *ptrbuf [10] ;char phonenum1[16];char phonenum[16] ;char longphone[16] ;int strint [10] ;char secret[16] ;char strtime[20] ;char endtime[20] ;char gjh[8] ;char gnh[8] ;char dfhm[18] ;char proto[16] ;int pppflg ;int glb1 ; /* used in srv_sct to repeat to play msg */int gsmbill;unsigned long lgphone ;unsigned long ulphnum ;unsigned long ulpronum ;int dignum;int gsmcall;/******************************************************************************************************************************************************* Application Menu Definitions**** The following tables define the menus and prompts and appropriate** actions for the application. Each menu consists of two structures.** The DL_MENU structure contains a pointer to this menu's option table,** response processing routine and message names to be used. The option** table contains the response key, an optional pointer to a function to** perform, and another menu to execute. This table is terminated by a** NULL entry.*******************************************************************************************************************************************************/DL_DATA data_1 = { 1, /* Read only 1 digit */ 100, /* Allow 15 seconds for entering it */ NULL, /* No terminating digits needed */ 3 /* Allow 3 retries for entry */};/* The last menu MENU BOTTOM */DL_MNUOPTS menubottom_opts[] = { {"7",NULL,NULL}, {"8",NULL,NULL}, {"9",NULL,NULL}, {"*",bye_bye,NULL}, {NULL,NULL,NULL}};DL_MENU menu_bottom = { menubottom_opts, DM_CURR, val_menu, "bottom", "keyerr", goodby, &data_1};/* Menu 1112 */DL_MNUOPTS menu1112_opts[] = { {"1",now_fnhu, &menu_bottom}, {"2",lst_fnhu, &menu_bottom}, {"3",mon_fnhu, &menu_bottom}, {"4",yer_fnhu, &menu_bottom}, {"7",NULL,NULL}, {"8",NULL,NULL}, {"9",NULL,NULL}, {"*",bye_bye,NULL}, {NULL,NULL,NULL}};DL_MENU menu_1112 = { menu1112_opts, DM_CURR, val_menu, "bm_menu1122", "keyerr", goodby, &data_1 };/* Menu 1121 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -