| /* |
| * DSS.1 module definitions |
| * |
| * Copyright (C) 1996 Universidade de Lisboa |
| * |
| * Written by Pedro Roque Marques (roque@di.fc.ul.pt) |
| * |
| * This software may be used and distributed according to the terms of |
| * the GNU General Public License, incorporated herein by reference. |
| */ |
| |
| #ifndef EDSS1_H |
| #define EDSS1_H |
| |
| /* ISDN states */ |
| |
| #define ST_NULL 0 |
| #define ST_CALL_INIT 1 /* Call initiated */ |
| #define ST_OVER_SEND 2 /* Overlap sending - Requests More Info 4 call */ |
| #define ST_CALL_PROC 3 /* Call Proceeding */ |
| #define ST_CALL_DELV 4 |
| #define ST_CALL_PRES 6 /* Call Present - Received CONN.IND */ |
| #define ST_CALL_RECV 7 /* Alerting sent */ |
| #define ST_CONN_REQ 8 /* Answered - waiting 4 CONN.CONF */ |
| #define ST_INCM_PROC 9 |
| #define ST_ACTIVE 10 |
| #define ST_DISC_REQ 11 |
| #define ST_DISC_IND 12 |
| #define ST_SUSP_REQ 15 |
| #define ST_RESM_REQ 17 |
| #define ST_RELS_REQ 19 |
| #define ST_OVER_RECV 25 |
| |
| #define ST_ACTIVE_SELP 26 /* Select protocol on B-Channel */ |
| #define ST_ACTIVE_ACTV 27 /* Activate B-channel protocol */ |
| |
| #define MAX_STATE ST_ACTIVE_ACTV |
| |
| #define EV_NULL 0 |
| #define EV_USR_SETUP_REQ 1 |
| #define EV_USR_SETUP_RESP 2 |
| #define EV_USR_PROCED_REQ 3 |
| #define EV_USR_RELEASE_REQ 4 |
| #define EV_USR_REJECT_REQ 4 |
| |
| #define EV_NET_SETUP 16 |
| #define EV_NET_CALL_PROC 17 |
| #define EV_NET_SETUP_ACK 18 |
| #define EV_NET_CONN 19 |
| #define EV_NET_CONN_ACK 20 |
| |
| #define EV_NET_SELP_RESP 21 |
| #define EV_NET_ACTV_RESP 22 |
| |
| #define EV_NET_DISC 23 |
| #define EV_NET_RELEASE 24 |
| #define EV_NET_RELEASE_COMP 25 |
| |
| #define EV_TIMER 26 |
| #define EV_ERROR 32 |
| |
| /* |
| * Cause values |
| * only the ones we use |
| */ |
| |
| #define CAUSE_NORMAL 0x10U |
| #define CAUSE_NOCHAN 0x22U |
| |
| struct callb_data { |
| unsigned short type; |
| union { |
| struct ConnInfo { |
| char *CalledPN; |
| char *CallingPN; |
| } setup; |
| unsigned short cause; |
| } data; |
| }; |
| |
| struct fsm_entry { |
| unsigned short init; |
| unsigned short final; |
| unsigned short event; |
| void (*callb)(struct pcbit_dev *, struct pcbit_chan *, struct callb_data*); |
| }; |
| |
| struct fsm_timer_entry { |
| unsigned short init; |
| unsigned long timeout; /* in seconds */ |
| }; |
| |
| extern const char * const isdn_state_table[]; |
| |
| void pcbit_fsm_event(struct pcbit_dev *, struct pcbit_chan *, |
| unsigned short event, struct callb_data *); |
| char *strisdnevent(ushort ev); |
| |
| #endif |