8 years agolive_ast: run wrapped programs with exec
Tzafrir Cohen [Sun, 26 Jan 2014 14:19:14 +0000 (14:19 +0000)]
live_ast: run wrapped programs with exec

live_ast can be used as a wrapper script to run asterisk, gdb or
valgrind. In those cases it runs them and returns the result. It is more
useful to use 'exec' to avoid having another odd process in the chain.


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

8 years agores_pjsip_session: Be less strict with core requested outgoing capabilities.
Joshua Colp [Sun, 26 Jan 2014 02:11:04 +0000 (02:11 +0000)]
res_pjsip_session: Be less strict with core requested outgoing capabilities.

The core may (depending on circumstances) request a single codec on outgoing
calls. Many channel drivers ignore or treat this as a suggestion while still
including configured codecs. The res_pjsip_session logic treated this as
an explicit request, leaving out other configured codecs.

This change makes res_pjsip_session behave like other channel driver and simply
adds the requested codec to the list.

(closes issue ASTERISK-23082)
Reported by: xrobau


Merged revisions 406489 from

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

8 years agoCEL: Protect data structures during reload and shutdown.
Richard Mudgett [Fri, 24 Jan 2014 23:33:26 +0000 (23:33 +0000)]
CEL: Protect data structures during reload and shutdown.

The CEL data structures need to be protected during a configuration reload
and shutdown.  Asterisk crashed during a shutdown because CEL events were
still in flight and the CEL data structures were already destroyed.

* Protected the cel_backends, cel_dialstatus_store, and cel_linkedids ao2
containers with a global ao2 object wrapper.

* Added NULL checks before use of the cel_backends, cel_dialstatus_store,
and cel_linkedids ao2 containers in case the CEL module is already

* Fixed overloading of the cel_linkedids held objects reference count.
During shutdown any held objects would be leaked.

* Fixed memory leak of cel_linkedids held objects if the LINKEDID_END is
not being tracked.  The objects in the cel_linkedids container were not
removed if the LINKEDID_END event is not used.

* Added access protection to the cel_backends container during the CLI
"cel show status" command.

* Made cel_backends, cel_dialstatus_store, and cel_linkedids use the
standard ao2 callback templates for the hash and cmp functions.

* Eliminated unnecessary uses of RAII_VAR().

* Made ast_cel_engine_init() cleanup alocated resources on failure.

(closes issue AST-1253)
Reported by: Guenther Kelleter


Merged revisions 406417 from

Merged revisions 406418 from

Merged revisions 406465 from

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

8 years agoThread Debugging: Add LWP to core show locks output
Jonathan Rose [Fri, 24 Jan 2014 22:34:23 +0000 (22:34 +0000)]
Thread Debugging: Add LWP to core show locks output

This patch adds the LWP to core show locks output if it is available.


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

8 years agomanager: Register atexit shutdown routine only once.
Richard Mudgett [Fri, 24 Jan 2014 22:18:52 +0000 (22:18 +0000)]
manager: Register atexit shutdown routine only once.

* Made register atexit shutdown routine only once in __init_manager().

* Fixed some initial load failure conditions in __init_manager().

* Made reset options to defaults on reload when the reload will actually

* Removed unnecessary container traversals of the white/black filters
during manager_free_user().

* ast_free() does not need a NULL check before calling.

Merged revisions 406359 from

Merged revisions 406400 from

Merged revisions 406401 from

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

8 years agores_config_pgsql: Fix a memory leak and use RAII_VAR for cleanup when practical
Jonathan Rose [Fri, 24 Jan 2014 21:46:54 +0000 (21:46 +0000)]
res_config_pgsql: Fix a memory leak and use RAII_VAR for cleanup when practical


Merged revisions 406360 from

Merged revisions 406361 from

Merged revisions 406389 from

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

8 years agomanager: Protect data structures during shutdown.
Richard Mudgett [Fri, 24 Jan 2014 18:13:31 +0000 (18:13 +0000)]
manager: Protect data structures during shutdown.

Occasionally, the manager module would get an "INTERNAL_OBJ: bad magic
number" error on a "core restart gracefully" command if an AMI connection
is established.

* Added ao2_global_obj protection to the sessions global container.

* Fixed the order of unreferencing a session object in session_destroy().

* Removed unnecessary container traversals of the white/black filters
during session_destructor().

(closes issue AST-1242)
Reported by: Guenther Kelleter


Merged revisions 406341 from

Merged revisions 406342 from

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

8 years agoToday is not my day for writing code that compiles.
Mark Michelson [Thu, 23 Jan 2014 23:43:28 +0000 (23:43 +0000)]
Today is not my day for writing code that compiles.

Merged revisions 406327 from

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

8 years agores_config_mysql: Fix Setting The Column Name Incorrectly
Michael L. Young [Thu, 23 Jan 2014 22:56:54 +0000 (22:56 +0000)]
res_config_mysql: Fix Setting The Column Name Incorrectly

When support for a realtime sorcery module was added in revision 386731, the
wrong property was accidentally used for setting the column name to be updated
in the database table.  This patch fixes the typo.

(closes issue ASTERISK-23177)
Reported by: Denis
Tested by: Denis
    asterisk-23177-use-field-name.diff by Michael L. Young (license 5026)

Merged revisions 406311 from

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

8 years agoMultiple revisions 406294-406295
Mark Michelson [Thu, 23 Jan 2014 21:18:36 +0000 (21:18 +0000)]
Multiple revisions 406294-406295

  r406294 | mmichelson | 2014-01-23 15:00:24 -0600 (Thu, 23 Jan 2014) | 11 lines

  Fix presence body errors found during testing:

  * PIDF bodies were reporting an "open" state in many cases where
    it should have been reporting "closed"
  * XPIDF bodies had XML nodes placed incorrectly within the hierarchy.
  * SIP URIs in XPIDF bodies did not go through XML sanitization
  * XML sanitization had some errors:
      * Right angle bracket was being replaced with "&rt;" instead of ">"
   * Double quote, apostrophe, and ampersand were not being escaped.
  r406295 | mmichelson | 2014-01-23 15:09:35 -0600 (Thu, 23 Jan 2014) | 11 lines

  Fix presence body errors found during testing:

  * PIDF bodies were reporting an "open" state in many cases where
    it should have been reporting "closed"
  * XPIDF bodies had XML nodes placed incorrectly within the hierarchy.
  * SIP URIs in XPIDF bodies did not go through XML sanitization
  * XML sanitization had some errors:
      * Right angle bracket was being replaced with "&rt;" instead of ">"
   * Double quote, apostrophe, and ampersand were not being escaped.

Merged revisions 406294-406295 from

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

8 years agopbx.c: Pre-initialize timezone to avoid crash on destroy
Scott Griepentrog [Wed, 22 Jan 2014 22:24:39 +0000 (22:24 +0000)]
pbx.c: Pre-initialize timezone to avoid crash on destroy

In ast_build_timing, initialize the timezone value to NULL
in order to avoid deferencing an uninitialized value later
when calling ast_destroy_timing.  The timezone value could
be uninitialized if ast_build_timing were to fail due to a
zero length time string.

(closes issue ASTERISK-22861)
Reported by: Sebastian Murray-Roberts
     ast_build_timing-initialize-timezone.patch uploaded by coreyfarrell (license 5909)

Merged revisions 406241 from

Merged revisions 406245 from

Merged revisions 406264 from

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

8 years agoConfBridge: Fix channel parameter documentation
Kinsey Moore [Wed, 22 Jan 2014 19:36:23 +0000 (19:36 +0000)]
ConfBridge: Fix channel parameter documentation

Confbridge AMI and CLI commands for mute, unmute, and setting the
single video source can accept channel prefixes in lieu of a full
channel name, but documentation states only that it is required and is
a channel name. This corrects the documentation.

(closes issue PQ-1397)
Reported by: Steve Pitts

Merged revisions 406217 from

Merged revisions 406223 from

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

8 years agochan_sip: Decline image streams on unsupported transports
Kinsey Moore [Wed, 22 Jan 2014 18:34:13 +0000 (18:34 +0000)]
chan_sip: Decline image streams on unsupported transports

This change allows chan_sip to decline individual image streams over
unsupported transports in the SDP of the 200 response. Previously,
an image stream offer with RTP/AVP as the transport would cause
chan_sip to respond with a 488.

(closes issue ASTERISK-22988)
Reported by: adomjan
Original patch by: adomjan

Merged revisions 406170 from

Merged revisions 406171 from

Merged revisions 406172 from

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

8 years agores_stasis_playback: Correct error argument order
Kinsey Moore [Wed, 22 Jan 2014 14:01:07 +0000 (14:01 +0000)]
res_stasis_playback: Correct error argument order

Several of the playback error messages for invalid media input in
res_stasis_playback.c had the media name and channel name reversed.
They now correctly identify the channel name and media name.

Reported by: skrusty

Merged revisions 406152 from

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

8 years agores_pjsip: Documentation improvement for Endpoint and AOR mailbox options.
Rusty Newton [Tue, 21 Jan 2014 21:48:15 +0000 (21:48 +0000)]
res_pjsip: Documentation improvement for Endpoint and AOR mailbox options.

Making the help text for both more explicit regarding the format of mailbox identifiers. i.e. clarifying the format for app_voicemail mailboxes vs mailboxes from external MWI sources through modules such as res_external_mwi.

Merged revisions 406133 from

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

8 years agomanager: Clarify eventfilter documentation. Textual changes only.
Walter Doekes [Tue, 21 Jan 2014 21:08:00 +0000 (21:08 +0000)]
manager: Clarify eventfilter documentation. Textual changes only.


Merged revisions 406079 from

Merged revisions 406080 from

Merged revisions 406081 from

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

8 years agochan_mgcp: Enforce locking for oseq
Kinsey Moore [Tue, 21 Jan 2014 20:28:57 +0000 (20:28 +0000)]
chan_mgcp: Enforce locking for oseq

This restricts direct usage of global oseq so that all accesses are
locked and threads are not racing to get oseq values that they did not

This also fixes a build error in res_pktccops under dev mode.

(closes issue ASTERISK-23100)
Reported by: adomjan
Patch by: adomjan

Merged revisions 406037 from

Merged revisions 406038 from

Merged revisions 406049 from

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

8 years agoPJSIP: Handle headers in a list appropriately
Kinsey Moore [Tue, 21 Jan 2014 17:15:34 +0000 (17:15 +0000)]
PJSIP: Handle headers in a list appropriately

The PJSIP header parsing function (pjsip_parse_hdr) can generate more
than one header instance from a single header field. These header
instances exist as a list attached to the returned header and must be
handled appropriately when they are added to a message or else only the
first header instance will be used. This changes the linked list
functions used in outbound proxy code to merge the lists properly.

Merged revisions 406020 from

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

8 years agoARI: Support channel variables in originate
Kinsey Moore [Tue, 21 Jan 2014 14:27:21 +0000 (14:27 +0000)]
ARI: Support channel variables in originate

This adds back in support for specifying channel variables during an
originate without compromising the ability to specify query parameters
in the JSON body. This was accomplished by generating the body-parsing
code in a separate function instead of being integrated with the URI
query parameter parsing code such that it could be called by paths with
body parameters. This is transparent to the user of the API and
prevents manual duplication of code or data structures.

(closes issue ASTERISK-23051)
Reported by: Matt Jordan

Merged revisions 406003 from

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

8 years agoSkinny: fix up handling of fragmented packets.
Damien Wedhorn [Mon, 20 Jan 2014 23:25:38 +0000 (23:25 +0000)]
Skinny: fix up handling of fragmented packets.

Bad offset in reading second or more fragment of skinny packets. Fixed
to offset by char (single byte) rather than size of req.

Merged revisions 405982 from

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

8 years agochan_dahdi/PRI: Suppress CONNECTED_LINE updates when nothing in the udpate is valid.
Richard Mudgett [Mon, 20 Jan 2014 22:23:00 +0000 (22:23 +0000)]
chan_dahdi/PRI: Suppress CONNECTED_LINE updates when nothing in the udpate is valid.

* Also simplified some subddress handling code.

(closes issue ASTERISK-23008)
Reported by: Michael Cargile

Merged revisions 405926 from

Merged revisions 405927 from

Merged revisions 405928 from

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

8 years agoSkinny: fix up session logging.
Damien Wedhorn [Mon, 20 Jan 2014 21:56:14 +0000 (21:56 +0000)]
Skinny: fix up session logging.

Logging from the skinny session loop was providing some incorrect reasons
for exiting the loop. Cleaned up messages and handling so correct reason

Merged revisions 405924 from

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

8 years agochan_pjsip: Provide a means for tracking device state when holding/unholding
Jonathan Rose [Mon, 20 Jan 2014 18:18:25 +0000 (18:18 +0000)]
chan_pjsip: Provide a means for tracking device state when holding/unholding

Previously PJSIP did not track hold/unhold and it would always simply be
'inuse'. This patch fixes that.


Merged revisions 405908 from

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

8 years agoSkinny: fix reversed device reset from CLI.
Damien Wedhorn [Sun, 19 Jan 2014 00:01:31 +0000 (00:01 +0000)]
Skinny: fix reversed device reset from CLI.

Existing code would do a full device restart when "skinny reset device"
was entered at the CLI and do a reset when "skinny reset device restart"

Merged revisions 405893 from

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

8 years agoMake sure the maxptime attribute is added to the correct offers.
Sean Bright [Fri, 17 Jan 2014 22:09:09 +0000 (22:09 +0000)]
Make sure the maxptime attribute is added to the correct offers.

Merged revisions 405877 from

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

8 years agopjsip: fix support for allow=all
Scott Griepentrog [Fri, 17 Jan 2014 21:33:26 +0000 (21:33 +0000)]
pjsip: fix support for allow=all

This change adds improvements to support for allow=all in
pjsip.conf so that it functions as intended.  Previously,
the allow/disallow socery configuration would set & clear
codecs from the media.codecs and media.prefs list, but if
all was specified the prefs list was not updated.  Then a
call would fail when create_outgoing_sdp_stream() created
an SDP with no audio codecs.

A new function ast_codec_pref_append_all() is provided to
add all codecs to the prefs list - only those not already
on the list.  This enables the configuration to specify a
codec preference, but still add all codecs, and even then
remove some codecs, as shown in this example:

allow = ulaw, alaw, all, !g729, !g723

Also, the display order of allow in cli output is updated
to match the configuration by using prefs instead of caps
when generating a human readable string.

Finally, a change to create_outgoing_sdp_stream() skips a
codec when it does not have a payload code instead of the
call failing.

(closes issue ASTERISK-23018)
Reported by: xrobau

Merged revisions 405875 from

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

8 years agohttp: supported chunked Transfer-Encoding
Scott Griepentrog [Fri, 17 Jan 2014 20:51:19 +0000 (20:51 +0000)]
http: supported chunked Transfer-Encoding

This change implements support for HTTP Transfer-Encoding
chunked in both JSON and Form (post vars) body content. A
new function ast_http_get_contents() handles both regular
and chunked mode body, returning after the entire body is

(closes issue ASTERISK-23068)
Reported by: Matt Jordan

Merged revisions 405861 from

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

8 years agoFixing some XML syntax issues with my previous commit at r405777 for ASTERISK-23071
Rusty Newton [Fri, 17 Jan 2014 18:55:22 +0000 (18:55 +0000)]
Fixing some XML syntax issues with my previous commit at r405777 for ASTERISK-23071

Merged revisions 405843 from

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

8 years agoDocumentation: doc fixes across various parts of the code for ASTERISK issues 23061...
Rusty Newton [Fri, 17 Jan 2014 17:16:14 +0000 (17:16 +0000)]
Documentation: doc fixes across various parts of the code for ASTERISK issues 23061,23028,23046,23027

Fixes typos of "transfered" instead of "transferred" in various code. Fixes incorrect gosub param help text for app_queue.
Fixes Asterisk man pages containing unquoted minus signs. Adds note about the "textsupport" option in sip.conf.sample.

(issue ASTERISK-23061)
(issue ASTERISK-23028)
(issue ASTERISK-23046)
(issue ASTERISK-23027)
(closes issue ASTERISK-23061)
(closes issue ASTERISK-23028)
(closes issue ASTERISK-23046)
(closes issue ASTERISK-23027)
Reported by: Eugene, Jeremy Laine, Denis Pantsyrev
 transferred.patch uploaded by Jeremy Laine (license 6561)
 hyphen.patch uploaded by Jeremy Laine (license 6561)
 sip.conf.sample.patch uploaded by Eugene (license 6360)

Merged revisions 405791 from

Merged revisions 405792 from

Merged revisions 405829 from

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

8 years agores_pjsip: enhance documentation for mailboxes options, for both endpoints and aors
Rusty Newton [Fri, 17 Jan 2014 15:14:03 +0000 (15:14 +0000)]
res_pjsip: enhance documentation for mailboxes options, for both endpoints and aors

Made documentation more explicit as to the use of the both options.

(issue ASTERISK-23071)
(closes issue ASTERISK-23071)
Reported by: Matt Jordan

Merged revisions 405777 from

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

8 years agoEnable wide band audio in musiconhold streams.
Walter Doekes [Fri, 17 Jan 2014 14:17:04 +0000 (14:17 +0000)]
Enable wide band audio in musiconhold streams.


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

8 years agores_pjsip: AOR option qualify_frequency not respected on startup
Kevin Harwell [Thu, 16 Jan 2014 20:06:59 +0000 (20:06 +0000)]
res_pjsip: AOR option qualify_frequency not respected on startup

If an endpoint had previously dynamically registered a contact and the contact
information was successfully stored in astdb then upon restart the qualify
notifications would not be sent out if the qualify_frequency was set.  This was
due to the fact that only permanent contacts were being checked and scheduled
for qualifies on startup.  Modified the code to check and schedule all
registered contacts at startup.

(closes issue ASTERISK-23062)
Reported by: Rusty Newton

Merged revisions 405748 from

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

8 years agomanager: Originate doesn't abort on failed format_cap allocation
Kevin Harwell [Thu, 16 Jan 2014 19:54:04 +0000 (19:54 +0000)]
manager: Originate doesn't abort on failed format_cap allocation

action_originate responds to the remote system with an error when cap==NULL,
but doesn't return (abort the originate).  Patched to return.

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

Merged revisions 405745 from

Merged revisions 405746 from

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

8 years agoPJSIP: Fix outbound OPTIONS support
Kinsey Moore [Thu, 16 Jan 2014 19:33:28 +0000 (19:33 +0000)]
PJSIP: Fix outbound OPTIONS support

When path support was added and contacts were made available during
request creation and transmission, the code path used by outbound
qualify support was not modified correctly and was causing request
creation to fail. This ensures that outbound request creation with only
a contact and no dialog, endpoint, or uri can succeed which restores
qualify support.

Reported by: gtjoseph
Reported by: kharwell

Merged revisions 405743 from

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

8 years agores_fax: check_modem_rate() returned incorrect rate for V.27
Kevin Harwell [Thu, 16 Jan 2014 19:13:05 +0000 (19:13 +0000)]
res_fax: check_modem_rate() returned incorrect rate for V.27

According to the new standard for V.27 and V.32 they are able to transmit
at a bit rate of 4,800 or 9,600.  The check_mode_rate function needed to be
updated to reflect this.  Also, because of this change the default 'minrate'
value was updated to be 4800.

(closes issue ASTERISK-22790)
Reported by: Paolo Compagnini
     res_fax.txt uploaded by looserouting (license 6548)

Merged revisions 405656 from

Merged revisions 405693 from

Merged revisions 405694 from

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

8 years agochan_pjsip: initial device state on endpoints is INVALID
Kevin Harwell [Thu, 16 Jan 2014 16:46:00 +0000 (16:46 +0000)]
chan_pjsip: initial device state on endpoints is INVALID

When endpoints get loaded their device state gets set to 'INVALID' because the
channel driver has not been loaded yet.  Fixed by updating the device state for
every endpoint upon load of the channel driver.

(closes issue ASTERISK-23065)
Reported by: Rusty Newton

Merged revisions 405643 from

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

8 years agoMake 12 - 12.1 CHANGES log the same as in 12
Jonathan Rose [Wed, 15 Jan 2014 16:51:08 +0000 (16:51 +0000)]
Make 12 - 12.1 CHANGES log the same as in 12

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

8 years agoBlocked revisions 405587
Jonathan Rose [Wed, 15 Jan 2014 16:49:17 +0000 (16:49 +0000)]
Blocked revisions 405587

Remove subversion conflict tag accidentally left in CHANGES

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

8 years agoInclude CHANGES info for r405553
Jonathan Rose [Wed, 15 Jan 2014 16:48:02 +0000 (16:48 +0000)]
Include CHANGES info for r405553

Merged revisions 405585 from

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

8 years agocel_manager: Don't crash if configuration file is invalid.
Joshua Colp [Wed, 15 Jan 2014 16:36:47 +0000 (16:36 +0000)]
cel_manager: Don't crash if configuration file is invalid.

The cel_manager module did not properly handle the case where the
configuration file was invalid. The module will now output a warning
message and disable itself if this occurs.

Reported by: Bryan Walters

Merged revisions 405581 from

Merged revisions 405582 from

Merged revisions 405583 from

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

8 years agoPJSIP: Add Path header support
Kinsey Moore [Wed, 15 Jan 2014 13:16:10 +0000 (13:16 +0000)]
PJSIP: Add Path header support

This adds Path support to chan_pjsip in res_pjsip_path.c with minimal
additions in res_pjsip_registrar.c to store the path and additions in
res_pjsip_outbound_registration.c to enable advertisement of path
support to registrars and intervening proxies.

Path information is stored on contacts and is enabled via Address of
Record (AoRs) and Registration configuration sections.

While adding path support, it became necessary to be able to add SIP
supplements that handled messages outside of sessions, so a framework
for handling these types of hooks was added in parallel to the
already-existing session supplements and several senders of
out-of-dialog requests were refactored as a result.

(closes issue ASTERISK-21084)

Merged revisions 405565 from

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

8 years agoARI: Add mailboxes resource for controlling and polling external MWI
Jonathan Rose [Tue, 14 Jan 2014 23:44:57 +0000 (23:44 +0000)]
ARI: Add mailboxes resource for controlling and polling external MWI

Adds the following AMI commands:
PUT mailboxes/mailboxName
    modifies mailbox state and implicitly creates new mailboxes
GET mailboxes/mailboxName
    retrieves a JSON representation of a single mailbox if it exists
GET mailboxes
    retrieves a JSON array of all mailboxes
DELETE mailbox/mailboxName
    deletes a mailbox
Note that res_mwi_external must be loaded for these functions to
actually do anything.


Merged revisions 405553 from

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

8 years agostring container: Remove unnecessary RAII_VAR usage and string object lock.
Richard Mudgett [Tue, 14 Jan 2014 21:46:50 +0000 (21:46 +0000)]
string container: Remove unnecessary RAII_VAR usage and string object lock.

Merged revisions 405541 from

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

8 years agochan_sip: fix Local From tag on outbound register regression
Scott Griepentrog [Tue, 14 Jan 2014 18:15:13 +0000 (18:15 +0000)]
chan_sip: fix Local From tag on outbound register regression

In ASTERISK-12117, an improvement to insure consistant local from tags
on outbound registrations resulted in an undesirable behavior - caused
by leftover unexpired sip_pvt dialogs (with the previous cseq number),
resulting in many uncessary REGISTER requests.  Instead of significant
rework of transmit_register(), this change deletes the dialogs after a
200 OK response indiciating a successful registration, keeping the old
dialogs from interfering with normal operation.

(closes issue ASTERISK-22946)
Reported by: Stephan Eisvogel

Merged revisions 405433 from

Merged revisions 405434 from

Merged revisions 405435 from

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

8 years agoverbosity: Fix performance of console verbose messages.
Richard Mudgett [Tue, 14 Jan 2014 18:14:02 +0000 (18:14 +0000)]
verbosity: Fix performance of console verbose messages.

The per console verbose level feature as previously implemented caused a
large performance penalty.  The fix required some minor incompatibilities
if the new rasterisk is used to connect to an earlier version.  If the new
rasterisk connects to an older Asterisk version then the root console
verbose level is always affected by the "core set verbose" command of the
remote console even though it may appear to only affect the current
console.  If an older version of rasterisk connects to the new version
then the "core set verbose" command will have no effect.

* Fixed the verbose performance by not generating a verbose message if
nothing is going to use it and then filtered any generated verbose
messages before actually sending them to the remote consoles.

* Split the "core set debug" and "core set verbose" CLI commands to remove
the per module verbose support that cannot work with the per console
verbose level.

* Added a silent option to the "core set verbose" command.

* Fixed "core set debug off" tab completion.

* Made "core show settings" list the current console verbosity in addition
to the root console verbosity.

* Changed the default verbose level of the 'verbose' setting in the
logger.conf [logfiles] section.  The default is now to once again follow
the current root console level.  As a result, using the AMI Command action
with "core set verbose" could again set the root console verbose level and
affect the verbose level logged.

(closes issue AST-1252)
Reported by: Guenther Kelleter


Merged revisions 405431 from

Merged revisions 405432 from

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

8 years agoFix erroneous behavior when sending auth rejection to artificial endpoint.
Mark Michelson [Tue, 14 Jan 2014 16:43:33 +0000 (16:43 +0000)]
Fix erroneous behavior when sending auth rejection to artificial endpoint.

We were not including an authentication challenge when sending a 401 response
to unmatched endpoints. This was due to the conversion to use a vector for
authentication section names on an endpoint. The vector for artificial endpoints
was empty, resulting in the challenge being sent back containing no challenges.

This is worked around by placing a bogus value in the artificial endpoint's auth
vector. This value is never looked up by anything, since they instead will directly
call ast_sip_get_artificial_auth().

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

8 years agoSkinny: do not add call to missed calls list if answered elsewhere.
Damien Wedhorn [Tue, 14 Jan 2014 03:27:47 +0000 (03:27 +0000)]
Skinny: do not add call to missed calls list if answered elsewhere.

Patch updates skinny devices with a SKINNY_CONNECTED callstate if an
inbound ringing or callwaiting call is answered elsewhere.

Merged revisions 405367 from

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

8 years agoBlocked revisions 405350
Jonathan Rose [Mon, 13 Jan 2014 17:10:01 +0000 (17:10 +0000)]
Blocked revisions 405350

PJSIP: Backport r405270 - Unhold on reinvite without SDP

Adds behavior to unhold on a reinvite without an SDP section

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

8 years agores_pjsip: Fix CLI tab completion issues
Kinsey Moore [Mon, 13 Jan 2014 13:34:47 +0000 (13:34 +0000)]
res_pjsip: Fix CLI tab completion issues

This fixes several issues with the new res_pjsip CLI tab completion
such as output of headers during tab completion and being able to
tab-complete more items than the code actually handled (further items
would simply be ignored).

(closes issue ASTERISK-23081)
Reported by: xrobau

Merged revisions 405338 from

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

8 years agores_ari: Fix various memory leaks.
Joshua Colp [Sun, 12 Jan 2014 22:24:27 +0000 (22:24 +0000)]
res_ari: Fix various memory leaks.

This change fixes a few memory leaks that were found based
on a mailing list post.

1. Some JSON response messages were never freed. This was
caused by the documentation stating that message references
were stolen when in reality they were not. The code now follows
the documentation and usage has been updated.

2. HTTP response headers were never freed.

3. The variable list for wildcards paths was never freed.

(closes issue ASTERISK-23128)
Reported by: Kenneth Watson (on list)


Merged revisions 405325 from

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

8 years agoCDRs: Synchronize dialplan applications that manipulate CDRs with the engine
Matthew Jordan [Sun, 12 Jan 2014 22:13:12 +0000 (22:13 +0000)]
CDRs: Synchronize dialplan applications that manipulate CDRs with the engine

In, applications and functions that
manipulate CDRs were made to interact over Stasis. This was done to
synchronize manipulations of CDRs from the dialplan with the updates the
engine itself receives over the message bus.

This change rested on a faulty premise: that messages published to the CDR
topic or to a topic that forwards to the CDR topic are synchronized with the
messages handled by the CDR topic subscription in the CDR engine. This is not
the case. There is no ordering guaranteed for two messages published to the
same topic; ordering is only guaranteed if a message is published to the same

Stasis was modified in r405311 to allow a publisher to synchronize on the
subscriber. This patch uses that API to synchronize the CDR publishers with
the CDR engine message router, which maintains the overall topic subscription.

(closes issue ASTERISK-22884)
Reported by: Matt Jordan


Merged revisions 405312 from

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

8 years agostasis: Add methods to allow for synchronous publishing to subscriber
Matthew Jordan [Sun, 12 Jan 2014 22:07:01 +0000 (22:07 +0000)]
stasis: Add methods to allow for synchronous publishing to subscriber

This patch adds an API call to Stasis that allows a publisher to publish a
stasis message that will not return until a specific subscriber handles the
message. Since a subscriber can have their own forwarding topic which orders
messages from many topics, this allows a publisher who knows of that subscriber
to synchronize to that subscriber regardless of the forwarding relationships
between topics.

This is of particular use for dialplan applications that need to synchronize
on a particular subscriber's handling of a message.

(issue ASTERISK-22884)
Reported by: Matt Jordan


Merged revisions 405311 from

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

8 years agoPrint "<unknown>" for artificial endpoint in PJSIP security events.
Mark Michelson [Fri, 10 Jan 2014 20:00:16 +0000 (20:00 +0000)]
Print "<unknown>" for artificial endpoint in PJSIP security events.

Previously, this printed a UUID, which was not very clear when dealing
with an artificial endpoint.


Merged revisions 405298 from

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

8 years agoLogging callid: Fix some sizeof() references per coding guidelines.
Richard Mudgett [Fri, 10 Jan 2014 18:17:48 +0000 (18:17 +0000)]
Logging callid: Fix some sizeof() references per coding guidelines.

Merged revisions 405281 from

Merged revisions 405282 from

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

8 years agoPJSIP: Add unhold on reinvite without SDP behavior
Jonathan Rose [Thu, 9 Jan 2014 23:52:09 +0000 (23:52 +0000)]
PJSIP: Add unhold on reinvite without SDP behavior


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

8 years agoFix chan_dahdi copile issue in dev-mode.
Damien Wedhorn [Thu, 9 Jan 2014 23:50:07 +0000 (23:50 +0000)]
Fix chan_dahdi copile issue in dev-mode.

Error "unused variable i in dahdi_create_channel_range" when compiling
in dev-mode. Small restructure to dahdi_create_channel_range to move
the for(x) loop and int i,x to a block within the IFDEF.

Merged revisions 405268 from

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

8 years agores_pjsip_messaging: potential for field values in from/to headers to be missing
Kevin Harwell [Thu, 9 Jan 2014 23:39:31 +0000 (23:39 +0000)]
res_pjsip_messaging: potential for field values in from/to headers to be missing

Added in ability to specify display name format ("name" <sip:name@ipaddr:port>)
for a given URI and made sure it was fully propagated to the outgoing message.
Also made it so outoing messages in res_pjsip always send as "sip:".

(closes issue ASTERISK-22924)
Reported by: Anthony Messina

Merged revisions 405266 from

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

8 years agoastobj2: Correct ao2_iterator opacity violations
Kinsey Moore [Thu, 9 Jan 2014 20:34:19 +0000 (20:34 +0000)]
astobj2: Correct ao2_iterator opacity violations

This corrects the ao2_iterator opacity violations in
res_pjsip_session.c by adding a global function to get the number of
elements inside the container hidden behind the iterator.

(closes issue ASTERISK-23053)
Reported by: Richard Mudgett

Merged revisions 405253 from

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

8 years agores_rtp_asterisk: Fails to resume WebRTC call from hold
Kevin Harwell [Thu, 9 Jan 2014 16:52:57 +0000 (16:52 +0000)]
res_rtp_asterisk: Fails to resume WebRTC call from hold

In ast_rtp_ice_start if the ice session create check list failed, start check
was never initiated and ice_started was never set to true.  Upon re-entering
the function (for instance, [un]hold) it would try to create the check list
again with duplicate remote candidates.

Fixed so that if the create check list fails the necessary data structures
are properly re-initialized for any subsequent retries.

Note, it was decided to not stop ice support (by calling ast_rtp_ice_stop) on a
check list failure because it possible things might still work.  However, a
debug message was added to help with any future troubleshooting.

(closes issue ASTERISK-22911)
Reported by: Vytis Valentinavičius
     works_on_my_machine.patch uploaded by xytis (license 6558)

Merged revisions 405234 from

Merged revisions 405235 from

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

8 years agoapp_confbridge: Fix crash caused when waitmarked/marked users leave together
Matthew Jordan [Thu, 9 Jan 2014 15:50:23 +0000 (15:50 +0000)]
app_confbridge: Fix crash caused when waitmarked/marked users leave together

When waitmarked users join a ConfBridge, the conference state is transitioned
from EMPTY -> INACTIVE. In this state, the users are maintined in a waiting
users list. When a marked user joins, the ConfBridge conference transitions
from INACTIVE -> MULTI_MARKED, and all users are put onto the active list of
users. This process works correctly.

When the marked user leaves, if they are the last marked user, the MULTI_MARKED
state does the following:
(1) It plays back a message to the bridge stating that the leader has left the
    conference. This requires an unlocking of the bridge.
(2) It moves waitmarked users back to the waiting list
(3) It transitions to the appropriate state: in this case, INACTIVE

However, because it plays the prompt back to the bridge before moving the users
and before finishing the state transition, this creates a race condition: with
the bridge unlocked, waitmarked users who leave the conference (or are kicked
from it) can cause a state transition of the bridge to another state before
the conference is transitioned to the INACTIVE state. This causes the state
machine to get a bit wonky, often leading to a crash when the MULTI_MARKED state
attempts to conclude its processing.

This patch fixes this problem:
(1) It prevents kicked users from being kicked again. That's just a nicety.
(2) More importantly, it fixes the race condition by only playing the prompt
    once the state has transitioned correctly to INACTIVE. If waitmarked users
    sneak out during the prompt being played, no harm no foul.


Note that the patch committed here is essentially the same as uploaded by
Simon Moxon on ASTERISK-22740, with the addition of the double kick prevention.

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

(closes issue ASTERISK-22740)
Reported by: Simon Moxon
  ASTERISK-22740.diff uploaded by Simon Moxon (license 6546)

Merged revisions 405215 from

Merged revisions 405216 from

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

8 years ago"Minimun" typo.
Walter Doekes [Thu, 9 Jan 2014 14:15:23 +0000 (14:15 +0000)]
"Minimun" typo.

Merged revisions 405160 from

Merged revisions 405161 from

Merged revisions 405162 from

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

8 years agoUse proper case for checking if digest authentication is used.
Mark Michelson [Wed, 8 Jan 2014 17:23:03 +0000 (17:23 +0000)]
Use proper case for checking if digest authentication is used.

Merged revisions 405131 from

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

8 years agopbx_lua: Add support for Lua 5.2
Kinsey Moore [Wed, 8 Jan 2014 16:34:24 +0000 (16:34 +0000)]
pbx_lua: Add support for Lua 5.2

This adds support for Lua 5.2 in pbx_lua which is available on newer
operating systems.

(closes issue ASTERISK-23011)
Reported by: George Joseph
Patch by: George Joseph

Merged revisions 405090 from

Merged revisions 405091 from

Merged revisions 405124 from

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

8 years agoAdd the missing part of r400140
Kinsey Moore [Wed, 8 Jan 2014 16:30:14 +0000 (16:30 +0000)]
Add the missing part of r400140

When the patch to add retry-on-forbidden-response was committed, part
of the patch for chan_sip was not committed which caused the feature to
be entirely nonfunctional. This corrects the code in question.

(closes issue ASTERISK-17138)

Merged revisions 405033 from

Merged revisions 405081 from

Merged revisions 405083 from

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

8 years agores_pjsip_acl: Fix another case of assuming a contact will always contain a URI.
Joshua Colp [Tue, 7 Jan 2014 19:56:18 +0000 (19:56 +0000)]
res_pjsip_acl: Fix another case of assuming a contact will always contain a URI.

Merged revisions 405034 from

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

8 years agores_pjsip_nat: Don't assume a Contact header will always contain a URI.
Joshua Colp [Tue, 7 Jan 2014 14:56:10 +0000 (14:56 +0000)]
res_pjsip_nat: Don't assume a Contact header will always contain a URI.

If the 'rewrite_contact' option was enabled and a Contact header was received
which contained a '*' a crash would occur.

This change makes the res_pjsip_nat module ignore the Contact header if it
contains only a '*'.

(closes issue ASTERISK-23101)
Reported by: Matt Jordan

Merged revisions 405019 from

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

8 years agoapp_voicemail: Explicitly set defaultenabled=yes
Richard Mudgett [Mon, 6 Jan 2014 21:55:09 +0000 (21:55 +0000)]
app_voicemail: Explicitly set defaultenabled=yes

Merged revisions 405006 from

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

8 years agoExternal MWI AMI support.
Richard Mudgett [Mon, 6 Jan 2014 17:49:05 +0000 (17:49 +0000)]
External MWI AMI support.

The external MWI AMI interface provides a thin wrapper around the core
external MWI resource.

The resource adds the following AMI actions:
MWIDelete, and

(closes issue AFS-46)


Merged revisions 404954 from

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

8 years agoExternal MWI core support.
Richard Mudgett [Mon, 6 Jan 2014 17:45:25 +0000 (17:45 +0000)]
External MWI core support.

* The core external MWI resource provides for MWI message counts
persistence using sorcery.  With sorcery, the user is able to configure
which sorcery wizzard backend to use if the default astdb is not desired.

* The core external MWI resoruce provides some debugging CLI commands
enabled by defining MWI_DEBUG_CLI.

The debugging CLI commands are:
"mwi delete all",
"mwi delete like <regex>",
"mwi delete mailbox <mailbox>",
"mwi list all",
"mwi list like <regex>",
"mwi show mailbox <mailbox>", and
"mwi update mailbox <mailbox> [<new> [<old>]]".

(closes issue AFS-43)


Merged revisions 404952 from

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

8 years agores_pjsip_outbound_registration: Don't assume that a registration client will always...
Joshua Colp [Sun, 5 Jan 2014 16:01:53 +0000 (16:01 +0000)]
res_pjsip_outbound_registration: Don't assume that a registration client will always exist.

Merged revisions 404935 from

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

8 years agores_pjsip_outbound_registration: Create registration client in pj thread.
Joshua Colp [Sun, 5 Jan 2014 01:31:19 +0000 (01:31 +0000)]
res_pjsip_outbound_registration: Create registration client in pj thread.

Depending on which threading was loading the outbound registration it was
possible for the registration client to be allocated outside of a pj thread.
This change moves the creation inside the synchronous task where it is
guaranteed it will occur in a pj thread.

Reported by: Rob Thomas

Merged revisions 404923 from

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

8 years agoasterisk.c: suppress live_dangerously warning on rasterisk
Tzafrir Cohen [Sat, 4 Jan 2014 10:52:43 +0000 (10:52 +0000)]
asterisk.c: suppress live_dangerously warning on rasterisk

Even since the fixes of AST-2013-007, Asterisk prints the following
warning on startup if the user decided to live dangerously:

  Privilege escalation protection disabled!
  See for more details.

This message is intended for the logs and interactive startup. No need
for it to appear on a remote console. This commit removes it from there.

(closes issue ASTERISK-23084)

Merged revisions 404861 from

Merged revisions 404888 from

Merged revisions 404911 from

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

8 years agocel_pgsql: module not correctly reloading
Kevin Harwell [Fri, 3 Jan 2014 22:00:42 +0000 (22:00 +0000)]
cel_pgsql: module not correctly reloading

Upon reload the module unconditionally "unloaded" the module (freeing memory
and setting pointers to NULL) and then when attempting a "load" if the config
file had not changed then nothing would be reinitialized.

By moving the "unload" to occur conditionally (reload only) after an attempted
configuration load, but before module "loading" alleviates the issue. The module
now loads/unloads/reloads correctly.

(closes issue ASTERISK-22871)
Reported by: Matteo

Merged revisions 404857 from

Merged revisions 404858 from

Merged revisions 404859 from

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

8 years agores_pjsip_logger: Add the ASTERISK_FILE_VERSION macro
Matthew Jordan [Fri, 3 Jan 2014 21:45:46 +0000 (21:45 +0000)]
res_pjsip_logger: Add the ASTERISK_FILE_VERSION macro

Registering yourself with the Asterisk core is the nice thing to do, even
when you're a logging module.

Merged revisions 404855 from

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

8 years agores_pjsip_authenticator_digest: Fix md5 hash buffer
Matthew Jordan [Fri, 3 Jan 2014 21:13:30 +0000 (21:13 +0000)]
res_pjsip_authenticator_digest: Fix md5 hash buffer

An md5 hash is 32 bytes long. The char buffer must be at least 33 bytes to
avoid clobbering of the stack. This patch also fixes a potential clobbering
in test_utils.c.

Thanks to Andrew Nagy for reporting and testing this out in #asterisk-dev

Reported by: Andrew Nagy
Tested by: Andrew Nagy

Merged revisions 404843 from

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

8 years agomanager: UserEvent including action on output
Kevin Harwell [Fri, 3 Jan 2014 20:02:03 +0000 (20:02 +0000)]
manager: UserEvent including action on output

AMI action UserEvent event response would include the action header in its
keyvalue pairs list. Adjusted the start of the header loop to skip over the
action part.

(closes issue ASTERISK-22899)
Reported by: outtolunc
     svn_manager.c.skip_action.diff.txt uploaded by outtolunc (license 5198)

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

8 years agochan_dahdi: dahdi show channels slices PRI channel dnid on output
Kevin Harwell [Fri, 3 Jan 2014 19:02:25 +0000 (19:02 +0000)]
chan_dahdi: dahdi show channels slices PRI channel dnid on output

dahdi show channels output slices the callerid (which is dnid copied over on
PRI channels). If the channel naming structures look like:


then the output slices 1408409XXXX down to 1408409XXX. This patch just opens
it up to 15 chars so you can see the whole thing.

(closes issue ASTERISK-22918)
Reported by: outtolunc
     svn_chan_dahdi.c.format12_15.diff.txt uploaded by outtolunc (license 5198)

Merged revisions 404784 from

Merged revisions 404785 from

Merged revisions 404786 from

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

8 years agotest_stasis.c: Fix ref leak in normal execution path.
Richard Mudgett [Fri, 3 Jan 2014 18:33:19 +0000 (18:33 +0000)]
test_stasis.c: Fix ref leak in normal execution path.

Merged revisions 404764 from

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

8 years agoapp_meetme: compiler warning
Kevin Harwell [Fri, 3 Jan 2014 18:31:35 +0000 (18:31 +0000)]
app_meetme: compiler warning

Fixed a compiler warning (errors in 'dev-mode') given by gcc version 4.8.1.
The one in app_meetme involved the 'sizeof-pointer-memaccess'
(see: warning. Fixed so
it would no longer issue a warning and can compile again in 'dev-mode'.


Merged revisions 404742 from

Merged revisions 404773 from

Merged revisions 404781 from

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

8 years agores_pjsip: Ensure more URI validation happens in pj threads.
Joshua Colp [Fri, 3 Jan 2014 17:27:08 +0000 (17:27 +0000)]
res_pjsip: Ensure more URI validation happens in pj threads.

Merged revisions 404737 from

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

8 years agores_pjsip_outbound_registration: Ensure URI validation happens in a pjlib thread.
Joshua Colp [Fri, 3 Jan 2014 17:10:23 +0000 (17:10 +0000)]
res_pjsip_outbound_registration: Ensure URI validation happens in a pjlib thread.

This change moves outbound registration URI validation into the task executed
within a pjlib thread.

Reported by: Andrew Nagy

Merged revisions 404725 from

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

8 years agofunc_strings: use memmove to prevent overlapping memory on strcpy
Scott Griepentrog [Thu, 2 Jan 2014 19:38:09 +0000 (19:38 +0000)]
func_strings: use memmove to prevent overlapping memory on strcpy

When calling REPLACE() with an empty replace-char argument, strcpy
is used to overwrite the the matching <find-char>.  However as the
src and dest arguments to strcpy must not overlap, it causes other
parts of the string to be overwritten with adjacent characters and
the result is mangled.  Patch replaces call to strcpy with memmove
and adds a test suite case for REPLACE.

(closes issue ASTERISK-22910)
Reported by: Gareth Palmer
    func_strings.patch uploaded by Gareth Palmer (license 5169)

Merged revisions 404674 from

Merged revisions 404675 from

Merged revisions 404676 from

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

8 years agores_pjsip: add 'set_var' support on endpoints
Kevin Harwell [Thu, 2 Jan 2014 19:08:19 +0000 (19:08 +0000)]
res_pjsip: add 'set_var' support on endpoints

Added a new 'set_var' option for ast_sip_endpoint(s).  For each variable
specified that variable gets set upon creation of a pjsip channel involving
the endpoint.

(closes issue ASTERISK-22868)
Reported by: Joshua Colp

Merged revisions 404663 from

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

8 years agochan_pjsip: Handle hanging up before calling.
Joshua Colp [Tue, 31 Dec 2013 22:51:04 +0000 (22:51 +0000)]
chan_pjsip: Handle hanging up before calling.

Channel creation in Asterisk is broken up into two steps: requesting and calling.
In some cases a channel may be requested but never called. This happens in the
ChanIsAvail dialplan application for determining if something is reachable or
not. The PJSIP channel driver did not take this situation into account and
attempted to end a session that was never called out on.

The code now checks the session state to determine if the session has been
called out on and if not terminates it instead of ending it.

(closes issue ASTERISK-23074)
Reported by: Kilburn

Merged revisions 404652 from

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

8 years agores_pjsip_endpoint_identifier_ip: Accept hostnames in the 'match' field.
Joshua Colp [Tue, 31 Dec 2013 22:21:07 +0000 (22:21 +0000)]
res_pjsip_endpoint_identifier_ip: Accept hostnames in the 'match' field.

Hostnames specified in the 'match' field will be resolved and all addresses
returned. Each address will be added to the endpoint identifier for the
matching process.

Reported by: Rob Thomas

Merged revisions 404613 from

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

8 years agocel_pgsql: deadlock on unload and core_event_dispatcher
Kevin Harwell [Tue, 31 Dec 2013 21:39:45 +0000 (21:39 +0000)]
cel_pgsql: deadlock on unload and core_event_dispatcher

A deadlock can happen between a thread unloading or reloading the cel_pgsql
module and the core_event_dispatcher taskprocessor thread. Description of
what is happening:

Thread 1 (for example, a netconsole thread):

    a "module reload cel_pgsql" is launched
    the thread enter the "my_unload_module" function (cel_pgsql.c)
    the thread acquire the write lock on psql_columns
    the thread enter the "ast_event_unsubscribe" function (event.c)
    the thread try to acquire the write lock on ast_event_subs[sub->type]

Thread 2 (core_event_dispatcher taskprocessor thread):

    the taskprocessor pop a CEL event
    the thread enter the "handle_event" function (event.c)
    the thread acquire the read lock on ast_event_subs[sub->type]
    the thread callback the "pgsql_log" function (cel_pgsql.c), since it's a subscriber of CEL events
    the thread try to acquire a read lock on psql_columns

(closes issue ASTERISK-22854)
Reported by: Etienne Lessard
     cel_pgsql_fix_deadlock_event.patch uploaded by hexanol (license 6394)

Merged revisions 404603 from

Merged revisions 404604 from

Merged revisions 404605 from

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

8 years agores_pjsip_outbound_registration: Add validation for 'server_uri' and 'client_uri'.
Joshua Colp [Tue, 31 Dec 2013 20:27:03 +0000 (20:27 +0000)]
res_pjsip_outbound_registration: Add validation for 'server_uri' and 'client_uri'.

When applying configuration for outbound registrations the 'server_uri' and
'client_uri' fields were not validated. The code will now confirm that they
exist and that they contain parseable SIP URIs.

Reported by: Andrew Nagy

Merged revisions 404592 from

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

8 years agochannels.c: core show channeltypes slicing
Kevin Harwell [Mon, 30 Dec 2013 23:25:53 +0000 (23:25 +0000)]
channels.c: core show channeltypes slicing

'core show channeltypes' type column is being sliced, resulting in incomplete
type names.

(closes issue ASTERISK-22919)
Reported by: outtolunc
     svn_channel.c.format_15.diff.txt uploaded by outtolunc (license 5198)

Merged revisions 404579 from

Merged revisions 404581 from

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

8 years agoAdded note to UPGRADE.txt about the default value of live_dangerously changing
David M. Lee [Tue, 24 Dec 2013 17:12:03 +0000 (17:12 +0000)]
Added note to UPGRADE.txt about the default value of live_dangerously changing

Merged revisions 404568 from

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

8 years agohttp: Properly reject requests with Transfer-Encoding set
David M. Lee [Tue, 24 Dec 2013 16:50:48 +0000 (16:50 +0000)]
http: Properly reject requests with Transfer-Encoding set

Asterisk does not support any of the transfer encodings specified in
HTTP/1.1, other than the default "identity" encoding.

According to RFC 2616:

   A server which receives an entity-body with a transfer-coding it does
   not understand SHOULD return 501 (Unimplemented), and close the
   connection. A server MUST NOT send transfer-codings to an HTTP/1.0

This patch adds the 501 Unimplemented response, instead of the hard work
of actually implementing other recordings.

This behavior is especially problematic for Node.js clients, which use
chunked encoding by default.

(closes issue ASTERISK-22486)

Merged revisions 404565 from

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

8 years agores_pjsip_pubsub: Ensure dialog manipulation happens on proper thread.
Joshua Colp [Tue, 24 Dec 2013 02:20:18 +0000 (02:20 +0000)]
res_pjsip_pubsub: Ensure dialog manipulation happens on proper thread.

When destroying a subscription we remove the serializer from its dialog
and decrease its reference count. Depending on which thread dropped the
subscription reference count to 0 it was possible for this to occur in
a thread where it is not possible.

(closes issue ASTERISK-22952)
Reported by: Matt Jordan

Merged revisions 404553 from

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

8 years agochan_dahdi: enable ignore_failed_channels by default
Tzafrir Cohen [Mon, 23 Dec 2013 16:38:43 +0000 (16:38 +0000)]
chan_dahdi: enable ignore_failed_channels by default

If ignore_failed_channels is set to "true" for a channel, the channel
will continue to be configured even if configuring it has failed.

This allows Asterisk to start before all the DAHDI initialization is
done and thus not force the starting order dahdi -> asterisk.


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

8 years agores_pjsip/pjsip_cli: fix compilation error caused by passing ast_free
Matthew Jordan [Sat, 21 Dec 2013 03:35:04 +0000 (03:35 +0000)]
res_pjsip/pjsip_cli: fix compilation error caused by passing ast_free

When wanting to pass *free as a function pointer, ast_free_ptr has to be used
instead of ast_free. This allows it to be compiled with MALLOC_DEBUG enabled.

Merged revisions 404531 from

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

8 years agoari: Remove support for specifying channel vars during origination.
David M. Lee [Fri, 20 Dec 2013 22:04:15 +0000 (22:04 +0000)]
ari: Remove support for specifying channel vars during origination.

When we added support for specifying channel variables for an
origination, we didn't consider how that would interact with another
feature, namely specifying request parameters in a JSON request body.

The method of specifying channel variables (as a flat JSON object passed
in the JSON body) interferes with parsing parameters out of the request

Unfortunately, fixing this would be a backward incompatible change. In
the interest of keeping the API sane and keeping our release schedule,
we're dropping the feature for specifying channel variables in the
origination request.

We will bring the feature back soon, as a backward compatible addition
to the API.

(closes issue ASTERISK-23051)

Merged revisions 404509 from

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

8 years agoRemove automerge properties
David M. Lee [Fri, 20 Dec 2013 22:03:43 +0000 (22:03 +0000)]
Remove automerge properties

Merged revisions 404488 from

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

8 years agores_pjsip: Add PJSIP CLI commands
Matthew Jordan [Fri, 20 Dec 2013 21:32:13 +0000 (21:32 +0000)]
res_pjsip: Add PJSIP CLI commands

Implements the following cli commands:
pjsip list aors
pjsip list auths
pjsip list channels
pjsip list contacts
pjsip list endpoints
pjsip show aor(s)
pjsip show auth(s)
pjsip show channels
pjsip show endpoint(s)

Minor modifications made to the AMI command implementations to facilitate

New function ast_variable_list_sort added to config.c and config.h to implement
variable list sorting.

(issue ASTERISK-22610)
  pjsip_cli_v2.patch uploaded by george.joseph (License 6322)

Merged revisions 404480 from

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

8 years agosay.c: correct time for polish
Scott Griepentrog [Fri, 20 Dec 2013 21:18:00 +0000 (21:18 +0000)]
say.c: correct time for polish

In ast_say_date_with_format_pl(), change ast_say_number() to
use tm_sec instead of tm_mn.

(closes issue ASTERISK-22856)
Reported by: Robert Mordec
     say.c.patch uploaded by veilen (license 6555)

Merged revisions 404456 from

Merged revisions 404457 from

Merged revisions 404458 from

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

8 years agoFix issue where PJSIP blind transferer dialog may not complete as planned.
Mark Michelson [Fri, 20 Dec 2013 20:28:19 +0000 (20:28 +0000)]
Fix issue where PJSIP blind transferer dialog may not complete as planned.

When transferring to a dialplan extension that will not place any outbound
calls, the only control frames that the PJSIP REFER framehook will receive
are inconsequential (such as unhold or srcchange). As such, we shouldn't
allow for the reception of those types of frames prevent us from signaling
to the transferring party that the transfer has completed successfully once
voice frames are read.

Thanks to Jonathan Rose for pointing this out.

Merged revisions 404439 from

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

8 years agores_stasis_device_state: Set resource type for subscriptions to deviceState
Matthew Jordan [Fri, 20 Dec 2013 20:05:40 +0000 (20:05 +0000)]
res_stasis_device_state: Set resource type for subscriptions to deviceState

The documentation for ARI already specifies that the device state resource when
used for subscribing for events is "deviceState", not "device_state". The code,
however, used "device_state"; although this was inconsistent as well in doxygen
comments in resource_applications.

Because the actual resource being subscribed to is /deviceStates/{device}/, it
makes sense for the resource type specifier to be deviceState.

Note that the key value in the events is still "device_state".

Merged revisions 404437 from

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

8 years agoao2_iterator: Mini-audit of the ao2_iterator loops in the new code files.
Richard Mudgett [Fri, 20 Dec 2013 20:00:50 +0000 (20:00 +0000)]
ao2_iterator: Mini-audit of the ao2_iterator loops in the new code files.

* Fixed several places where ao2_iterator_destroy() was not called.

* Fixed several iterator loop object variable reference problems.

* Fixed res_parking AMI actions returning non-zero.  Only the AMI logoff
action can return non-zero.


Merged revisions 404434 from

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