Commit Graph

84 Commits

Author SHA1 Message Date
Kinsey Moore 9b16c8b0f6 Clean up and ensure proper usage of alloca()
This replaces all calls to alloca() with ast_alloca() which calls gcc's
__builtin_alloca() to avoid BSD semantics and removes all NULL checks
on memory allocated via ast_alloca() and ast_strdupa().

(closes issue ASTERISK-20125)
Review: https://reviewboard.asterisk.org/r/2032/
Patch-by: Walter Doekes (wdoekes)
........

Merged revisions 370642 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 370643 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370655 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-31 20:21:43 +00:00
Kinsey Moore cb9756daa2 Add hangupcause translation support
The HANGUPCAUSE hash (trunk only) meant to replace SIP_CAUSE has now
been replaced with the HANGUPCAUSE and HANGUPCAUSE_KEYS dialplan
functions to better facilitate access to the AST_CAUSE translations
for technology-specific cause codes. The HangupCauseClear application
has also been added to remove this data from the channel.

(closes issue SWP-4738)
Review: https://reviewboard.asterisk.org/r/2025/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-20 15:48:55 +00:00
Richard Mudgett 9773d2351b Add missing ast_hangup() calls on some analog exception paths.
Make starting analog_ss_thread() or __analog_ss_thread() failure paths
hangup the channel.
........

Merged revisions 370017 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 370025 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-12 20:28:07 +00:00
Matthew Jordan 9bc2127d7b Fix validation errors when producing documentation using default build script
The awk script parses out the first instance of the DOCUMENTATION tag that it
finds within a file.  If a file did not previously have a DOCUMENTATION tag
but received one due to it having an AMI event, then the XML fragment
associated with the AMI event was erroneously placed in the resulting XML
file.  Without the python scripts, these XML fragments will not validate.

This patch adds DOCUMENTATION tags at the top of those files that did
not previously have them to prevent the awk script from pulling AMI event
documentation.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-11 02:06:05 +00:00
Matthew Jordan 2ffae5745d Add some additional documentation for core AMI events
This patch adds some basic documentation for a number of modules.  This
includes core source files in Asterisk (those in main), as well as
chan_agent, chan_dahdi, chan_local, sig_analog, and sig_pri.  The DTD
has also been updated to allow referencing of AMI commands.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-10 22:26:27 +00:00
Kinsey Moore db59a3f123 Remove unnecessary generation of informational cause frames
It is not necessary to generate information cause code frames on every
protocol event that occurs.  This removes all the instances where the
frame was not conveying a cause code and was instead just conveying a
protocol-specific message.  This also corrects the generation of the
message associated with disconnects for MFC/R2 to use the MFC/R2
specific text for the disconnect cause.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369765 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-06 22:03:44 +00:00
Jonathan Rose 5eb94d7ebb Unique Call ID logging Phases III and IV
Adds call ID logging changes to specific channel drivers that weren't handled
handled in phase II of Call ID Logging. Also covers logging for threads for
threads created by systems that may be involved with many different calls.
Extra special thanks to Richard for rigorous review of chan_dahdi and its
various signalling modules.

review: https://reviewboard.asterisk.org/r/1927/
review: https://reviewboard.asterisk.org/r/1950/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369414 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-26 21:45:22 +00:00
Kinsey Moore 1ab47ac137 Add HANGUPCAUSE hash support for analog and PRI DAHDI subtechs
This is part of the DAHDI support for the Asterisk 11 "Who Hung Up?"
project and covers the implementation for the technologies implemented
in sig_analog.c and sig_pri.c. Tested on a local machine to verify
protocol and cause information is available.

Review: https://reviewboard.asterisk.org/r/1953/
(issue SWP-4222)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369185 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-22 15:10:38 +00:00
Kevin P. Fleming 166b4e2b30 Multiple revisions 369001-369002
........
  r369001 | kpfleming | 2012-06-15 10:56:08 -0500 (Fri, 15 Jun 2012) | 11 lines
  
  Add support-level indications to many more source files.
  
  Since we now have tools that scan through the source tree looking for files
  with specific support levels, we need to ensure that every file that is
  a component of a 'core' or 'extended' module (or the main Asterisk binary)
  is explicitly marked with its support level. This patch adds support-level
  indications to many more source files in tree, but avoids adding them to
  third-party libraries that are included in the tree and to source files
  that don't end up involved in Asterisk itself.
........
  r369002 | kpfleming | 2012-06-15 10:57:14 -0500 (Fri, 15 Jun 2012) | 3 lines
  
  Add a script to enable finding source files without support-levels defined.
........

Merged revisions 369001-369002 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 369005 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369013 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-15 16:20:16 +00:00
Richard Mudgett 72eb8eb1e7 Fix deadlock potential with ast_set_hangupsource() calls.
Calling ast_set_hangupsource() with the channel lock held can result in a
deadlock because the function also locks the bridged channel.

(issue ASTERISK-19537)

(closes issue AST-891)
Reported by: Guenther Kelleter
Tested by: Guenther Kelleter

(closes issue ASTERISK-19801)
Reported by: Alec Davis
........

Merged revisions 368759 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 368760 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@368772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-11 17:34:08 +00:00
Richard Mudgett 0f71b29e2f Fix POTS flash hook to orignate a second call deadlock.
A deadlock can occur when a POTS phone tries to flash hook to originate a
second call for 3-way or transfer.  If another process is scanning the
channels container when the POTS line flash hooks then a deadlock will
occur.

* Release the channel and private locks when creating a new channel as a
result of a flash hook.

(closes issue ASTERISK-19842)
Reported by: rmudgett
Tested by: rmudgett
........

Merged revisions 368644 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 368645 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@368646 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-06 21:34:10 +00:00
Jonathan Rose 8227f70cd7 Coverity Report: Fix issues for error type CHECKED_RETURN for core
(issue ASTERISK-19658)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1905/
........

Merged revisions 366094 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 366106 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@366126 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-10 18:35:14 +00:00
Terry Wilson 786f5898d1 Finalize ast_channel opaquification
Review: https://reviewboard.asterisk.org/r/1786/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@358907 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-03-13 18:20:34 +00:00
Terry Wilson 0e5c761c28 Opaquify ast_channel typedefs, fd arrays, and softhangup flag
Review: https://reviewboard.asterisk.org/r/1784/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@357721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-03-01 22:09:18 +00:00
Terry Wilson a9d607a357 Opaquify ast_channel structs and lists
Review: https://reviewboard.asterisk.org/r/1773/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@357542 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-02-29 16:52:47 +00:00
Terry Wilson 57f42bd74f ast_channel opaquification of pointers and integral types
Review: https://reviewboard.asterisk.org/r/1753/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@356042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-02-20 23:43:27 +00:00
Alec L Davis a4f6d96b2e push 'outgoing' flag from sig_XXX up to chan_dahdi
'p->outgoing' in chan_dahdi and sig_analog wern't kept in sync, particulary FXS ast_hangup didn't clear the 'outgoing' flag.
sig_pri and sig_ss7 were keeping 'outgoing' flag insync.

Now provides a callback for all the low level sig_XXX modules.

(issue ASTERISK-19316)

alecdavis (license 585)
Reported by: Jeremy Pepper
Tested by: alecdavis
 
Review: https://reviewboard.asterisk.org/r/1747/
........

Merged revisions 355850 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 355851 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@355852 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-02-18 08:02:08 +00:00
Terry Wilson 34c55e8e7c Opaquify char * and char[] in ast_channel
Review: https://reviewboard.asterisk.org/r/1733/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@354968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-02-13 17:27:06 +00:00
Richard Mudgett 23bc964e1c Constify some more channel driver technology callback parameters.
Review: https://reviewboard.asterisk.org/r/1707/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@353685 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-02-01 19:53:38 +00:00
Terry Wilson 99cae5b750 Opaquify channel stringfields
Continue channel opaque-ification by wrapping all of the stringfields.
Eventually, we will restrict what can actually set these variables, but
the purpose for now is to hide the implementation and keep people from
adding code that directly accesses the channel structure. Semantic
changes will follow afterward.

Review: https://reviewboard.asterisk.org/r/1661/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@352348 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-24 20:12:09 +00:00
Terry Wilson 04da92c379 Replace direct access to channel name with accessor functions
There are many benefits to making the ast_channel an opaque handle, from
increasing maintainability to presenting ways to kill masquerades. This patch
kicks things off by taking things a field at a time, renaming the field to
'__do_not_use_${fieldname}' and then writing setters/getters and converting the
existing code to using them. When all fields are done, we can move ast_channel
to a C file from channel.h and lop off the '__do_not_use_'.

This patch sets up main/channel_interal_api.c to be the only file that actually
accesses the ast_channel's fields directly. The intent would be for any API
functions in channel.c to use the accessor functions. No more monkeying around
with channel internals. We should use our own APIs.

The interesting changes in this patch are the addition of
channel_internal_api.c, the moving of the AST_DATA stuff from channel.c to
channel_internal_api.c (note: the AST_DATA stuff will have to be reworked to
use accessor functions when ast_channel is really opaque), and some re-working
of the way channel iterators/callbacks are handled so as to avoid creating fake
ast_channels on the stack to pass in matching data by directly accessing fields
(since "name" is a stringfield and the fake channel doesn't init the
stringfields, you can't use the ast_channel_name_set() function). I went with
ast_channel_name(chan) for a getter, and ast_channel_name_set(chan, name) for a
setter.

The majority of the grunt-work for this change was done by writing a semantic
patch using Coccinelle ( http://coccinelle.lip6.fr/ ).

Review: https://reviewboard.asterisk.org/r/1655/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@350223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-09 22:15:50 +00:00
Richard Mudgett 938b642245 Restore call progress code for analog ports.
Extracting sig_analog from chan_dahdi lost call progress detection
functionality.

* Fix analog ports from considering a call answered immediately after
dialing has completed if the callprogress option is enabled.

(closes issue ASTERISK-18841)
Reported by: Richard Miller
Patches:
      chan_dahdi.diff (license #5685) patch uploaded by Richard Miller (Modified by me)
      sig_analog.c.diff (license #5685) patch uploaded by Richard Miller (Modified by me)
      sig_analog.h.diff (license #5685) patch uploaded by Richard Miller
........

Merged revisions 347006 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 347007 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@347008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-12-05 17:44:15 +00:00
Richard Mudgett 10de040b6e More parking issues.
* Fix potential deadlocks in SIP and IAX blind transfer to parking.

* Fix SIP, IAX, DAHDI analog, and MGCP channel drivers to respect the
parkext_exclusive option with transfers (Park(,,,,,exclusive_lot)
parameter).  Created ast_park_call_exten() and ast_masq_park_call_exten()
to maintian API compatibility.

* Made masq_park_call() handle a failed ast_channel_masquerade() setup.

* Reduced excessive struct parkeduser.peername[] size.
........

Merged revisions 341254 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 341255 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@341256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-18 21:15:45 +00:00
Kinsey Moore db3d113414 Merged revisions 330706 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10

................
  r330706 | kmoore | 2011-08-03 08:39:06 -0500 (Wed, 03 Aug 2011) | 17 lines
  
  Merged revisions 330705 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.8
  
  ........
    r330705 | kmoore | 2011-08-03 08:38:17 -0500 (Wed, 03 Aug 2011) | 10 lines
    
    Call pickup broken for DAHDI channels when beginning with #
    
    The call pickup feature did not work on DAHDI devices for anything other than
    feature codes beginning with * since all feature codes in chan_dahdi were
    originally hard-coded to begin with *.  This patch is also applied to
    chan_dahdi.c to fix this bug with radio modes.
    
    (closes issue AST-621)
    Review: https://reviewboard.asterisk.org/r/1336/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@330707 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-03 13:40:22 +00:00
Richard Mudgett 810b9c8879 Merged revisions 316224 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r316224 | rmudgett | 2011-05-03 14:18:30 -0500 (Tue, 03 May 2011) | 16 lines
  
  The dahdi_hangup() call does not clean up the channel fully.
  
  After dahdi_hangup() has supposedly hungup an ISDN channel there is still
  traffic on the S0-bus because the channel was not cleaned up fully.
  
  Shuffled the hangup code to include some missing cleanup.  Also fixed some
  code formatting in the area.  I think the primary missing clean up code
  was the call to tone_zone_play_tone() to turn off any active tones on the
  channel.
  
  (closes issue #19188)
  Reported by: jg1234
  Patches:
        issue19188_v1.8.patch uploaded by rmudgett (license 664)
  Tested by: jg1234
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@316240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-03 19:22:29 +00:00
Richard Mudgett bc907695bf Merged revisions 313190 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r313190 | rmudgett | 2011-04-11 10:40:30 -0500 (Mon, 11 Apr 2011) | 39 lines
  
  Merged revisions 313189 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r313189 | rmudgett | 2011-04-11 10:32:53 -0500 (Mon, 11 Apr 2011) | 32 lines
    
    Merged revisions 313188 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r313188 | rmudgett | 2011-04-11 10:27:52 -0500 (Mon, 11 Apr 2011) | 25 lines
      
      Stuck channel using FEATD_MF if caller hangs up at the right time.
      
      The cause was actually a caller hanging up just at the end of the Feature
      Group D DTMF tones that setup the call.  The reason for this is a "guard
      timer" that's implemented using ast_safe_sleep(100).  If the caller
      happens to hang up AFTER the final tone of the DTMF string but BEFORE the
      end of that ast_safe_sleep(), then ast_safe_sleep() will return non-zero.
      This causes the code to bounce to the end of ss_thread(), but it does NOT
      tear down the call properly.
      
      This should be a rare occurrence because the caller has to hang up at
      EXACTLY the right time.  Nonetheless, it was happening quite regularly on
      the reporter's system.  It's not easily reproducible, unless you purposely
      increase the guard-time to 2000 or more.  Once you do that, you can
      reproduce it every time by watching the DTMF debug and hanging up just as
      it ends.
      
      Simply add an ast_hangup() before goto quit.
      
      (closes issue #15671)
      Reported by: jcromes
      Patches:
            issue15671.patch uploaded by pabelanger (license 224)
      Tested by: jcromes
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@313191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-11 15:47:17 +00:00
Richard Mudgett ce17f956dc Add private lock deadlock avoidance callback to PRI and SS7.
Factor out the equivalent function for analog.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@313100 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-08 16:17:32 +00:00
Richard Mudgett 72260849b7 Merged revisions 309126 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r309126 | rmudgett | 2011-03-01 12:44:05 -0600 (Tue, 01 Mar 2011) | 16 lines
  
  Chan_dahdi does not retain CID when detecting DTMF CID without polarity reversal.
  
  Looks like an unintended change when sig_analog.c was extracted from
  chan_dahdi.c.
  
  Removed useless conditional around needed code and fixed resulting
  compiler warning.
  
  (closes issue #18667)
  Reported by: enegaard
  Patches:
        issue18667.patch uploaded by enegaard (license 1197)
  Tested by: enegaard
  
  JIRA SWP-2965
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@309127 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-03-01 18:50:07 +00:00
Richard Mudgett ccdc417ab5 Merged revisions 296167 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r296167 | rmudgett | 2010-11-24 16:49:48 -0600 (Wed, 24 Nov 2010) | 57 lines
  
  Merged revisions 296166 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r296166 | rmudgett | 2010-11-24 16:42:45 -0600 (Wed, 24 Nov 2010) | 50 lines
    
    Merged revisions 296165 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r296165 | rmudgett | 2010-11-24 16:41:07 -0600 (Wed, 24 Nov 2010) | 43 lines
      
      Oneway audio to SIP phone from FXS port after FXS port gets a CallWaiting pip.
      
      The FXS connected phone has to have CW/CID support to fail, as it will
      send back a DTMF 'A' or 'D' when it's ready to receive CallerID.  A normal
      phone with no CID never fails.  Also the SIP phone does not hear MOH when
      the CW call is answered.
      
      The DTMF end frame is suppressed when the phone acknowledges the CW signal
      for CID.  The problem is the DTMF begin frame needs to be suppressed as
      well.  The DTMF begin frame is causing SIP to start sending the DTMF RTP
      frames.  Since the DTMF end frame is suppressed, SIP will not stop sending
      those DTMF RTP packets.
      
      * Suppress the DTMF begin and end frames when the channel driver is
      looking for DTMF digits.
      
      * Fixed a couple issues caused by not cleaning up the CID spill if you
      answer the CW call while it is sending the CID spill.
      
      * Fixed not sending CW/CID spill to the phone when the call is natively
      bridged.  (Fixed by not using native bridge if CW/CID is possible.)
      
      * Suppress received audio when sending CW/CID spills.  The other parties
      involved do not need to hear the CW/CID spills and may be confused if the
      CW call is for them.
      
      (closes issue #18129)
      Reported by: alecdavis
      Patches:
            issue_18129_v1.8_v3.patch uploaded by rmudgett (license 664)
      Tested by: alecdavis, rmudgett
      
      
      NOTE:
      
      * v1.4 does not have the main problem fixed by suppressing the DTMF start
      frames.  The other three items fixed are relevant.
      
      * If you really must restore native bridging between analog ports, you
      need to disable CW/CID either by configuring chan_dahdi.conf
      callwaitingcallerid=no or dialing *70 before dialing the number to
      temporarily disable CW.
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@296168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-24 22:52:07 +00:00
Richard Mudgett b1e7f85bce Merged revisions 295747 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r295747 | rmudgett | 2010-11-19 21:11:15 -0600 (Fri, 19 Nov 2010) | 13 lines
  
  One way audio before answering call waiting call on analog port.
  
  * Analog call waiting Caller ID spills could get stuck resulting in one
  way audio until the waiting call is answered.  This only happens on the
  second (and later) call waiting call if the active call is not the first
  call.
  
  * The CLI/AMI "dahdi show channel" command could report the wrong channel
  information.
  
  Must keep the struct analog_pvt.owner and struct dahdi_pvt.owner pointer
  in sync.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@295748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-20 03:13:24 +00:00
Richard Mudgett f6edd47dd6 Merged revisions 295516 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r295516 | rmudgett | 2010-11-19 10:47:11 -0600 (Fri, 19 Nov 2010) | 13 lines
  
  Bring sig_analog extraction more into alignment with orig-trunk/v1.6.2 chan_dahdi.
  
  * Restore SMDI support.
  * Fixed initial value of struct analog_pvt.use_callerid.  It may get
  forced on depending upon other config options.
  * Call analog_dnd() instead of manual inlined code.
  * Removed unused struct analog_pvt.usedistinctiveringdetection.
  * Removed the struct analog_pvt.unknown_alarm flag.  It was really the
  struct analog_pvt.inalarm flag.
  * Use ast_debug() instead of ast_log(LOG_DEBUG).
  * Rename several function's index variable to idx.
  * Some formatting tweaks.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@295517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-19 16:49:54 +00:00
Richard Mudgett 3adb425b25 Merged revisions 294349 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r294349 | rmudgett | 2010-11-09 10:55:32 -0600 (Tue, 09 Nov 2010) | 17 lines
  
  Analog lines do not transfer CONNECTED LINE or execute the interception macros.
  
  Add connected line update for sig_analog transfers and simplify the
  corresponding sig_pri and chan_misdn transfer code.
  
  Note that if you create a three-way call in sig_analog before transferring
  the call, the distinction of the caller/callee interception macros make
  little sense.  The interception macro writer needs to be prepared for
  either caller/callee macro to be executed.  The current implementation
  swaps which caller/callee interception macro is executed after a three-way
  call is created.
  
  Review:	https://reviewboard.asterisk.org/r/996/
  
  JIRA ABE-2589
  JIRA SWP-2372
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@294351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-09 17:00:07 +00:00
Richard Mudgett cbd42ce6eb Merged revisions 293807 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r293807 | rmudgett | 2010-11-03 13:35:19 -0500 (Wed, 03 Nov 2010) | 34 lines
  
  Merged revisions 293806 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r293806 | rmudgett | 2010-11-03 13:31:57 -0500 (Wed, 03 Nov 2010) | 27 lines
    
    Merged revisions 293805 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r293805 | rmudgett | 2010-11-03 13:23:04 -0500 (Wed, 03 Nov 2010) | 20 lines
      
      Party A in an analog 3-way call would continue to hear ringback after party C answers.
      
      All parties are analog FXS ports.
      1) A calls B.
      2) A flash hooks to call C.
      3) A flash hooks to bring C into 3-way call before C answers.  (A and B hear ringback)
      4) C answers
      5) A continues to hear ringback during the 3-way call. (All parties can hear each other.)
      
      * Fixed use of wrong variable in dahdi_bridge() that stopped ringback on
      the wrong subchannel.
      
      * Made several debug messages have more information.
      
      A similar issue happens if B and C are SIP channels.  B continues to hear
      ringback.  For some reason this only affects v1.8 and trunk.
      
      * Don't start ringback on the real and 3-way subchannels when creating the
      3-way conference.  Removing this code is benign on v1.6.2 and earlier.
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-03 18:38:27 +00:00
Richard Mudgett ed500a9e99 Merged revisions 293648 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r293648 | rmudgett | 2010-11-02 16:29:25 -0500 (Tue, 02 Nov 2010) | 20 lines
  
  Merged revisions 293647 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r293647 | rmudgett | 2010-11-02 16:26:30 -0500 (Tue, 02 Nov 2010) | 13 lines
    
    Merged revisions 293639 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r293639 | rmudgett | 2010-11-02 16:24:13 -0500 (Tue, 02 Nov 2010) | 6 lines
      
      Make warning message have more useful information in it.
      
      Change "Unable to get index, and nullok is not asserted" to "Unable to get
      index for '<channel-name>' on channel <number> (<function>(), line
      <number>)".
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293649 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-02 21:31:17 +00:00
Richard Mudgett 10cbc4a132 Merged revisions 293530 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r293530 | rmudgett | 2010-11-01 12:29:30 -0500 (Mon, 01 Nov 2010) | 10 lines
  
  Analog 3-way call would not connect all parties if one was using sig_pri.
  
  Also the "dahdi show channel" would not show the correct 3-way call
  status.
  
  * Synchronized the inthreeway flag between chan_dahdi and sig_analog.
  
  * Fixed a my_set_linear_mode() sign error and made take an analog sub
  channel enum.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-01 17:32:16 +00:00
Richard Mudgett 8e45c743d1 Merged revisions 293418 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r293418 | rmudgett | 2010-10-29 20:53:29 -0500 (Fri, 29 Oct 2010) | 16 lines
  
  Merged revisions 293417 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r293417 | rmudgett | 2010-10-29 20:49:15 -0500 (Fri, 29 Oct 2010) | 9 lines
    
    Merged revisions 293416 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r293416 | rmudgett | 2010-10-29 20:45:49 -0500 (Fri, 29 Oct 2010) | 1 line
      
      Remove some more code that serves no purpose.
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293419 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-30 01:55:15 +00:00
Richard Mudgett 611b8d72c9 Merged revisions 293341 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r293341 | rmudgett | 2010-10-29 19:46:41 -0500 (Fri, 29 Oct 2010) | 16 lines
  
  Merged revisions 293340 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r293340 | rmudgett | 2010-10-29 19:40:10 -0500 (Fri, 29 Oct 2010) | 9 lines
    
    Merged revisions 293339 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r293339 | rmudgett | 2010-10-29 19:34:12 -0500 (Fri, 29 Oct 2010) | 1 line
      
      Remove some code that serves no purpose.
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293342 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-30 00:50:32 +00:00
Richard Mudgett f91cda9566 Merged revisions 291656 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r291656 | rmudgett | 2010-10-13 18:45:11 -0500 (Wed, 13 Oct 2010) | 34 lines
  
  Merged revisions 291655 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r291655 | rmudgett | 2010-10-13 18:36:50 -0500 (Wed, 13 Oct 2010) | 27 lines
    
    Merged revisions 291643 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r291643 | rmudgett | 2010-10-13 18:29:58 -0500 (Wed, 13 Oct 2010) | 20 lines
      
      Deadlock between dahdi_exception() and dahdi_indicate().
      
      There is a deadlock between dahdi_exception() and dahdi_indicate() for
      analog ports.  The call-waiting and three-way-calling feature can
      experience deadlock if these features are trying to do something and an
      event from the bridged channel happens at the same time.
      
      Deadlock avoidance code added to obtain necessary channel locks before
      attemting an operation with call-waiting and three-way-calling.
      
      (closes issue #16847)
      Reported by: shin-shoryuken
      Patches:
            issue_16847_v1.4.patch uploaded by rmudgett (license 664)
            issue_16847_v1.6.2.patch uploaded by rmudgett (license 664)
            issue_16847_v1.8_v2.patch uploaded by rmudgett (license 664)
      Tested by: alecdavis, rmudgett
      
      Review: https://reviewboard.asterisk.org/r/971/
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@291658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-13 23:52:41 +00:00
Jeff Peeler 41b95ee887 Merged revisions 286931 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r286931 | jpeeler | 2010-09-15 14:22:15 -0500 (Wed, 15 Sep 2010) | 16 lines
  
  Add parking extension for non-default parking lots.
  
  This is a new feature that allows for parking to custom parking lots to be
  accessed directly, rather than with channel variables or by changing the
  default parking lot. The extension is set with the parkext option just as the
  default parking lot is done. Also, the manager action has been updated to
  optionally allow a specified parking lot.
  
  (closes issue #14882)
  Reported by: vmikhnevych
  Patches: 
        patch_14882.txt uploaded by mnick (license 874)
        modified by me
  
  Review: https://reviewboard.asterisk.org/r/884/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@286939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-15 19:23:56 +00:00
Richard Mudgett b3fa5ec3be Merged revisions 286904-286905 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r286904 | rmudgett | 2010-09-15 13:28:05 -0500 (Wed, 15 Sep 2010) | 12 lines
  
  Unable to originate calls using E&M over T1.
  
  When originating a call from Unit Under Test to Reference Unit using E&M
  RBS signaling mode, I get the following warning message: "Ring/Off-hook in
  strange state 3 on channel 1".
  
  Fixed the sig_analog outgoing flag.  It was never set when sig_analog was
  extracted from chan_dahdi.
  
  JIRA SWP-2191
  JIRA AST-408
........
  r286905 | rmudgett | 2010-09-15 13:29:21 -0500 (Wed, 15 Sep 2010) | 1 line
  
  Simplify some code in sig_analog.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@286906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-15 18:30:54 +00:00
Richard Mudgett b8a71201dc Merged revisions 281870 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r281870 | rmudgett | 2010-08-11 15:30:29 -0500 (Wed, 11 Aug 2010) | 4 lines
  
  Fix a call to analog_set_pulsedial() not setting 0 or 1 only.
  
  * Also a couple minor tweaks.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@281871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-08-11 20:38:57 +00:00
Alec L Davis 8b3c00a824 missed FXS kewl start polarityswitch when finally on hook.
(issue #17318)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-23 11:01:14 +00:00
Alec L Davis 85bfe38f2f Support FXS module Polarity Reversal on remote party Answer and Hangup
FXS lines normally connect to a telephone. However, when FXS lines are routed
to an external PBX or Key System to act as "external" or "CO" lines, it is
extremely difficult, if not impossible for the external PBX to know when
the call has been disconnected without receiving a polarity reversal on the line.

Now using answeronpolarityswitch and hanguponpolarityswitch keywords that
previously were used only for FXO ports, now applies like functionality for
an FXS port, but from the connected equipment's point of view.

(closes issue #17318)
Reported by: armeniki
Patches: 
      fxs_linepolarity.diff5.txt uploaded by alecdavis (license 585)
Tested by: alecdavis

Review: https://reviewboard.asterisk.org/r/797/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-22 23:14:50 +00:00
Tzafrir Cohen 16b4813599 Fix invalid test for rxisoffhook in FXO channels
This fixes some cases of no outgoing calls on FXO before an incoming call.

Remove an unnecessary testing of an "off-hook" bit from DAHDI for FXO
(KS/GS) channels.In some cases the bit would not be initialized properly
before the first inbound call and thus prevent an outgoing call.

If those tests are actually required by anybody, they should define
DAHDI_CHECK_HOOKSTATE in channels/sig_analog.c .

(closes issue #14577)
Reported by: jkroon
Patches:
      asterisk_chan_dahdi_hookstate_fix_trunk_new.diff uploaded by frawd (license 610)
Tested by: frawd

Review: https://reviewboard.asterisk.org/r/699/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278501 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-21 17:44:20 +00:00
Jeff Peeler 58061391a1 Fix regression with distinctive ring detection.
The issue here is that passing an array to a function prohibits the ARRAY_LEN
macro from returning the real size. To avoid this the size is now defined and
use of ARRAY_LEN is avoided.

(closes issue #15718)
Reported by: alecdavis
Patches: 
      bug15718.patch uploaded by jpeeler (license 325)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@277837 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-19 14:39:07 +00:00
Richard Mudgett cf7bbcc4c6 Expand the caller ANI field to an ast_party_id
Expand the ani field in ast_party_caller and ast_party_connected_line to
an ast_party_id.

This is an extension to the ast_callerid restructuring patch in review:
https://reviewboard.asterisk.org/r/702/

Review: https://reviewboard.asterisk.org/r/744/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14 16:58:03 +00:00
Richard Mudgett ec37ffbdaf ast_callerid restructuring
The purpose of this patch is to eliminate struct ast_callerid since it has
turned into a miscellaneous collection of various party information.

Eliminate struct ast_callerid and replace it with the following struct
organization:

struct ast_party_name {
	char *str;
	int char_set;
	int presentation;
	unsigned char valid;
};
struct ast_party_number {
	char *str;
	int plan;
	int presentation;
	unsigned char valid;
};
struct ast_party_subaddress {
	char *str;
	int type;
	unsigned char odd_even_indicator;
	unsigned char valid;
};
struct ast_party_id {
	struct ast_party_name name;
	struct ast_party_number number;
	struct ast_party_subaddress subaddress;
	char *tag;
};
struct ast_party_dialed {
	struct {
		char *str;
		int plan;
	} number;
	struct ast_party_subaddress subaddress;
	int transit_network_select;
};
struct ast_party_caller {
	struct ast_party_id id;
	char *ani;
	int ani2;
};

The new organization adds some new information as well.

* The party name and number now have their own presentation value that can
be manipulated independently.  ISDN supplies the presentation value for
the name and number at different times with the possibility that they
could be different.

* The party name and number now have a valid flag.  Before this change the
name or number string could be empty if the presentation were restricted.
Most channel drivers assume that the name or number is then simply not
available instead of indicating that the name or number was restricted.

* The party name now has a character set value.  SIP and Q.SIG have the
ability to indicate what character set a name string is using so it could
be presented properly.

* The dialed party now has a numbering plan value that could be useful to
have available.

The various channel drivers will need to be updated to support the new
core features as needed.  They have simply been converted to supply
current functionality at this time.


The following items of note were either corrected or enhanced:

* The CONNECTEDLINE() and REDIRECTING() dialplan functions were
consolidated into func_callerid.c to share party id handling code.

* CALLERPRES() is now deprecated because the name and number have their
own presentation values.

* Fixed app_alarmreceiver.c write_metadata().  The workstring[] could
contain garbage.  It also can only contain the caller id number so using
ast_callerid_parse() on it is silly.  There was also a typo in the
CALLERNAME if test.

* Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id
number string.  ast_callerid_parse() alters the given buffer which in this
case is the channel's caller id number string.  Then using
ast_shrink_phone_number() could alter it even more.

* Fixed caller ID name and number memory leak in chan_usbradio.c.

* Fixed uninitialized char arrays cid_num[] and cid_name[] in
sig_analog.c.

* Protected access to a caller channel with lock in chan_sip.c.

* Clarified intent of code in app_meetme.c sla_ring_station() and
dial_trunk().  Also made save all caller ID data instead of just the name
and number strings.

* Simplified cdr.c set_one_cid().  It hand coded the ast_callerid_merge()
function.

* Corrected some weirdness with app_privacy.c's use of caller
presentation.

Review:	https://reviewboard.asterisk.org/r/702/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14 15:48:36 +00:00
Jeff Peeler 0ef5550742 Change expected operation from error to debug message
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271192 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-17 15:34:08 +00:00
Jeff Peeler 00433d60e6 Fix no call waiting caller ID
Clearing the callwaitcas flag in analog_call was causing the incoming D digit
to be ignored which triggers sending the caller ID.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270836 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-16 16:45:07 +00:00
Russell Bryant 3194c061a7 Don't blow up if an ast_channel doesn't get allocated.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 22:48:12 +00:00