9 years agoTrivial patch to make 'best_score' defined for all architectures.
Matthew Jordan [Sun, 7 Oct 2012 17:33:38 +0000 (17:33 +0000)]
Trivial patch to make 'best_score' defined for all architectures.

Fixes trivial build error on Solaris:

  acl.c: In function `get_local_address':
  acl.c:196: error: `best_score' undeclared (first use in this function)
  acl.c:196: error: (Each undeclared identifier is reported only once
  acl.c:196: error: for each function it appears in.)
  make[2]: *** [acl.o] Error 1

(issue ASTERISK-20366)
Reported by: Ben Klang
Tested by: Ben Klang
  0002-main-acl.c-Trivial.-best_score-should-be-defined-for.patch by Shaun Ruffell (license 5417)

Merged revisions 374632 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoHandle capability stanzas that fail to provide node or version information
Matthew Jordan [Sat, 6 Oct 2012 03:22:37 +0000 (03:22 +0000)]
Handle capability stanzas that fail to provide node or version information

While XEP-0115 states that the node and ver attributes are both required, some
devices fail to provide either field.  Prior to this patch, failure to provide
the node or ver attribute would cause a crash in res_xmpp.  While failing to
provide the node or ver attribute is technically invalid, since this
information is not utilized by Asterisk except for reporting purposes, for
interoperability reasons, we continue to process the capability stanza anyways.

(closes issue ASTERISK-20495)
Reported by: Martin W
Tested by: Martin W
  20495.patch uploaded by Martin W (license #6434)

Merged revisions 374622 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate documentation for MessageSend application/command's From field for XMPP
Matthew Jordan [Sat, 6 Oct 2012 01:47:00 +0000 (01:47 +0000)]
Update documentation for MessageSend application/command's From field for XMPP

When using the channel technology agnostic application/AMI command MessageSend,
the "From" field is technically optional for the SIP channel driver.  However,
if being sent by the XMPP resource module (either res_xmpp or res_jabber), the
"From" field is necessary, and must correspond to a defined account.  This
patch updates the documentation for this application/AMI command to reflect

(closes issue ASTERISK-20405)
Reported by: Leif Madsen

Merged revisions 374611 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMultiple revisions 374570,374581
David M. Lee [Fri, 5 Oct 2012 20:33:56 +0000 (20:33 +0000)]
Multiple revisions 374570,374581

  r374570 | dlee | 2012-10-05 15:14:41 -0500 (Fri, 05 Oct 2012) | 22 lines

  Improve AMI long line error handling

  In AMI's parser, when it receives a long line (> 1024 characters), it discards
  that line, but continues to process the message normally.

  Typically, this is not a problem because a) who has lines that long and b)
  usually a discarded line results in an invalid message. But if that line is
  specifying an optional field, then the message will be processed, you get a
  'Response: Success', but things don't work the way you expected them to.

  This patch changes the behavior when a line-too-long parse error occurs.

  * Changes the log message to avoid way-too-long (and truncated anyways) log
  * Adds a 'parsing' status flag to Response: Success
  * Sets parsing = MESSAGE_LINE_TOO_LONG if, well, a line is too long
  * Responds with an appropriate error if parsing != MESSAGE_OKAY

  (closes issue AST-961)
  Reported by: John Bigelow
  r374581 | dlee | 2012-10-05 15:20:28 -0500 (Fri, 05 Oct 2012) | 1 line

  I've committed too much. Reverting part of r374570.

Merged revisions 374570,374581 from

Merged revisions 374586 from

Merged revisions 374587 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMerged revisions 374515-374535 from
Richard Mudgett [Fri, 5 Oct 2012 18:42:14 +0000 (18:42 +0000)]
Merged revisions 374515-374535 from

  r374515 | rmudgett | 2012-10-04 17:52:36 -0500 (Thu, 04 Oct 2012) | 10 lines

  chan_misdn: Remove some deadcode

  * Made setup_bc() static.

patch1_unused-code.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374516 | rmudgett | 2012-10-04 18:01:01 -0500 (Thu, 04 Oct 2012) | 7 lines

  chan_misdn: Remove unused bchan states

patch2_unused-states.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374517 | rmudgett | 2012-10-04 18:17:51 -0500 (Thu, 04 Oct 2012) | 16 lines

  chan_misdn: Remove unnecessary null pointer checks and checks for stack->nt

  * cleanup_bc() is always called with valid bc (or it would've crashed

  * Value of stack->nt is known in advance at some places.

  * Rename handle_event() to handle_event_te(), handle_frm() to

patch3_checks.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374518 | rmudgett | 2012-10-04 18:21:59 -0500 (Thu, 04 Oct 2012) | 7 lines

  chan_misdn: Fix spelling in log messages

patch4_spelling.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374519 | rmudgett | 2012-10-04 18:31:59 -0500 (Thu, 04 Oct 2012) | 15 lines

  chan_misdn: Don't cleanup a bc twice.

  In handle_frm_te() after calling misdn_lib_send_event(bc,
  EVENT_RELEASE_COMPLETE) bc is emptied, cleaned and set not in use,
  although misdn_lib_send_event() already did the same.  This is bad.  When
  it's not in use we are not allowed to touch it.

  * Moved log message in front of the resulting actions and fixed it to
  match the case.

patch5_bccleanup.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374520 | rmudgett | 2012-10-04 18:43:56 -0500 (Thu, 04 Oct 2012) | 12 lines

  chan_misdn: Fix memory leaks, bc, chan not cleaned up etc., really bad stuff.

  * Fix return codes of cb_events() for EVENT_SETUP to use caller's cleanup

  * Move cl_queue_chan() call after bearer check.

patch6_leaks.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374521 | rmudgett | 2012-10-04 18:48:38 -0500 (Thu, 04 Oct 2012) | 11 lines

  chan_misdn: We must initialize cause on sending a DISCONNECT.

  We must initialize cause on sending a DISCONNECT, so it is later correctly
  indicated to ast_channel in case the answer (RELEASE/RELEASE_COMPLETE)
  does not include one.

patch7_hangupcause.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374522 | rmudgett | 2012-10-04 19:03:56 -0500 (Thu, 04 Oct 2012) | 7 lines

  chan_misdn: Remove unused code for upqueue

patch8_unused-upqueue.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374523 | rmudgett | 2012-10-04 19:11:50 -0500 (Thu, 04 Oct 2012) | 7 lines

  chan_misdn: Improve debugging (port number, messages fixed, dups removed)

patch9_debug.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374533 | rmudgett | 2012-10-05 12:17:18 -0500 (Fri, 05 Oct 2012) | 8 lines

  chan_misdn: Better debug: we can print_bc_info even if there's no ast leg.

patch10_debug-bc-2.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2882

  r374534 | rmudgett | 2012-10-05 12:34:10 -0500 (Fri, 05 Oct 2012) | 16 lines

  chan_misdn: setup_bc() is called too early for an incoming SETUP on TE.

  This prevents the B channel from being setup for HDLC mode when requested
  by the bearer capability and config option hdlc=yes.  It violates
  ETS300102 Ch. "The user, in any case, must not connect to the
  channel until a CONNECT ACKNOWLEDGE message has been received."

  * Call setup_bc() on receipt of CONNECT_ACKNOWLEGDE for PTMP, and on first
  response to SETUP for PTP.

abe-2881-2.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2881

  r374535 | rmudgett | 2012-10-05 12:41:05 -0500 (Fri, 05 Oct 2012) | 2 lines

  chan_misdn: Remove some more deadcode.


Merged revisions 374536 from

Merged revisions 374537 from

Merged revisions 374538 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c User Configurable DTMF_HITS_TO_BEGIN and DTMF_MISSES_TO_END
Alec L Davis [Thu, 4 Oct 2012 20:21:36 +0000 (20:21 +0000)]
dsp.c User Configurable DTMF_HITS_TO_BEGIN and DTMF_MISSES_TO_END

Instead of a recompile, allow values to be adjusted in dsp.conf

For binary distributions allows easy adjustment for wobbly GSM calls, and other reasons.


(closes issue ASTERISK-17493)
Reported by: alecdavis
Tested by: alecdavis
alecdavis (license 585)


Merged revisions 374479 from

Merged revisions 374481 from

Merged revisions 374485 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c fix incorrect DTMF Digit_Duration.
Alec L Davis [Thu, 4 Oct 2012 20:08:22 +0000 (20:08 +0000)]
dsp.c fix incorrect DTMF Digit_Duration.

it's always short by 'hits_to_begin*DTMF_GSIZE', or 25.5ms if hitstobegin=2

(issue ASTERISK-16003)
Tested by: alecdavis
alecdavis (license 585)


Merged revisions 374475 from

Merged revisions 374476 from

Merged revisions 374477 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix DBDelTree error codes for AMI, CLI and AGI
David M. Lee [Thu, 4 Oct 2012 15:48:24 +0000 (15:48 +0000)]
Fix DBDelTree error codes for AMI, CLI and AGI

The AMI DBDelTree command will return Success/Key tree deleted successfully even
if the given key does not exist. The CLI command 'database deltree' had a
similar problem, but was saved because it actually responded with '0 database
entries removed'. AGI had a slightly different error, where it would return
success if the database was unavailable.

This came from confusion about the ast_db_deltree retval, which is -1 in the
event of a database error, or number of entries deleted (including 0 for
deleting nothing).

* Changed some poorly named res variables to num_deleted
* Specified specific errors when calling ast_db_deltree (database unavailable
  vs. entry not found vs. success)
* Fixed similar bug in AGI database deltree, where 'Database unavailable'
  results in successful result

(closes issue AST-967)
Reported by: John Bigelow

Merged revisions 374426 from

Merged revisions 374427 from

Merged revisions 374428 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd support for applying direct media ACLs between differing channel technologies.
Joshua Colp [Thu, 4 Oct 2012 13:49:45 +0000 (13:49 +0000)]
Add support for applying direct media ACLs between differing channel technologies.


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c User configuration of DTMF_NORMAL_TWIST and DTMF_REVERSE_TWIST values
Alec L Davis [Thu, 4 Oct 2012 04:50:16 +0000 (04:50 +0000)]
dsp.c User configuration of DTMF_NORMAL_TWIST and DTMF_REVERSE_TWIST values

Asterisk's DTMF Specifications are based on AT&T specs, which may not be compatible in other countries.

Various countries have different specifications for the maximum power level differences
between the DTMF low group and high group of frequencies.

Power level difference between frequencies for different Administrations/RPOAs
 NTT        = Max. 5 dB
 AT&T       = 4dB(reverse) to 8dB(normal)
 Danish     = Max. 6 dB
 Australian = Max. 10 dB
 Brazilian  = Max. 9 dB
 ETSI       = Max. 6 dB from ETSI ES 201 235-3 V1.3.1 (2006-03)

Now allow 4 variables to be individually configured in dsp.conf, with reasonable min/max of 2dB to 20dB.
Default is AT&T specifications

Add's the following variables to dsp.conf

(closes issue ASTERISK-20442)
Reported by: tbsky
Tested by: tbsky,alecdavis

alecdavis (license 585)


Merged revisions 374384 from

Merged revisions 374385 from

Merged revisions 374386 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCheck for presence of buddy in info/dinfo handlers
Matthew Jordan [Thu, 4 Oct 2012 02:16:43 +0000 (02:16 +0000)]
Check for presence of buddy in info/dinfo handlers

The res_jabber resource module uses the ASTOBJ library for managing its ref
counted objects.  After calling ASTOBJ_CONTAINER_FIND to locate a buddy object,
the pointer to the object has to be checked to see if the buddy existed.
Prior to this patch, the buddy object was not checked for NULL; with this patch
in both aji_client_info_handler and aji_dinfo_handler the pointer is checked
before used and, if no buddy object was found, the handlers return an error

This patch does not take the approach that our JID can be used to log in from
another resource.  If that approach is desired, an improvement could be made to
this patch to create the buddy on the fly.  This patch seeks only to prevent
Asterisk from crashing.

FYI: In Asterisk 11+, you really should be using res_xmpp.  It does not have
this problem, as it moved to the astobj2 library.

Note that multiple people have proposed patches for this issue; the patch being
committed here is based on those.

(closes issue ASTERISK-19532)
Reported by: Karsten Wemheuer
Tested by: Byron Clark
  fix-jabber uploaded by Karsten Wemheuer (license #5930)
  xmpp_no_crash_with_ejabberd.patch uploaded by Byron Clark (license #6157)

(closes issue ASTERISK-19557)
Reported by: ulugutz

Merged revisions 374335 from

Merged revisions 374336 from

Merged revisions 374337 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDestroy the generic_monitors container after the core_instances in ccss
Matthew Jordan [Wed, 3 Oct 2012 17:27:53 +0000 (17:27 +0000)]
Destroy the generic_monitors container after the core_instances in ccss

For each item in core_instances disposed of in the shutdown of ccss, any
generic monitor instances referenced by the objects will be removed from
generic_monitors during their destruction.  Hilarity ensues if
generic_monitors no longer exists.

Thanks to the Asterisk Test Suite's generic_ccss test for complaining loudly
when it ran into this.

Merged revisions 374300 from

Merged revisions 374301 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMissed an astobj2.c debug tag.
Richard Mudgett [Tue, 2 Oct 2012 23:23:30 +0000 (23:23 +0000)]
Missed an astobj2.c debug tag.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years ago* Add ref debug tags to astobj2.c ref usage.
Richard Mudgett [Tue, 2 Oct 2012 22:39:47 +0000 (22:39 +0000)]
* Add ref debug tags to astobj2.c ref usage.

* Make container nodes not show up in the ref debug log.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoEnsure Shutdown AMI event is still fired during Asterisk shutdown
Matthew Jordan [Tue, 2 Oct 2012 21:26:27 +0000 (21:26 +0000)]
Ensure Shutdown AMI event is still fired during Asterisk shutdown

Richard pointed out that having the manager dispose of itself gracefully
during shutdown meant that the Shutdown event will no longer get fired.
This patch moves the AMI event just prior to running the atexit callbacks.

Merged revisions 374230 from

Merged revisions 374231 from

Merged revisions 374248 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoModify hashtest2 to compile after r374213. Someone, somewhere, may care.
Matthew Jordan [Tue, 2 Oct 2012 20:45:22 +0000 (20:45 +0000)]
Modify hashtest2 to compile after r374213.  Someone, somewhere, may care.

Because hashtest2 has to provide symbols for things in asterisk that items
it includes may use, when astobj2 decided to use ast_register_atexit it needed
to provide a declaration for that as well.  Otherwise - no linky.

On a related note, ASTERISK-20505 was filed to convert hashtest/hashtest2 into
actual unit tests, so we don't run into this problem again.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix findings from check-in on r374177
Matthew Jordan [Tue, 2 Oct 2012 17:16:20 +0000 (17:16 +0000)]
Fix findings from check-in on r374177

Richard pointed out two problems with the check-in from r374177:
* The ast_msg_shutdown function declaration doesn't match the prototype
  in main/message.c.
* The ref/alloc function usage in astobj2 (in trunk) can use the ao2_t_*
  variants of the functions to allow the REF_DEBUG flag to enable/disable
  their debug counterparts.

Merged revisions 374210 from

Merged revisions 374211 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix a variety of ref counting issues
Matthew Jordan [Tue, 2 Oct 2012 01:47:16 +0000 (01:47 +0000)]
Fix a variety of ref counting issues

This patch resolves a number of ref leaks that occur primarily on Asterisk
shutdown.  It adds a variety of shutdown routines to core portions of
Asterisk such that they can reclaim resources allocate duringd initialization.


Merged revisions 374177 from

Merged revisions 374178 from

Merged revisions 374196 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Cleanup
Andrew Latham [Mon, 1 Oct 2012 23:39:45 +0000 (23:39 +0000)]
Doxygen Cleanup

Start adding configuration file linking and pages.  Add module loading doxygen block.

Breaking up commits to keep it easy to track

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Cleanup
Andrew Latham [Mon, 1 Oct 2012 23:24:35 +0000 (23:24 +0000)]
Doxygen Cleanup

Start adding configuration file linking and pages.  Add module loading doxygen block.

Breaking up commits to keep it easy to track

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Cleanup
Andrew Latham [Mon, 1 Oct 2012 23:24:10 +0000 (23:24 +0000)]
Doxygen Cleanup

Start adding configuration file linking and pages.  Add module loading doxygen block.

Breaking up commits to keep it easy to track

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Cleanup
Andrew Latham [Mon, 1 Oct 2012 23:22:50 +0000 (23:22 +0000)]
Doxygen Cleanup

Start adding configuration file linking and pages.  Add module loading doxygen block.

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoapp_queue: Support persisting and loading of long member lists.
Sean Bright [Mon, 1 Oct 2012 20:36:25 +0000 (20:36 +0000)]
app_queue: Support persisting and loading of long member lists.

Greenlight in #asterisk brought up that he was receiving an error message "Could
not create persistent member string, out of space" when running app_queue in
Asterisk 10.  dump_queue_members() made an assumption that 8K would be enough to
store the generated string, but with queues that have large member lists this is
not always the case.  This patch removes the limitation and uses ast_str instead
of a fixed sized buffer.

The complicating factor comes from the fact that ast_db_get requires a buffer
and buffer size argument, which doesn't let us pull back more than what we pass
in, so I introduced a new ast_db_get_allocated() which returns an ast_strdup()'d
copy of the value from astdb.

As an aside, I did some testing on the maximum size of data that we can store in
the BDB library we distribute and was able to store a 10MB string and retrieve
it with no problems, so I feel this is a safe patch.


Merged revisions 374108 from

Merged revisions 374135 from

Merged revisions 374150 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUse ast_copy_string instead of strncpy to guarantee a NUL terminated string.
Sean Bright [Mon, 1 Oct 2012 17:28:41 +0000 (17:28 +0000)]
Use ast_copy_string instead of strncpy to guarantee a NUL terminated string.

Merged revisions 374132 from

Merged revisions 374133 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoChange core show help output format.
Richard Mudgett [Mon, 1 Oct 2012 17:05:37 +0000 (17:05 +0000)]
Change core show help output format.

The CLI "core show help" output leaves something to be desired.
1) The command is truncated to a maximum of 30 characters.
2) The output columns are mirrored from the 31st column.

Current output format:
                   logger mute Toggle logging output to a console
                 logger reload Reopens the log files
                 logger rotate Rotates and reopens the log files
logger set level {DEBUG|NOTICE Enables/Disables a specific logging level for this console
          logger show channels List configured log channels

New format:
logger mute                    -- Toggle logging output to a console
logger reload                  -- Reopens the log files
logger rotate                  -- Rotates and reopens the log files
logger set level {DEBUG|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} -- Enables/Disables a specific logging level for this console
logger show channels           -- List configured log channels


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDon't destroy confbridge config when error is encountered during a reload.
Mark Michelson [Mon, 1 Oct 2012 16:26:23 +0000 (16:26 +0000)]
Don't destroy confbridge config when error is encountered during a reload.

Not panicking means that the old config is kept.

(closes issue ASTERISK-20458)
Reported by: Leif Madsen
ASTERISK-20458.patch uploaded by Mark Michelson(license #5049)
Tested by Leif Madsen

Merged revisions 374106 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd support for retrieving engine specific settings using the speech API and from...
Joshua Colp [Mon, 1 Oct 2012 12:29:04 +0000 (12:29 +0000)]
Add support for retrieving engine specific settings using the speech API and from dialplan.

(closes issue ASTERISK-17136)
Reported by: kenner

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix ref leak when adding ICE candidates to an SDP
Matthew Jordan [Sat, 29 Sep 2012 03:56:49 +0000 (03:56 +0000)]
Fix ref leak when adding ICE candidates to an SDP

There was a missing decrement to the reference count for the current ICE
candidate when local candidates are being added to an outbound SDP.  This
patch corrects that.

Merged revisions 374085 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoInclude channel uniqueid in "AsyncAGI" and "AGIExec" events.
Richard Mudgett [Fri, 28 Sep 2012 22:11:19 +0000 (22:11 +0000)]
Include channel uniqueid in "AsyncAGI" and "AGIExec" events.

* Added AMI event documentation for AsyncAGI and AGIExec events.

(closes issue ASTERISK-20318)
Reported by: Dan Cropp
      res_agi_patch.txt (license #6422) patch uploaded by Dan Cropp
      modified for trunk.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_jabber: Remove CLI command 'jabber test'
Jonathan Rose [Fri, 28 Sep 2012 19:37:22 +0000 (19:37 +0000)]
res_jabber: Remove CLI command 'jabber test'

The opinion of development was that it is both improper to have Matt's
personal email address used in the source and that the command wouldn't
be useful without it.

(closes issue AST-467)
Reported by: Malcolm Davenport

Merged revisions 374032 from

Merged revisions 374045 from

Merged revisions 374059 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd pause one second W dial modifier.
Richard Mudgett [Fri, 28 Sep 2012 18:27:02 +0000 (18:27 +0000)]
Add pause one second W dial modifier.

* The following dialplan applications now recognize 'W' to pause sending
DTMF for one second in addition to the previously existing 'w' that paused
sending DTMF for half a second.  Dial, ExternalIVR, and SendDTMF.

* The chan_dahdi analog port dialing and deferred DTMF dialing for PRI now
distinguishes between 'w' and 'W'.  The 'w' pauses dialing for half a
second.  The 'W' pauses dialing for one second.

* Created dahdi_dial_str() in chan_dahdi that eliminated a lot of
duplicated dialing code and diagnostic messages for the channel driver.

(closes issue ASTERISK-20039)
Reported by: Jeremiah Gowdy
      jgowdy-wait-6-22-2012.diff (license #5621) patch uploaded by Jeremiah Gowdy
      Expanded patch to add support in chan_dahdi.
Tested by: rmudgett

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoReset hangup flags on channels created through messages and cleanup globals
Brent Eagles [Fri, 28 Sep 2012 13:04:11 +0000 (13:04 +0000)]
Reset hangup flags on channels created through messages and cleanup globals
in res_xmpp on unload.

This patch fixes an issue where hangup flags were not being reset on a
channel, affecting subsequent use of that channel. The patch also adds some
additional cleanup to res_xmpp to fix an issue with reloading the module.

(closes ASTERISK-20360)
Reported by: Noah Engelberth
Tested by: beagles

Merged revisions 374019 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate documentation to make it explicit that "stream file" will not restart musiconhold.
Joshua Colp [Fri, 28 Sep 2012 12:17:41 +0000 (12:17 +0000)]
Update documentation to make it explicit that "stream file" will not restart musiconhold.

(issue ASTERISK-17367)
Reported by: oej

Merged revisions 373989 from

Merged revisions 373990 from

Merged revisions 373991 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd Duration header for PlayDTMF AMI Action
Matthew Jordan [Fri, 28 Sep 2012 03:06:53 +0000 (03:06 +0000)]
Add Duration header for PlayDTMF AMI Action

This patch adds an optional header to the PlayDTMF AMI action, Duration.
It allows the duration of the DTMF digit to be played on the channel to be
specified in milliseconds.

(closes issue ASTERISK-18172)
Reported by: Renato dos Santos

  send-dtmf.patch uploaded by Renato dos Santos (license #6267)

Modified slightly for this commit for Asterisk 12.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoTweak app_dial documentation.
Richard Mudgett [Thu, 27 Sep 2012 22:43:27 +0000 (22:43 +0000)]
Tweak app_dial documentation.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCleanup ast_dtmf_stream()
Richard Mudgett [Thu, 27 Sep 2012 22:33:15 +0000 (22:33 +0000)]
Cleanup ast_dtmf_stream()

* Made ast_dtmf_stream() wait after starting the silence generator rather
than before.

* Made ast_dtmf_stream() put the peer in autoservice for the whole time
things are being done to the chan.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix SendDTMF crash and channel reference leak using channel name parameter.
Richard Mudgett [Thu, 27 Sep 2012 22:25:34 +0000 (22:25 +0000)]
Fix SendDTMF crash and channel reference leak using channel name parameter.

The SendDTMF channel name parameter has two issues.
1) Crashes if the channel name does not exist.
2) Leaks a channel reference if the channel is the current channel.
Problem introduced by ASTERISK-15956.

* Updated SendDTMF documentation.

* Renamed app to senddtmf_name and tweaked the type.

Merged revisions 373945 from

Merged revisions 373946 from

Merged revisions 373954 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake res_http_websocket an optional dependency on supported platforms for chan_sip.
Joshua Colp [Thu, 27 Sep 2012 17:12:08 +0000 (17:12 +0000)]
Make res_http_websocket an optional dependency on supported platforms for chan_sip.

(closes issue ASTERISK-20439)
Reported by: sruffell
     0001-chan_sip-websocket-support-is-an-optional-API.patch uploaded by sruffell (license 5417)

Merged revisions 373914 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd VoicemailRefresh AMI Action
Kinsey Moore [Thu, 27 Sep 2012 17:02:13 +0000 (17:02 +0000)]
Add VoicemailRefresh AMI Action

Currently, if there are modifications to mailboxes that Asterisk is
not aware of, the user needs to add "pollmailboxes" to their mailbox
configuration, which repeatedly polls the subscribed mailboxes for
changes. This results in a lot of extra work for the CPU. This patch
introduces the AMI command VoicemailRefresh which permits external
applications to trigger the refresh themselves. The refresh can apply
to a specified mailbox only, an entire context, or all configured
mailboxes. Even a refresh performed on every mailbox would not consume
as much CPU as the pollmailboxes option, given that pollmailboxes runs
continuously and this only runs on demand.

(closes issue ASTERISK-17206)
(closes issue ASTERISK-19908)
Reported-by: Jeff Hutchins
Reported-by: Tilghman Lesher
Patch-by: Tilghman Lesher

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoloader: Ensure dependent modules are properly initialized.
Joshua Colp [Thu, 27 Sep 2012 16:53:19 +0000 (16:53 +0000)]
loader: Ensure dependent modules are properly initialized.

If an Asterisk module specifies a dependency in ast_module_info.nonoptreq, it
is possible for Asterisk to skip calling the modules's .load function.
Asterisk was loading and linking the module via load_dynamic_module() but was
not adding the module to the resource_heap. Therefore the module was not
initialized based on it's priority along with the other modules in the heap.

Now use load_resource() instead of load_dynamic_module() for non-optional
requirement. This will add the module to the resource_heap so the module can
be properly initialized in the correct order.

This is required if there are any module global data structures initialized in
the .load() callback for the module on platforms which do not support weak

(issue ASTERISK-20439)
Reported by: sruffell
     0001-loader-Ensure-dependent-modules-are-properly-initial.patch uploaded by sruffell (license 5417)

Merged revisions 373909 from

Merged revisions 373910 from

Merged revisions 373911 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix an issue where Local channels dialed by app_queue are considered in use immediately.
Joshua Colp [Thu, 27 Sep 2012 11:33:54 +0000 (11:33 +0000)]
Fix an issue where Local channels dialed by app_queue are considered in use immediately.

The chan_local channel driver returns a device state of in use even if a created Local
channel has not yet been dialed. This fix changes the logic to return a state of not
in use until the channel itself has been dialed.

(closes issue ASTERISK-20390)
Reported by: tim_ringenbach


Merged revisions 373878 from

Merged revisions 373879 from

Merged revisions 373880 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMove handling of 408 response so there is no misleading warning message.
Mark Michelson [Wed, 26 Sep 2012 21:17:16 +0000 (21:17 +0000)]
Move handling of 408 response so there is no misleading warning message.

(closes issue ASTERISK-20060)
Reported by: Walter Doekes

Merged revisions 373848 from

Merged revisions 373849 from

Merged revisions 373850 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFixed meetme tab completion and command documentation.
Richard Mudgett [Wed, 26 Sep 2012 18:23:37 +0000 (18:23 +0000)]
Fixed meetme tab completion and command documentation.

* Removed unnecessary case sensitivity in meetme list, lock, unlock, mute,
unmute, and kick commands.

* Separated meetme lock/unlock, mute/unmute, and kick commands into their
own registered commands to simplify tab completion and parameter checking.
meetme_lock_cmd(), meetme_mute_cmd(), and meetme_kick_cmd()

* Simplified meetme_show_cmd()

(closes issue AST-1006)
Reported by: John Bigelow
Tested by: rmudgett

Merged revisions 373815 from

Merged revisions 373816 from

Merged revisions 373818 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoapp_queue: 'agent available' hint, cleanup restart, and initial state
Alec L Davis [Wed, 26 Sep 2012 08:31:46 +0000 (08:31 +0000)]
app_queue: 'agent available' hint, cleanup restart, and initial state

Fix previously untested senarios;

1). On queue initialisation set queue_avail devstate to INUSE.
    Previously was unavailable, which indicated an agent was available.

2). When removing members, if there are no other members available, set queue_avail to INUSE.
    Previously, if a member interface had become 'unavailable', they were never going to be removed, particularly when persistant queues is enabled.

3). When adding a member, check that they are available, if they are set queue_avail to NOT_INUSE.
 Previously on reloaded, members may have been 'unavailable'.

4). When pausing or unpausing a member, set appropriate queue availability.

alecdavis (license 585)
Reported by: Alec Davis
Tested by: alecdavis


Merged revisions 373804 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix saying of date in Dutch.
Mark Michelson [Tue, 25 Sep 2012 23:10:22 +0000 (23:10 +0000)]
Fix saying of date in Dutch.

The Dutch say the date before the month.

(closes issue ASTERISK-20353)
Reported by: Teun Ouwehand

Merged revisions 373773 from

Merged revisions 373774 from

Merged revisions 373775 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoRemove dead code and documentation for nonexistent feature.
Mark Michelson [Tue, 25 Sep 2012 22:57:56 +0000 (22:57 +0000)]
Remove dead code and documentation for nonexistent feature.

multiplelogin was removed from chan_agent back in 1.6.0 when
AgentCallbackLogin() was removed.

(closes issue AST-948)
reported by Steve Pitts

Merged revisions 373768 from

Merged revisions 373769 from

Merged revisions 373770 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix error where improper IMAP greetings would be deleted.
Mark Michelson [Tue, 25 Sep 2012 21:14:21 +0000 (21:14 +0000)]
Fix error where improper IMAP greetings would be deleted.

(closes issue ASTERISK-20435)
Reported by: fhackenberger
asterisk-20435-imap-del-greeting.diff uploaded by Michael L. Young (License #5026)
(with suggested modification made by me)

Merged revisions 373735 from

Merged revisions 373737 from

Merged revisions 373738 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix T.38 support when used with chan_local in between.
Joshua Colp [Tue, 25 Sep 2012 20:14:13 +0000 (20:14 +0000)]
Fix T.38 support when used with chan_local in between.

Users of the T.38 API can indicate AST_T38_REQUEST_PARMS on a channel to request that the
channel indicate a T.38 negotiation with the parameters present on the channel. The return
value of this indication is expected to be AST_T38_REQUEST_PARMS upon success but with
chan_local involved this could never occur.

This fix changes chan_local to always return AST_T38_REQUEST_PARMS for this situation. If
the underlying channel technology on the other side does not support T.38 this would have
been determined ahead of time using ast_channel_get_t38_state and an indication would
not occur.

(closes issue ASTERISK-20229)
Reported by: wdoekes
     ASTERISK-20229.patch uploaded by wdoekes (license 5674)


Merged revisions 373705 from

Merged revisions 373706 from

Merged revisions 373707 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAllow for redirecting reasons to be set to arbitrary strings.
Mark Michelson [Tue, 25 Sep 2012 19:29:14 +0000 (19:29 +0000)]
Allow for redirecting reasons to be set to arbitrary strings.

This allows for the REDIRECTING dialplan function to be
used to set the reason to any string.

The SIP channel driver has been modified to set the redirecting
reason string to the value received in a Diversion header. In
addition, SIP 480 response reason text will set the redirecting
reason as well.

(closes issue AST-942)
reported by Malcolm Davenport

(closes issue AST-943)
reported by Malcolm Davenport


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoProperly handle UAC/UAS roles for SIP session timers
Terry Wilson [Tue, 25 Sep 2012 19:08:02 +0000 (19:08 +0000)]
Properly handle UAC/UAS roles for SIP session timers

The SIP session timer mechanism contains a mandatory 'refresher' parameter
(included in the Session-Expires header) which is used in the session timer
offer/answer signaling within a SIP Invite dialog. It looks like asterisk is
interpreting the uac resp. uas role only as the initial role of client and
server (caller is uac, callee is uas). The standard rfc 4028 however assigns
the client role to the ((RE)-Invite) requester, the server role to the
((RE)-Invite) responder.

This patch has Asterisk track the actual refresher as "us" or "them" as opposed
to relying on just the configured "uas" or "uac" properties.

(closes issue AST-922)
Reported by: Thomas Airmont


Merged revisions 373652 from

Merged revisions 373665 from

Merged revisions 373690 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years ago"show" completion option for "queue" shouldn't appear twice
Kinsey Moore [Tue, 25 Sep 2012 18:33:59 +0000 (18:33 +0000)]
"show" completion option for "queue" shouldn't appear twice

When tab-completing CLI commands starting with "queue", "show" appeared
twice in the list due to the way that Asterisk's tab completion
functions and the order in which the commands were registered. The
registration order has been altered to resolve this issue.

(closes issue AST-940)
Reported-by: Steve Pitts

Merged revisions 373666 from

Merged revisions 373675 from

Merged revisions 373688 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix valgrind found memcpy issues in codec_ilbc.
Richard Mudgett [Tue, 25 Sep 2012 17:22:25 +0000 (17:22 +0000)]
Fix valgrind found memcpy issues in codec_ilbc.

Valgrind found codec_ilbc using memcpy instead of memmove for overlapping
memory blocks.

(issue ASTERISK-19890)
(closes issue ASTERISK-20231)
Reported by: Walter Doekes
      ASTERISK-20231.patch (license #5674) patch uploaded by Walter Doekes

Merged revisions 373640 from

Merged revisions 373645 from

Merged revisions 373650 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake rebuild GSM, ilbc, or lpc10 codecs if the respective sources change.
Richard Mudgett [Tue, 25 Sep 2012 17:02:21 +0000 (17:02 +0000)]
Make rebuild GSM, ilbc, or lpc10 codecs if the respective sources change.

Merged revisions 373618 from

Merged revisions 373633 from

Merged revisions 373635 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agochan_sip: Set Quality of Service for video rtp instance
Jonathan Rose [Tue, 25 Sep 2012 16:45:02 +0000 (16:45 +0000)]
chan_sip: Set Quality of Service for video rtp instance

(closes issue ASTERISK-20201)
Reported by: ddkprog
    chan_sip.c.diff uploaded by ddkprog (license 6008)

Merged revisions 373617 from

Merged revisions 373631 from

Merged revisions 373632 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_agi: async_agi responsiveness improvement on datastore problems
Jonathan Rose [Tue, 25 Sep 2012 14:53:42 +0000 (14:53 +0000)]
res_agi: async_agi responsiveness improvement on datastore problems

This patch changes get_agi_cmd so that the return can be checked
to differentiate between an empty list success and something that
triggered an error. This in turn allows launch_asyncagi to detect
these errors and break free from the command processing loop so
that the async agi can be ended more cleanly

(closes issue ASTERISK-20109)
Reported by: Jeremiah Gowdy
Patches: jgowdy-7-9-2012.diff uploaded by Jeremiah Gowdy (license 6358)
           (Modified by me to fix some logical issues and apply to trunk)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years ago"He who go through turnstile sideways is going to Bangkok"
Mark Michelson [Tue, 25 Sep 2012 14:13:08 +0000 (14:13 +0000)]
"He who go through turnstile sideways is going to Bangkok"

Merged revisions 373582 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix documentation for default username in res_odbc
Kinsey Moore [Tue, 25 Sep 2012 13:29:37 +0000 (13:29 +0000)]
Fix documentation for default username in res_odbc

This was previously stated to be "root", but is actually the name of
the context if unspecified.

(closes issue ASTERISK-20258)
Reported by: Stefan x

Merged revisions 373578 from

Merged revisions 373579 from

Merged revisions 373580 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix an issue where a caller to ast_write on a MulticastRTP channel would determine...
Joshua Colp [Tue, 25 Sep 2012 12:12:20 +0000 (12:12 +0000)]
Fix an issue where a caller to ast_write on a MulticastRTP channel would determine it failed when in reality it did not.

When sending RTP packets via multicast the amount of data sent is stored in a variable and returned
from the write function. This is incorrect as any non-zero value returned is considered a failure while
a return value of 0 is success. For callers (such as ast_streamfile) that checked the return value
they would have considered it a failure when in reality nothing went wrong and it was actually a success.

The write function for the multicast RTP engine now returns -1 on failure and 0 on success, as it should.

(closes issue ASTERISK-17254)
Reported by: wybecom

Merged revisions 373550 from

Merged revisions 373551 from

Merged revisions 373552 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoBe consistent, send From: "Anonymous" <sip:anonymous@anonymous.invalid>
Richard Mudgett [Mon, 24 Sep 2012 22:14:28 +0000 (22:14 +0000)]
Be consistent, send From: "Anonymous" <sip:anonymous@anonymous.invalid>

When setting CALLERID(pres)=unavailable in the dialplan, the From header
in the SIP message contains "Anonymous" <sip:Anonymous@anonymous.invalid>.
For consistency, Asterisk should use a lowercase a in the userpart of the

* Make the From header use a lowercase A in the userpart of the anonymous

(closes issue ASTERISK-19838)
Reported by: Antti Yrjola
      chan_sip_patch_ASTERISK-19838.patch (license #6383) patch uploaded by Antti Yrjola

Merged revisions 373500 from

Merged revisions 373501 from

Merged revisions 373502 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agofunc_audiohookinherit: Document some missed sources.
Jonathan Rose [Mon, 24 Sep 2012 21:19:49 +0000 (21:19 +0000)]
func_audiohookinherit: Document some missed sources.

This patch also mentions that AUDIOHOOK_INHERIT can be used to
transfer MixMonitor audiohooks. There is also wiki that addresses
audiohooks and the use of AUDIOHOOK_INHERIT at the following link:

(closes issue ASTERISK-18220)
Reported by: Ishfaq Malik

Merged revisions 373467 from

Merged revisions 373468 from

Merged revisions 373470 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix potential reentrancy problems in chan_sip.
Richard Mudgett [Mon, 24 Sep 2012 21:15:26 +0000 (21:15 +0000)]
Fix potential reentrancy problems in chan_sip.

Asterisk v1.8 and later was not as vulnerable to this issue.

* Made find_call() lock each private as it processes the found dialogs.
(Primary cause of ABE-2876)

* Made the other functions that traverse the dialogs container lock each
private as it examines them.

* Fix race condition in sip_call() if the thread that sent the INVITE is
held up long enough for a response to be processed.  The p->initid for the
INVITE retransmission could be added after it was canceled by the response

* Made __sip_destroy() clean up resource pointers after freeing.  This is
primarily defensive in case someone has a stale private pointer.

* Removed redundant memset() in reqprep().  The call to init_req() already
does the memset() and is the first reference to req in reqprep().

* Removed useless set of req.method in transmit_invite().  The calls to
initreqprep() and reqprep() have to do this because they memset() the req.



Merged -r373423 from

Merged revisions 373424 from

Merged revisions 373466 from

Merged revisions 373469 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix a deadlock caused by a race condition between removing a hint and reloading the...
Joshua Colp [Mon, 24 Sep 2012 19:23:32 +0000 (19:23 +0000)]
Fix a deadlock caused by a race condition between removing a hint and reloading the dialplan and subscribing to the removed hint.

If conditions were right it was possible for both the PBX core and chan_sip to deadlock by both having a lock that the other
wants. In the case of the PBX core it had the contexts lock and wanted a SIP dialog lock, while in the case of chan_sip it
had the SIP dialog lock and wanted the contexts lock.

This fix unlocks the SIP dialog before getting the extension state so that the other thread will not block on trying to lock
it. Once the extension state is retrieved the SIP dialog is locked again and life carries on.

As the SIP dialog is reference counted it is not possible for it to go away after unlocking.

(closes issue ASTERISK-20437)
Reported by: jhutchins

Merged revisions 373438 from

Merged revisions 373440 from

Merged revisions 373454 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix an issue with H.264 format attribute comparison and fix an issue with improper...
Joshua Colp [Mon, 24 Sep 2012 14:27:17 +0000 (14:27 +0000)]
Fix an issue with H.264 format attribute comparison and fix an issue with improper SDP being produced.

The H.264 format attribute module compares two format attribute structures to determine if they are
compatible or not. In some instances it was possible for this check to determine that both structures
were incompatible when they actually should be considered compatible. This check has now been made even
more permissive by assuming that if no attribute information is available the two structures are compatible.
If both structures contain attribute information a base level comparison of the H.264 IDC value is done to
see if they are compatible or not.

The above issue uncovered a secondary issue in chan_sip where the SDP being produced would be incorrect if
the formats were considered incompatible. This has now been fixed by checking that all information required
to produce the SDP is available instead of assuming it is.

(closes issue ASTERISK-20464)
Reported by: Leif Madsen

Merged revisions 373413 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_rtp_asterisk: Make TURN and STUN server configurations consistent.
Brent Eagles [Mon, 24 Sep 2012 12:42:19 +0000 (12:42 +0000)]
res_rtp_asterisk: Make TURN and STUN server configurations consistent.

This patch removes the turnport configuration property and changes the
turnaddr property to be a combined host[:port] configuration string. The
patch also modifies the documentation in the example configuration to
reflect the property changes and adds some additional text indicating how
the STUN port is configured.

(closes issue ASTERISK-20344)
Reported by: beagles
Tested by: beagles

Merged revisions 373403 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Updates Janitor Work
Andrew Latham [Sat, 22 Sep 2012 20:43:30 +0000 (20:43 +0000)]
Doxygen Updates Janitor Work

* Whitespace, doc-blocks, spelling, case, missing and incorrect tags.
* Add cleanup to Makefile for the Doxygen configuration update
* Start updating Doxygen configuration for cleaner output
* Enable inclusion of configuration files into documentation
* remove mantisworkflow...
* update documentation README
* Add markup to Tilghman's email and talk with him about updating his email, he knows...
* no code changes on this commit other than the mentioned Makefile change

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoiax2-provision: Fix improper return on failed cache retrieval
Jonathan Rose [Fri, 21 Sep 2012 19:35:37 +0000 (19:35 +0000)]
iax2-provision: Fix improper return on failed cache retrieval

(closes issue ASTERISK-20337)
reported by: John Covert
    iax2-provision.c.patch uploaded by John Covert (license 5512)

Merged revisions 373342 from

Merged revisions 373343 from

Merged revisions 373368 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate Doxygen Config Comments
Andrew Latham [Fri, 21 Sep 2012 18:22:05 +0000 (18:22 +0000)]
Update Doxygen Config Comments

This annoying update is almost totally whitespace and updated config comments. I did add Python to the documented file types.

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDoxygen Updates - janitor work
Andrew Latham [Fri, 21 Sep 2012 17:14:59 +0000 (17:14 +0000)]
Doxygen Updates - janitor work

Doxygen updates including mistakes, misspellings, missing parameters, updates for Doxygen style.  Some missing txt file links are removed but their content or essense will be included in some later updates.  A majority of the txt files were removed in the 1.6 era but never noted. The HR and EXTREF are simple changes that make the documentation more compatable with more versions of Doxygen.

Further updates coming.

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoStart work on documentation janitor project with a little commit. This adds a link...
Andrew Latham [Fri, 21 Sep 2012 16:06:30 +0000 (16:06 +0000)]
Start work on documentation janitor project with a little commit. This adds a link to the Asterisk wiki at to the README file.

(issue ASTERISK-20259)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoapp_queue: Make queue reload members and variants of that work
Jonathan Rose [Fri, 21 Sep 2012 15:41:09 +0000 (15:41 +0000)]
app_queue: Make queue reload members and variants of that work

Prior to this patch, 'queue reload members' cli command did not
work at all. This also affects the manager function 'QueueReload'
when supplied with the 'members: yes' field.

(closes issue AST-956)
Reported by: John Bigelow

Merged revisions 373298 from

Merged revisions 373300 from

Merged revisions 373318 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c: remove more whitespace mentioned in review2107
Alec L Davis [Fri, 21 Sep 2012 09:11:39 +0000 (09:11 +0000)]
dsp.c: remove more whitespace mentioned in review2107

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c ast_dsp_call_progress use local short variable in loop, plus other cleanup
Alec L Davis [Fri, 21 Sep 2012 06:51:25 +0000 (06:51 +0000)]
dsp.c ast_dsp_call_progress use local short variable in loop, plus other cleanup

janitor cleanup. No functional change.

1). ast_dsp_call_progress: use 'short samp' instead of s[x] inside loop.
    apply same casting as other _init, dsp->energy = (int32_t) samp * (int32_t) samp

2). ast_dtmf_detect_init: move repeated setting of s->energy to outside of loop.
    do goertzel_init loop first before setting s->lasthit and s->current_hit, consistant with ast_dsp_digitreset()

3). ast_mf_detect_init:
    do goertzel_init loop first before setting s->hits[] and s->current_hit, consistant with ast_dsp_digitreset()

4). Don't chain init different variables, as the type may change


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix incorrect MeetME conference bridge reference count decrementing and sometimes...
Joshua Colp [Thu, 20 Sep 2012 19:16:59 +0000 (19:16 +0000)]
Fix incorrect MeetME conference bridge reference count decrementing and sometimes premature destruction.

When using the 'e' or 'E' option to MeetMe the configured conference bridges are loaded and examined to see
if any are empty. If no conference bridges are empty the caller is prompted to enter the number of one.
This operation left around a pointer to the last created conference bridge still containing participants.
When the caller that was not able to find any empty conference bridge hung up this pointer was disposed of
and the reference count of the conference bridge decremented. If there was only a single participant in the
conference bridge it was ultimately destroyed prematurely.

(closes issue AST-994)
Reported by: John Bigelow

Merged revisions 373242 from

Merged revisions 373245 from

Merged revisions 373246 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoBlocked revisions 373240
Matthew Jordan [Thu, 20 Sep 2012 18:59:39 +0000 (18:59 +0000)]
Blocked revisions 373240

app_queue: Support an 'agent available' hint

Sets INUSE when no free agents, NOT_INUSE when an agent is free.

modifes handle_statechange() scan members loop to scan for a free agent
and updates the Queue:queuename_avial devstate.

Previously exited early if the member was found in the queue.

Now Exits later when both a member was found, and a free agent was found.

alecdavis (license 585)
Reported by: Alec Davis
Tested by: alecdavis



Support all ways a member can be available for 'agent available' hints

Alec's patch in r373188 added the ability to subscribe to a hint for when
Queue members are available.  This patch modifies the check that determines
when a Queue member is available by refactoring the availability checks in
num_available_members into a shared function is_member_available.  This
should now handle the ringinuse option, as well as device state values

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd queue monitoring hints
Matthew Jordan [Thu, 20 Sep 2012 18:44:26 +0000 (18:44 +0000)]
Add queue monitoring hints

This patch adds support for hints on a queue.  Hints can be added using
the nomenclature 'Queue:name', where name is the name of the queue being

This nifty feature was done by Alec Davis.


Reported by: Alec Davis
Tested by: alecdavis
  review1619.diff2 by alecdavis (license 585)

Merged revisions 373235 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd support for DTLS-SRTP to res_rtp_asterisk and chan_sip.
Joshua Colp [Thu, 20 Sep 2012 18:27:28 +0000 (18:27 +0000)]
Add support for DTLS-SRTP to res_rtp_asterisk and chan_sip.

As mentioned on the review for this, WebRTC has moved towards choosing
DTLS-SRTP as the mechanism for key exchange for SRTP. This commit adds
support for this but makes it available for normal SIP clients as well.

Testing has been done to ensure that this introduces no regressions with
existing behavior and also that it functions as expected.


Merged revisions 373229 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoSupport all ways a member can be available for 'agent available' hints
Matthew Jordan [Thu, 20 Sep 2012 18:02:02 +0000 (18:02 +0000)]
Support all ways a member can be available for 'agent available' hints

Alec's patch in r373188 added the ability to subscribe to a hint for when
Queue members are available.  This patch modifies the check that determines
when a Queue member is available by refactoring the availability checks in
num_available_members into a shared function is_member_available.  This
should now handle the ringinuse option, as well as device state values

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoNamed call pickup groups. Fixes, missing functionality, and improvements.
Richard Mudgett [Thu, 20 Sep 2012 17:22:41 +0000 (17:22 +0000)]
Named call pickup groups. Fixes, missing functionality, and improvements.

* ASTERISK-20383
Missing named call pickup group features:

CHANNEL(callgroup) - Need CHANNEL(namedcallgroup)
CHANNEL(pickupgroup) - Need CHANNEL(namedpickupgroup)
Pickup() - Needs to also select from named pickup groups.

* ASTERISK-20384
Using the pickupexten, the pickup channel selection could fail even though
there was a call it could have picked up.  In a call pickup race when
there are multiple calls to pickup and two extensions try to pickup a
call, it is conceivable that the loser will not pick up any call even
though it could have picked up the next oldest matching call.

Regression because of the named call pickup group feature.

* See ASTERISK-20386 for the implementation improvements.  These are the
changes in channel.c and channel.h.

* Fixed some locking issues in CHANNEL().

(closes issue ASTERISK-20383)
Reported by: rmudgett
(closes issue ASTERISK-20384)
Reported by: rmudgett
(closes issue ASTERISK-20386)
Reported by: rmudgett
Tested by: rmudgett


Merged revisions 373220 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCorrect handling of unknown SDP stream types
Kinsey Moore [Thu, 20 Sep 2012 13:04:22 +0000 (13:04 +0000)]
Correct handling of unknown SDP stream types

When the patch to handle arbitrary SDP stream arrangements went into
Asterisk, it also included an ability to transparently decline unknown
stream types. The scanf calls used were not checked properly causing
this part of the functionality to be broken.

(closes issue ASTERISK-20203)

Merged revisions 373211 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoWhen trying to unload, warn about all dependent modules.
Sean Bright [Thu, 20 Sep 2012 11:05:40 +0000 (11:05 +0000)]
When trying to unload, warn about all dependent modules.

Before this, attempting to unload would warn you about the first
module it found that was dependent.  We now warn about all of the loaded modules

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agodsp.c: remove whitespace mentioned in review2107
Alec L Davis [Thu, 20 Sep 2012 10:41:30 +0000 (10:41 +0000)]
dsp.c: remove whitespace mentioned in review2107


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoapp_queue: Support an 'agent available' hint
Alec L Davis [Wed, 19 Sep 2012 22:33:12 +0000 (22:33 +0000)]
app_queue: Support an 'agent available' hint

Sets INUSE when no free agents, NOT_INUSE when an agent is free.

modifes handle_statechange() scan members loop to scan for a free agent
and updates the Queue:queuename_avial devstate.

Previously exited early if the member was found in the queue.

Now Exits later when both a member was found, and a free agent was found.

alecdavis (license 585)
Reported by: Alec Davis
Tested by: alecdavis


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake the casing of CALL_ID in debug messages consistent to satisfy my OCD.
Sean Bright [Tue, 18 Sep 2012 20:19:49 +0000 (20:19 +0000)]
Make the casing of CALL_ID in debug messages consistent to satisfy my OCD.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDon't crash when passing a NULL message to __astman_get_header.
Sean Bright [Tue, 18 Sep 2012 20:14:33 +0000 (20:14 +0000)]
Don't crash when passing a NULL message to __astman_get_header.

Before this commit, __astman_get_header would blindly dereference the passed in
'struct message *' to traverse the header list.  There are cases, however, such
as '*CLI> sip qualify peer foo' where the message pointer is NULL, so we need
to check for that.

Merged revisions 373131 from

Merged revisions 373132 from

Merged revisions 373133 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd -fnested-functions compile flag, if needed.
David M. Lee [Tue, 18 Sep 2012 15:50:35 +0000 (15:50 +0000)]
Add -fnested-functions compile flag, if needed.

In order to use nested functions on some versions of GCC (e.g. GCC on OS X),
the -fnested-functions flag must be passed to the compiler. This patch adds
detection logic to ./configure to add the flag if necessary. It also adds
a comment to utils.h as to why the nested function needs a prototype.

(closes issue ASTERISK-20399)
Reported by: David M. Lee

Merged revisions 373119 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMade companding law for SS7 calls only determined by SS7 signaling type.
Richard Mudgett [Sat, 15 Sep 2012 00:32:37 +0000 (00:32 +0000)]
Made companding law for SS7 calls only determined by SS7 signaling type.

For SS7, the companding law for a call was chosen inconsistently depending
upon ss7type (ITU vs ANSI) and the DAHDI companding default (T1 vs E1).
For incoming calls, the companding law was determined by ss7type.  For
outgoing calls, the companding law was determined by the DAHDI default.
With the wrong combination you would get A-law/u-law conflicts.  An
A-law/u-law conflict sounds like bad static on the line.

SS7 ITU  signaling with E1 line: ok
SS7 ITU  signaling with T1 line: noise
SS7 ANSI signaling with E1 line: noise
SS7 ANSI signaling with T1 line: ok

* Fix the companding law used to be determined by the SS7 signaling type

Merged revisions 373090 from

Merged revisions 373101 from

Merged revisions 373107 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoResolve memory leaks in TLS initialization and TLS client connections
Matthew Jordan [Fri, 14 Sep 2012 19:53:43 +0000 (19:53 +0000)]
Resolve memory leaks in TLS initialization and TLS client connections

This patch resolves two sources of memory leaks when using TLS in Asterisk:
1) It removes improper initialization (and multiple re-initializations) of
   portions of the SSL library.  Asterisk calls SSL_library_init and
   SSL_load_error_strings during SSL initialization; collectively this
   obviates the need for calling any of the following during initialization
   or client connection handling:
   * ERR_load_crypto_strings (handled by SSL_load_error_strings)
   * OpenSSL_add_all_algorithms (synonym for SSL_library_init)
   * SSLeay_add_ssl_algorithms (synonym for SSL_library_init)
2) Failure to completely clean up all memory allocated by Asterisk and by
   the SSL library for TLS clients.  This included not freeing the SSL_CTX
   object in the SIP channel driver, as well as not clearing the error
   stack when the TLS client exited.

Note that these memory leaks were found by Thomas Arimont, and this patch
was essentially written by him with some minor tweaks.

(closes issue AST-889)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
  (bugAST-889.patch) by Thomas Arimont (license 5525)


Merged revisions 373061 from

Merged revisions 373062 from

Merged revisions 373079 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFixed make clean when configured --disable-asteriskssl
David M. Lee [Thu, 13 Sep 2012 20:05:54 +0000 (20:05 +0000)]
Fixed make clean when configured --disable-asteriskssl

Merged revisions 373047 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix timeouts for ast_waitfordigit[_full].
David M. Lee [Thu, 13 Sep 2012 20:02:56 +0000 (20:02 +0000)]
Fix timeouts for ast_waitfordigit[_full].

ast_waitfordigit_full would simply pass its timeout to ast_waitfor_nandfds,
expecting it to decrement the timeout by however many milliseconds were
waited. This is a problem if it consistently waits less than 1ms. The timeout
will never be decremented, and we wait... FOREVER!

This patch makes ast_waitfordigit_full manage the timeout itself. It maintains
the previously undocumented behavior that negative timeouts wait forever.

(closes issue ASTERISK-20375)
Reported by: Mark Michelson
Tested by: Mark Michelson

Merged revisions 373024 from

Merged revisions 373025 from

Merged revisions 373029 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoEnhance astobj2 to support other types of containers.
Richard Mudgett [Wed, 12 Sep 2012 21:02:29 +0000 (21:02 +0000)]
Enhance astobj2 to support other types of containers.

The new API allows for sorted containers, insertion options, duplicate
handling options, and traversal order options.

* Adds the ability for containers to be sorted when they are created.

* Adds container creation options to handle duplicates when they are

* Adds container creation option to insert objects at the beginning or end
of the container traversal order.

* Adds OBJ_PARTIAL_KEY to allow searching with a partial key.  The partial
key works similarly to the OBJ_KEY flag.  (The real search speed
improvement with this flag will come when red-black trees are added.)

* Adds container traversal and iteration order options: Ascending and

* Adds an AST_DEVMODE compile feature to check the stats and integrity of
registered containers using the CLI "astobj2 container stats <name>" and
"astobj2 container check <name>".  The channels container is normally
registered since it is one of the most important containers in the system.

* Adds ao2_iterator_restart() to allow iteration to be restarted from the

* Changes the generic container object to have a v_method table pointer to
support other types of containers.

* Changes the container nodes holding objects to be ref counted.

The ref counted nodes and v_method table pointer changes pave the way to
allow other types of containers.

* Includes a large astobj2 unit test enhancement that tests the new

(closes issue ASTERISK-19969)
Reported by: rmudgett


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoSkip any non-content information when looking for and handling content.
Joshua Colp [Wed, 12 Sep 2012 20:54:38 +0000 (20:54 +0000)]
Skip any non-content information when looking for and handling content.

This fixes a bug with Jitsi and conference calling. Jitsi implements XEP-0298
which places some conference-info information in the session-initiate request
which chan_motif did not expect to occur.

Merged revisions 372995 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_xmpp: Fix a segfault caused by bodyless messages
Jonathan Rose [Wed, 12 Sep 2012 18:33:47 +0000 (18:33 +0000)]
res_xmpp: Fix a segfault caused by bodyless messages

(closes issue ASTERISK-20361)
Reported by: Noah Engelberth

Merged revisions 372984 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agologger: Add rotatestrategy option of 'none' which does not perform rotations
Jonathan Rose [Wed, 12 Sep 2012 17:13:02 +0000 (17:13 +0000)]
logger: Add rotatestrategy option of 'none' which does not perform rotations

With this option in use, it may be necessary to regulate your log files

(closes issue ASTERISK-20189)
Reported by: Jaco Kroon
    asterisk-logger-norotate-trunk.patch uploaded by Jaco Kroon (license 5671)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd channel name to a warning to make debugging easier.
Mark Michelson [Wed, 12 Sep 2012 15:21:19 +0000 (15:21 +0000)]
Add channel name to a warning to make debugging easier.

The "autodestruct with owner in place" message is typically
indicative of a channel reference leak. Printing out the name
of the channel in the message may be helpful when trying to
debug the issue.

Merged revisions 372932 from

Merged revisions 372933 from

Merged revisions 372937 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFixed r372696 when configured --disable-asteriskssl; properly install libasteriskssl...
David M. Lee [Wed, 12 Sep 2012 14:22:54 +0000 (14:22 +0000)]
Fixed r372696 when configured --disable-asteriskssl; properly install libasteriskssl.dylib on OS X.

I didn't realize that libasteriskssl.c was still compiled, even when you
disable asteriskssl; it simple gets statically linked into asterisk.

Merged revisions 372930 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agochan_local: Switch from using a random 4 digit hex identifier to unique id
Jonathan Rose [Tue, 11 Sep 2012 22:40:02 +0000 (22:40 +0000)]
chan_local: Switch from using a random 4 digit hex identifier to unique id

Changes chan_local channels to use an 8 digit hex identifier generated
atomically and sequentially in order to eliminate the chance of having
multiple channels with the same name during high call volume situations.

(issue ASTERISK-20318)
Reported by: Dan Cropp

Merged revisions 372902 from

Merged revisions 372916 from

Merged revisions 372917 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix inability to shutdown gracefully due to an unending channel reference.
Mark Michelson [Tue, 11 Sep 2012 21:17:53 +0000 (21:17 +0000)]
Fix inability to shutdown gracefully due to an unending channel reference.

message.c makes use of a special message queue channel that exists
in thread storage. This channel never goes away due to the fact that
the taskprocessor used by message.c does not get shut down, meaning
that it never ends the thread that stores the channel.

This patch fixes the problem by shutting down the taskprocessor when
Asterisk is shut down. In addition, the thread storage has a destructor
that will release the channel reference when the taskprocessor is destroyed.

(closes issue AST-937)
Reported by Jason Parker
AST-937.patch uploaded by Mark Michelson (License #5049)
Tested by Jason Parker

Merged revisions 372885 from

Merged revisions 372888 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix bad channel application data reference.
Mark Michelson [Tue, 11 Sep 2012 21:13:26 +0000 (21:13 +0000)]
Fix bad channel application data reference.

When channels get bridged due to an AMI bridge action
or a DTMF attended transfer, the two channels that
get bridged have their application data pointing to
the other channel's name. This means that if one channel
is hung up but the other moves on, it means that the
channel that moves on will have its application data
pointing at freed memory.

(issue ASTERISK-20335)
Reported by: aragon

Merged revisions 372840 from

Merged revisions 372841 from

Merged revisions 372886 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCorrects the astsbindir setting when installing the sample asterisk.conf.
David M. Lee [Tue, 11 Sep 2012 18:09:22 +0000 (18:09 +0000)]
Corrects the astsbindir setting when installing the sample asterisk.conf.

(closes issue ASTERISK-20406)

Merged revisions 372863 from

Merged revisions 372864 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agochan_sip: Fix CHANGES and UPGRADE.txt for r372808
Jonathan Rose [Tue, 11 Sep 2012 14:43:41 +0000 (14:43 +0000)]
chan_sip: Fix CHANGES and UPGRADE.txt for r372808

(issue AST-969)
Reported by John Bigelow

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3