diff options
author | Richard Mudgett <rmudgett@digium.com> | 2011-01-25 17:58:00 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2011-01-25 17:58:00 +0000 |
commit | 7889af7cab950b993917d1d727780c1eb95c829d (patch) | |
tree | 499850d8134de75af8b2dfeae4ded166f73f19cb /channels/sig_ss7.h | |
parent | d3c7a689824848475c49f57e0f53a0c0ee51908f (diff) |
Merged revisions 303771 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r303771 | rmudgett | 2011-01-25 11:49:20 -0600 (Tue, 25 Jan 2011) | 54 lines
Merged revisions 303769 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r303769 | rmudgett | 2011-01-25 11:42:42 -0600 (Tue, 25 Jan 2011) | 47 lines
Merged revisions 303765 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r303765 | rmudgett | 2011-01-25 11:36:50 -0600 (Tue, 25 Jan 2011) | 40 lines
Sending out unnecessary PROCEEDING messages breaks overlap dialing.
Issue #16789 was a good idea. Unfortunately, it breaks overlap dialing
through Asterisk. There is not enough information available at this point
to know if dialing is complete. The ast_exists_extension(),
ast_matchmore_extension(), and ast_canmatch_extension() calls are not
adequate to detect a dial through extension pattern of "_9!".
Workaround is to use the dialplan Proceeding() application early in
non-dial through extensions.
* Effectively revert issue #16789.
* Allow outgoing overlap dialing to hear dialtone and other early media.
A PROGRESS "inband-information is now available" message is now sent after
the SETUP_ACKNOWLEDGE message for non-digital calls. An
AST_CONTROL_PROGRESS is now generated for incoming SETUP_ACKNOWLEDGE
messages for non-digital calls.
* Handling of the AST_CONTROL_CONGESTION in chan_dahdi/sig_pri was
inconsistent with the cause codes.
* Added better protection from sending out of sequence messages by
combining several flags into a single enum value representing call
progress level.
* Added diagnostic messages for deferred overlap digits handling corner
cases.
(closes issue #17085)
Reported by: shawkris
(closes issue #18509)
Reported by: wimpy
Patches:
issue18509_early_media_v1.8_v3.patch uploaded by rmudgett (license 664)
Expanded upon issue18509_early_media_v1.8_v3.patch to include analog
and SS7 because of backporting requirements.
Tested by: wimpy, rmudgett
........
................
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@303772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_ss7.h')
-rw-r--r-- | channels/sig_ss7.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/channels/sig_ss7.h b/channels/sig_ss7.h index a4cee5211..15b4a2a89 100644 --- a/channels/sig_ss7.h +++ b/channels/sig_ss7.h @@ -84,6 +84,20 @@ enum sig_ss7_law { SIG_SS7_ALAW }; +/*! Call establishment life cycle level for simple comparisons. */ +enum sig_ss7_call_level { + /*! Call does not exist. */ + SIG_SS7_CALL_LEVEL_IDLE, + /*! Call is present but has no response yet. (SETUP) */ + SIG_SS7_CALL_LEVEL_SETUP, + /*! Call routing is happening. (PROCEEDING) */ + SIG_SS7_CALL_LEVEL_PROCEEDING, + /*! Called party is being alerted of the call. (ALERTING) */ + SIG_SS7_CALL_LEVEL_ALERTING, + /*! Call is connected/answered. (CONNECT) */ + SIG_SS7_CALL_LEVEL_CONNECT, +}; + struct sig_ss7_linkset; struct sig_ss7_callback { @@ -120,6 +134,9 @@ struct sig_ss7_chan { /*! \brief Opaque libss7 call control structure */ struct isup_call *ss7call; + /*! Call establishment life cycle level for simple comparisons. */ + enum sig_ss7_call_level call_level; + int channel; /*!< Channel Number */ int cic; /*!< CIC associated with channel */ unsigned int dpc; /*!< CIC's DPC */ @@ -192,15 +209,8 @@ struct sig_ss7_chan { unsigned int inalarm:1; /*! TRUE if this channel is being used for an outgoing call. */ unsigned int outgoing:1; - /*! - * \brief TRUE if call is in a proceeding state. - * The call has started working its way through the network. - */ - unsigned int proceeding:1; - /*! \brief TRUE if the call has seen progress through the network. */ + /*! \brief TRUE if the call has seen inband-information progress through the network. */ unsigned int progress:1; - /*! \brief TRUE if channel is alerting/ringing */ - unsigned int alerting:1; /*! \brief TRUE if the call has already gone/hungup */ unsigned int alreadyhungup:1; /*! \brief XXX BOOLEAN Purpose??? */ |