1 /*****************************************************************************\
5 **---------------------------------------------------------------------------**
6 ** Copyright: Andreas Eversberg **
8 ** dss1-port header file **
10 \*****************************************************************************/
12 /* DSS1 port classes */
13 class Pdss1 : public PmISDN
16 Pdss1(int type, struct mISDNport *mISDNport, char *portname, struct port_settings *settings, int channel, int exclusive);
19 unsigned int p_m_d_l3id; /* current l3 process id */
20 void message_isdn(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
22 int p_m_d_l3id; /* current l3 process id */
23 void message_isdn(unsigned long prim, unsigned long dinfo, void *data);
25 int p_m_d_ces; /* ntmode: tei&sapi */
27 int message_epoint(unsigned long epoint_id, int message, union parameter *param);
29 int p_m_d_ntmode; /* flags the nt-mode */
30 struct message *p_m_d_queue; /* queue for SETUP if link is down */
31 struct message *p_m_d_notify_pending; /* queue for NOTIFY if not connected */
33 int p_m_d_collect_cause; /* collecting cause and location */
34 int p_m_d_collect_location;
36 void new_state(int state); /* set new state */
37 // void isdn_show_send_message(unsigned long prim, msg_t *msg);
38 int hunt_bchannel(int exclusive, int channel);
40 int received_first_reply_to_setup(unsigned long cmd, int channel, int exclusive);
41 void information_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
42 void setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
43 void setup_acknowledge_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
44 void proceeding_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
45 void alerting_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
46 void connect_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
47 void disconnect_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
48 void release_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
49 void release_complete_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
50 void disconnect_ind_i(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
51 void t312_timeout_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
52 void notify_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
53 void facility_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
54 void hold_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
55 void retrieve_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
56 void suspend_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
57 void resume_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m);
59 int received_first_reply_to_setup(unsigned long prim, int channel, int exclusive);
60 void information_ind(unsigned long prim, unsigned long dinfo, void *data);
61 void setup_ind(unsigned long prim, unsigned long dinfo, void *data);
62 void setup_acknowledge_ind(unsigned long prim, unsigned long dinfo, void *data);
63 void proceeding_ind(unsigned long prim, unsigned long dinfo, void *data);
64 void alerting_ind(unsigned long prim, unsigned long dinfo, void *data);
65 void connect_ind(unsigned long prim, unsigned long dinfo, void *data);
66 void disconnect_ind(unsigned long prim, unsigned long dinfo, void *data);
67 void release_ind(unsigned long prim, unsigned long dinfo, void *data);
68 void release_complete_ind(unsigned long prim, unsigned long dinfo, void *data);
69 void disconnect_ind_i(unsigned long prim, unsigned long dinfo, void *data);
70 void t312_timeout_ind(unsigned long prim, unsigned long dinfo, void *data);
71 void notify_ind(unsigned long prim, unsigned long dinfo, void *data);
72 void facility_ind(unsigned long prim, unsigned long dinfo, void *data);
73 void hold_ind(unsigned long prim, unsigned long dinfo, void *data);
74 void retrieve_ind(unsigned long prim, unsigned long dinfo, void *data);
75 void suspend_ind(unsigned long prim, unsigned long dinfo, void *data);
76 void resume_ind(unsigned long prim, unsigned long dinfo, void *data);
78 void message_information(unsigned long epoint_id, int message_id, union parameter *param);
79 void message_setup(unsigned long epoint_id, int message_id, union parameter *param);
80 void message_notify(unsigned long epoint_id, int message_id, union parameter *param);
81 void message_facility(unsigned long epoint_id, int message_id, union parameter *param);
82 void message_overlap(unsigned long epoint_id, int message_id, union parameter *param);
83 void message_proceeding(unsigned long epoint_id, int message_id, union parameter *param);
84 void message_alerting(unsigned long epoint_id, int message_id, union parameter *param);
85 void message_connect(unsigned long epoint_id, int message_id, union parameter *param);
86 void message_disconnect(unsigned long epoint_id, int message_id, union parameter *param);
87 void message_release(unsigned long epoint_id, int message_id, union parameter *param);
91 void enc_ie_complete(struct l3_msg *l3m, int complete);
92 void dec_ie_complete(struct l3_msg *l3m, int *complete);
93 void enc_ie_bearer(struct l3_msg *l3m, int coding, int capability, int mode, int rate, int multi, int user);
94 void dec_ie_bearer(struct l3_msg *l3m, int *coding, int *capability, int *mode, int *rate, int *multi, int *user);
95 void enc_ie_call_id(struct l3_msg *l3m, unsigned char *callid, int callid_len);
96 void dec_ie_call_id(struct l3_msg *l3m, unsigned char *callid, int *callid_len);
97 void enc_ie_called_pn(struct l3_msg *l3m, int type, int plan, unsigned char *number);
98 void dec_ie_called_pn(struct l3_msg *l3m, int *type, int *plan, unsigned char *number, int number_len);
99 void enc_ie_calling_pn(struct l3_msg *l3m, int type, int plan, int present, int screen, unsigned char *number);
100 void dec_ie_calling_pn(struct l3_msg *l3m, int *type, int *plan, int *present, int *screen, unsigned char *number, int number_len);
101 void enc_ie_connected_pn(struct l3_msg *l3m, int type, int plan, int present, int screen, unsigned char *number);
102 void dec_ie_connected_pn(struct l3_msg *l3m, int *type, int *plan, int *present, int *screen, unsigned char *number, int number_len);
103 void enc_ie_cause(struct l3_msg *l3m, int location, int cause);
104 void dec_ie_cause(struct l3_msg *l3m, int *location, int *cause);
105 void enc_ie_channel_id(struct l3_msg *l3m, int exclusive, int channel);
106 void dec_ie_channel_id(struct l3_msg *l3m, int *exclusive, int *channel);
107 void enc_ie_date(struct l3_msg *l3m, time_t ti, int seconds);
108 void enc_ie_display(struct l3_msg *l3m, unsigned char *display);
109 void dec_ie_display(struct l3_msg *l3m, unsigned char *display, int display_len);
110 void enc_ie_keypad(struct l3_msg *l3m, unsigned char *keypad);
111 void dec_ie_keypad(struct l3_msg *l3m, unsigned char *keypad, int keypad_len);
112 void enc_ie_notify(struct l3_msg *l3m, int notify);
113 void dec_ie_notify(struct l3_msg *l3m, int *notify);
114 void enc_ie_progress(struct l3_msg *l3m, int coding, int location, int progress);
115 void dec_ie_progress(struct l3_msg *l3m, int *coding, int *location, int *progress);
116 void enc_ie_hlc(struct l3_msg *l3m, int coding, int interpretation, int presentation, int hlc, int exthlc);
117 void dec_ie_hlc(struct l3_msg *l3m, int *coding, int *interpretation, int *presentation, int *hlc, int *exthlc);
118 void enc_ie_redir_nr(struct l3_msg *l3m, int type, int plan, int present, int screen, int reason, unsigned char *number);
119 void dec_ie_redir_nr(struct l3_msg *l3m, int *type, int *plan, int *present, int *screen, int *reason, unsigned char *number, int number_len);
120 void enc_ie_redir_dn(struct l3_msg *l3m, int type, int plan, int present, unsigned char *number);
121 void dec_ie_redir_dn(struct l3_msg *l3m, int *type, int *plan, int *present, unsigned char *number, int number_len);
122 void enc_ie_facility(struct l3_msg *l3m, unsigned char *facility, int facility_len);
123 void dec_ie_facility(struct l3_msg *l3m, unsigned char *facility, int *facility_len);
124 void dec_facility_centrex(struct l3_msg *l3m, unsigned char *cnip, int cnip_len);
125 void enc_ie_useruser(struct l3_msg *l3m, int protocol, unsigned char *user, int user_len);
126 void dec_ie_useruser(struct l3_msg *l3m, int *protocol, unsigned char *user, int *user_len);
128 void enc_ie_complete(unsigned char **ntmode, msg_t *msg, int complete);
129 void dec_ie_complete(unsigned char *p, Q931_info_t *qi, int *complete);
130 void enc_ie_bearer(unsigned char **ntmode, msg_t *msg, int coding, int capability, int mode, int rate, int multi, int user);
131 void dec_ie_bearer(unsigned char *p, Q931_info_t *qi, int *coding, int *capability, int *mode, int *rate, int *multi, int *user);
132 void enc_ie_call_id(unsigned char **ntmode, msg_t *msg, unsigned char *callid, int callid_len);
133 void dec_ie_call_id(unsigned char *p, Q931_info_t *qi, unsigned char *callid, int *callid_len);
134 void enc_ie_called_pn(unsigned char **ntmode, msg_t *msg, int type, int plan, unsigned char *number);
135 void dec_ie_called_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, unsigned char *number, int number_len);
136 void enc_ie_calling_pn(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, int screen, unsigned char *number);
137 void dec_ie_calling_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, int *screen, unsigned char *number, int number_len);
138 void enc_ie_connected_pn(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, int screen, unsigned char *number);
139 void dec_ie_connected_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, int *screen, unsigned char *number, int number_len);
140 void enc_ie_cause(unsigned char **ntmode, msg_t *msg, int location, int cause);
141 void dec_ie_cause(unsigned char *p, Q931_info_t *qi, int *location, int *cause);
142 void enc_ie_channel_id(unsigned char **ntmode, msg_t *msg, int exclusive, int channel);
143 void dec_ie_channel_id(unsigned char *p, Q931_info_t *qi, int *exclusive, int *channel);
144 void enc_ie_date(unsigned char **ntmode, msg_t *msg, time_t ti, int seconds);
145 void enc_ie_display(unsigned char **ntmode, msg_t *msg, unsigned char *display);
146 void dec_ie_display(unsigned char *p, Q931_info_t *qi, unsigned char *display, int display_len);
147 void enc_ie_keypad(unsigned char **ntmode, msg_t *msg, unsigned char *keypad);
148 void dec_ie_keypad(unsigned char *p, Q931_info_t *qi, unsigned char *keypad, int keypad_len);
149 void enc_ie_notify(unsigned char **ntmode, msg_t *msg, int notify);
150 void dec_ie_notify(unsigned char *p, Q931_info_t *qi, int *notify);
151 void enc_ie_progress(unsigned char **ntmode, msg_t *msg, int coding, int location, int progress);
152 void dec_ie_progress(unsigned char *p, Q931_info_t *qi, int *coding, int *location, int *progress);
153 void enc_ie_hlc(unsigned char **ntmode, msg_t *msg, int coding, int interpretation, int presentation, int hlc, int exthlc);
154 void dec_ie_hlc(unsigned char *p, Q931_info_t *qi, int *coding, int *interpretation, int *presentation, int *hlc, int *exthlc);
155 void enc_ie_redir_nr(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, int screen, int reason, unsigned char *number);
156 void dec_ie_redir_nr(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, int *screen, int *reason, unsigned char *number, int number_len);
157 void enc_ie_redir_dn(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, unsigned char *number);
158 void dec_ie_redir_dn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, unsigned char *number, int number_len);
159 void enc_ie_facility(unsigned char **ntmode, msg_t *msg, unsigned char *facility, int facility_len);
160 void dec_ie_facility(unsigned char *p, Q931_info_t *qi, unsigned char *facility, int *facility_len);
161 void dec_facility_centrex(unsigned char *p, Q931_info_t *qi, unsigned char *cnip, int cnip_len);
162 void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, unsigned char *user, int user_len);
163 void dec_ie_useruser(unsigned char *p, Q931_info_t *qi, int *protocol, unsigned char *user, int *user_len);