aboutsummaryrefslogtreecommitdiffstats
path: root/channels/sig_pri.h
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2009-10-23 16:57:33 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2009-10-23 16:57:33 +0000
commit4ad439617df9b05fb34022086ffcd6bd57567000 (patch)
treea618eefafd5d7b1e69344a4efc8fb303fa89fcb6 /channels/sig_pri.h
parent588db98f088eee512d95b6a08024d56ac5757dbb (diff)
Add to chan_dahdi ISDN HOLD, Call deflection, and keypad facility support.
* Added handling of received HOLD/RETRIEVE messages and the optional ability to transfer a held call on disconnect similar to an analog phone. * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP. Will reroute/deflect an outgoing call when receive the message. Can use the DAHDISendCallreroutingFacility to send the message for the supported switches. * Added ability to send/receive keypad digits in the SETUP message. Send keypad digits in SETUP message: Dial(DAHDI/g1[/K<keypad_digits>][/extension]) Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)} * Added support for BRI PTMP NT mode. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225692 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/sig_pri.h')
-rw-r--r--channels/sig_pri.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/channels/sig_pri.h b/channels/sig_pri.h
index 9154d028d..d04ffeb95 100644
--- a/channels/sig_pri.h
+++ b/channels/sig_pri.h
@@ -76,6 +76,7 @@ struct sig_pri_callback {
void (* const set_dnid)(void *pvt, const char *dnid);
void (* const set_rdnis)(void *pvt, const char *rdnis);
void (* const queue_control)(void *pvt, int subclass);
+ int (* const new_nobch_intf)(struct sig_pri_pri *pri);
};
#define NUM_DCHANS 4 /*!< No more than 4 d-channels */
@@ -144,6 +145,10 @@ struct sig_pri_chan {
/* Internal variables -- Don't touch */
/* Probably will need DS0 number, DS1 number, and a few other things */
char dialdest[256]; /* Queued up digits for overlap dialing. They will be sent out as information messages when setup ACK is received */
+#if defined(HAVE_PRI_SETUP_KEYPAD)
+ /*! \brief Keypad digits that came in with the SETUP message. */
+ char keypad_digits[AST_MAX_EXTENSION];
+#endif /* defined(HAVE_PRI_SETUP_KEYPAD) */
unsigned int alerting:1; /*!< TRUE if channel is alerting/ringing */
unsigned int alreadyhungup:1; /*!< TRUE if the call has already gone/hungup */
@@ -155,6 +160,8 @@ struct sig_pri_chan {
unsigned int outgoing:1;
unsigned int digital:1;
+ /*! \brief TRUE if this interface has no B channel. (call hold and call waiting) */
+ unsigned int no_b_channel:1;
struct ast_channel *owner;
@@ -187,6 +194,10 @@ struct sig_pri_pri {
#ifdef HAVE_PRI_INBANDDISCONNECT
unsigned int inbanddisconnect:1; /*!< Should we support inband audio after receiving DISCONNECT? */
#endif
+#if defined(HAVE_PRI_CALL_HOLD)
+ /*! \brief TRUE if held calls are transferred on disconnect. */
+ unsigned int hold_disconnect_transfer:1;
+#endif /* defined(HAVE_PRI_CALL_HOLD) */
int dialplan; /*!< Dialing plan */
int localdialplan; /*!< Local dialing plan */
char internationalprefix[10]; /*!< country access code ('00' for european dialplans) */
@@ -217,6 +228,16 @@ struct sig_pri_pri {
/* Everything after here is internally set */
struct pri *dchans[NUM_DCHANS]; /*!< Actual d-channels */
struct pri *pri; /*!< Currently active D-channel */
+ /*!
+ * List of private structures of the user of this module for no B channel
+ * interfaces. (hold and call waiting interfaces)
+ */
+ void *no_b_chan_iflist;
+ /*!
+ * List of private structures of the user of this module for no B channel
+ * interfaces. (hold and call waiting interfaces)
+ */
+ void *no_b_chan_end;
int numchans; /*!< Num of channels we represent */
struct sig_pri_chan *pvts[MAX_CHANNELS]; /*!< Member channel pvt structs */
pthread_t master; /*!< Thread of master */