summaryrefslogtreecommitdiff
path: root/channels/sig_analog.h
diff options
context:
space:
mode:
authorJeff Peeler <jpeeler@digium.com>2009-07-14 20:01:10 +0000
committerJeff Peeler <jpeeler@digium.com>2009-07-14 20:01:10 +0000
commitb9e898017e0ed295d2ed738bf6b1addb4b503aa2 (patch)
treeb2526fa850fe4ae58dbe1a7240534b16bb90cd39 /channels/sig_analog.h
parent5e51a6bb1e14128c8b05129d1efdb78c9479e5dc (diff)
Restore some missing functionality to sig_analog.
The main purpose of this commit is to restore missing functionality present in the ss_thread before all the sig related work was done. Two of the biggest missing things were distinctive ring detection and cid handling for V23. fxsoffhookstate and associated mwi variables have been moved inside sig_analog as they were not being set properly as well. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@206566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_analog.h')
-rw-r--r--channels/sig_analog.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/channels/sig_analog.h b/channels/sig_analog.h
index 661179881..89ac6b83d 100644
--- a/channels/sig_analog.h
+++ b/channels/sig_analog.h
@@ -185,6 +185,13 @@ struct analog_callback {
/* callbacks for increasing and decreasing ss_thread_count, will handle locking and condition signal */
void (* const increase_ss_count)(void);
void (* const decrease_ss_count)(void);
+
+ int (* const distinctive_ring)(struct ast_channel *chan, void *pvt, int idx, int *ringdata);
+ int (* const set_linear_mode)(void *pvt, int idx, int linear_mode);
+ void (* const get_and_handle_alarms)(void *pvt);
+ void * (* const get_sigpvt_bridged_channel)(struct ast_channel *chan);
+ int (* const get_sub_fd)(void *pvt, enum analog_sub sub);
+ void (* const set_cadence)(void *pvt, int *cidrings, struct ast_channel *chan);
};
@@ -210,8 +217,12 @@ struct analog_pvt {
/* All members after this are giong to be transient, and most will probably change */
struct ast_channel *owner; /*!< Our current active owner (if applicable) */
- struct analog_subchannel subs[3]; /*!< Sub-channels */
+ struct analog_subchannel subs[3]; /*!< Sub-channels */
struct analog_dialoperation dop;
+ int onhooktime; /*< Time the interface went on-hook. */
+ int fxsoffhookstate; /*< TRUE if the FXS port is off-hook */
+ /*! \brief -1 = unknown, 0 = no messages, 1 = new messages available */
+ int msgstate;
/* XXX: Option Variables - Set by allocator of private structure */
unsigned int answeronpolarityswitch:1;
@@ -228,17 +239,22 @@ struct analog_pvt {
unsigned int transfer:1;
unsigned int transfertobusy:1; /*!< allow flash-transfers to busy channels */
unsigned int use_callerid:1; /*!< Whether or not to use caller id on this channel */
+ const struct ast_channel_tech *chan_tech;
+ /*!
+ * \brief TRUE if distinctive rings are to be detected.
+ * \note For FXO lines
+ * \note Set indirectly from the "usedistinctiveringdetection" value read in from chan_dahdi.conf
+ */
+ unsigned int usedistinctiveringdetection:1;
/* Not used for anything but log messages. Could be just the TCID */
- int channel; /*!< Channel Number or CRV */
+ int channel; /*!< Channel Number */
enum analog_sigtype outsigmod;
int echotraining;
int cid_signalling; /*!< Asterisk callerid type we're using */
int polarityonanswerdelay;
int stripmsd;
enum analog_cid_start cid_start;
- /* Number of rings to wait to send callerid on FXS. Set to 1 for US */
- int sendcalleridafter;
int callwaitingcallerid;
char mohsuggest[MAX_MUSICCLASS];
char cid_num[AST_MAX_EXTENSION];
@@ -282,10 +298,8 @@ struct analog_pvt {
int callwaitcas;
-#if 0
int ringt;
int ringt_base;
-#endif
};
struct analog_pvt * analog_new(enum analog_sigtype signallingtype, struct analog_callback *c, void *private_data);