30 #ifndef _ASTERISK_SIG_SS7_H
31 #define _ASTERISK_SIG_SS7_H
43 #define SIG_SS7_DEBUG \
44 (SS7_DEBUG_MTP2 | SS7_DEBUG_MTP3 | SS7_DEBUG_ISUP)
48 #define SIG_SS7_DEBUG_DEFAULT SIG_SS7_DEBUG
51 #define SIG_SS7_DEBUG_DEFAULT 0
56 #define SIG_SS7_NUM_DCHANS 4
57 #define SIG_SS7_MAX_CHANNELS 672
59 #define SIG_SS7 (0x1000000 | DAHDI_SIG_CLEAR)
61 #define LINKSTATE_INALARM (1 << 0)
62 #define LINKSTATE_STARTING (1 << 1)
63 #define LINKSTATE_UP (1 << 2)
64 #define LINKSTATE_DOWN (1 << 3)
66 #define SS7_NAI_DYNAMIC -1
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)
74 #define SS7_BLOCKED_MAINTENANCE (1 << 0)
75 #define SS7_BLOCKED_HARDWARE (1 << 1)
79 SIG_SS7_TONE_RINGTONE = 0,
81 SIG_SS7_TONE_CONGESTION,
82 SIG_SS7_TONE_DIALTONE,
83 SIG_SS7_TONE_DIALRECALL,
94 enum sig_ss7_redirect_indication {
95 SS7_INDICATION_NO_REDIRECTION = 0,
96 SS7_INDICATION_REROUTED_PRES_ALLOWED,
97 SS7_INDICATION_REROUTED_INFO_RESTRICTED,
98 SS7_INDICATION_DIVERTED_PRES_ALLOWED,
99 SS7_INDICATION_DIVERTED_INFO_RESTRICTED,
100 SS7_INDICATION_REROUTED_PRES_RESTRICTED,
101 SS7_INDICATION_DIVERTED_PRES_RESTRICTED,
105 enum sig_ss7_redirect_reason {
106 SS7_REDIRECTING_REASON_UNKNOWN = 0,
107 SS7_REDIRECTING_REASON_USER_BUSY,
108 SS7_REDIRECTING_REASON_NO_ANSWER,
109 SS7_REDIRECTING_REASON_UNCONDITIONAL,
110 SS7_REDIRECTING_REASON_DEFLECTION_DURING_ALERTING,
111 SS7_REDIRECTING_REASON_DEFLECTION_IMMEDIATE_RESPONSE,
112 SS7_REDIRECTING_REASON_UNAVAILABLE
155 void (*
const unlock_private)(
void *pvt);
157 void (*
const lock_private)(
void *pvt);
159 void (*
const deadlock_avoidance_private)(
void *pvt);
161 int (*
const set_echocanceller)(
void *pvt,
int enable);
162 void (*
const set_loopback)(
void *pvt,
int enable);
167 int (*
const play_tone)(
void *pvt,
enum sig_ss7_tone tone);
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);
180 void (*
const queue_control)(
void *pvt,
int subclass);
181 void (*
const open_media)(
void *pvt);
251 char charge_number[50];
252 char gen_add_number[50];
253 char gen_dig_number[50];
254 char orig_called_num[50];
255 int orig_called_presentation;
256 char redirecting_num[50];
257 int redirecting_presentation;
258 unsigned char redirect_counter;
259 unsigned char redirect_info;
260 unsigned char redirect_info_ind;
261 unsigned char redirect_info_orig_reas;
262 unsigned char redirect_info_counter;
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;
273 unsigned char lspi_type;
274 unsigned char lspi_scheme;
275 unsigned char lspi_context;
278 unsigned int call_ref_ident;
279 unsigned int call_ref_pc;
280 unsigned char calling_party_cat;
281 unsigned int do_hangup;
282 unsigned int echocontrol_ind;
330 LINKSET_STATE_DOWN = 0,
343 char networkroutedprefix[20];
346 void sig_ss7_set_alarm(
struct sig_ss7_chan *p,
int in_alarm);
348 void *ss7_linkset(
void *data);
352 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);
357 int sig_ss7_group_blocking(
struct sig_ss7_linkset *linkset,
int do_block,
int startcic,
int endcic,
unsigned char state[],
int type);
364 int sig_ss7_find_cic_range(
struct sig_ss7_linkset *linkset,
int startcic,
int endcic,
unsigned int dpc);
366 int sig_ss7_indicate(
struct sig_ss7_chan *p,
struct ast_channel *chan,
int condition,
const void *data,
size_t datalen);
375 void sig_ss7_cli_show_channels_header(
int fd);
376 void sig_ss7_cli_show_channels(
int fd,
struct sig_ss7_linkset *linkset);
378 int sig_ss7_cb_hangup(
struct ss7 *ss7,
int cic,
unsigned int dpc,
int cause,
int do_hangup);
379 void sig_ss7_cb_call_null(
struct ss7 *ss7,
struct isup_call *c,
int lock);
380 void sig_ss7_cb_notinservice(
struct ss7 *ss7,
int cic,
unsigned int dpc);
Main Channel structure associated with a channel.
enum sig_ss7_call_level call_level
unsigned int hidecallerid
TRUE if the outgoing caller ID is blocked/hidden.
unsigned char cug_indicator
Indication of the call being a CUG call and its permissions.
char cug_interlock_ni[5]
Network Identify Code as per Q.763 3.15.a.
unsigned short cug_interlock_code
Binari Code to uniquely identify a CUG inside the network.
unsigned int loopedback
TRUE if this channel is in loopback.
Structure to pass both assignedid values to channel drivers.
struct sig_ss7_callback sig_ss7_callbacks
unsigned int inalarm
TRUE if channel is associated with a link that is down.
unsigned short transfercapability
char cid_subaddr[AST_MAX_EXTENSION]
unsigned int use_callingpres
TRUE if we will use the calling presentation setting from the Asterisk channel for outgoing calls...
#define SIG_SS7_MAX_CHANNELS
unsigned int remotelyblocked
Bitmask for the channel being remotely blocked.
unsigned int use_callerid
TRUE if caller ID is used on this channel.
General Asterisk PBX channel definitions.
int stripmsd
Number of most significant digits/characters to strip from the dialed number.
#define AST_MAX_EXTENSION
Caller Party information.
unsigned int inservice
TRUE if channel is in service.
char subscriberprefix[20]
struct sig_ss7_chan * pvts[SIG_SS7_MAX_CHANNELS]
#define SIG_SS7_NUM_DCHANS
unsigned int rlt
XXX BOOLEAN Purpose???
unsigned int locallyblocked
Bitmask for the channel being locally blocked.
char internationalprefix[10]
unsigned int called_complete
TRUE if the channel has completed collecting digits.
struct isup_call * ss7call
Opaque libss7 call control structure.
char exten[AST_MAX_EXTENSION]
Structure for mutex and tracking information.