8 years agoFixup some bridge and format capabilities comments and whitespace.
Richard Mudgett [Mon, 4 Mar 2013 21:15:36 +0000 (21:15 +0000)]
Fixup some bridge and format capabilities comments and whitespace.

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

8 years agoFix comparison of presence state in event subsystem.
Jason Parker [Mon, 4 Mar 2013 21:14:30 +0000 (21:14 +0000)]
Fix comparison of presence state in event subsystem.

Several new IEs were not given types (or names), causing the comparison
function to improperly succeed.  This adds those.

(closes issue AST-1128)

Merged revisions 382390 from

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

8 years agoConfbridge CLI new record file name check.
Kevin Harwell [Mon, 4 Mar 2013 20:18:36 +0000 (20:18 +0000)]
Confbridge CLI new record file name check.

This fix checks to make sure that if a confbridge record start command is issued
from the CLI it will always use the file name given on the CLI even if it
changes between start/stop records for a conference.  Previously it had been
reusing the same file between start/stops even if a new filename was given.

(issue AST-1088)
Reported by: John Bigelow

Merged revisions 382385 from

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

8 years agoAdd support for registering a sorcery handler which supports multiple fields using...
Joshua Colp [Fri, 1 Mar 2013 18:01:56 +0000 (18:01 +0000)]
Add support for registering a sorcery handler which supports multiple fields using a regex.


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

8 years agoFix / Clean Up Some Items To Handle The New auto_* NAT Options
Michael L. Young [Fri, 1 Mar 2013 04:32:01 +0000 (04:32 +0000)]
Fix / Clean Up Some Items To Handle The New auto_* NAT Options

The original report had to do with a realtime peer behind NAT being pruned and
the peer's private address being used instead of its external address.  Upon
debugging, it was discovered that this was being caused by the addition of
the auto_force_rport and auto_comedia settings.

This patch does the following:

* Adds a missing note to the CHANGES file indicating that the default global nat
  setting is auto_force_rport

* Constify the 'req' parameter for check_via()

* Add calls to check_via() in a couple of places in order for the auto_*
  settings to do their job in attempting to determine if NAT is involved

* Set the flags SIP_NAT_FORCE_RPORT and SIP_PAGE2_SYMMETRICRTP if the auto_*
  settings are in use where it was needed

* Moves the copying of peer flags up in build_peer() to before they are used;
  this fixes the realtime prune issue

* Update the contrib/realtime schemas to allow the nat column to handle the
  different nat setting combinations we have

This patch received a review and "Ship It!" on the issue itself.

(closes issue ASTERISK-20904)
Reported by: JoshE
Tested by: JoshE, Michael L. Young
  asterisk-20904-nat-auto-and-rt-peersv2.diff Michael L. Young (license 5026)

Merged revisions 382322 from

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

8 years agoWhile the ICE negotiation is occurring leave strictrtp in an open state, media can...
Joshua Colp [Thu, 28 Feb 2013 21:59:56 +0000 (21:59 +0000)]
While the ICE negotiation is occurring leave strictrtp in an open state, media can and will come from different places.

Merged revisions 382298 from

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

8 years agoFix a bug with ICE and strictrtp where media could get dropped.
Joshua Colp [Thu, 28 Feb 2013 21:37:57 +0000 (21:37 +0000)]
Fix a bug with ICE and strictrtp where media could get dropped.

If the end result of the ICE negotiation resulted in the path for media
changing it was possible for the strictrtp code to discard the RTP packets.
This change causes strictrtp to enter learning mode once again when the
ICE negotiation has completed successfully.

Merged revisions 382296 from

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

8 years agothreadpool: Make ast_threadpool_push() return -1 if shutting_down
Richard Mudgett [Thu, 28 Feb 2013 21:31:14 +0000 (21:31 +0000)]
threadpool: Make ast_threadpool_push() return -1 if shutting_down

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

8 years agothreadpool: Whitespace and comment corrections.
Richard Mudgett [Thu, 28 Feb 2013 21:29:57 +0000 (21:29 +0000)]
threadpool: Whitespace and comment corrections.

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

8 years agoDon't undefine bzero()/bcopy().
Jason Parker [Thu, 28 Feb 2013 21:21:50 +0000 (21:21 +0000)]
Don't undefine bzero()/bcopy().

This was causing build failures against external libraries that happened to use
them, unless silly hacks were added to the modules that used those headers.


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

8 years agoPrevent deadlock in chan_iax2 when attempting to set caller ID
Matthew Jordan [Thu, 28 Feb 2013 17:17:35 +0000 (17:17 +0000)]
Prevent deadlock in chan_iax2 when attempting to set caller ID

A deadlock can occur in chan_iax2 when it attempts to set the caller ID, as it
already holds the iax2 private lock and improperly fails to obtain the channel
lock before calling ast_set_callerid. By not safely obtaining the channel lock,
a locking inversion can take place, causing a deadlock.

This patch solves this by calling the required deadlock avoidance functions
that obtain the channel lock before setting the caller ID.

Thanks to Pavel for fixing my syntax errors and testing this patch out.

(closes issue ASTERISK-21128)
Reported by: Pavel Troller
Tested by: Pavel Troller
  ASTERISK-21128-1.8.diff uploaded by mjordan (license 6283)
  ASTERISK-21128-modified-1.8.diff uploaded by Pavel Troller (license 6302)

Merged revisions 382233 from

Merged revisions 382234 from

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

8 years agoLet channels joining a MeetMe conference opt out of the denoiser
Matthew Jordan [Thu, 28 Feb 2013 16:56:20 +0000 (16:56 +0000)]
Let channels joining a MeetMe conference opt out of the denoiser

For some channel drivers, specifically those that have a varying rate in the
number of audio samples, the audio quality for a MeetMe conference can be
exceedingly poor. This is due to a unilateral application of the DENOISE
function in func_speex to channels joining the conference.

The denoiser function in the speex library is initialized with the number of
audio samples in each sample that will be provided to it. If the number of
audio samples changes, the denoiser has to be thrown away and re-initialized.

While this could be worked around by removing func_speex, that doesn't help
if you actually use the denoiser with other channels on the system.

This patches does the following:
 * Checks for the presence of func_speex as opposed to codec_speex when
   determining if the DENOISE function is present (which is where the function
   is actually implemented)
 * Adds an option to MeetMe 'n' that causes the denoiser to not be applied
   to a channel when it joins. This keeps the current behavior the default, but
   let's users disable the denoiser if it causes problems on their system.


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

Merged revisions 382227 from

Merged revisions 382230 from

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

8 years agoMore places to eliminate the cast to argv but were not giving warnings.
Richard Mudgett [Wed, 27 Feb 2013 20:31:56 +0000 (20:31 +0000)]
More places to eliminate the cast to argv but were not giving warnings.

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

8 years agoFix compiler warning by eliminating the need for a cast.
Richard Mudgett [Wed, 27 Feb 2013 20:21:40 +0000 (20:21 +0000)]
Fix compiler warning by eliminating the need for a cast.

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

8 years agoRelax dialog checking in get_sip_pvt_byid_locked so it works when the dialog is forked.
Joshua Colp [Wed, 27 Feb 2013 16:19:51 +0000 (16:19 +0000)]
Relax dialog checking in get_sip_pvt_byid_locked so it works when the dialog is forked.

(closes issue ASTERISK-20638)
Reported by: eelcob
      pedantic-call-pickup-from-tag.patch uploaded by eelcob (license 6442)

Merged revisions 382171 from

Merged revisions 382174 from

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

8 years agoConsider linux-gnuspe as linux-gnu
Tzafrir Cohen [Tue, 26 Feb 2013 20:05:02 +0000 (20:05 +0000)]
Consider linux-gnuspe as linux-gnu

* The powerpcspe Linux port uses linux-gnuspe as the OS string.
* Our build system shouldn't really care for that, so just call it linux-gnu.
* Original report: Roland Stigge ,


Merged revisions 382110 from

Merged revisions 382111 from

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

8 years agoCorrect RPID parsing for unquoted display-name.
Walter Doekes [Tue, 26 Feb 2013 19:36:30 +0000 (19:36 +0000)]
Correct RPID parsing for unquoted display-name.

Parsing Remote-Party-ID will now succeed if display-name is of the
*(token LWS) kind and not just the quoted-string kind.


Merged revisions 382107 from

Merged revisions 382108 from

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

8 years agoRemove unneeded linux-gnueabi*
Tzafrir Cohen [Tue, 26 Feb 2013 19:29:14 +0000 (19:29 +0000)]
Remove unneeded linux-gnueabi*

As of r380522 the configure scripts converts the value of linux-gnueabi*
of OSARCH to "linux-gnu". So no point in testing for those values.

Merged revisions 382087 from

Merged revisions 382096 from

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

8 years agoClean up ConfBridge commands to account for wait_marked users
Matthew Jordan [Tue, 26 Feb 2013 15:52:02 +0000 (15:52 +0000)]
Clean up ConfBridge commands to account for wait_marked users

When ConfBridge was refactored to better handle the concept of marked,
wait_marked, and normal users co-existing in a conference (thereby implementing
a state machine for the conference), the wait_marked users were put into their
own list of conference participants, separate from the active users. This list
is used for wait_marked users when they are waiting in a conference but no
marked user has joined; normal users may have joined at this point however.
There are several AMI/CLI commands that affect conference users that were not
checking the wait_marked users list:
* CLI/AMI commands that mute/unmute a participant. In this case, wait_marked
  users have to remain in their particular state and should not be affected -
  however, the commands would return "Channel not found" as opposed to the
  appropriate error condition.
* CLI/AMI commands that kick a participant. An admin should always be able to
  kick a participant out of the conference.

This patch fixes both sets of commands, and cleans up the CLI commands slightly
by allowing them to complete a participant name (this was supposed to have been
added, but the function call was commented out and wasn't implemented).


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

Merged revisions 382068 from

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

8 years agoEnsure that the default bridge/user profiles are always available
Matthew Jordan [Tue, 26 Feb 2013 15:26:16 +0000 (15:26 +0000)]
Ensure that the default bridge/user profiles are always available

ConfBridge and Page require that there always be a default bridge and user
profile available. While properties of the default profiles can be overriden
in the configuration file, removing them can create situations where neither
application can function properly.

This patch ensures that if an administrator removes the profiles from the
confbridge.conf configuration file, the profiles are added upon load.
Documentation clarifying this has been added to the confbridge.conf.sample file.


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

Merged revisions 382066 from

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

8 years agoClean up use of va_end/va_args in res_config_mysql
Matthew Jordan [Mon, 25 Feb 2013 12:51:24 +0000 (12:51 +0000)]
Clean up use of va_end/va_args in res_config_mysql

There were several problems using variadic argument macros in res_config_mysql.
 * Improper use of va_end. Multiple calls to va_end were possible resulting in
   an unbalanced matching of va_start/va_end.
 * Calls to va_arg after a possible encounter of a SENTINEL value.

This patch corrects those errors.

(closes issue ASTERISK-19451)
Reported by: wdoekes
  ASTERISK-19451-1.8--2.diff uploaded by wdoekes (License 5674)

Merged revisions 382021 from

Merged revisions 382022 from

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

8 years agoMore called details fixup for skinny.
Damien Wedhorn [Mon, 25 Feb 2013 07:09:37 +0000 (07:09 +0000)]
More called details fixup for skinny.

Basically sets the callerid and callername to the first device talked to for the
purposes of putting the the calls made log on the device. Does not affect the device
displaying who the device is currently talking to.

Also some minor changes to use sub->exten in lieu of l->lastnumberdialed.

(closes issue ASTERISK-21095)
Reported by: wedhorn
Tested by: snuffy, myself
    skinny-calllogsoutbound03.diff uploaded by wedhorn (license 5019)

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

8 years agoAdd prinotify messages to skinny.
Damien Wedhorn [Mon, 25 Feb 2013 06:46:00 +0000 (06:46 +0000)]
Add prinotify messages to skinny.

Adds both fixed and variable prinotify messages and clearprinotify messages to skinny.
Also adds cli function for pushing messages to devices. i

Initial code by snuffy, expanded by myself to include fixed messages.

(closes issue ASTERISK-21091)
Reported by: snuffy
Tested by: snuffy, myself
    skinny-prinotify02.diff uploaded by wedhorn (license 5019)

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

8 years agoSet the sin_family on the bind address socket during initialization
Matthew Jordan [Sun, 24 Feb 2013 23:01:17 +0000 (23:01 +0000)]
Set the sin_family on the bind address socket during initialization

Somehow, chan_jingle has managed to operate for years without setting the
sin_family on its bindaddr socket. This patch properly sets the field during
initial module load to AF_INET.

Note that the patch on the issue was modified slightly to change the
initialization of the socket from allocation of a chan_jingle private to the
module initialization, as the bindaddr object (which is static) only needs to
have the address set once.

(closes issue ASTERISK-19341)
Reported by: andre valentin
  0105-chan_jingle.patch uploaded by avalentin (License 6064)

Merged revisions 381975 from

Merged revisions 381976 from

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

8 years agoDon't display the AMI ALL class authorization for users if they don't have it
Matthew Jordan [Sun, 24 Feb 2013 16:27:47 +0000 (16:27 +0000)]
Don't display the AMI ALL class authorization for users if they don't have it

When converting AMI class authorizations to a string representation, the
method always appends the ALL class authorization. This is especially
important for events, as they should always communicate that class
authorization - even if the event itself does not specify ALL as a class
authorization for itself. (Events have always assumed that the ALL class
authorization is implied when they are raised)

Unfortunately, this did mean that specifying a user with restricted class
authorizations would show up in the 'manager show user' CLI command as
having the ALL class authorization.

Rather then modifying the existing string manipulation function, this patch
adds a function that will only return a string if the field being compared
explicitly matches class authorization field it is being compared against.
This prevents ALL from being returned unless it is actually specified for
the user.

(closes issue ASTERISK-20397)
Reported by: Johan Wilfer

Merged revisions 381939 from

Merged revisions 381943 from

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

8 years agoMake ParkAndAnnounce return to priority + 1 when return context is not defined
Matthew Jordan [Sun, 24 Feb 2013 15:45:29 +0000 (15:45 +0000)]
Make ParkAndAnnounce return to priority + 1 when return context is not defined

The ParkAndAnnounce application documentation for the optional return_context
parameter states the following:

    The goto-style label to jump the call back into after timeout. Default

Unfortunately, the application was sending the channel back into the dialplan
at 'priority', which is the ParkAndAnnounce application call. This causes an
infinite loop of the channel constantly being parked, announced, timed out,
parked, announced, timed out... while fun, especially for those callers you
wish to drive to the end of madness, this was not the intent of the

(closes issue ASTERISK-20113)
Reported by: serginuez
  app_parkandannounce.diff uploaded by serginuez (License 6405)

Merged revisions 381916 from

Merged revisions 381917 from

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

8 years agoFix FastAGI To Properly Check For A Connection
Michael L. Young [Fri, 22 Feb 2013 19:40:02 +0000 (19:40 +0000)]
Fix FastAGI To Properly Check For A Connection

When IPv6 support was added to FastAGI, the intent was to have the ability to
check all addresses resolved for a host since we might receive an IPv4 address
and an IPv6 address.  The problem with the current code, is that, since we are
doing O_NONBLOCK, we get EINPROGRESS when calling ast_connect() but are ignoring
this instead of handling it.  We break out of the loop and continue on.  When we
later call ast_poll(), it succeeds but we never check if we have a connection or
not on the socket level.  We then attempt to send data to the host address that
we think is setup and it fails.  We then check the errno and see that we have
"connection refused" and then return with agi failed.

This patch does the following:

* Handles EINPROGRESS by creating the function handle_connection()
  - ast_poll() was moved into this function
  - This function checks the results of the connection on the socket level after
    calling ast_poll()
* Continues to the next address if the above fails to create a connection
* Once all addresses resolved are tried and we still are unable to establish a
  connection, then we return that the FastAGI call failed

(closes issue ASTERISK-21065)
Reported by: Jeremy Kister
Tested by: Jeremy Kister, Michael L. Young
  asterisk-21065_poll_correctly_v4.diff Michael L. Young (license 5026)


Merged revisions 381893 from

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

8 years agoapp_dial: Honor the 'c' flag when the calling party hangs up
Jonathan Rose [Fri, 22 Feb 2013 15:51:20 +0000 (15:51 +0000)]
app_dial: Honor the 'c' flag when the calling party hangs up

Apparently this feature became broken in 11, probably as a result
of the Hangup Cause project.

(closes issue ASTERISK-21113)
Reprted by: Heiko Wundram
app_dial.patch uploaded by Heiko Wundram (license 5822)

Merged revisions 381880 from

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

8 years agoProperly detect launchd
Matthew Jordan [Fri, 22 Feb 2013 01:52:14 +0000 (01:52 +0000)]
Properly detect launchd

Asterisk was a little too pro-active in claiming that it found launchd. On
systems without launchd - such as FreeBSD - this resulted in certain items
in Asterisk that conflict with launchd to not be selectable, such as

(closes issue ASTERISK-20749)
Reported by: Oleg Baranov

Merged revisions 381847 from

Merged revisions 381848 from

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

8 years agoWrite the correct callid to the data1 field in queue_log for transfer events.
Kevin Harwell [Tue, 19 Feb 2013 19:47:42 +0000 (19:47 +0000)]
Write the correct callid to the data1 field in queue_log for transfer events.

The incorrect callid was being written to the "data1" field in queue_log table
for transfer events.  The callid of the queue was being written instead of the
transfer target's callid.  This now gets the correct "transfer to" number and
places that in the "data1" field of the queue_log table when a transfer event
is triggered.

(closes issue ASTERISK-19960)
Reported by: vladimir shmagin

Merged revisions 381770 from

Merged revisions 381791 from

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

8 years agoAdd The Status Of A Module To The Output Of "CLI> module show"
Michael L. Young [Tue, 19 Feb 2013 17:17:10 +0000 (17:17 +0000)]
Add The Status Of A Module To The Output Of "CLI> module show"

When a module's configuration is not loadable, we still load the module but it
is not in a running state.  When trying to troubleshoot, let's say, why
chan_motif is ignoring inbound XMPP traffic, there is no way to indicate that a
loaded module is not currently running.

(closes issue ASTERISK-21108)
Reported by: Rusty Newton
Tested by: Michael L. Young
  asterisk-21108_add_status-v2.diff Michael L. Young (license 5026)


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

8 years agoConfbridge channels staying active when all participants leave.
Kevin Harwell [Tue, 19 Feb 2013 16:23:29 +0000 (16:23 +0000)]
Confbridge channels staying active when all participants leave.

If you started/stopped recording of a conference multiple times channels
would remain active even when all participants left the conference.  This
was due to the fact that a reference to the confbridge was being added
every time a start record command was issued, but when the recording was
stopped there was no matching de-reference thus keeping the conference alive.
Made sure only a single reference is added for the record thread no matter how
many times recording is started/stopped.  A de-reference is issued upon thread

Note, this issue is being fixed under AST-1088 since it relates to it and
should have been corrected along with those modifications.

(issue AST-1088)
Reported by: John Bigelow

Merged revisions 381737 from

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

8 years agoAdded Confbridge record_file_append option.
Kevin Harwell [Tue, 19 Feb 2013 15:41:37 +0000 (15:41 +0000)]
Added Confbridge record_file_append option.

Currently, if one starts, stops, and then starts a recording again for a
conference the recorded data is appended to the file originally created
on the first record start.  An option record_file_append has been added
that defaults to "yes", but when set to "no" will force creation of a new
file between every record start/stop.

(issue AST-1088)
Reported by: John Bigelow
Review: http://reviewboard.digium.internal/r/374/

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

8 years agoAdd serviceURL stuff to skinny.
Damien Wedhorn [Tue, 19 Feb 2013 06:54:23 +0000 (06:54 +0000)]
Add serviceURL stuff to skinny.

Patch adds all the packet and structure stuff to skinny to enable setting
service URLs in skinny, such as corporate directories.

This stuff is only relevant during load/unload as when activated. Also
some minor changes removing duplicated counting of addons and speedials in


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

8 years agoFixup skinny CLI completion.
Damien Wedhorn [Tue, 19 Feb 2013 06:50:57 +0000 (06:50 +0000)]
Fixup skinny CLI completion.

Auto complete for skinny debug allows multiple options and negation, also add
debug all option. Usage example: 'skinny debug all -packets' (each can be
autocompleted including -packet).

Change show device to use device name. Remove the duplicate ast_strdup's from
place calling device complete return immediately from complete devicename and
complete linename so that multiple options are displayed on the CLI if more
than one option available.


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

8 years agoFixed Confbridge file recording deadlock and appending.
Kevin Harwell [Mon, 18 Feb 2013 22:23:52 +0000 (22:23 +0000)]
Fixed Confbridge file recording deadlock and appending.

A deadlock occurred after starting/stopping and then restarting a confbridge
recording.  Upon starting a recording a record thread is created that holds a
lock until just before exiting.  Stopping the recording does not stop/exit the
thread or release the lock.  The thread waits until recording begins again.
Starting a stopped recording signals the thread to continue and start recording
again.  However restarting the recording also created another record thread
resulting in a deadlock.  The fix was to make sure the record thread was only
created once.

Also it was noted that filenames for the recordings were being concatenated for
each start/stop.  This was fixed by creating a new file for each conference
session and appending the actual recorded data within the file (e.g. passing
the 'a' option to MixMonitor).

(issue AST-1088)
Reported by: John Bigelow
Review: http://reviewboard.digium.internal/r/374/

Merged revisions 381702 from

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

8 years agoRemove "registertrying" and add "rtp_engine" from/to sip.conf.sample
Walter Doekes [Mon, 18 Feb 2013 20:31:56 +0000 (20:31 +0000)]
Remove "registertrying" and add "rtp_engine" from/to sip.conf.sample

The "registertrying" option was removed in r343220. The "rtp_engine"
option was added in r186078 but erroneously named "engine" in the sample.
Note that there is no global sip setting for a different engine.

Merged revisions 381668 from

Merged revisions 381669 from

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

8 years agoPRESENCE_STATE: Provide better documentation for the 'e' option.
Jonathan Rose [Mon, 18 Feb 2013 19:48:47 +0000 (19:48 +0000)]
PRESENCE_STATE: Provide better documentation for the 'e' option.

Notes that the 'e' option actually decodes data when used as a write function
such as with the SET application while it encodes data when used to read.


Merged revisions 381655 from

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

8 years agoconfbridge: Add flags column to CLI "confbridge list <conference>"
Richard Mudgett [Mon, 18 Feb 2013 19:12:11 +0000 (19:12 +0000)]
confbridge: Add flags column to CLI "confbridge list <conference>"

* Added the following flags to the CLI "confbridge list <conference>" output:
A - The user is an admin
M - The user is a marked user
W - The user must wait for a marked user to join
E - The user will be kicked after the last marked user leaves the conference
w - The user is waiting for a marked user to join

* Added the following header to the AMI ConfbridgeList events:
WaitMarked, EndMarked, and Waiting.

(closes issue AST-1101)
Reported by: John Bigelow
      confbridge-show-admin3.txt (license #5091) patch uploaded by John Bigelow

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

8 years agoconfbridge: Rename i iterator variables to iter.
Richard Mudgett [Sat, 16 Feb 2013 20:44:44 +0000 (20:44 +0000)]
confbridge: Rename i iterator variables to iter.

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

8 years agoDon't send presencestate information if the state is invalid
Matthew Jordan [Sat, 16 Feb 2013 16:28:43 +0000 (16:28 +0000)]
Don't send presencestate information if the state is invalid

Previously, presencestate information was sent whenever the state was not
NOT_SET. When r381594 actually returned INVALID presence state in all the
places it was supposed to, it caused chan_sip to start adding presence
state information to NOTIFY requests that it previously would not have
added. chan_sip shouldn't be adding presence state information when the
provider is in an invalid state; users can't set the state to invalid and
an invalid state always implies that the provider is in an error condition.

(issue AST-1084)

Merged revisions 381613 from

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

8 years agoAdd support for retrieving multiple objects from sorcery using a regex on their id.
Joshua Colp [Sat, 16 Feb 2013 16:24:21 +0000 (16:24 +0000)]
Add support for retrieving multiple objects from sorcery using a regex on their id.


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

8 years agoFix crash in PresenceState AMI action when specifying an invalid provider
Matthew Jordan [Fri, 15 Feb 2013 23:29:28 +0000 (23:29 +0000)]
Fix crash in PresenceState AMI action when specifying an invalid provider

This patch fixes a crash in Asterisk that could be caused by using the
PresenceState AMI action while providing an invalid provider. This patch
also adds some additional warnings when a user attempts to provide the
PresenceState action with invalid data, and removes some NOTICE statements
that were still lurking in the code from testing.

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

Merged revisions 381594 from

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

8 years agoFix a crash that occurred when a BYE was received on a replaced dialog.
Mark Michelson [Fri, 15 Feb 2013 18:51:40 +0000 (18:51 +0000)]
Fix a crash that occurred when a BYE was received on a replaced dialog.

Reference counting for the channel and its tech_pvt got messed up at
some point between 1.8 and 11. The result was that if a BYE for a dialog
that had been replaced (via an INVITE with Replaces) was received, Asterisk
would crash due to trying to access data on a channel that was no longer there.

The fix I introduced is to remove code that both unrefs the sip_pvt and sets
the channel's tech_pvt to NULL when an INVITE with Replaces is handled. This
way when a BYE is received, the tech_pvt will be non-NULL and so the BYE can
be processed and not cause a crash.

(closes issue ASTERISK-20929)
reported by Kristopher Lalletti
ASTERISK-20929.patch uploaded by Mark Michelson (License #5049)

Merged revisions 381566 from

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

8 years agoDisable strict XML documentation config checking; fix crash caused by sorcery
Matthew Jordan [Fri, 15 Feb 2013 18:44:24 +0000 (18:44 +0000)]
Disable strict XML documentation config checking; fix crash caused by sorcery

This patch does two things:
 1. It disables (temporarily) strict XML documentation checking for module
    configurations. We should re-enable it before making any release from
 2. Pass the module flag AST_MODULE through sorcery. This means several of the
    API calls are now macros and will do this automatically for you. The config
    framework needs the module that objects are registering to so it can
    properly construct the documentation. (This was already a required field,
    but sorcery was getting by without it)

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

8 years agoStopped spamming of debug messages during attended transfer.
Kevin Harwell [Fri, 15 Feb 2013 17:38:22 +0000 (17:38 +0000)]
Stopped spamming of debug messages during attended transfer.

While autoservice is running and servicing a channel the callid is being stored
and removed in the thread's local storage for each iteration of the thread loop.
If debug was set to a sufficient level the log file would be spammed with callid
thread local storage debug messages.

Added a new function that checks to see if the callid to be stored is different
than what is already contained (if anything).  If it is different then
store/replace and log, otherwise just leave as is.  Also made it so all logging
of debug messages pertaining to the callid thread storage outputs only when
TEST_FRAMEWORK is defined.

(issue ASTERISK-21014)
(closes issue ASTERISK-21014)
Report by: Rusty Newton

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

8 years agochan_sip: Use video and text crypto attributes to append RTP profiles to SDP
Jonathan Rose [Fri, 15 Feb 2013 17:33:32 +0000 (17:33 +0000)]
chan_sip: Use video and text crypto attributes to append RTP profiles to SDP

Some bad copy/pasting resulted in using the audio crypto attribute for both
text and video RTP. Also the audio crypto isn't set until after these, so it
was really just bad all around.

(closes ASTERISK-20905)
Reported by: Kristopher Lalletti
rtp_crypto_video_text.diff uploaded by Jonathan Rose (license 6182)

Merged revisions 381553 from

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

8 years agoRemove automerge propertrties added in r381527
Matthew Jordan [Fri, 15 Feb 2013 15:26:51 +0000 (15:26 +0000)]
Remove automerge propertrties added in r381527

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

8 years agoAdd CLI configuration documentation
Matthew Jordan [Fri, 15 Feb 2013 13:38:12 +0000 (13:38 +0000)]
Add CLI configuration documentation

This patch allows a module to define its configuration in XML in source, such
that it can be parsed by the XML documentation engine. Documentation is
generated in a two-pass approach:

1. The documentation is first generated from the XML pulled from the source
2. The documentation is then enhanced by the registration of configuration
   options that use the configuration framework

This patch include configuration documentation for the following modules:
 * chan_motif
 * res_xmpp
 * app_confbridge
 * app_skel
 * udptl

Two new CLI commands have been added:
 * config show help - show configuration help by module, category, and item
 * xmldoc dump - dump the in-memory representation of the XML documentation to
   a new XML file.


  on review 2058 uploaded by twilson

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

8 years agoRemove extraneous stuff from r381470.
Damien Wedhorn [Thu, 14 Feb 2013 19:58:33 +0000 (19:58 +0000)]
Remove extraneous stuff from r381470.

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

8 years agoAdd back sending dialnumber to skinny.
Damien Wedhorn [Thu, 14 Feb 2013 19:55:29 +0000 (19:55 +0000)]
Add back sending dialnumber to skinny.

Don't know why it seemed to work during testing, but it really is needed
for protocol v17 (and probably above).

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

8 years agoEnd stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup.
Richard Mudgett [Thu, 14 Feb 2013 19:52:14 +0000 (19:52 +0000)]
End stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup.

It doesn't hurt to check AST_SOFTHANGUP_UNBRIDGE either, but it should not
be set outside of a bridge.

(issue ASTERISK-20492)

Merged revisions 381466 from

Merged revisions 381467 from

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

8 years agoRespect callerid presentation in skinny.
Damien Wedhorn [Thu, 14 Feb 2013 19:25:52 +0000 (19:25 +0000)]
Respect callerid presentation in skinny.

Fix chan_skinny so that it respects callerID presentation of inbound calls to
device and a couple of other minor fixes: 145 packet (add OCTAL_FROM amd callerid),
and dont send dialednumber message if protocol >= 17.

(closes issue ASTERISK-21066)
Reported by: snuffy
Tested by: snuffy, myself
    skinny-respect-clid-restrictions-v2.diff uploaded by snuffy (license 5024)

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

8 years agoRevamp of terminal color codes
Kinsey Moore [Thu, 14 Feb 2013 18:47:56 +0000 (18:47 +0000)]
Revamp of terminal color codes

The core module related to coloring terminal output was old and needed
some love.  The main thing here was an attempt to get rid of the
obscene number of stack-local buffers that were allocated for no other
reason than to colorize some output.  Instead, this uses a simple trick
to allocate several buffers within threadlocal storage, then
automatically rotates between them, so that you can make multiple calls
to the colorization routine within one function and not need to
allocate multiple buffers.

    bug.patch uploaded by Tilghman Lesher

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

8 years agoUse a shuffling algorithm to find unused IAX2 call numbers.
Sean Bright [Thu, 14 Feb 2013 17:06:02 +0000 (17:06 +0000)]
Use a shuffling algorithm to find unused IAX2 call numbers.

While adding red-black tree containers to astobj2 in r376575, Richard pointed
out the way chan_iax2 finds unused call numbers will prevent ao2_container
integrity checks at runtime.

This patch removes the ao2_container and instead uses fixed sized arrays and a
modified Fisher-Yates-Durstenfeld shuffle to maintain the call number list.

While the locking semantics are similar to the ao2_container implementation,
this implementation should be faster and more memory efficient.


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

8 years agoUpdate the name of the update_tags utility in the git mirror how-to.
Sean Bright [Thu, 14 Feb 2013 14:45:09 +0000 (14:45 +0000)]
Update the name of the update_tags utility in the git mirror how-to.

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

8 years agoDon't throw a spurious error when using DBdeltree
Matthew Jordan [Thu, 14 Feb 2013 03:49:52 +0000 (03:49 +0000)]
Don't throw a spurious error when using DBdeltree

The function call ast_db_deltree returns the number of row deleted, or a
negative number if it failed. DBdeltree was treating any non-zero return
as an error, causing a spurious verbose error message to be displayed.

This patch handles the return code of ast_db_deltree correctly.

(closes issue ASTERISK-21070)
Reported by: ianc
  dbdeltree.diff uploaded by ianc (License #5955)

Merged revisions 381364 from

Merged revisions 381365 from

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

8 years agoAdd a serializer interface to the threadpool
David M. Lee [Tue, 12 Feb 2013 21:45:59 +0000 (21:45 +0000)]
Add a serializer interface to the threadpool

This patch adds the ability to create a serializer from a thread pool. A
serializer is a ast_taskprocessor with the same contract as a default
taskprocessor (tasks execute serially) except instead of executing out
of a dedicated thread, execution occurs in a thread from a
ast_threadpool. Think of it as a lightweight thread.

While it guarantees that each task will complete before executing the
next, there is no guarantee as to which thread from the pool individual
tasks will execute. This normally only matters if your code relys on
thread specific information, such as thread locals.

This patch also fixes a bug in how the 'was_empty' parameter is computed
for the push callback, and gets rid of the unused 'shutting_down' field.


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

8 years agoDo not allow native RTP bridging if packetization of media streams differs.
Mark Michelson [Tue, 12 Feb 2013 20:57:31 +0000 (20:57 +0000)]
Do not allow native RTP bridging if packetization of media streams differs.

The RTP engine will no longer allow for local and remote native RTP bridges
if packetization of streams differs. Allowing native bridging in this scenario
has been known to cause FAX failures.

(closes ASTERISK-20650)
Reported by: Maciej Krajewski
ASTERISK-20659.patch uploaded by Mark Michelson (License #5049)


Merged revisions 381281 from

Merged revisions 381306 from

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

8 years agoFix some more REF_DEBUG-related build errors
Kinsey Moore [Tue, 12 Feb 2013 20:18:21 +0000 (20:18 +0000)]
Fix some more REF_DEBUG-related build errors

When sip_ref_peer and sip_unref_peer were exported to be usable in
channels/sip/security_events.c, modifications to those functions when
building under REF_DEBUG were not taken into account. This change
moves the necessary defines into sip.h to make them accessible to
other parts of chan_sip that need them.

Merged revisions 381282 from

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

8 years agoAdding Some More Manager Events To ConfBridge
Michael L. Young [Tue, 12 Feb 2013 03:31:46 +0000 (03:31 +0000)]
Adding Some More Manager Events To ConfBridge

Currently, ConfBridge does not send manager events for ConfbridgeMute,
ConfbridgeUnmute, ConfbridgeStartRecord and ConfbridgeStopRecord.  This patch
adds these events to the manager.

The reporter's patch moves some other events up to the beginning of the file.

The patch being committed is based on the patch contributed from the reporter of
this issue.  I have made a lot of modifications to the patch in order for it to
fit in better with what we currently are doing in the code when it comes to
manager events.  I also made a few changes to the <see-also> elements on some of
the events.

(closes issue ASTERISK-20827)
Reported by: Clint Davis
Tested by: Clint Davis, Michael L. Young
    20827.diff uploaded by Clint Davis (license 6453)
    asterisk-20827-confbridge-events.diff uploaded by
                                                 Michael L. Young (license 5026)


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

8 years agoProperly load say.conf upon reload of module app_playback.
Kevin Harwell [Mon, 11 Feb 2013 21:17:04 +0000 (21:17 +0000)]
Properly load say.conf upon reload of module app_playback.

If say.conf did not exists prior to originally loading module app_playback it
would not load on subsequent reloads of the module once it had been created.
This occurred because upon reload of the app_playback module it would only
load a new configuration if an old one had previously existed.  This fix simply
removed the association between checking if an old configuration existed and
the loading of the new one.

(closes issue ASTERISK-20800)
Reported by: pgoergler

Merged revisions 381216 from

Merged revisions 381217 from

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

8 years agoFix compilation error with REF_DEBUG
Kinsey Moore [Mon, 11 Feb 2013 21:10:53 +0000 (21:10 +0000)]
Fix compilation error with REF_DEBUG

When the red/black tree work was committed, there was an extra ", " in
the REF_DEBUG definition of ao2_container_alloc_rbtree.

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

8 years agoMinor fixes to res_json and test_json.
David M. Lee [Mon, 11 Feb 2013 20:39:11 +0000 (20:39 +0000)]
Minor fixes to res_json and test_json.

* Made input checking more consistent with other Asterisk code
* Added validation to ast_json_dump_new_file
* Fixed tests for ownereship semantics

(issue ASTERISK-20887)

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

8 years agoFix some issues with skinny callid.
Damien Wedhorn [Mon, 11 Feb 2013 18:54:12 +0000 (18:54 +0000)]
Fix some issues with skinny callid.

Add extra string to transmit_callinfo_var, Only set string2 to tonum for outgoing calls
and changes to send_callinfo and push_callinfo to not set callid name to last number.

(closes issue ASTERISK-21063)
Reported by: wedhorn
Tested by: snuffy, myself
    skinny-callinfoupdate03.diff uploaded by wedhorn (license 5019)

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

8 years agofeatures: Don't cache a struct ast_app pointer.
Richard Mudgett [Mon, 11 Feb 2013 18:00:05 +0000 (18:00 +0000)]
features: Don't cache a struct ast_app pointer.

Caching a struct ast_app pointer is not a good idea because someone could
unload the application.  After the applicaiton unload the cached ast_app
pointer is no longer valid.  Only pbx.c can cache the pointer because it
knows when the application is unloaded and removes the pointer.

* Fixed one-touch Monitor and MixMonitor to not cache the ast_app pointer
and not use the silly monitor_ok/mixmonitor_ok/stopmixmonitor_ok flags.

* Extracted bridge_check_monitor() from ast_bridge_call() and use propper

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

8 years agoFix crash in res_xmpp when deleting pubsub node from CLI
Matthew Jordan [Mon, 11 Feb 2013 15:11:47 +0000 (15:11 +0000)]
Fix crash in res_xmpp when deleting pubsub node from CLI

An error existed in res_xmpp where it would attempt to delete attributes from
a node that itself was also deleted. Per the iksemel documentation, attributes
added using iks_insert are copied to the parent node's stack, and will be
reclaimed when that node is itself destroyed.

(closes issue ASTERISK-20982)
Reported by: marcelloceschia
  delete-node-fix.diff uploaded by marcelloceschia (License 6036)

Merged revisions 381159 from

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

8 years agoAdd additional functionality to the Sorcery API.
Joshua Colp [Sun, 10 Feb 2013 14:58:37 +0000 (14:58 +0000)]
Add additional functionality to the Sorcery API.

This commit adds native implementation support for copying and diffing objects,
as well as the ability to load or reload on a per-object type level.


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

8 years agopbx: Fix regression caused by taking advantage of the function name sort.
Richard Mudgett [Sat, 9 Feb 2013 20:58:53 +0000 (20:58 +0000)]
pbx: Fix regression caused by taking advantage of the function name sort.

Taking advantage of the sorted order of the registered functions container
requires that they are actually inserted in the expected sort order.

* Insert the registered functions into the container in case sensitive
position.  As a result, only the complete_functions() routine needs to
search the entire container because it does a case insensitive search for

Caught by the unit tests.

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

8 years agopbx: Make function and application containers take advantage of being sorted.
Richard Mudgett [Sat, 9 Feb 2013 03:51:32 +0000 (03:51 +0000)]
pbx: Make function and application containers take advantage of being sorted.

* Fixed "core show function" tab completion and token count checking.

* Refactored function and application container handling code to reduce

* Made __ast_pbx_run() return using the defines the caller should expect.
Doesn't change the returned values.  Just made use the defines.

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

8 years agoMake ast_do_masquerade() a void function.
Richard Mudgett [Sat, 9 Feb 2013 01:31:55 +0000 (01:31 +0000)]
Make ast_do_masquerade() a void function.

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

8 years agoapp_confbridge: Fix crash from receiving an AMI action after ConfBridge unloaded.
Richard Mudgett [Fri, 8 Feb 2013 17:37:27 +0000 (17:37 +0000)]
app_confbridge: Fix crash from receiving an AMI action after ConfBridge unloaded.

Unloading ConfBridge caused the next AMI action received to crash

* Add the missing unregister of AMI action ConfbridgeSetSingleVideoSrc
when ConfBridge is unloaded.

(closes issue ASTERISK-20994)
Reported by: Jeremy Kister
      jira_asterisk_20994_v11.patch (license #5621) patch uploaded by rmudgett
Tested by: Rusty Newton, Jeremy Kister

Merged revisions 381067 from

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

8 years agoCall Parking: Set PARKINGLOT and PARKINGSLOT variables on all parked calls
Jonathan Rose [Fri, 8 Feb 2013 17:36:23 +0000 (17:36 +0000)]
Call Parking: Set PARKINGLOT and PARKINGSLOT variables on all parked calls

These two variables were previously not being set when comebacktoorigin=yes
and the example configs seemed to imply that they should be. Since there
is no harm in this and since calls that are sent back to origin are capable
of continuing in the dialplan, this seemed like a no-brainer. Also it
supports some bridging tests I've been working on.

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

8 years agoFix a bug where a changed configuration file might not be available to all sorcery...
Joshua Colp [Thu, 7 Feb 2013 17:57:10 +0000 (17:57 +0000)]
Fix a bug where a changed configuration file might not be available to all sorcery object types.

Since res_sorcery_config used a static name of "res_sorcery_config" to inform the configuration
file API that it asked for the configuration file it was possible during a reload for some sorcery
object types not to receive the new configuration file.

This change introduces a UUID on a per-sorcery config instance basis so that the unchanged state
is kept on an instance basis and not for the res_sorcery_config module as a whole.

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

8 years agoAdd aggregate operations for stuctures with string fields
Kinsey Moore [Thu, 7 Feb 2013 15:16:44 +0000 (15:16 +0000)]
Add aggregate operations for stuctures with string fields

Add struct-level comparison and copying of string fields to reduce the
complexity of whole-struct comparison and copying when using string
fields. The new macros do not take into account non-stringfield data.


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

8 years agoFixed failing test from r380696.
David M. Lee [Wed, 6 Feb 2013 20:18:05 +0000 (20:18 +0000)]
Fixed failing test from r380696.

When I added my extensive suite of session timer unit tests, apparently one of
them was failing and I never noticed. If neither Min-SE nor Session-Expires is
set in the header, it was responding with a Session-Expires of the global
maxmimum instead of the configured max for the endpoint.

(issue ASTERISK-20787)

Merged revisions 380973 from

Merged revisions 380974 from

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

8 years agoFix reload skinny with active devices.
Damien Wedhorn [Wed, 6 Feb 2013 08:44:32 +0000 (08:44 +0000)]
Fix reload skinny with active devices.

Patch ensures that d->activeline and l->activesub are moved over to the
new device and line so that on callend the appropriate subs can be found
to complete hangup before device resets.

(closes issue ASTERISK-16610)
Reported by: wedhorn
Tested by: snuffy, myself
    skinny-reloadactive01.diff uploaded by wedhorn (license 5019)

Merged revisions 380942 from

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

8 years agoReset skinny vmexten and immeddial char on reload.
Damien Wedhorn [Wed, 6 Feb 2013 06:55:02 +0000 (06:55 +0000)]
Reset skinny vmexten and immeddial char on reload.

Make skinny reset vmexten and immeddial to '\0' on reload to ensure that
it is set to '\0' if the appropriate item is removed/commented in
skinny.conf. Also small fix re immeddial char in skinny.conf and add
immedial setting to skinny show settings.

(closes issue ASTERISK-21037)
Reported by: snuffy
Tested by: snuffy, myself
    immed_dial_fix.diff uploaded by snuffy (license 5024)

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

8 years agoapp_page and app_confbridge: Fix custom announcement on entering conference.
Richard Mudgett [Tue, 5 Feb 2013 19:11:33 +0000 (19:11 +0000)]
app_page and app_confbridge: Fix custom announcement on entering conference.

The Page and ConfBridge custom announcement did not play when users
entered the conference.

* Fix the CONFBRIDGE(user,announcement) file not getting played.  The code
to do this got removed accidentally when the ConfBridge code was
restructured to be more state machine like.

* Fixed play_prompt_to_user() doxygen comments.

* Fixed the Page A(x) and n options for the caller.  The caller never
played the announcement file and totally ignored the n option.  The code
to do this was lost when the application was converted to use ConfBridge.

* Factored out setup_profile_bridge(), setup_profile_paged(), and
setup_profile_caller() routines to setup ConfBridge profiles.  Made each
profile setup routine use the default template if one has not already been
setup by dialplan.

(closes issue ASTERISK-20990)
Reported by: Jeremy Kister
Tested by: rmudgett

Merged revisions 380894 from

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

8 years agoapp_confbridge: Fix error messages on exiting conference.
Richard Mudgett [Tue, 5 Feb 2013 18:50:50 +0000 (18:50 +0000)]
app_confbridge: Fix error messages on exiting conference.

A marked user ending a conference with only end_marked users generates
error messages:
ERROR[0000][C-00000000]: confbridge/conf_state.c:47 conf_invalid_event_fn: Invalid event for confbridge user ''

* The MULTI_MARKED state was doing too much when it was kicking out the
end_marked users from the conference.  The kicked out users will clean up
after themselves when they exit the conference.

(closes issue ASTERISK-20991)
Reported by: Jeremy Kister
Tested by: rmudgett

Merged revisions 380892 from

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

8 years agoapp_page: Fixup application XML documentation typos and inaccuracies.
Richard Mudgett [Tue, 5 Feb 2013 18:28:51 +0000 (18:28 +0000)]
app_page: Fixup application XML documentation typos and inaccuracies.

Merged revisions 380869 from

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

8 years agoBecause the compiler can check types with a struct copy and memcpy() cannot.
Richard Mudgett [Tue, 5 Feb 2013 18:17:29 +0000 (18:17 +0000)]
Because the compiler can check types with a struct copy and memcpy() cannot.

Merged revisions 380856 from

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

8 years agoSeparate option_types[] from the struct definition.
Richard Mudgett [Tue, 5 Feb 2013 18:13:09 +0000 (18:13 +0000)]
Separate option_types[] from the struct definition.

Updated the option_types[] doxygen comment.

Merged revisions 380853 from

Merged revisions 380854 from

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

8 years agoFix how we build pjproject.
Jason Parker [Mon, 4 Feb 2013 19:52:14 +0000 (19:52 +0000)]
Fix how we build pjproject.

Allow parallel builds, better tolerate failures, build faster.

This also stops running dependencies before top-level configure has been run.

(closes issue ASTERISK-20815)


Merged revisions 380816 from

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

8 years agoAdd variable length displayprompt packet to skinny and use octals.
Damien Wedhorn [Sat, 2 Feb 2013 01:52:21 +0000 (01:52 +0000)]
Add variable length displayprompt packet to skinny and use octals.

Add new variable length displayprompt packet (0x0145) to skinny. Uses the new
packet if the device is reporting protocol versions >= 17.

Add the use of octal codes for sending prompts to both the new and old
displayprompt messages (also cleaned up soft_key_template_default to use the
defined octal codes).


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

8 years agochan_iax2: Fix compile error if MALLOC_DEBUG enabled.
Richard Mudgett [Fri, 1 Feb 2013 19:35:26 +0000 (19:35 +0000)]
chan_iax2: Fix compile error if MALLOC_DEBUG enabled.


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

8 years agoAdds variable length callinfo packets to skinny.
Damien Wedhorn [Fri, 1 Feb 2013 06:37:22 +0000 (06:37 +0000)]
Adds variable length callinfo packets to skinny.

Add packet 0x014A (variable length call info messages) to skinny for newer
firmware. Plenty of unknown information but includes the equivalent functionality
as the fixed size callinfo packet already included.
Only send this packet if protocol reported is >= 17.


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

8 years agoMultiple revisions 380735-380736
Jason Parker [Thu, 31 Jan 2013 22:03:44 +0000 (22:03 +0000)]
Multiple revisions 380735-380736

  r380735 | qwell | 2013-01-31 15:40:09 -0600 (Thu, 31 Jan 2013) | 1 line

  Fix a few compiler warnings.
  r380736 | qwell | 2013-01-31 15:42:34 -0600 (Thu, 31 Jan 2013) | 1 line

  Ignore warnings caused by PJ_TODO()s in pjproject.

Merged revisions 380735-380736 from

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

8 years agoProcess session timers, even if Session-Expires header is missing
David M. Lee [Thu, 31 Jan 2013 20:17:15 +0000 (20:17 +0000)]
Process session timers, even if Session-Expires header is missing

Previously, Asterisk only processed session timer information if both the
'Supported: timer' and 'Session-Expires' headers were present. However, the
Session-Expires header is optional. If we were to receive a request with a
Min-SE greater than our configured session-expires, we would respond with a
'Session-Expires' header that was too small.

This patch cleans the situation up a bit, always processing timer information
if the 'Supported: timer' header is present.

(closes issue ASTERISK-20787)
Reported by: Mark Michelson

Merged revisions 380696 from

Merged revisions 380698 from

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

8 years agoMove IAX firmware related functionality into separate files.
Sean Bright [Thu, 31 Jan 2013 19:52:48 +0000 (19:52 +0000)]
Move IAX firmware related functionality into separate files.

This patch is mostly a reorganization of existing code with a few exceptions:

* Added doxygen comments to all of the extracted functions.

* Split reload_firmware(int unload) into iax_firmware_reload() and
  iax_firmware_unload() for readability.

* Create iax_firmware_traverse() to support the 'iax2 show firmware' CLI

* Renamed iax_check_version() to iax_firmware_get_version() and change its
  arguments and return value so that it returns a success/failure value and sets
  the selected version into an out parameter to avoid confusion with failure and
  version 0.

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

8 years agoMultiple revisions 380671-380673
Jason Parker [Thu, 31 Jan 2013 19:04:57 +0000 (19:04 +0000)]
Multiple revisions 380671-380673

  r380671 | qwell | 2013-01-31 12:59:28 -0600 (Thu, 31 Jan 2013) | 4 lines

  Remove a cross-compile workaround.

  ar and ranlib can be easily detected with autoconf.
  r380672 | qwell | 2013-01-31 13:00:38 -0600 (Thu, 31 Jan 2013) | 2 lines

  Always check for libm, regardless of configure options.
  r380673 | qwell | 2013-01-31 13:03:03 -0600 (Thu, 31 Jan 2013) | 7 lines

  Add support for parallel builds of pjproject.

  Also adds proper dependency checking, and direct .a file targets.  We don't
  take advantage of this currently, but we will soon.

  (issue ASTERISK-20815)

Merged revisions 380671-380673 from

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

8 years agobridge_multiplexed: Keep the multiplexed thread until no more bridges use it.
Richard Mudgett [Thu, 31 Jan 2013 18:22:56 +0000 (18:22 +0000)]
bridge_multiplexed: Keep the multiplexed thread until no more bridges use it.

* Fixed the potential of losing the multiplexed bridge thread when the
last channel leaves and another joins while the multiplexed thread is
being shut down.

* Refactored and improved the management of the serviced channels array.

* Changed the channels count to a bridges count so it only needs to be
incremented rather than changed by two.

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

8 years agoImprove func FRAME_TRACE DTMF digit format.
Richard Mudgett [Thu, 31 Jan 2013 18:15:49 +0000 (18:15 +0000)]
Improve func FRAME_TRACE DTMF digit format.

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

8 years agoEliminate an unused lock in ast_bridge_channel.
Richard Mudgett [Thu, 31 Jan 2013 18:14:55 +0000 (18:14 +0000)]
Eliminate an unused lock in ast_bridge_channel.

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

8 years agoEliminate a use of a C++ keyword as a variable. new to new_frame
Richard Mudgett [Thu, 31 Jan 2013 18:14:05 +0000 (18:14 +0000)]
Eliminate a use of a C++ keyword as a variable. new to new_frame

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

8 years agoAdd ignore properties to channels/iax2
Richard Mudgett [Thu, 31 Jan 2013 00:57:30 +0000 (00:57 +0000)]
Add ignore properties to channels/iax2

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

8 years agoMake CHECK_BLOCKING() debug message more useful.
Richard Mudgett [Thu, 31 Jan 2013 00:37:03 +0000 (00:37 +0000)]
Make CHECK_BLOCKING() debug message more useful.

Change the displayed pthread value to hex format so it can be easily
matched with CLI core show threads or gdb.

Merged revisions 380611 from

Merged revisions 380612 from

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

8 years agochan_dahdi: Fix "dahdi show channels group" for groups greater than 31.
Richard Mudgett [Wed, 30 Jan 2013 21:59:07 +0000 (21:59 +0000)]
chan_dahdi: Fix "dahdi show channels group" for groups greater than 31.

The variable type used was not large enough to hold a group bit field.

Merged revisions 380572 from

Merged revisions 380575 from

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

8 years agoSupport building Asterisk for Raspberry Pi/Raspbian with hard-float support
Matthew Jordan [Wed, 30 Jan 2013 17:49:38 +0000 (17:49 +0000)]
Support building Asterisk for Raspberry Pi/Raspbian with hard-float support

Building Asterisk on Raspbian with hard-float support fails as it uses the
string 'linux-gnueabihf' for host os, as opposed to 'linux-gnueabi'. This patch
modifies the configure script for Asterisk such that it will match on any
string beginning with 'linux-gnueabi', as opposed to requiring an explicit

(closes issue ASTERISK-21006)
Reported by: Christian Hesse
Tested by: Christian Hesse
  linux-gnueabihf.patch uploaded by Christian Hesse (license 6459)
  linux-gnueabihf-autoconf.patch uploaded by Christian Hesse (license 6459)

Merged revisions 380520 from

Merged revisions 380521 from

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

8 years agoUnregister SIP provider API if module load is declined
Matthew Jordan [Wed, 30 Jan 2013 15:57:41 +0000 (15:57 +0000)]
Unregister SIP provider API if module load is declined

A user in #asterisk ran into a problem where a configuration error prevented
the chan_sip module from being loaded. Upon fixing their configuratione error,
they could no longer load the chan_sip module. This was because the
configuration checking happened after the SIP provider was registered with the
Asterisk core, and subsequent attempts to load the SIP module failed as the
provider was already registered.

Since we want to detect any failure in registering chan_sip as early as
possible (as that could be emblematic of a deeper mismatch between module
and Asterisk core), this patch does not change the registration location, but
does ensure that if a module load is declined, we unregister the module as
the SIP api provider.

Merged revisions 380480 from

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