10 years agoAdd a test that ensures that taskprocessor listener callbacks
Mark Michelson [Fri, 9 Nov 2012 23:23:32 +0000 (23:23 +0000)]
Add a test that ensures that taskprocessor listener callbacks
are properly called.

The new test is a bit raw in that it uses magic numbers, but that
can be improved upon easily.

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

10 years agoAdd doxygen and constify some things.
Mark Michelson [Fri, 9 Nov 2012 22:49:25 +0000 (22:49 +0000)]
Add doxygen and constify some things.

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

10 years agoGenericize the allocation and destruction of taskprocessor listeners.
Mark Michelson [Fri, 9 Nov 2012 22:28:10 +0000 (22:28 +0000)]
Genericize the allocation and destruction of taskprocessor listeners.

The goal of this is to take the responsibility away from individual
listeners to be sure to properly unref the taskprocessor.

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

10 years agoAdd a basic taskprocessor test.
Mark Michelson [Fri, 9 Nov 2012 19:42:47 +0000 (19:42 +0000)]
Add a basic taskprocessor test.

This just queues a task and ensures that the task
gets executed by the default taskprocessor listener.

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

10 years agoGet rid of taskprocessor fields no longer necessary.
Mark Michelson [Thu, 8 Nov 2012 23:35:10 +0000 (23:35 +0000)]
Get rid of taskprocessor fields no longer necessary.

This includes changing the taskprocessor to use its builtin
ao2_lock instead of having a separate mutex. It can do this
now since there is no longer an ast_cond_t associated with
the taskprocessor.

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

10 years agoMove taskprocessors to use a listener model.
Mark Michelson [Thu, 8 Nov 2012 23:27:16 +0000 (23:27 +0000)]
Move taskprocessors to use a listener model.

Taskprocessors are now divided into two units: the task queue
and their listeners.

When a task is added to the queue, the listener is notified and
can take whatever action is desired. This means that taskprocessors
are no longer confined to having their tasks executed within a
single thread.

A default taskprocessor listener has been added that mirrors the
old taskprocessor behavior.

I've tested it by running Asterisk and placing calls. It appears
to work as expected. I'm going to do some cleaning up first and
then write some unit tests to be sure everything works as expected.

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

10 years agoMerged revisions 376092 via svnmerge from
Automerge script [Thu, 8 Nov 2012 22:19:40 +0000 (22:19 +0000)]
Merged revisions 376092 via svnmerge from

  r376092 | mmichelson | 2012-11-08 16:10:29 -0600 (Thu, 08 Nov 2012) | 18 lines

  Fix a "set but not used" warning on newer gccs.

  Turns out the "helpful" setting of ms and res in this
  macro is completely useless after the timeout antipattern

  If you're a new guy looking to write code, don't write
  a macro like this one.

  Merged revisions 376087 from

  Merged revisions 376088 from

  Merged revisions 376089 from

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

10 years agoMerged revisions 376061 via svnmerge from
Automerge script [Thu, 8 Nov 2012 21:19:33 +0000 (21:19 +0000)]
Merged revisions 376061 via svnmerge from

  r376061 | rmudgett | 2012-11-08 15:12:35 -0600 (Thu, 08 Nov 2012) | 22 lines

  chan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel.

  If a SS7 call comes in requesting a CIC that is in-alarm, the call is
  accepted and connects if the extension exists in the dialplan.  The call
  does not have any audio.

  * Made release the call immediately with circuit congestion cause.

  (closes issue ASTERISK-20204)
  Reported by: Tuan Le
        jira_asterisk_20204_v1.8.patch (license #5621) patch uploaded by rmudgett

  Merged revisions 376058 from

  Merged revisions 376059 from

  Merged revisions 376060 from

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

10 years agoMerged revisions 376049 via svnmerge from
Automerge script [Thu, 8 Nov 2012 18:19:49 +0000 (18:19 +0000)]
Merged revisions 376049 via svnmerge from

  r376049 | rmudgett | 2012-11-08 11:38:31 -0600 (Thu, 08 Nov 2012) | 41 lines

  Add MALLOC_DEBUG enhancements.

  * Makes malloc() behave like calloc().  It will return a memory block
  filled with 0x55.  A nonzero value.

  * Makes free() fill the released memory block and boundary fence's with
  0xdeaddead.  Any pointer use after free is going to have a pointer
  pointing to 0xdeaddead.  The 0xdeaddead pointer is usually an invalid
  memory address so a crash is expected.

  * Puts the freed memory block into a circular array so it is not reused

  * When the circular array rotates out a memory block to the heap it checks
  that the memory has not been altered from 0xdeaddead.

  * Made the astmm_log message wording better.

  * Made crash if the DO_CRASH menuselect option is enabled and something is

  * Fixed a potential alignment issue on 64 bit systems.
  struct[] should now be aligned correctly for all

  * Extracted region_check_fences() from __ast_free_region() and

  * Updated handle_memory_show() CLI usage help.


  Merged revisions 376029 from

  Merged revisions 376030 from

  Merged revisions 376048 from

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

10 years agoGet that automerge rollin'
Mark Michelson [Wed, 7 Nov 2012 21:28:16 +0000 (21:28 +0000)]
Get that automerge rollin'

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

10 years agoCreate a threadpool API for Asterisk.
Mark Michelson [Wed, 7 Nov 2012 21:23:20 +0000 (21:23 +0000)]
Create a threadpool API for Asterisk.

A common theme for a lot of feature development has been that
a thread pool would be useful.

In this branch, I plan to implement a generic thread pool whose
policies can be controlled by listeners who react to activity in the pool.

This will more-or-less be a C implementation of the thread pool implemented
in Asterisk SCF.

The first victim^W entity to use the thread pool will be the PBX. It currently
allocates a new thread for each new call and tears it down when the call is
completed. Using a thread pool could be useful for systems that have a steady
amount of traffic on them.

This may, just *may*, also find use in the new chan_sip that is being developed.

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

10 years agoMultiple revisions 375993-375994
Mark Michelson [Wed, 7 Nov 2012 19:15:26 +0000 (19:15 +0000)]
Multiple revisions 375993-375994

  r375993 | mmichelson | 2012-11-07 11:01:13 -0600 (Wed, 07 Nov 2012) | 30 lines

  Fix misuses of timeouts throughout the code.

  Prior to this change, a common method for determining if a timeout
  was reached was to call a function such as ast_waitfor_n() and inspect
  the out parameter that told how many milliseconds were left, then use
  that as the input to ast_waitfor_n() on the next go-around.

  The problem with this is that in some cases, submillisecond timeouts
  can occur, resulting in the out parameter not decreasing any. When this
  happens thousands of times, the result is that the timeout takes much
  longer than intended to be reached. As an example, I had a situation where
  a 3 second timeout took multiple days to finally end since most wakeups
  from ast_waitfor_n() were under a millisecond.

  This patch seeks to fix this pattern throughout the code. Now we log the
  time when an operation began and find the difference in wall clock time
  between now and when the event started. This means that sub-millisecond timeouts
  now cannot play havoc when trying to determine if something has timed out.

  Part of this fix also includes changing the function ast_waitfor() so that it
  is possible for it to return less than zero when a negative timeout is given
  to it. This makes it actually possible to detect errors in ast_waitfor() when
  there is no timeout.

  (closes issue ASTERISK-20414)
  reported by David M. Lee

  r375994 | mmichelson | 2012-11-07 11:08:44 -0600 (Wed, 07 Nov 2012) | 3 lines

  Remove some debugging that accidentally made it in the last commit.

Merged revisions 375993-375994 from

Merged revisions 375995 from

Merged revisions 376014 from

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

10 years agoFix stuck DTMF when bridge is broken.
Richard Mudgett [Tue, 6 Nov 2012 19:05:11 +0000 (19:05 +0000)]
Fix stuck DTMF when bridge is broken.

When a bridge is broken by an AMI Redirect action or the ChannelRedirect
application, an in progress DTMF digit could be stuck sending forever.

* Made simulate a DTMF end event when a bridge is broken and a DTMF digit
was in progress.

(closes issue ASTERISK-20492)
Reported by: Jeremiah Gowdy
      bridge_end_dtmf-v3.patch.txt (license #6358) patch uploaded by Jeremiah Gowdy
      Modified to jira_asterisk_20492_v1.8.patch
      jira_asterisk_20492_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett


Merged revisions 375964 from

Merged revisions 375965 from

Merged revisions 375966 from

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

10 years agoFix a bug where our Motif ICE candidates were not quite proper, and make us more...
Joshua Colp [Tue, 6 Nov 2012 12:15:31 +0000 (12:15 +0000)]
Fix a bug where our Motif ICE candidates were not quite proper, and make us more forgiving.

An issue was reported on the mailing list where calling would result in an "Incomplete
ICE-UDP candidate received on session" error message. This is the result of the ICE-UDP
candidate code not placing a "network" attribute within the candidates. This is now done.
To increase compatibility though I have removed the requirement for the "network" attribute
to exist within ICE-UDP candidates that are received since we don't actually require the

Reported on the mailing list by Jean-Denis Girard.

Merged revisions 375925 from

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

10 years agoRefactor ast_timer_ack to return an error and handle the error in timer users
Matthew Jordan [Mon, 5 Nov 2012 23:10:14 +0000 (23:10 +0000)]
Refactor ast_timer_ack to return an error and handle the error in timer users

Currently, if an acknowledgement of a timer fails Asterisk will not realize
that a serious error occurred and will continue attempting to use the timer's
file descriptor.  This can lead to situations where errors stream to the
CLI/log file.  This consumes significant resources, masks the actual problem
that occurred (whatever caused the timer to fail in the first place), and
can leave channels in odd states.

This patch propagates the errors in the timing resource modules up through
the timer core, and makes users of these timers handle acknowledgement
failures.  It also adds some defensive coding around the use of timers
to prevent using bad file descriptors in off nominal code paths.

Note that the patch created by the issue reporter was modified slightly for
this commit and backported to 1.8, as it was originally written for
Asterisk 10.


(issue ASTERISK-20032)
Reported by: Jeremiah Gowdy
  jgowdy-timerfd-6-22-2012.diff uploaded by Jeremiah Gowdy (license 6358)

Merged revisions 375893 from

Merged revisions 375894 from

Merged revisions 375895 from

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

10 years agoAdd safety NULL pointer check in module user references.
Richard Mudgett [Mon, 5 Nov 2012 21:42:49 +0000 (21:42 +0000)]
Add safety NULL pointer check in module user references.

Made __ast_module_user_remove() check for NULL pointers.

Merged revision 375860 from C.3

Merged revisions 375862 from

Merged revisions 375863 from

Merged revisions 375864 from

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

10 years agochan_sip: Document a change to user-field encoding introduced with r303509
Jonathan Rose [Mon, 5 Nov 2012 18:00:39 +0000 (18:00 +0000)]
chan_sip: Document a change to user-field encoding introduced with r303509

The change in question was added to improve compliance with RFC3261, but at
the time of commit, it wasn't adequately documented in the UPGRADE notes.

(closes issue ASTERISK-20561)
Reported by: Deniz

Merged revisions 375846 from

Merged revisions 375847 from

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

10 years agoDon't attempt to purge sessions when no sessions exist
Matthew Jordan [Sun, 4 Nov 2012 03:10:21 +0000 (03:10 +0000)]
Don't attempt to purge sessions when no sessions exist

Manager's tcp/tls objects have a periodic function that purge old manager
sessions periodically.  During shutdown, the underlying container holding
those sessions can be disposed of and set to NULL before the tcp/tls periodic
function is stopped.  If the periodic function fires, it will attempt to
iterate over a NULL container.

This patch checks for whether or not the sessions container exists before
attempting to purge sessions out of it.  If the sessions container is NULL,
we simply return.

Note that this error was also caught by the Asterisk Test Suite.

Merged revisions 375800 from

Merged revisions 375801 from

Merged revisions 375802 from

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

10 years agoOnly deref a reserved gateway session if we actually reserved one
Matthew Jordan [Sun, 4 Nov 2012 02:44:35 +0000 (02:44 +0000)]
Only deref a reserved gateway session if we actually reserved one

Its perfectly acceptable to have a gateway session unreserved when we go to
first allocate one.  Unreffing the reserved gateway session - when its NULL -
will result in an assertion error.

This problem was caught by the Asterisk Test Suite (once we had enough of the
debugging flags enabled)

Merged revisions 375797 from

Merged revisions 375798 from

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

10 years agoProperly clean up manager resources on exit
Matthew Jordan [Sun, 4 Nov 2012 02:38:19 +0000 (02:38 +0000)]
Properly clean up manager resources on exit

This patch does two things:
1) It properly unregisters the manager CLI commands
2) It cleans up AMI users on exit.  Prior to this patch, the AMI users
   were not being disposed of properly, resulting in a memory leak.

(closes issue ASTERISK-20646)
Reported by: Corey Farrell
  manager_shutdown.patch uploaded by Corey Farrell (license 5909)

Merged revisions 375793 from

Merged revisions 375794 from

Merged revisions 375795 from

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

10 years agoProperly finalize prepared SQLite3 statements to prevent memory leak
Matthew Jordan [Sun, 4 Nov 2012 01:19:43 +0000 (01:19 +0000)]
Properly finalize prepared SQLite3 statements to prevent memory leak

The AstDB uses prepared SQLite3 statements to retrieve data from the SQLite3
database.  These statements should be finalized during Asterisk shutdown so
that the SQLite3 database can be properly closed.  Failure to finalize the
statements results in a memory leak and a failure when closing the database.

This patch fixes those issues by ensuring that all prepared statements are
properly finalized at shutdown.

(closes issue ASTERISK-20647)
Reported by: Corey Farrell
  astdb-sqlite3_close.patch uploaded by Corey Farrell (license 5909)

Merged revisions 375761 from

Merged revisions 375763 from

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

10 years agoFix memory leaks in XML documentation
Matthew Jordan [Sun, 4 Nov 2012 00:48:24 +0000 (00:48 +0000)]
Fix memory leaks in XML documentation

This patch fixes two memory leaks:
1) When building XML documentation items, the 'name' attribute was extracted
   from XML elements but not properly freed after being copied into the item
   being built.
2) When unloading XML documentation, the doctree container objects were not
   properly freed.

This patch corrects these memory leaks.  Note that this patch was modified
slightly for this commmit, as the case where the 'name' attribute doesn't
exist also wasn't handled in the item construction.  This patch also checks
for that attribute not existing.

(closes issue ASTERISK-20648)
Reported by: Corey Farrell
Tested by: mjordan
  xmldoc-memory_leak.patch uploaded by Corey Farrell (license 5909)

Merged revisions 375756 from

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

10 years agoPrevent multiple CDR batches from conflicting when scheduling the CDR write
Matthew Jordan [Sun, 4 Nov 2012 00:02:06 +0000 (00:02 +0000)]
Prevent multiple CDR batches from conflicting when scheduling the CDR write

The Asterisk Test Suite caught an error condition where a scheduled CDR batch
write can be deleted twice if two channels attempt to post their CDRs at the
same time.  The batch CDR mutex is locked while the CDRs are appended to the
current batch list; however, it is unlocked prior to actually scheduling the
CDR write.  As such, two threads can attempt to remove the currently scheduled
batch write at the same time, resulting in an assertion error.

This patch extends the time that the mutex is locked to encompass actually
scheduling the write.  This prevents two threads from unscheduling the
currently scheduled write at the same time.

Merged revisions 375727 from

Merged revisions 375728 from

Merged revisions 375729 from

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

10 years agoBlocked revisions 375702
Andrew Latham [Sat, 3 Nov 2012 03:21:44 +0000 (03:21 +0000)]
Blocked revisions 375702

Doxygen Updates

Replace links to missing text files removed in the 1.6.x series with links to the wiki.  Doxygen can handle URLs fine, don't atempt to quote them.  Also update the wiki link in the Readme to get everyone on the same page.

(issue ASTERISK-20259)

Merged revisions 375698 from

Merged revisions 375699 from

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

10 years agoFix for chan_skinny leaving RTP ports open
Damien Wedhorn [Fri, 2 Nov 2012 21:03:56 +0000 (21:03 +0000)]
Fix for chan_skinny leaving RTP ports open

Skinny wasn't closing RTP sockets. This patch includes ast_rtp_instance_stop before
ast_rtp_instance_destroy which fixes the problem. Also add destroy for VRTP (which
I believe is unused, but exists).


Merged revisions 375660 from

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

10 years agoThings don't need to be that const.
Richard Mudgett [Fri, 2 Nov 2012 21:01:33 +0000 (21:01 +0000)]
Things don't need to be that const.

Merged revisions 375658 from

Merged revisions 375659 from

Merged revisions 375661 from

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

10 years agoMultiple revisions 375519-375524
Richard Mudgett [Fri, 2 Nov 2012 18:46:58 +0000 (18:46 +0000)]
Multiple revisions 375519-375524

  r375519 | rmudgett | 2012-10-30 16:06:15 -0500 (Tue, 30 Oct 2012) | 11 lines

  chan_misdn: Timer primitives must be handled first.

  The frm->addr is a different "address space" than the stack/instance
  address of other Lx primitives.  The test for B channel instance address
  could fail.

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

  JIRA ABE-2888

  r375520 | rmudgett | 2012-10-30 16:14:58 -0500 (Tue, 30 Oct 2012) | 10 lines

  chan_misdn: Free memory in error paths and other memory leaks.

  The one line commented with BUG is not easily fixable because there is no
  de-init function one can call.

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

  JIRA ABE-2888

  r375521 | rmudgett | 2012-10-30 16:38:41 -0500 (Tue, 30 Oct 2012) | 14 lines

  chan_misdn: ISDN NT L2 de-establish/establish

  * An NT-PTMP cannot de/establish L2 since it doesn't know the TEIs.
  * On NT-PTP L2 is started when L1 is finally active in handle_l1.
  * L2 deactivation logging cleanup.
  * L2 aggregate link status is unknown for NT-PTMP, show as "UNKN".
  * Removed unused functions and code for L2 handling.

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

  JIRA ABE-2888

  r375522 | rmudgett | 2012-10-30 16:56:14 -0500 (Tue, 30 Oct 2012) | 22 lines

  chan_misdn: Fix broken upper_id/lower_id usage.

  Sending PH prim via lower_id layer (3 or 1) simply does not work.  For TE
  (3) it returns an error (len=-6) which is not evaluated by handle_l1(), so
  the L1 layer status ends up wrong.  Instead PH must be sent via L4, only
  then does it reach L1 without an error message.

  And NT PH prims only reach L1 when they are sent to layer 2 id.
  --> use upper_id to send PH primitives.

  * Check for errors in PH_(DE)ACTIVATE | CONFIRM.
  * Debug messages are improved.

  * The lower_id is now not used for anything, except: Why is lower_id layer
  deleted when it wasn't created?  I removed this code since it looks very

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

  JIRA ABE-2888

  r375523 | rmudgett | 2012-10-30 17:29:15 -0500 (Tue, 30 Oct 2012) | 31 lines

  chan_misdn: Fix loss of B channels if L1 is down.

  If you make 2 calls out an NT PTMP port which is not connected to any
  phone, the B channel associated with that call becomes unusable until
  Asterisk is restarted.

  The problem is the EVENT_SETUP is queued when L1 is not up in
  misdn_lib_send_event().  If L1 cannot be activated the event won't be
  dequeued.  It gets even worse when the call is hung up.  The queued
  EVENT_SETUP will be overwritten by an EVENT_DISCONNECT.  The reserved B
  channel then will never be freed.  If later someone connects a phone to
  the port, L1 will eventually activate and the queued EVENT_DISCONNECT is
  sent down the stack.  However, it is ignored because it is the wrong call

  The real fix would be that activation and queueing for a new SETUP is done
  by the NT stack.  But since it doesn't, the workaround must be removed
  because it doesn't always work.

  Fix: The event is no longer queued but immediately sent to the stack.  If
  L1 cannot be activated, the L3 state machine that was started by the
  EVENT_SETUP will do its work, i.e.  a timeout will release the B channel
  properly.  The SETUP possibly cannot be sent the first time but is resent
  by T303 in case L1 could be activated.

patch05_bchan-loss.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2888

  r375524 | rmudgett | 2012-10-30 18:26:05 -0500 (Tue, 30 Oct 2012) | 13 lines

  chan_misdn: Remove some calls to exit().

  Try proper cleanup when something goes wrong in misdn_lib_init().
  Especially do not call exit()!

  * Fix memory leak because stack_destroy() does not free the stack struct.

patch06_cleanup-init.diff (license #6372) patch uploaded by Guenther Kelleter

  JIRA ABE-2888

Merged revisions 375519-375524 from

Merged revisions 375625 from

Merged revisions 375626 from

Merged revisions 375627 from

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

10 years agoFix Wrong Result In Debug Message For SDP Origin Processing
Michael L. Young [Fri, 2 Nov 2012 17:27:24 +0000 (17:27 +0000)]
Fix Wrong Result In Debug Message For SDP Origin Processing

While looking at some debug logs, I noticed that it was being reported that the
SDP origin line was unsupported or failed.  Upon looking into this on my local
machine, I found that I too was getting this debug message yet everything seemed
to be getting processed properly.  What was discovered is, that, the variable to
determine what is displayed in the debug message for the SDP line that was
processed, was not being set for the origin line when the result was successful.

This patch fixes this and was tested on local machine.

Merged revisions 375594 from

Merged revisions 375601 from

Merged revisions 375613 from

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

10 years agochan_sip: Fix a bug causing SIP reloads to remove all entries from the registry
Jonathan Rose [Thu, 1 Nov 2012 15:03:04 +0000 (15:03 +0000)]
chan_sip: Fix a bug causing SIP reloads to remove all entries from the registry

A regression was introduced in chan_sip by changes to sip reload introduced by
r349097. That patch moved peer purging from the beginning of the reload to
after the general configuration was finished. This patch fixes that by undoing
the repositioning of the original peer purging code and using a similar
function after performing general configuration that purges only autocreated
peers that were created when persist mode isn't enabled.

(closes issue ASTERISK-20611)
Reported by: Alisher

Merged revisions 375575 from

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

10 years agoFix an issue with res_http_websocket where the chan_sip WebSocket handler could not...
Joshua Colp [Wed, 31 Oct 2012 18:01:09 +0000 (18:01 +0000)]
Fix an issue with res_http_websocket where the chan_sip WebSocket handler could not be registered.

On some systems the optional API support uses the GCC compiler attribute "weakref" to provide its
functionality. This code changes the function names and prefixes "__" to the front. The
res_http_websocket exports file did not take this into account, thereby not allowing those functions
to be global and ultimately found.

(closes issue ASTERISK-20631)
Reported by: danjenkins

Merged revisions 375559 from

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

10 years agoProperly extract the Body information of an EWS calendar item
Matthew Jordan [Wed, 31 Oct 2012 14:58:44 +0000 (14:58 +0000)]
Properly extract the Body information of an EWS calendar item

Unlike all other calendar modules, res_calendar_ews fails to extract the Body
information for a calendar item.  This is due, in part, to a quirk in the
schema in the XML - not only does a CalendarItem contain a Body element, but
the CalendarItem exists as a descendant of a different Body element.  The neon
parser was erroneously skipping all Body elements.

This patch fixes that by bypassing Body elements that are not a child of
CalendarItem, and parsing the Body element out if it is a child.

Note that the original patch by Terry Wilson only needed slight modifications
to make it properly pull the Body information out; as such, while I've linked
to the patch that I uploaded for Dmitry, I've attributed the patch to Terry.

(closes issue ASTERISK-19738)
Reported by: Dmitry Burilov
Tested by: Dmitry Burilov
  calendar_ews_body_2012_10_29.diff uploaded by Terry Wilson (license 6283)

Merged revisions 375528 from

Merged revisions 375531 from

Merged revisions 375532 from

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

10 years agoFix ConfBridge crash if no timing module loaded.
Richard Mudgett [Tue, 30 Oct 2012 19:31:02 +0000 (19:31 +0000)]
Fix ConfBridge crash if no timing module loaded.

(closes issue ASTERISK-19448)
Reported by: feyfre
      smfix.patch (license #6099) patch uploaded by feyfre
      Modified for coding guidelines.

Merged revisions 375496 from

Merged revisions 375506 from

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

10 years agomixmonitor: Add a test event
Jonathan Rose [Tue, 30 Oct 2012 19:20:33 +0000 (19:20 +0000)]
mixmonitor: Add a test event

This test event is being used to fix the  mixmonitor_audiohook_inherit

Merged revisions 375484 from

Merged revisions 375485 from

Merged revisions 375486 from

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

10 years agoconfbridge: Fix a bug which made conferences not record with AMI/CLI commands
Jonathan Rose [Tue, 30 Oct 2012 15:10:38 +0000 (15:10 +0000)]
confbridge: Fix a bug which made conferences not record with AMI/CLI commands

When confbridge was changed to handle conference status with a state machine in
r374658. The function responsible for starting recording for a conference was
refactored with the function actually responsible for launching the recording
thread being split into a function with another name. The old function name was
still used for manually started recordings through AMI or CLI. This patch fixes
that by switching which function is used to start recording the conference.

(closes issue ASTERISK-20601)
Reported by: Vilius
    confbridge_mixmonitor.diff uploaded by Jonathan Rose (license 6182)

Merged revisions 375470 from

Merged revisions 375471 from

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

10 years agoPrevent resetting of NATted realtime peer address on reload.
Mark Michelson [Mon, 29 Oct 2012 21:38:40 +0000 (21:38 +0000)]
Prevent resetting of NATted realtime peer address on reload.

If a "sip reload" is issued for a SIP peer, then his
IP address will be cleared, thus resulting in forgetting the
public IP address. Asterisk will then attempt to route SIP
traffic to the private IP address.

The fix here is to make "sip reload" ignore realtime peers
when "host = dynamic" is spotted. Realtime peers can now only
have their IP address reset if they have gone from being not
dynamic to being dynamic.

(closes issue ASTERISK-18203)
reported by daren ferreira

(closes issue ASTERISK-20572)
reported by JoshE
fix_nat_realtime.diff uploaded by JoshE (license #6075)

Merged revisions 375415 from

Merged revisions 375417 from

Merged revisions 375437 from

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

10 years agoMake evaluation of channel variables consistently case-sensitive.
Mark Michelson [Mon, 29 Oct 2012 21:27:09 +0000 (21:27 +0000)]
Make evaluation of channel variables consistently case-sensitive.

Due to inconsistencies in how variable names were evaluated, the
decision was made to make all evaluations case-sensitive. See the
UPGRADE.txt file or
for more details.

(closes issue ASTERISK-20163)
reported by Matt Jordan


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

10 years agoEnsure that CDRs for a caller in a Queue that is not answered is NO ANSWER.
Matthew Jordan [Mon, 29 Oct 2012 21:02:20 +0000 (21:02 +0000)]
Ensure that CDRs for a caller in a Queue that is not answered is NO ANSWER.

When a caller enters a queue and no queue member answers the call, the current
behaviour can be a little odd depending on the paused status of the queue
members.  If any queue member is paused, but not all, the CDR disposition
will be BUSY.  If all queue members are paused, then the CDR disposition is
based instead on the disposition of the call prior to entering the Queue.

This patch modifies the behaviour in the following ways:
* If no queue members are paused, the CDR disposition is whatever the
  disposition was prior to going into Queue.  If the call was answered this
  will be ANSWERED; otherwise, it is NO ANSWER.
* If some queue members are pused, the CDR result is NO ANSWER. (This is a
  change in behaviour, as the result would previously have been BUSY)
* If all queue members are paused, the CDR result is whatever the result was
  prior to going into Queue.  This is the same as the behaviour prior to this
* If the caller hangs up, times out, or presses '*' with the 'h' option, the
  CDR disposition is again not set and is dependent on whether or not the
  caller was Answered prior to entering Queue.

This patch was based on one provided by Thomas Arimont, but has been modified
to accomodate findings by the reviewers.


(closes issue AST-906)
Reported by: Thomas Arimont

(closes issue ASTERISK-17776)
Reported by: Attila Megyeri

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

10 years agoFix the Park 'r' option when a channel parks itself.
Richard Mudgett [Mon, 29 Oct 2012 19:31:36 +0000 (19:31 +0000)]
Fix the Park 'r' option when a channel parks itself.

When a channel uses the Park appliation to park itself with the 'r'
option, the channel hears music-on-hold instead of the requested ringing.

* Added a missing check for the 'r' option when a channel parks itself.

(closes issue ASTERISK-19382)
Reported by: James Stocks
Patches by: dsessions


Merged revisions 375388 from

Merged revisions 375389 from

Merged revisions 375390 from

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

10 years agochan_dahdi: Fix segfault dereferencing a NULL tech_pvt.
Richard Mudgett [Mon, 29 Oct 2012 15:56:13 +0000 (15:56 +0000)]
chan_dahdi: Fix segfault dereferencing a NULL tech_pvt.

The tech support customer was using the AMI Redirect action shortly after
a call was placed.  While the channel tried to do an ast_read(), the
masquerade resulting from the channel redirect took place.  The masquerade
in the middle of the ast_read() resulted in the segfault.

(closes issue AST-1025)
Reported by: Trey Blancher
      jira_ast_1025_v1.8_v2.patch (license #5621) patch uploaded by rmudgett

Merged revisions 375361 from

Merged revisions 375362 from

Merged revisions 375363 from

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

10 years agoast_tls_cert script: Better response for various exit conditions to openssl
Jonathan Rose [Tue, 23 Oct 2012 16:22:44 +0000 (16:22 +0000)]
ast_tls_cert script: Better response for various exit conditions to openssl

(closes issue ASTERISK-20260)
Reported by: Daniel O'Connor
ast_tls_cert-update.diff uploaded by Daniel O'Connor (license 6419)

Merged revisions 375325 from

Merged revisions 375326 from

Merged revisions 375327 from

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

10 years agocore: Fix a memory leak in app.c from an early return
Jonathan Rose [Mon, 22 Oct 2012 20:19:51 +0000 (20:19 +0000)]
core: Fix a memory leak in app.c from an early return

ast_app_group_match_get_count allocates memory with the regcomp
function and we previously forgot to free it when bailing out
due to a regex compilation failure against category.

(closes issue AST-1018)
Reported by: Guenther Kelleter
regcomp_memleak.diff uploaded by Guenther Kelleter (license 6372)

Merged revisions 375299 from

Merged revisions 375300 from

Merged revisions 375301 from

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

10 years agoGSM: Fix encoding problems with GSM
Jonathan Rose [Mon, 22 Oct 2012 17:31:20 +0000 (17:31 +0000)]
GSM: Fix encoding problems with GSM

(closes issue ASTERISK-20457)
Reported by: Richard Miller
code.patch uploaded by Richard Miller (license 5685)

Merged revisions 375272 from

Merged revisions 375273 from

Merged revisions 375288 from

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

10 years agoapp_queue: add upgrade notes for 375216
Jonathan Rose [Thu, 18 Oct 2012 21:49:24 +0000 (21:49 +0000)]
app_queue: add upgrade notes for 375216

Adds UPGRADE notes describing behavioral changes to rrmemory strategy caused by

(issue AST-989)
Reported by: Thomas Arimont

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

10 years agoBlocked revisions 375247
Jonathan Rose [Thu, 18 Oct 2012 21:47:46 +0000 (21:47 +0000)]
Blocked revisions 375247

pp_queue: add upgrade notes for 375216

Adds UPGRADE notes describing behavioral changes to rrmemory strategy caused by

(issue AST-989)
Reported by: Thomas Arimont

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

10 years agoapp_queue: Make ordering of rrmemory/rrordered persist over add/remove members
Jonathan Rose [Thu, 18 Oct 2012 21:25:22 +0000 (21:25 +0000)]
app_queue: Make ordering of rrmemory/rrordered persist over add/remove members

Prior to this patch, adding, removing or reloading  members to rrmemory would
cause the order to become completely jumbled. Now it behaves more or less like
rrordered other than the fact that it stores the members on a hash table rather
than a linked list. This patch also prevents removal of members and member
reloads from jumbling rrordered queues.

(issue AST-989)
Reported by: Thomas Arimont

Merged revisions 375216 from

Merged revisions 375217 from

Merged revisions 375219 from

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

10 years agoFix XML Document Validation Failure
Michael L. Young [Thu, 18 Oct 2012 20:31:05 +0000 (20:31 +0000)]
Fix XML Document Validation Failure

Fix documentation error when validating the xml in trunk caused by r375150.
Moved the description end tag down to below the variablelist element end tag.

Found when compiling with --dev-mode-enabled.

(issue ASTERISK-20289)

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

10 years agobuild_tools: Allow Asterisk to report git SHAs in version string.
Richard Mudgett [Thu, 18 Oct 2012 20:13:17 +0000 (20:13 +0000)]
build_tools: Allow Asterisk to report git SHAs in version string.

Make git more attractive for managing work-in-progress.  Especially
convenient when a potential patch set needs to be tested on multiple
platforms since one can use git to keep all the test environments in sync
independent of a subversion server.

Now the Asterisk version will show the exact git SHA5 that was used when
building (still appended by "M" if there are local modifications) from a
git clone of the Asterisk repository so the developer can more easily know
what is actually under test.

You will now get this:

  $ asterisk -V
  Asterisk GIT-1698298

Instead of this:

  $ asterisk -V
  Asterisk UNKNOWN__and_probably_unsupported

This has zero impact for those not using git with the exception of an
extra test in the configure script to gather git's path.  This is
necessary to prevent "sudo make install" from failing since git may not be
in the path in make's shell environment.

(closes issue ASTERISK-20483)
Reported by: Shaun Ruffell
      0001-build_tools-Allow-Asterisk-to-report-git-SHAs-in-ver.patch (license #5417) patch uploaded by Shaun Ruffell

Merged revisions 375189 from

Merged revisions 375190 from

Merged revisions 375191 from

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

10 years agoDoxygen Updates - Title update
Andrew Latham [Thu, 18 Oct 2012 14:17:40 +0000 (14:17 +0000)]
Doxygen Updates - Title update

Update and extend the configuration_file group and enable linking. Commit other cleanups from multi-version Doxygen testing.  Update title that was left behind many years ago.

(issue ASTERISK-20259)

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

10 years agomanager: remove curses dependent stuff from r375103
Jonathan Rose [Wed, 17 Oct 2012 20:34:40 +0000 (20:34 +0000)]
manager: remove curses dependent stuff from r375103

Upon further examination, this code was causing compliation problems on
CentOS at the least (possibly on any machine without curses) and also
the local value of COLS is used even with a remote console, so it is
less than ideal.

(issue ASTERISK-20396)
Reported by: Johan Wilfer

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

10 years agoAdds new formats to app_alarmreceiver, ALAW calls support and enhanced protection.
Pedro Kiefer [Wed, 17 Oct 2012 19:02:46 +0000 (19:02 +0000)]
Adds new formats to app_alarmreceiver, ALAW calls support and enhanced protection.

Commiting this on behalf of Kaloyan Kovachev (license 5506).
AlarmReceiver now supports the following DTMF signaling types:
 - ContactId
 - 4x1
 - 4x2
 - High Speed
 - Super Fast
We are also auto-detecting which signaling is being received. So support for
those protocols should work out-the-box. Correctly identify ALAW / ULAW calls.
Some enhanced protection for broken panels and malicious callers where added.

(closes issue ASTERISK-20289)
Reported by: Kaloyan Kovachev


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

10 years agoEnsure Asterisk fails TCP/TLS SIP calls when certificate checking fails
Kinsey Moore [Wed, 17 Oct 2012 19:01:27 +0000 (19:01 +0000)]
Ensure Asterisk fails TCP/TLS SIP calls when certificate checking fails

When placing a call to a TCP/TLS SIP endpoint whose certificate is not
signed by a configured CA certificate, Asterisk would issue a warning
and continue to process the call as if there was not an issue with the
certificate.  Asterisk now properly fails the call if the certificate
fails verification or if the certificate does not exist when
certificate checking is enabled (the default behavior).

(closes issue ASTERISK-20559)
Reported by: kmoore


Merged revisions 375146 from

Merged revisions 375147 from

Merged revisions 375148 from

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

10 years agoChange a few warnings to debug and the inverse.
Walter Doekes [Wed, 17 Oct 2012 14:24:52 +0000 (14:24 +0000)]
Change a few warnings to debug and the inverse.

Remove the "RTP Read too short" warning for RTP keepalives. Remove the
the warning about the application delimiter switch from pipe to comma.
(You should've done this by now.) Make cdr_odbc report more when an
insert fails. Make chan_sip warn less when the peer wants SRTP (and we
don't) or sends a zero port to disable a media type.

(closes issue ASTERISK-20538)

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

10 years agoFixes to the fd-oriented SIP TCP reads.
Walter Doekes [Tue, 16 Oct 2012 21:46:09 +0000 (21:46 +0000)]
Fixes to the fd-oriented SIP TCP reads.

Don't crash on large user input. Allow SIP headers without space.
Optimize code a bit.


Merged revisions 375111 from

Merged revisions 375112 from

Merged revisions 375113 from

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

10 years agoDon't do SIP contact/route DNS if we're not using the result.
Walter Doekes [Tue, 16 Oct 2012 21:38:00 +0000 (21:38 +0000)]
Don't do SIP contact/route DNS if we're not using the result.

In many cases (for peers behind NAT or for TCP sockets) we do not need
to look up any hostname in the Contact (or Route) when sending an
in-dialog request. This should reduce netsock2.c: getaddrinfo errors in
certain scenarios.


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

10 years agomanager: Change display of 'manager show commands' and 'manager show command'
Jonathan Rose [Tue, 16 Oct 2012 20:45:49 +0000 (20:45 +0000)]
manager: Change display of 'manager show commands' and 'manager show command'

manager show commands now shows the full name of the command being displayed
regardless of size. The privilege column has also been removed from this
display. It will also now use the full length of the terminal if curses is
available. Manager show command will now always display the privilege of
the manager command within the CLI.

(closes ASTERISK-20396)
Reported by: Johan Wilfer

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

10 years agoFixes two small regressions from ASTERISK-20157
Pedro Kiefer [Tue, 16 Oct 2012 19:26:20 +0000 (19:26 +0000)]
Fixes two small regressions from ASTERISK-20157

- receive_dtmf_digits had the wrong buffer length
- app_alarmreceiver should wait 100ms before sending the second part of handshake

(closes issue ASTERISK-20484)
Reported by: Jean-Philippe Lord
Tested by: Jean-Philippe Lord, Pedro Kiefer
     ASTERISK-20484_v2.diff uploaded by Kaloyan Kovachev (license 5506)

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

10 years agoUpdate sip_request_call SIP dial string documentation.
Walter Doekes [Tue, 16 Oct 2012 19:25:11 +0000 (19:25 +0000)]
Update sip_request_call SIP dial string documentation.

This was missed when merging review r1859.

Merged revisions 375074 from

Merged revisions 375078 from

Merged revisions 375079 from

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

10 years agoRemove a log message that was left in accidentally from call-id logging development.
Joshua Colp [Tue, 16 Oct 2012 14:09:39 +0000 (14:09 +0000)]
Remove a log message that was left in accidentally from call-id logging development.

Merged revisions 375051 from

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

10 years agoFix some potential misuses of ast_str in the code.
Mark Michelson [Mon, 15 Oct 2012 21:25:29 +0000 (21:25 +0000)]
Fix some potential misuses of ast_str in the code.

Passing an ast_str pointer by value that then calls
ast_str_set(), ast_str_set_va(), ast_str_append(), or
ast_str_append_va() can result in the pointer originally
passed by value being invalidated if the ast_str had
to be reallocated.

This fixes places in the code that do this. Only the
example in ccss.c could result in pointer invalidation
though since the other cases use a stack-allocated ast_str
and cannot be reallocated.

I've also updated the doxygen in strings.h to include
notes about potential misuse of the functions mentioned


Merged revisions 375025 from

Merged revisions 375026 from

Merged revisions 375027 from

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

10 years agoFix underscreen buttons warnings apeared while transfer process
Igor Goncharovskiy [Mon, 15 Oct 2012 08:26:58 +0000 (08:26 +0000)]
Fix underscreen buttons warnings apeared while transfer process

Merged revisions 375016 from

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

10 years agoDoxygen Updates
Andrew Latham [Sun, 14 Oct 2012 21:59:22 +0000 (21:59 +0000)]
Doxygen Updates

Update and extend the configuration_file group and enable linking.

(issue ASTERISK-20259)

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

10 years agoDoxygen Updates
Andrew Latham [Sun, 14 Oct 2012 21:57:42 +0000 (21:57 +0000)]
Doxygen Updates

Update and extend the configuration_file group and enable linking.

(issue ASTERISK-20259)

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

10 years agoTitle update
Andrew Latham [Sun, 14 Oct 2012 21:56:13 +0000 (21:56 +0000)]
Title update

Update title that was left behind many years ago. Used revision 6596 as my guide for what it should be.

(issue ASTERISK-20259)

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

10 years agoDoxygen Updates - Title update
Andrew Latham [Sun, 14 Oct 2012 21:47:40 +0000 (21:47 +0000)]
Doxygen Updates - Title update

Update and extend the configuration_file group and enable linking.  Update title that was left behind many years ago.

(issue ASTERISK-20259)

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

10 years agoDoxygen Updates - Title update
Andrew Latham [Sun, 14 Oct 2012 21:46:45 +0000 (21:46 +0000)]
Doxygen Updates - Title update

Update and extend the configuration_file group and enable linking.  Update title that was left behind many years ago.

(issue ASTERISK-20259)

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

10 years agoDoxygen Updates - Title update
Andrew Latham [Sun, 14 Oct 2012 21:45:16 +0000 (21:45 +0000)]
Doxygen Updates - Title update

Update and extend the configuration_file group and enable linking to the application.  Update title that was left behind many years ago.

(issue ASTERISK-20259)

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

10 years agoDoxygen Updates - Title update
Andrew Latham [Sun, 14 Oct 2012 21:44:27 +0000 (21:44 +0000)]
Doxygen Updates - Title update

Update and extend the configuration_file group and enable linking to the resource.  Update title that was left behind many years ago.

(issue ASTERISK-20259)

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

10 years agoUpdate config.guess and config.sub: 2012-10-10
Tzafrir Cohen [Sun, 14 Oct 2012 12:23:46 +0000 (12:23 +0000)]
Update config.guess and config.sub: 2012-10-10

Update config.guess and config.sub to revision
fb456b34ef4aa02b95dc6be69aaa66fa94a844fb from the git
repo. Adds support for e.g. aarch64 (ARM 64bit).


Merged revisions 374977 from

Merged revisions 374991 from

Merged revisions 374995 from

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

10 years agoUpdate CREDITS
Andrew Latham [Sat, 13 Oct 2012 19:58:20 +0000 (19:58 +0000)]

Update Jean-Denis and add myself

(issue ASTERISK-20259)

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

10 years agoMultiplatform Makefile Update
Andrew Latham [Sat, 13 Oct 2012 17:38:41 +0000 (17:38 +0000)]
Multiplatform Makefile Update

Paul Belanger pointed out that using sed in the Makefile is an issue with multiple platforms.  We are cleaning up the Doxygen config as a following step so I just switched the sed inplace changes to be an echo append instead.

(issue ASTERISK-20259)

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

10 years agoDoxygen Clean ups
Andrew Latham [Sat, 13 Oct 2012 16:38:48 +0000 (16:38 +0000)]
Doxygen Clean ups

Add app_skel.c as an example in app.c and fix some formating for the "Dial Privacy scripts" so it actually shows up in the Doxygen output.

(issue ASTERISK-20259)

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

10 years agoTest for Asterisk Version info
Andrew Latham [Sat, 13 Oct 2012 16:05:12 +0000 (16:05 +0000)]
Test for Asterisk Version info

Doxygen uses the ASTERISKVERSION as a sub header. If a SVN export is done and no .svn or .version file exists it defualts to UNKNOWN__and_probably_unsupported which is honest but not great for the online docs.  During the "make progdocs" I added a test for this and just warned and ommitted the version.

(issue ASTERISK-20259)

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

10 years agoCorrect output directory
Andrew Latham [Sat, 13 Oct 2012 15:40:40 +0000 (15:40 +0000)]
Correct output directory

During testing I used an alternate output directory and mistakenly committed it.  Matt Jordan noticed and I reverted.  This is the correct setting for local output to match with all branches.

(issue ASTERISK-20259)

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

10 years agoAdd licens/copyright header
Andrew Latham [Sat, 13 Oct 2012 15:14:51 +0000 (15:14 +0000)]
Add licens/copyright header

Begin update of static-http files and general clean ups.  This only adds the standard header to the files.

(issue ASTERISK-20503)

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

10 years agoAdd check for Doxygen
Andrew Latham [Sat, 13 Oct 2012 15:06:39 +0000 (15:06 +0000)]
Add check for Doxygen

The autoconf configuration system had a test for DOT but not for Doxygen.  I added the test for Doxygen and did an overhaul of the Makefile check to a much simpler process.

(issue ASTERISK-20259)

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

10 years agoAvoid a segfault on invalid format names
Kinsey Moore [Fri, 12 Oct 2012 21:58:29 +0000 (21:58 +0000)]
Avoid a segfault on invalid format names

If a format name was not found by ast_getformatbyname, a NULL pointer
would be passed into ast_format_rate and immediately dereferenced.
This ensures that a valid pointer is used since the structure is
already allocated on the stack.

(closes issue DPH-523)
Reported-by: Steve Pitts

Merged revisions 374932 from

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

10 years agoDo not use a FILE handle when doing SIP TCP reads.
Mark Michelson [Fri, 12 Oct 2012 16:31:01 +0000 (16:31 +0000)]
Do not use a FILE handle when doing SIP TCP reads.

This is used to solve an issue where a poll on a file
descriptor does not necessarily correspond to the readiness
of a FILE handle to be read.

This change makes it so that for TCP connections, we do a
recv() on the file descriptor instead.

Because TCP does not guarantee that an entire message or even
just one single message will arrive during a read, a loop has
been introduced to ensure that we only attempt to handle a
single message at a time. The tcptls_session_instance structure
has also had an overflow buffer added to it so that if more
than one TCP message arrives in one go, there is a place to
throw the excess.

Huge thanks goes out to Walter Doekes for doing extensive review
on this change and finding edge cases where code could fail.

(closes issue ASTERISK-20212)
reported by Phil Ciccone


Merged revisions 374905 from

Merged revisions 374906 from

Merged revisions 374914 from

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

10 years agoAppend Doxygen to Debian packages list
Andrew Latham [Thu, 11 Oct 2012 23:40:44 +0000 (23:40 +0000)]
Append Doxygen to Debian packages list

Add Doxygen to the Debian install list.  I will check for other platforms like Red Hat

(issue ASTERISK-20259)

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

10 years agoUpdate JQuery URL to recent version
Andrew Latham [Thu, 11 Oct 2012 22:43:52 +0000 (22:43 +0000)]
Update JQuery URL to recent version

The JQuery URL to version 1.4 will be removed within the life span of Asterisk 11.  This is a compatible upgrade by using the URL for 1.8.

(issue ASTERISK-20503)

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

10 years agoContinue to group config files
Andrew Latham [Thu, 11 Oct 2012 22:39:02 +0000 (22:39 +0000)]
Continue to group config files

(issue ASTERISK-20259)

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

10 years agoCREDITS clean up
Andrew Latham [Thu, 11 Oct 2012 22:35:41 +0000 (22:35 +0000)]
CREDITS clean up

As discussed online the credits file needs some cleaning.  This is 95% whitespace with a few additions found in file headers.  Further additions should be added here instead of in the file being updated.

(issue ASTERISK-20259)

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

10 years agoRevert Local testing Config
Andrew Latham [Thu, 11 Oct 2012 21:40:02 +0000 (21:40 +0000)]
Revert Local testing Config

Revert a local testing config that I made.  This was not intended to be committed.
Thank you Matt Jordan for noticing this.

(issue ASTERISK-20259)

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

10 years agoFix a bug where audio on Google Voice would not work due to ignoring candidates.
Joshua Colp [Thu, 11 Oct 2012 21:19:33 +0000 (21:19 +0000)]
Fix a bug where audio on Google Voice would not work due to ignoring candidates.

Instead of ignoring parts of the message that are not known just ignore the ones
we know may be present and that would cause a problem.

Merged revisions 374877 from

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

10 years agoFix an issue where outgoing calls would fail to establish audio due to ICE negotiatio...
Joshua Colp [Thu, 11 Oct 2012 16:06:28 +0000 (16:06 +0000)]
Fix an issue where outgoing calls would fail to establish audio due to ICE negotiation failures.

This change removes the requirement for ufrag and pwd in the transport stanza and also
makes us the controlling agent.

(closes issue ASTERISK-20554)
Reported by: mmichelson


Merged revisions 374850 from

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

10 years agoDon't make chan_sip export global symbols.
Mark Michelson [Thu, 11 Oct 2012 15:49:02 +0000 (15:49 +0000)]
Don't make chan_sip export global symbols.

During testing, it was discovered that having chan_sip
export global symbols was problematic.

The biggest problem was that load order was affected.
Trying to use realtime could be problematic since in
all likelihood the necessary realtime driver(s) would
not be loaded before chan_sip.

In addition, it was found that it was impossible to
use the Digium Phone Module for Asterisk since it
must be loaded before chan_sip since it must hook
into chan_sip's configuration parsing.

The solution is to use a virtual table in the same
manner that other modules in Asterisk do, like

(closes issue ASTERISK-20545)
Reported by: kmoore


Merged revisions 374842 from

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

10 years agoFix incorrect billing duration reported when batch mode is enabled
Matthew Jordan [Thu, 11 Oct 2012 15:44:38 +0000 (15:44 +0000)]
Fix incorrect billing duration reported when batch mode is enabled

Similar to r369351, the billing duration can be skewed when batch mode is
enabled.  This happened much more rarely than the duration, as it only
occured when the call was answered (thereby indicating an actual answer
time) and immediately hung up on (indicating a billsec of 0).  Since
a billing time of '0' can either mean that the call immediately ended
or that the CDR was improperly answered, we have to use additional information
to know whether or not we can trust the CDR billsec value.  Prior to this
patch, we looked to see if we had a valid answer time.  If we did, and
billsec was zero, we used the current time to calculate what billsec value
we could from the CDR being written.  If batch mode is enabled, this will
incorrectly report a billsec value being much greater than the actual
duration of the call.

Instead of relying on the presence of an answer time to know whether or not
we can re-calculate the billsec for the CDR, we now also use the presence
of the CDR's end time to know if we need to re-calculate or whether we can
trust the billsec value that we have.  This prevents erroneous jumps in the
billsec value, while still making sure that in the worst case, some billing
time will be calculated.

(closes issue AST-1016)
Reported by: Thomas Arimont
Tested by: Thomas Arimont

Merged revisions 374843 from

Merged revisions 374844 from

Merged revisions 374845 from

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

10 years agoConsider the Google Talk content stanza name (jin:content) valid.
Joshua Colp [Thu, 11 Oct 2012 13:34:52 +0000 (13:34 +0000)]
Consider the Google Talk content stanza name (jin:content) valid.

Merged revisions 374833 from

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

10 years agoapp_queue: Made pass connected line updates from the caller to ringing queue members.
Richard Mudgett [Wed, 10 Oct 2012 21:05:51 +0000 (21:05 +0000)]
app_queue: Made pass connected line updates from the caller to ringing queue members.

Party A calls Party B
Party B puts Party A on hold.
Party B calls a queue.
Ringing queue member D sees Party B identification.
Party B transfers Party A to the queue.
Queue member D does not get a connected line update for Party A.
Queue member D answers the call and still sees Party B information.

However, if Party A later transfers the call to Party C then queue member
D gets a connected line update for Party C.

* Made pass connected line updates from the caller to queue members while
the queue members are ringing.

(closes issue AST-1017)
Reported by: Thomas Arimont

(closes issue ABE-2886)
Reported by: Thomas Arimont
Tested by: rmudgett


Merged revisions 374801 from

Merged revisions 374802 from

Merged revisions 374803 from

Merged revisions 374804 from

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

10 years agoFix segfault regression from r370681
Kinsey Moore [Wed, 10 Oct 2012 13:40:40 +0000 (13:40 +0000)]
Fix segfault regression from r370681

Due to usage of ast_hook_send_action, AMI action handling code should
be able to handle a NULL mansession->session.  This would cause a crash
on NULL dereference if action_originate was called from

(closes issue ASTERISK-20544)

Merged revisions 374792 from

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

10 years agoFix execution of 'i' extension due to uninitialized variable.
Richard Mudgett [Tue, 9 Oct 2012 22:24:10 +0000 (22:24 +0000)]
Fix execution of 'i' extension due to uninitialized variable.

The fix for ASTERISK-18243 added code that could potentially use
dst_exten[] uninitialized.  As a result the 'i' exten may not be executed
when it should.

(closes issue ASTERISK-20455)
Reported by: Richard Miller
      pbx- (license #5685) patch uploaded by Richard Miller
      Made some cosmetic modifications.

Merged revisions 374758 from

Merged revisions 374763 from

Merged revisions 374771 from

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

10 years agoImprove logging for DTLS-SRTP failure situations.
Joshua Colp [Tue, 9 Oct 2012 21:35:53 +0000 (21:35 +0000)]
Improve logging for DTLS-SRTP failure situations.

(closes issue ASTERISK-20487)
Reported by: mjordan

Merged revisions 374756 from

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

10 years agodahdi.conf.sample: Add description for "buffers" setting.
Richard Mudgett [Mon, 8 Oct 2012 22:31:09 +0000 (22:31 +0000)]
dahdi.conf.sample: Add description for "buffers" setting.

This contains an edited version of the patch originally created by John

(closes issue ASTERISK-14435)
Reported by: John Bigelow
      buffers.patch (license #5091) patch uploaded by John Bigelow
      0001-dahdi.conf.sample-Add-description-for-buffers-settin.patch (license #5417) patch uploaded by Shaun Ruffell

Merged revisions 374727 from

Merged revisions 374728 from

Merged revisions 374729 from

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

10 years agoFix deletion of unopenable spool files.
Richard Mudgett [Mon, 8 Oct 2012 21:24:11 +0000 (21:24 +0000)]
Fix deletion of unopenable spool files.

If scan_service() cannot open the spool file, it logs a message saying
that it will delete the file and calls remove_from_queue() to do it.
However, remove_from_queue() fails to delete the spool file because struct
outgoing has not yet been fully initialized.

* Merged allocating a new struct outgoing and init_outgoing() into
new_outgoing().  Allocation is initialization.

* Made apply_outgoing() not initialize the spool filename in struct

* Made apply_outgoing() call ast_trim_blanks() and ast_skip_blanks()
rather than manually inlining them.

* Reduced indentation levels in apply_outgoing().

* Fixed a garbled comment in remove_from_queue().

* Reworked scan_service() to simplify it.

(closes issue ASTERISK-17231)
Reported by: David Chappell
      spool_open_failure.diff (license #4997) patch uploaded by David Chappell
      Started with this patch.

Merged revisions 374686 from

* Fixed some memory leaks on off nominal paths in init_outgoing() when
merging into the new_outgoing() function dealing with o->capabilities.

Merged revisions 374695 from

Merged revisions 374708 from

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

10 years agoDisable ICE support by default
Matthew Jordan [Mon, 8 Oct 2012 20:39:26 +0000 (20:39 +0000)]
Disable ICE support by default

Since there are a number of legacy devices out there that fail to handle ICE
candidates properly (which is a nice way of saying something much uglier),
disable it by default.

Support for ICE candidates can be enabled in rtp.conf using the icesupport

Merged revisions 374676 from

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

10 years agoResolve issues in ConfBridge regarding marked, waitmarked, and unmarked users
Matthew Jordan [Mon, 8 Oct 2012 18:48:34 +0000 (18:48 +0000)]
Resolve issues in ConfBridge regarding marked, waitmarked, and unmarked users

Thank's to Neil Tallim (flan)'s tireless testing, issue reporting, and patches
it became clear that app_confbridge had some complex logic in how it handled
interactions between marked, waitmarked, and unmarked users.  In particular,
there were some areas in which the interactions between the users resulted
in inconsistent behavior, and app_confbridge was missing logic in how to handle
some corner cases.  Some areas included:
 * Poor handling of mixing unmarked and waitmarked users
 * Inconsistencies in how MOH and muting was applied to various users
 * Handling of various announcements for different user profile options
flan's patches seem to fix the various issues, but highlighted how hard the
code could be to maintain.  In an attempt to make things easier to maintain and
to more fully enumerate the various cases that exist, this patch breaks up the
logic into a state machine-like setup.

Please note that the various state transitioned are documented on the Asterisk

Review: //

Note that for the following issues, mjordan uploaded the patch, although it
was written by twilson.  Any contributor license discrepency is due to that.

(closes issue ASTERISK-19562)
Reported by: flan
Tested by: flan, mjordan, jrose
  bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283)

(closes issue ASTERISK-19726)
Reported by: flan
Tested by: flan
  bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283)

(closes issue ASTERISK-20181)
Reported by: Jonathan White
Tested by: Jonathan White
  bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283)

Merged revisions 374652 from

Merged revisions 374657 from

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

10 years agopjproject: Fix for Solaris builds. Do not undef s_addr.
Matthew Jordan [Mon, 8 Oct 2012 00:45:36 +0000 (00:45 +0000)]
pjproject: Fix for Solaris builds. Do not undef s_addr.

pjproject, in order to solve build problems on Windows [1], undefines s_addr in
one of it's headers that is included in res_rtp_asterisk.c. On Solaris s_addr
is not a structure member, but defined to map to the real strucuture member,
therefore when building on Solaris it's possible to get build errors like:

    [CC] res_rtp_asterisk.c -> res_rtp_asterisk.o
    In file included from /export/home/admin/asterisk-11-svn/include/asterisk/stun.h:29,
                     from res_rtp_asterisk.c:51:
    /export/home/admin/asterisk-11-svn/include/asterisk/network.h: In function `inaddrcmp':
    /export/home/admin/asterisk-11-svn/include/asterisk/network.h:92: error: structure has no member named `s_addr'
    /export/home/admin/asterisk-11-svn/include/asterisk/network.h:92: error: structure has no member named `s_addr'
    res_rtp_asterisk.c: In function `ast_rtp_on_ice_tx_pkt':
    res_rtp_asterisk.c:706: warning: dereferencing type-punned pointer will break strict-aliasing rules
    res_rtp_asterisk.c:710: warning: dereferencing type-punned pointer will break strict-aliasing rules
    res_rtp_asterisk.c: In function `rtp_add_candidates_to_ice':
    res_rtp_asterisk.c:1085: error: structure has no member named `s_addr'
    make[2]: *** [res_rtp_asterisk.o] Error 1
    make[1]: *** [res] Error 2
    make[1]: Leaving directory `/export/home/admin/asterisk-11-svn'
    gmake: *** [_cleantest_all] Error 2

Unfortunately, in order to make this work, I also had to make sure pjproject
only used the typdef pj_in_addr and not the struct pj_in_addr so that when
building Asterisk I could "typedef struct in_addr pj_in_addr". It's possible
then that the library and users of those interfaces in Asterisk have a different
idea about the type of the argument, while on the surface it looks like they are
all 32 bit big endian values.


(issues ASTERISK-20366)
Reported by: Ben Klang
Tested by: Ben Klang, mjordan
  0001-pjproject-Fix-for-Solaris-builds.-Do-not-undef-s.patch uploaded by Shaun Ruffell (license 5417)

Merged revisions 374642 from

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

10 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

10 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

10 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

10 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