
/****************************************************************************
*				extern.h					
*****************************************************************************/
//-------------------------------------------------------------------
//EXTERNAL VARIABLES FOR GLOBAL40.H 
//-------------------------------------------------------------------

typedef struct g_memory
{
	unsigned char number[MAX_GM_MUMBER];
	unsigned char cnt;
	unsigned char tr_no;
}GM;

typedef struct phonebook
{
	unsigned char name[13];
	unsigned char number[12];
	unsigned char cnt;
	unsigned char entry;
	unsigned char padding[5];

}PBOOK;

typedef struct extention_data
{
	unsigned char dgt_cnt;	
	unsigned char ring_type;
	unsigned char state;	
	unsigned char off_hook;
	unsigned char ring_ev;	
	unsigned char ring_feed;
	unsigned char dgt_dialed;
	unsigned char dgt_send;	
	unsigned char id;		
	unsigned char pulse_cnt;
	unsigned char lps;
	unsigned char flash;	
	unsigned char group_id;
	unsigned char delay_timer;	
	unsigned char alaram;
	unsigned char csn_index;	
	unsigned char csd_index;	
	unsigned char dynamic_lock;
	unsigned char tone_type;
	unsigned char t_lid;	
	unsigned char barge;
	unsigned char barge_lid;
	unsigned char lcr;		
	unsigned char forwarded;
	unsigned char pg_id;
	unsigned char res;
	unsigned char programming;
	unsigned char temp;		
	unsigned char trans_from;
	unsigned char dosa_enable;
	unsigned char type;			
	unsigned char line_id;	
	unsigned char route_id;	
	unsigned char dtmf_id;	
	unsigned char cd_l_index;
	unsigned char timer;
	unsigned char flashed;	
	unsigned char flag_set;
	unsigned char dosaDialing;
	unsigned char active;
	unsigned char cb_no;	
	unsigned char cwt_feed;
	unsigned char temp_barge_privacy;
	unsigned char direct_pnt_dialing;
	unsigned char park_ring;
	unsigned char deny_ol_fea;
	unsigned char park_lid;
	unsigned char park_no;
	unsigned char extr_hold;
	unsigned char rt_to_dss;
	unsigned char call_transferred;
	unsigned char hot_line;		
	unsigned char hod;
	unsigned char how_no;
	unsigned char service_no;		
	unsigned char guest_group;
	unsigned char check_in_out;
	unsigned char temp_check_in_out;
	unsigned char check_in_id;
	unsigned char pulse_tone_dial;
	unsigned char dl_mins;
	unsigned char dl_hrs;
	unsigned char dl_open_day;
	unsigned char dl_close_day;
	unsigned char dl_open_mins;
	unsigned char dl_cnt_down;
	unsigned char auto_shut_dl;
	unsigned char dl_onoff;
	unsigned int  rng_timer;			
	unsigned int  password;
	unsigned int  r_index;	
	unsigned char call_privacy[3];
	unsigned char how[16];
	unsigned char dgt_buf[35];

}EXTN_DATA;


typedef struct callback
{
	unsigned char cb_type;
	unsigned char no[4];
	unsigned char acb_is_applied;
	unsigned char call_landing_dss;
	unsigned char index;
}CB;

typedef struct hold_queue
{
	unsigned char no[K_MAX_CALLBACK];
	unsigned char head;
	unsigned char tail;
}HQ;

typedef struct cur_hold_queue
{
	unsigned char no[CHQ_BUF];
	unsigned char index;	
}CHQ;

typedef struct trans_lid_queue
{
	unsigned char index;	
	unsigned char held_count;
	unsigned char padding[14];
	unsigned char no[K_MAX_PNT];
}THQ;

typedef struct park_lid_queue
{
	unsigned char no[K_MAX_CALLBACK];
	unsigned char head;	
	unsigned char tail;	
}PHQ;

typedef struct alarm_time{
	unsigned  char hrs;
	unsigned  char mins;
	unsigned  char date_al_day;
	unsigned  char date_al_month;
	unsigned  char date_al_year;
	unsigned  char alarm_cb_no;
	unsigned  char alarm_applied;
	unsigned  char alarm_type;

}ALARM_TIME;

typedef struct extention_group
{
	unsigned char no[6]; 
	unsigned int  ring_time;
}EG;

typedef struct trunk_def
{
	unsigned char enable;	
	unsigned char latch;
	unsigned char line_card;
	unsigned char trunk_id;
	unsigned char type;
	unsigned char pstn_count;
	unsigned char reserved;
	unsigned char res_lid;
	unsigned char trunk_guard_present;
	unsigned char t_lock_dial;
	unsigned char con_caller;
	unsigned char ecf_nol;
	unsigned char ecf_dest;
	unsigned char has_card;	
	unsigned char led_on;	
	unsigned char miss_call_count;
	unsigned char missed_call_alert;
	unsigned char from_miss_c_c;
	unsigned char mcb_calls_counter;
	unsigned char dosa_enable[2];		
	unsigned char guard_no_cnt[2];
	unsigned char voice_enable[2];
	unsigned char ecf_enable[2];
	unsigned char no[6];				
	unsigned char ring[6];				
	unsigned char ecf_no[16];
	unsigned char access[K_MAX_PORTS];
	unsigned char guard_no[2][16];
	unsigned char pas_connected;

}TD;

typedef struct ttrunk_def
{
	unsigned char hunting;				
	unsigned char count;				
	unsigned char through_disa;			
	unsigned char dss_parked;			
	unsigned char routing;				
	unsigned char rr_count;				
	unsigned char group_extns_busy;		
	unsigned char thro_disa;			
	unsigned int  ring_time;			
	unsigned char destination[2];		
	unsigned char prog_hunting[2];		
	unsigned char disa_enable[2];			
	unsigned char trunk_buf[16];		

}TTD;

typedef struct trunkk_def
{
	unsigned int  index;
	unsigned char telco_company;
	unsigned char trunkNamePresent;
	unsigned char trunk_reversal;
	unsigned char trunk_rev_latch;
	unsigned char trunk_rev_det;
	unsigned char trunk_rev_en;

}TDK;

typedef struct redial_no
{
	unsigned char dgt_cnt;
	unsigned char ldgt_cnt;
	unsigned char priority;
	unsigned char trunk_id;
	unsigned char ltrunk_id;
	unsigned char index;
	unsigned char noft;
	unsigned char boss_ring;
}RNO;

typedef struct rredial_no
{
	unsigned char no[16];
	unsigned char lno[16];
}RRNO;

typedef struct trunk_group
{
	unsigned char tid[K_MAX_PNT];
	unsigned char lcr_type;
	unsigned char no[14];
	unsigned char index;

}T_GROUP;


typedef struct day_night_week_time
{
	unsigned char day_time[2];
	unsigned char night_time[2];
	unsigned char ls_time[2];
	unsigned char le_time[2];
}DNWT;

typedef struct printable_line
{
	unsigned char p_data[82];
	unsigned char line_index;
	unsigned char char_index;
	unsigned char print_type;
	unsigned char date[3];
	unsigned char no;
	unsigned char room_no;
	unsigned char header;
	unsigned char cos_rid;
	unsigned int  rid;
	unsigned char padding[34];
}PL;

typedef struct smdr_record {
	unsigned char trunkno;
	unsigned char number[6];
	unsigned char date[3];
	unsigned char time[2];
	unsigned char extn_no;
	unsigned char extn_no1;
	unsigned int  duration;
}SMDR_R;


typedef struct ismdr_record {
	unsigned char trunkno;
	unsigned char number[6];
	unsigned char date[3];
	unsigned char time[2];
	unsigned char extn_no;
	unsigned char extn_no1;
	unsigned int  duration;
}ISMDR_R;

typedef struct prefix
{
	unsigned char prefix_enable;
	unsigned char prefix_digit[4];
	unsigned char prefix_dc;
	unsigned char pfx_dgts_dialed;
	unsigned char reversal_maturity;
}PREFIX;

typedef struct miss_call_back_q{
	unsigned char trunk;
	unsigned char sno;
}MCBQ;

typedef struct trunk_smdr_record {
	unsigned char number[6];
	unsigned char date[3];
	unsigned char time[2];
	unsigned char extn_no;
	unsigned char extn_no1;
	unsigned char storage_id;
	unsigned int  duration;
}T_SMDR_R;

typedef struct basic_service_provider{

	unsigned char counter;
	unsigned char pos;
	unsigned char padding[14];
	unsigned char entries[K_MAX_PNT];

}BSP;

extern MCBQ               xdata mcbq[MISS_CALL_BUF];
extern T_SMDR_R		  xdata trunk_report_smdr[K_MAX_PNT];
extern PBOOK		  xdata pname[100];
extern EXTN_DATA	  xdata ln[K_MAX_PORTS];
extern ALARM_TIME	  xdata al[K_MAX_PORTS];
extern CB		  xdata cb[K_MAX_PORTS];
extern HQ		  xdata hq[K_MAX_PORTS];
extern CHQ		  xdata chq[K_MAX_PORTS];
extern HQ		  xdata tlq[K_MAX_PORTS];
extern THQ		  xdata thq[K_MAX_PORTS];
extern PHQ		  xdata phq[K_MAX_PORTS];
extern RNO		  xdata rno[K_MAX_PORTS];
extern RRNO		  xdata rrno[K_MAX_PORTS];
extern TD		  xdata trunk[K_MAX_PNT];
extern TTD		  xdata ttrunk[K_MAX_PNT];
extern TDK		  xdata trunkk[K_MAX_PNT];
extern EG		  xdata tl_group[K_MAX_GROUPS+1];	
extern SMDR_R		  xdata report_smdr[OUT_CALL_BUF];
extern ISMDR_R		  xdata i_call_report[INC_CALL_BUF];
extern PL		  xdata line;
extern GM		  xdata gm[200];
extern DNWT		  xdata dnwt[7];
extern T_GROUP		  xdata t_group[2];
extern PREFIX		  xdata pfx[K_MAX_PNT];
extern BSP		  xdata bsp[9];
