Asterisk - The Open Source Telephony Project GIT-master-7e7a603
sig_ss7.h
Go to the documentation of this file.
1/*
2 * Asterisk -- An open source telephony toolkit.
3 *
4 * Copyright (C) 2010 Digium, Inc.
5 *
6 * Richard Mudgett <rmudgett@digium.com>
7 *
8 * See http://www.asterisk.org for more information about
9 * the Asterisk project. Please do not directly contact
10 * any of the maintainers of this project for assistance;
11 * the project provides a web site, mailing lists and IRC
12 * channels for your use.
13 *
14 * This program is free software, distributed under the terms of
15 * the GNU General Public License Version 2. See the LICENSE file
16 * at the top of the source tree.
17 */
18
19/*!
20 * \file
21 * \brief Interface header for SS7 signaling module.
22 *
23 * \author Matthew Fredrickson <creslin@digium.com>
24 * \author Richard Mudgett <rmudgett@digium.com>
25 *
26 * See Also:
27 * \arg \ref AstCREDITS
28 */
29
30#ifndef _ASTERISK_SIG_SS7_H
31#define _ASTERISK_SIG_SS7_H
32
33#include "asterisk/channel.h"
34#include <libss7.h>
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40/* ------------------------------------------------------------------- */
41
42/*! SS7 debug message flags when SS7 debugging is turned on at the command line. */
43#define SIG_SS7_DEBUG \
44 (SS7_DEBUG_MTP2 | SS7_DEBUG_MTP3 | SS7_DEBUG_ISUP)
45
46#if 0
47/*! SS7 debug message flags set on initial startup. */
48#define SIG_SS7_DEBUG_DEFAULT SIG_SS7_DEBUG
49#else
50/*! SS7 debug message flags set on initial startup. */
51#define SIG_SS7_DEBUG_DEFAULT 0
52#endif
53
54/* ------------------------------------------------------------------- */
55
56#define SIG_SS7_NUM_DCHANS 4 /*!< No more than 4 d-channels */
57#define SIG_SS7_MAX_CHANNELS 672 /*!< No more than a DS3 per trunk group */
58
59#define SIG_SS7 (0x1000000 | DAHDI_SIG_CLEAR)
60
61#define LINKSTATE_INALARM (1 << 0)
62#define LINKSTATE_STARTING (1 << 1)
63#define LINKSTATE_UP (1 << 2)
64#define LINKSTATE_DOWN (1 << 3)
65
66#define SS7_NAI_DYNAMIC -1
67
68#define LINKSET_FLAG_EXPLICITACM (1 << 0)
69#define LINKSET_FLAG_INITIALHWBLO (1 << 1)
70#define LINKSET_FLAG_USEECHOCONTROL (1 << 2)
71#define LINKSET_FLAG_DEFAULTECHOCONTROL (1 << 3)
72#define LINKSET_FLAG_AUTOACM (1 << 4)
73
74#define SS7_BLOCKED_MAINTENANCE (1 << 0)
75#define SS7_BLOCKED_HARDWARE (1 << 1)
76
77
86};
87
92};
93
104
114
115/*! Call establishment life cycle level for simple comparisons. */
117 /*! Call does not exist. */
119 /*!
120 * Call is allocated to the channel.
121 * We have not sent or responded to IAM yet.
122 */
124 /*!
125 * Call is performing continuity check after receiving IAM.
126 * We are waiting for COT to proceed further.
127 */
129 /*!
130 * Call is present.
131 * We have not seen a response or sent further call progress to an IAM yet.
132 */
134 /*!
135 * Call routing is happening.
136 * We have sent or received ACM.
137 */
139 /*!
140 * Called party is being alerted of the call.
141 * We have sent or received CPG(ALERTING)/ACM(ALERTING).
142 */
144 /*!
145 * Call is connected/answered.
146 * We have sent or received CON/ANM.
147 */
149};
150
151struct sig_ss7_linkset;
152
154 /* Unlock the private in the signaling private structure. */
155 void (* const unlock_private)(void *pvt);
156 /* Lock the private in the signaling private structure. */
157 void (* const lock_private)(void *pvt);
158 /* Do deadlock avoidance for the private signaling structure lock. */
159 void (* const deadlock_avoidance_private)(void *pvt);
160
161 int (* const set_echocanceller)(void *pvt, int enable);
162 void (* const set_loopback)(void *pvt, int enable);
163
164 struct ast_channel * (* const new_ast_channel)(void *pvt, int state,
165 enum sig_ss7_law law, char *exten, const struct ast_assigned_ids *assignedids,
166 const struct ast_channel *requestor);
167 int (* const play_tone)(void *pvt, enum sig_ss7_tone tone);
168
169 void (* const handle_link_exception)(struct sig_ss7_linkset *linkset, int which);
170 void (* const set_alarm)(void *pvt, int in_alarm);
171 void (* const set_dialing)(void *pvt, int is_dialing);
172 void (* const set_digital)(void *pvt, int is_digital);
173 void (* const set_outgoing)(void *pvt, int is_outgoing);
174 void (* const set_inservice)(void *pvt, int is_inservice);
175 void (* const set_locallyblocked)(void *pvt, int is_blocked);
176 void (* const set_remotelyblocked)(void *pvt, int is_blocked);
177 void (* const set_callerid)(void *pvt, const struct ast_party_caller *caller);
178 void (* const set_dnid)(void *pvt, const char *dnid);
179
180 void (* const queue_control)(void *pvt, int subclass);
181 void (* const open_media)(void *pvt);
182
183 struct sig_ss7_linkset *(* const find_linkset)(struct ss7 *ss7);
184};
185
186/*! Global sig_ss7 callbacks to the upper layer. */
188
190 void *chan_pvt; /*!< Private structure of the user of this module. */
193
194 /*! \brief Opaque libss7 call control structure */
195 struct isup_call *ss7call;
196
197 /*! Call establishment life cycle level for simple comparisons. */
199
200 int channel; /*!< Channel Number */
201 int cic; /*!< CIC associated with channel */
202 unsigned int dpc; /*!< CIC's DPC */
203
204 /* Options to be set by user */
205 /*!
206 * \brief Number of most significant digits/characters to strip from the dialed number.
207 * \note Feature is deprecated. Use dialplan logic.
208 */
210 /*!
211 * \brief TRUE if the outgoing caller ID is blocked/hidden.
212 */
213 unsigned int hidecallerid:1;
214 /*! \brief TRUE if caller ID is used on this channel. */
215 unsigned int use_callerid:1;
216 /*!
217 * \brief TRUE if we will use the calling presentation setting
218 * from the Asterisk channel for outgoing calls.
219 */
220 unsigned int use_callingpres:1;
221 unsigned int immediate:1; /*!< Answer before getting digits? */
222
223 /*!
224 * \brief Bitmask for the channel being locally blocked.
225 * \note 1 maintenance blocked, 2 blocked in hardware.
226 * \note Set by user and link.
227 */
228 unsigned int locallyblocked:2;
229
230 /*!
231 * \brief Bitmask for the channel being remotely blocked.
232 * \note 1 maintenance blocked, 2 blocked in hardware.
233 * \note Set by user and link.
234 */
235 unsigned int remotelyblocked:2;
236
239
240 /* Options to be checked by user */
241 int cid_ani2; /*!< Automatic Number Identification number (Alternate PRI caller ID number) */
242 int cid_ton; /*!< Type Of Number (TON) */
243 int callingpres; /*!< The value of calling presentation that we're going to use when placing a PRI call */
245 char cid_subaddr[AST_MAX_EXTENSION];/*!< XXX SS7 may not support. */
249
250 /* Options to be checked by user that are stuffed into channel variables. */
258 unsigned char redirect_counter;
259 unsigned char redirect_info;
260 unsigned char redirect_info_ind;
263 unsigned char redirect_info_reas;
264 char generic_name[50];
265 unsigned char gen_add_num_plan;
266 unsigned char gen_add_nai;
267 unsigned char gen_add_pres_ind;
268 unsigned char gen_add_type;
269 unsigned char gen_dig_type;
270 unsigned char gen_dig_scheme;
271 char jip_number[50];
272#if 0
273 unsigned char lspi_type;
274 unsigned char lspi_scheme;
275 unsigned char lspi_context;
276#endif
277 char lspi_ident[50];
278 unsigned int call_ref_ident;
279 unsigned int call_ref_pc;
280 unsigned char calling_party_cat;
281 unsigned int do_hangup; /* What we have to do to clear the call */
282 unsigned int echocontrol_ind;
283
284 /*
285 * Channel status bits.
286 */
287 /*! \brief TRUE if channel is associated with a link that is down. */
288 unsigned int inalarm:1;
289 /*! \brief TRUE if channel is in service. */
290 unsigned int inservice:1;
291 /*! \brief TRUE if this channel is being used for an outgoing call. */
292 unsigned int outgoing:1;
293 /*! \brief TRUE if the channel has completed collecting digits. */
294 unsigned int called_complete:1;
295 /*! \brief TRUE if the call has seen inband-information progress through the network. */
296 unsigned int progress:1;
297 /*! \brief XXX BOOLEAN Purpose??? */
298 unsigned int rlt:1;
299 /*! \brief TRUE if this channel is in loopback. */
300 unsigned int loopedback:1;
301
302 /*
303 * Closed User Group fields Q.735.1
304 */
305 /*! \brief Network Identify Code as per Q.763 3.15.a */
307 /*! \brief Binari Code to uniquely identify a CUG inside the network. */
308 unsigned short cug_interlock_code;
309 /*!
310 * \brief Indication of the call being a CUG call and its permissions.
311 * \note 0 or 1 - non-CUG call
312 * \note 2 - CUG call, outgoing access alowed
313 * \note 3 - CUG call, outgoing access not alowed
314 */
315 unsigned char cug_indicator;
316};
317
319 pthread_t master; /*!< Thread of master */
320 ast_mutex_t lock; /*!< libss7 access lock */
321 struct ss7 *ss7;
322 struct sig_ss7_chan *pvts[SIG_SS7_MAX_CHANNELS];/*!< Member channel pvt structs */
327 int span; /*!< span number put into user output messages */
328 int debug; /*!< set to true if to dump SS7 event info */
329 enum {
333
334 /* Options to be set by user */
335 int flags; /*!< Linkset flags (LINKSET_FLAG_EXPLICITACM) */
336 int type; /*!< SS7 type ITU/ANSI. Used for companding selection. */
337 char called_nai; /*!< Called Nature of Address Indicator */
338 char calling_nai; /*!< Calling Nature of Address Indicator */
339 char internationalprefix[10]; /*!< country access code ('00' for european dialplans) */
340 char nationalprefix[10]; /*!< area access code ('0' for european dialplans) */
341 char subscriberprefix[20]; /*!< area access code + area code ('0'+area code for european dialplans) */
342 char unknownprefix[20]; /*!< for unknown dialplans */
344};
345
346void sig_ss7_set_alarm(struct sig_ss7_chan *p, int in_alarm);
347
348void *ss7_linkset(void *data);
349
350void sig_ss7_link_alarm(struct sig_ss7_linkset *linkset, int which);
351void sig_ss7_link_noalarm(struct sig_ss7_linkset *linkset, int which);
352int sig_ss7_add_sigchan(struct sig_ss7_linkset *linkset, int which, int ss7type, int transport, int inalarm, int networkindicator, int pointcode, int adjpointcode, int cur_slc);
353
354int sig_ss7_reset_cic(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc);
355int sig_ss7_reset_group(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc, int range);
356int sig_ss7_cic_blocking(struct sig_ss7_linkset *linkset, int do_block, int cic);
357int sig_ss7_group_blocking(struct sig_ss7_linkset *linkset, int do_block, int startcic, int endcic, unsigned char state[], int type);
358
360int sig_ss7_call(struct sig_ss7_chan *p, struct ast_channel *ast, const char *rdest);
361int sig_ss7_hangup(struct sig_ss7_chan *p, struct ast_channel *ast);
362int sig_ss7_answer(struct sig_ss7_chan *p, struct ast_channel *ast);
363int sig_ss7_find_cic(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc);
364int sig_ss7_find_cic_range(struct sig_ss7_linkset *linkset, int startcic, int endcic, unsigned int dpc);
365void sig_ss7_fixup(struct ast_channel *oldchan, struct ast_channel *newchan, struct sig_ss7_chan *pchan);
366int sig_ss7_indicate(struct sig_ss7_chan *p, struct ast_channel *chan, int condition, const void *data, size_t datalen);
368 const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor,
371struct sig_ss7_chan *sig_ss7_chan_new(void *pvt_data, struct sig_ss7_linkset *ss7);
374
376void sig_ss7_cli_show_channels(int fd, struct sig_ss7_linkset *linkset);
377
378int sig_ss7_cb_hangup(struct ss7 *ss7, int cic, unsigned int dpc, int cause, int do_hangup);
379void sig_ss7_cb_call_null(struct ss7 *ss7, struct isup_call *c, int lock);
380void sig_ss7_cb_notinservice(struct ss7 *ss7, int cic, unsigned int dpc);
381
382/* ------------------------------------------------------------------- */
383
384#ifdef __cplusplus
385}
386#endif
387
388#endif /* _ASTERISK_SIG_SS7_H */
389/* ------------------------------------------------------------------- */
390/* end sig_ss7.h */
ast_mutex_t lock
Definition: app_sla.c:331
static const char type[]
Definition: chan_ooh323.c:109
General Asterisk PBX channel definitions.
#define AST_MAX_CONTEXT
Definition: channel.h:135
#define AST_MAX_EXTENSION
Definition: channel.h:134
#define MAX_MUSICCLASS
Definition: channel.h:173
void sig_ss7_cb_call_null(struct ss7 *ss7, struct isup_call *c, int lock)
void sig_ss7_link_noalarm(struct sig_ss7_linkset *linkset, int which)
void sig_ss7_cli_show_channels_header(int fd)
struct ast_channel * sig_ss7_request(struct sig_ss7_chan *p, enum sig_ss7_law law, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, int transfercapability)
void sig_ss7_init_linkset(struct sig_ss7_linkset *ss7)
void sig_ss7_link_alarm(struct sig_ss7_linkset *linkset, int which)
int sig_ss7_reset_group(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc, int range)
int sig_ss7_available(struct sig_ss7_chan *p)
void sig_ss7_cb_notinservice(struct ss7 *ss7, int cic, unsigned int dpc)
sig_ss7_redirect_indication
Definition: sig_ss7.h:94
@ SS7_INDICATION_SPARE
Definition: sig_ss7.h:102
@ SS7_INDICATION_DIVERTED_PRES_ALLOWED
Definition: sig_ss7.h:98
@ SS7_INDICATION_REROUTED_PRES_RESTRICTED
Definition: sig_ss7.h:100
@ SS7_INDICATION_NO_REDIRECTION
Definition: sig_ss7.h:95
@ SS7_INDICATION_DIVERTED_INFO_RESTRICTED
Definition: sig_ss7.h:99
@ SS7_INDICATION_REROUTED_INFO_RESTRICTED
Definition: sig_ss7.h:97
@ SS7_INDICATION_DIVERTED_PRES_RESTRICTED
Definition: sig_ss7.h:101
@ SS7_INDICATION_REROUTED_PRES_ALLOWED
Definition: sig_ss7.h:96
int sig_ss7_reset_cic(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc)
int sig_ss7_call(struct sig_ss7_chan *p, struct ast_channel *ast, const char *rdest)
void * ss7_linkset(void *data)
int sig_ss7_indicate(struct sig_ss7_chan *p, struct ast_channel *chan, int condition, const void *data, size_t datalen)
int sig_ss7_group_blocking(struct sig_ss7_linkset *linkset, int do_block, int startcic, int endcic, unsigned char state[], int type)
int sig_ss7_find_cic(struct sig_ss7_linkset *linkset, int cic, unsigned int dpc)
void sig_ss7_free_isup_call(struct sig_ss7_linkset *linkset, int channel)
struct sig_ss7_callback sig_ss7_callbacks
void sig_ss7_set_alarm(struct sig_ss7_chan *p, int in_alarm)
sig_ss7_tone
Definition: sig_ss7.h:78
@ SIG_SS7_TONE_DIALRECALL
Definition: sig_ss7.h:83
@ SIG_SS7_TONE_INFO
Definition: sig_ss7.h:84
@ SIG_SS7_TONE_STUTTER
Definition: sig_ss7.h:80
@ SIG_SS7_TONE_RINGTONE
Definition: sig_ss7.h:79
@ SIG_SS7_TONE_CONGESTION
Definition: sig_ss7.h:81
@ SIG_SS7_TONE_DIALTONE
Definition: sig_ss7.h:82
@ SIG_SS7_TONE_BUSY
Definition: sig_ss7.h:85
struct sig_ss7_chan * sig_ss7_chan_new(void *pvt_data, struct sig_ss7_linkset *ss7)
void sig_ss7_cli_show_channels(int fd, struct sig_ss7_linkset *linkset)
sig_ss7_call_level
Definition: sig_ss7.h:116
@ SIG_SS7_CALL_LEVEL_PROCEEDING
Definition: sig_ss7.h:138
@ SIG_SS7_CALL_LEVEL_IDLE
Definition: sig_ss7.h:118
@ SIG_SS7_CALL_LEVEL_SETUP
Definition: sig_ss7.h:133
@ SIG_SS7_CALL_LEVEL_CONNECT
Definition: sig_ss7.h:148
@ SIG_SS7_CALL_LEVEL_ALLOCATED
Definition: sig_ss7.h:123
@ SIG_SS7_CALL_LEVEL_ALERTING
Definition: sig_ss7.h:143
@ SIG_SS7_CALL_LEVEL_CONTINUITY
Definition: sig_ss7.h:128
int sig_ss7_cic_blocking(struct sig_ss7_linkset *linkset, int do_block, int cic)
sig_ss7_law
Definition: sig_ss7.h:88
@ SIG_SS7_DEFLAW
Definition: sig_ss7.h:89
@ SIG_SS7_ULAW
Definition: sig_ss7.h:90
@ SIG_SS7_ALAW
Definition: sig_ss7.h:91
void sig_ss7_chan_delete(struct sig_ss7_chan *doomed)
int sig_ss7_cb_hangup(struct ss7 *ss7, int cic, unsigned int dpc, int cause, int do_hangup)
int sig_ss7_add_sigchan(struct sig_ss7_linkset *linkset, int which, int ss7type, int transport, int inalarm, int networkindicator, int pointcode, int adjpointcode, int cur_slc)
int sig_ss7_hangup(struct sig_ss7_chan *p, struct ast_channel *ast)
void sig_ss7_fixup(struct ast_channel *oldchan, struct ast_channel *newchan, struct sig_ss7_chan *pchan)
#define SIG_SS7_NUM_DCHANS
Definition: sig_ss7.h:56
int sig_ss7_answer(struct sig_ss7_chan *p, struct ast_channel *ast)
#define SIG_SS7_MAX_CHANNELS
Definition: sig_ss7.h:57
sig_ss7_redirect_reason
Definition: sig_ss7.h:105
@ SS7_REDIRECTING_REASON_DEFLECTION_IMMEDIATE_RESPONSE
Definition: sig_ss7.h:111
@ SS7_REDIRECTING_REASON_DEFLECTION_DURING_ALERTING
Definition: sig_ss7.h:110
@ SS7_REDIRECTING_REASON_UNKNOWN
Definition: sig_ss7.h:106
@ SS7_REDIRECTING_REASON_NO_ANSWER
Definition: sig_ss7.h:108
@ SS7_REDIRECTING_REASON_USER_BUSY
Definition: sig_ss7.h:107
@ SS7_REDIRECTING_REASON_UNAVAILABLE
Definition: sig_ss7.h:112
@ SS7_REDIRECTING_REASON_UNCONDITIONAL
Definition: sig_ss7.h:109
int sig_ss7_find_cic_range(struct sig_ss7_linkset *linkset, int startcic, int endcic, unsigned int dpc)
Structure to pass both assignedid values to channel drivers.
Definition: channel.h:604
Main Channel structure associated with a channel.
unsigned short transfercapability
char exten[AST_MAX_EXTENSION]
Structure for mutex and tracking information.
Definition: lock.h:135
Caller Party information.
Definition: channel.h:418
int(*const set_echocanceller)(void *pvt, int enable)
Definition: sig_ss7.h:161
void(*const deadlock_avoidance_private)(void *pvt)
Definition: sig_ss7.h:159
void(*const set_digital)(void *pvt, int is_digital)
Definition: sig_ss7.h:172
struct sig_ss7_linkset *(*const find_linkset)(struct ss7 *ss7)
Definition: sig_ss7.h:183
void(*const set_loopback)(void *pvt, int enable)
Definition: sig_ss7.h:162
void(*const unlock_private)(void *pvt)
Definition: sig_ss7.h:155
void(*const set_callerid)(void *pvt, const struct ast_party_caller *caller)
Definition: sig_ss7.h:177
void(*const set_dnid)(void *pvt, const char *dnid)
Definition: sig_ss7.h:178
void(*const set_outgoing)(void *pvt, int is_outgoing)
Definition: sig_ss7.h:173
void(*const set_dialing)(void *pvt, int is_dialing)
Definition: sig_ss7.h:171
void(*const set_alarm)(void *pvt, int in_alarm)
Definition: sig_ss7.h:170
void(*const handle_link_exception)(struct sig_ss7_linkset *linkset, int which)
Definition: sig_ss7.h:169
void(*const queue_control)(void *pvt, int subclass)
Definition: sig_ss7.h:180
void(*const set_remotelyblocked)(void *pvt, int is_blocked)
Definition: sig_ss7.h:176
void(*const lock_private)(void *pvt)
Definition: sig_ss7.h:157
void(*const set_inservice)(void *pvt, int is_inservice)
Definition: sig_ss7.h:174
void(*const open_media)(void *pvt)
Definition: sig_ss7.h:181
struct ast_channel *(*const new_ast_channel)(void *pvt, int state, enum sig_ss7_law law, char *exten, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor)
Definition: sig_ss7.h:164
void(*const set_locallyblocked)(void *pvt, int is_blocked)
Definition: sig_ss7.h:175
int(*const play_tone)(void *pvt, enum sig_ss7_tone tone)
Definition: sig_ss7.h:167
unsigned int immediate
Definition: sig_ss7.h:221
char generic_name[50]
Definition: sig_ss7.h:264
char cid_subaddr[AST_MAX_EXTENSION]
Definition: sig_ss7.h:245
void * chan_pvt
Definition: sig_ss7.h:190
char lspi_ident[50]
Definition: sig_ss7.h:277
char jip_number[50]
Definition: sig_ss7.h:271
char cid_num[AST_MAX_EXTENSION]
Definition: sig_ss7.h:244
unsigned short cug_interlock_code
Binari Code to uniquely identify a CUG inside the network.
Definition: sig_ss7.h:308
unsigned int echocontrol_ind
Definition: sig_ss7.h:282
unsigned int outgoing
TRUE if this channel is being used for an outgoing call.
Definition: sig_ss7.h:292
char gen_add_number[50]
Definition: sig_ss7.h:252
unsigned int loopedback
TRUE if this channel is in loopback.
Definition: sig_ss7.h:300
unsigned int call_ref_ident
Definition: sig_ss7.h:278
unsigned int locallyblocked
Bitmask for the channel being locally blocked.
Definition: sig_ss7.h:228
unsigned int call_ref_pc
Definition: sig_ss7.h:279
unsigned char redirect_info_reas
Definition: sig_ss7.h:263
unsigned char redirect_info_orig_reas
Definition: sig_ss7.h:261
unsigned char redirect_info
Definition: sig_ss7.h:259
int redirecting_presentation
Definition: sig_ss7.h:257
unsigned char redirect_info_ind
Definition: sig_ss7.h:260
unsigned int dpc
Definition: sig_ss7.h:202
enum sig_ss7_call_level call_level
Definition: sig_ss7.h:198
unsigned int use_callingpres
TRUE if we will use the calling presentation setting from the Asterisk channel for outgoing calls.
Definition: sig_ss7.h:220
unsigned char calling_party_cat
Definition: sig_ss7.h:280
char exten[AST_MAX_EXTENSION]
Definition: sig_ss7.h:248
unsigned int rlt
XXX BOOLEAN Purpose???
Definition: sig_ss7.h:298
char gen_dig_number[50]
Definition: sig_ss7.h:253
struct isup_call * ss7call
Opaque libss7 call control structure.
Definition: sig_ss7.h:195
char charge_number[50]
Definition: sig_ss7.h:251
char redirecting_num[50]
Definition: sig_ss7.h:256
unsigned int remotelyblocked
Bitmask for the channel being remotely blocked.
Definition: sig_ss7.h:235
unsigned int hidecallerid
TRUE if the outgoing caller ID is blocked/hidden.
Definition: sig_ss7.h:213
unsigned int progress
TRUE if the call has seen inband-information progress through the network.
Definition: sig_ss7.h:296
struct ast_channel * owner
Definition: sig_ss7.h:192
unsigned char gen_dig_scheme
Definition: sig_ss7.h:270
unsigned int called_complete
TRUE if the channel has completed collecting digits.
Definition: sig_ss7.h:294
int cid_ani2
Definition: sig_ss7.h:241
char cug_interlock_ni[5]
Network Identify Code as per Q.763 3.15.a.
Definition: sig_ss7.h:306
unsigned char gen_add_type
Definition: sig_ss7.h:268
unsigned char gen_add_pres_ind
Definition: sig_ss7.h:267
unsigned char gen_add_num_plan
Definition: sig_ss7.h:265
struct sig_ss7_linkset * ss7
Definition: sig_ss7.h:191
unsigned int do_hangup
Definition: sig_ss7.h:281
unsigned char cug_indicator
Indication of the call being a CUG call and its permissions.
Definition: sig_ss7.h:315
int callingpres
Definition: sig_ss7.h:243
char context[AST_MAX_CONTEXT]
Definition: sig_ss7.h:237
unsigned char redirect_counter
Definition: sig_ss7.h:258
unsigned int inalarm
TRUE if channel is associated with a link that is down.
Definition: sig_ss7.h:288
int orig_called_presentation
Definition: sig_ss7.h:255
char cid_name[AST_MAX_EXTENSION]
Definition: sig_ss7.h:246
unsigned int inservice
TRUE if channel is in service.
Definition: sig_ss7.h:290
unsigned char redirect_info_counter
Definition: sig_ss7.h:262
int channel
Definition: sig_ss7.h:200
int stripmsd
Number of most significant digits/characters to strip from the dialed number.
Definition: sig_ss7.h:209
unsigned char gen_add_nai
Definition: sig_ss7.h:266
unsigned int use_callerid
TRUE if caller ID is used on this channel.
Definition: sig_ss7.h:215
char cid_ani[AST_MAX_EXTENSION]
Definition: sig_ss7.h:247
char mohinterpret[MAX_MUSICCLASS]
Definition: sig_ss7.h:238
char orig_called_num[50]
Definition: sig_ss7.h:254
int cid_ton
Definition: sig_ss7.h:242
unsigned char gen_dig_type
Definition: sig_ss7.h:269
int fds[SIG_SS7_NUM_DCHANS]
Definition: sig_ss7.h:323
char unknownprefix[20]
Definition: sig_ss7.h:342
char subscriberprefix[20]
Definition: sig_ss7.h:341
enum sig_ss7_linkset::@143 state
char nationalprefix[10]
Definition: sig_ss7.h:340
@ LINKSET_STATE_DOWN
Definition: sig_ss7.h:330
int linkstate[SIG_SS7_NUM_DCHANS]
Definition: sig_ss7.h:325
pthread_t master
Definition: sig_ss7.h:319
char networkroutedprefix[20]
Definition: sig_ss7.h:343
struct ss7 * ss7
Definition: sig_ss7.h:321
char calling_nai
Definition: sig_ss7.h:338
char called_nai
Definition: sig_ss7.h:337
ast_mutex_t lock
Definition: sig_ss7.h:320
char internationalprefix[10]
Definition: sig_ss7.h:339
struct sig_ss7_chan * pvts[SIG_SS7_MAX_CHANNELS]
Definition: sig_ss7.h:322
static struct test_val c