11 years agoFix calls to ast_get_ip() not initializing the address family.
Richard Mudgett [Wed, 23 Nov 2011 23:03:32 +0000 (23:03 +0000)]
Fix calls to ast_get_ip() not initializing the address family.

Merged revisions 346239 from

Merged revisions 346240 from

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

11 years agoMinor cleanup in chan_sip get_msg_text() function.
Walter Doekes [Wed, 23 Nov 2011 20:48:42 +0000 (20:48 +0000)]
Minor cleanup in chan_sip get_msg_text() function.

In r116240, get_msg_text() got an extra parameter to fix the unwanted
addition of trailing newlines to SIP MESSAGE bodies. This caused all
linefeeds to be trimmed, which isn't right either. This is a stop-gap;
the right fix is to return the original SIP request body.

Reviewed by: Matt Jordan

Merged revisions 346147 from

Merged revisions 346198 from

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

11 years agoFix ast_str_truncate signedness warning and documentation.
Walter Doekes [Wed, 23 Nov 2011 19:58:19 +0000 (19:58 +0000)]
Fix ast_str_truncate signedness warning and documentation.


Merged revisions 346144 from

Merged revisions 346145 from

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

11 years agoFix res_jabber resource leaks
Kinsey Moore [Wed, 23 Nov 2011 17:16:33 +0000 (17:16 +0000)]
Fix res_jabber resource leaks

This should fix almost all resource leaks in res_jabber that involve
ASTOBJ_CONTAINER_FIND and resolves an ambiguous situation where
ast_aji_get_client would sometimes bump an object's refcount and sometimes not.


Merged revisions 346086 from

Merged revisions 346087 from

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

11 years agoFixed SendMessage stripping extension from To: header in SIP MESSAGE
Matthew Jordan [Wed, 23 Nov 2011 16:23:34 +0000 (16:23 +0000)]
Fixed SendMessage stripping extension from To: header in SIP MESSAGE

When using the MessageSend application to send a SIP MESSAGE to a non-peer,
chan_sip attempted to validate the hostname or IP Address.  In the process,
it stripped off the extension and failed to add it back to the sip_pvt
structure before transmitting.  This patch adds the full URI passed in
from the message core to the sip_pvt structure.

(closes issue ASTERISK-18903)
Reported by: Shaun Clark
Tested by: Matt Jordan


Merged revisions 346040 from

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

11 years agoResume playing existing hold music for cached realtime MOH
Terry Wilson [Wed, 23 Nov 2011 16:12:34 +0000 (16:12 +0000)]
Resume playing existing hold music for cached realtime MOH

As a result of the fix for ASTERISK-18039, realtime caching MOH no longer
properly resumes playing back a file between different holds in the same call.
This is because scanning for new files causes the existing file array to be
emptied and we were just comparing that the saved pointer to the filename
matched the pointer to the filename in a particular position in the array. An
easy fix is to save the filename instead of a pointer to it and then do a
strcmp instead of comparing the addresses.

(closes issue ASTERISK-18912)

Merged revisions 346030 from

Merged revisions 346031 from

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

11 years agoAdded support level for new modules
Paul Belanger [Wed, 23 Nov 2011 16:10:45 +0000 (16:10 +0000)]
Added support level for new modules

Merged revisions 346029 from

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

11 years agoFix dnsmgr entries to ask for the same address family each time.
Richard Mudgett [Tue, 22 Nov 2011 23:06:11 +0000 (23:06 +0000)]
Fix dnsmgr entries to ask for the same address family each time.

The dnsmgr refresh would always get the first address found regardless of
the original address family requested.  So if you asked for only IPv4
addresses originally, you might get an IPv6 address on refresh.

* Saved the original address family requested by ast_dnsmgr_lookup() to be
used when the address is refreshed.

Merged revisions 345976 from

Merged revisions 345977 from

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

11 years agoClarify why the AST_LOG_* macros exist next to the LOG_* macros.
Walter Doekes [Tue, 22 Nov 2011 20:32:51 +0000 (20:32 +0000)]
Clarify why the AST_LOG_* macros exist next to the LOG_* macros.

(issue ASTERISK-17973)

Merged revisions 345923 from

Merged revisions 345924 from

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

11 years agoAdd missing sound_only_one config variable
Paul Belanger [Tue, 22 Nov 2011 16:41:58 +0000 (16:41 +0000)]
Add missing sound_only_one config variable

(closes issue ASTERISK-18895)
Reported by: zvision
        conf_config_parser.diff (license #5755) patch uploaded by zvision

Merged revisions 345882 from

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

11 years agoDefault to nat=yes; warn when nat in general and peer differ
Terry Wilson [Mon, 21 Nov 2011 21:09:59 +0000 (21:09 +0000)]
Default to nat=yes; warn when nat in general and peer differ

It is possible to enumerate SIP usernames when the general and user/peer
nat settings differ in whether to respond to the port a request is sent
from or the port listed for responses in the Via header. In 1.4 and 1.6.2,
this would mean if one setting was nat=yes or nat=route and the other was
either nat=no or nat=never. In 1.8 and 10, this would mean when one was
nat=force_rport and the other was nat=no.

In order to address this problem, it was decided to switch the default
behavior to nat=yes/force_rport as it is the most commonly used option
and to strongly discourage setting nat per-peer/user when at all possible.

For more discussion of the issue, please see:

(closes issue ASTERISK-18862)

Merged revisions 345776 from

Merged revisions 345800 from

Merged revisions 345828 from

Merged revisions 345830 from

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

11 years agoAdd #tryinclude statement
Paul Belanger [Mon, 21 Nov 2011 16:40:17 +0000 (16:40 +0000)]
Add #tryinclude statement

This provides the same functionality as #include however an asterisk module will
still load if the filename does not exist.


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

11 years agoUpdate the documentation to better clarify how the existing commands work.
Tilghman Lesher [Sat, 19 Nov 2011 15:11:45 +0000 (15:11 +0000)]
Update the documentation to better clarify how the existing commands work.


Merged revisions 345682 from

Merged revisions 345683 from

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

11 years agoFix a change in behavior in 'database show' from 1.8.
Tilghman Lesher [Fri, 18 Nov 2011 22:20:47 +0000 (22:20 +0000)]
Fix a change in behavior in 'database show' from 1.8.

In 1.8 and previous versions, one could use any fullword portion of the key
name, including the full key, to obtain the record.  Until this patch, this
did not work for the full key.

Closes issue ASTERISK-18886

Patch: by tilghman
Review: by twilson ( on #asterisk-dev

Merged revisions 345640 from

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

11 years agoAccidentally readded sipfriends.sql in r345560. This was removed
Matthew Jordan [Thu, 17 Nov 2011 19:47:29 +0000 (19:47 +0000)]
Accidentally readded sipfriends.sql in r345560.  This was removed
in r342871

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

11 years agoAdd admin toggle mute all and participant count menu options to app_confbridge
Matthew Jordan [Thu, 17 Nov 2011 18:09:13 +0000 (18:09 +0000)]
Add admin toggle mute all and participant count menu options to app_confbridge

This patch adds two new menu features to app_confbridge, admin_toggle_menu_
participants and participant_count.  The admin action will globally mute /
unmute all non-admin participants on a converence, while the participant
count simply exposes the existing participant count function to the
conference bridge menu.

This also adds configuration options to change the sound played when the
conference is globally muted / unmuted, as well as the necessary config
hooks to place these functions in the DTMF menus.

(closes issue ASTERISK-18204)
Reported by: Kevin Reeves
Tested by: Matt Jordan
  app_confbridge.c.patch.txt, conf_config_parser.c.patch.txt,
  confbridge.h.patch.txt uploaded by Kevin Reeves (license 6281)


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

11 years agoRemove dead code since pri_grab() can never fail.
Richard Mudgett [Thu, 17 Nov 2011 17:31:16 +0000 (17:31 +0000)]
Remove dead code since pri_grab() can never fail.

Dead code makes programmers sick.  I am sick of looking at it.

Merged revisions 345546 from

Merged revisions 345558 from

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

11 years agoGuarantee messages go into the right folders with multiple recipients
Jonathan Rose [Wed, 16 Nov 2011 14:56:03 +0000 (14:56 +0000)]
Guarantee messages go into the right folders with multiple recipients

Before, using the U flag in Voicemail with multiple recipients would put urgent messages
in the INBOX folder for all users past the first thanks to a bug with the message
copying function. This would also cause messages to fail to be sent if the INBOX
directory hadn't been created for that mailbox yet.

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

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


Merged revisions 345487 from

Merged revisions 345488 from

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

11 years agoMake FastAGI HANGUP show up in AGI debug output.
Richard Mudgett [Tue, 15 Nov 2011 20:11:06 +0000 (20:11 +0000)]
Make FastAGI HANGUP show up in AGI debug output.

* Change from using send() to ast_agi_send() so the HANGUP shows up in the
AGI debug output.

(closes issue ASTERISK-18723)
Reported by: James Van Vleet
      jira_asterisk_18723_v1.8.patch (license #5621) patch uploaded by rmudgett

Merged revisions 345431 from

Merged revisions 345432 from

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

11 years agoFix typo in sig_pri using wrong structure name.
Richard Mudgett [Tue, 15 Nov 2011 18:18:11 +0000 (18:18 +0000)]
Fix typo in sig_pri using wrong structure name.

It is fortunate that the typo does not alter generated code since the
e-> and e-> members are in the same position.

(closes issue ASTERISK-18868)
Reported by: zvision
      sig_pri.c.diff (License #5755) patch uploaded by zvision

Merged revisions 345370 from

Merged revisions 345371 from

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

11 years agoMake queue log indicate if ADDMEMBER is paused for AMI and realtime.
Richard Mudgett [Mon, 14 Nov 2011 22:27:42 +0000 (22:27 +0000)]
Make queue log indicate if ADDMEMBER is paused for AMI and realtime.

* Add parameter to queue log ADDMEMBER to indicate if the member is

(closes issue ASTERISK-18645)
Reported by: garlew
      paused.diff (License #5337) patch uploaded by garlew
Tested by: rmudgett, garlew


Merged revisions 345285 from

Merged revisions 345290 from

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

11 years agoRestore SIP DTMF overlap dialing method.
Richard Mudgett [Mon, 14 Nov 2011 22:05:39 +0000 (22:05 +0000)]
Restore SIP DTMF overlap dialing method.

The recent fix for ASTERISK-17288 to get RFC3578 SIP overlap support
working correctly removed a long standing ability to do overlap dialing
using DTMF in the early media phase of a call.

See ASTERISK-18702 it has a very good description of the issue.

I started with Pavel Troller's chan_sip.diff patch on issue

* Added 'dtmf' enum value to sip.conf allowoverlap config option.  The new
option value causes the Incomplte application to not send anything with
chan_sip so the caller can supply more digits via DTMF.

since that is what it really means.

* Fixed get_destination() inconsistency with the pickup extension

* Fixed initialization of PAGE3 of global_flags in reload_config().

(closes issue ASTERISK-18702)
Reported by: Pavel Troller



Merged revisions 345273 from

Merged revisions 345275 from

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

11 years agoFix Progress spelling error in main/pbx.c.
Richard Mudgett [Mon, 14 Nov 2011 20:48:19 +0000 (20:48 +0000)]
Fix Progress spelling error in main/pbx.c.

(closes issue ASTERISK-18857)
Reported by: David M
      mainpbx-trivial.patch (License #6326) patch uploaded by David M

Merged revisions 345219 from

Merged revisions 345220 from

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

11 years agoDon't read past end of input when calling write()
Terry Wilson [Mon, 14 Nov 2011 19:12:49 +0000 (19:12 +0000)]
Don't read past end of input when calling write()

int blah = 1;
write(chan->alertpipe[1], &blah, new_frames * sizeof(blah)) !=
(new_frames * sizeof(blah)))

is only valid when new_frames == 1. Otherwise we start reading into adjacent
variables declared on the stack. The read end discards what is read, so the
values don't matter but it's not a good idea to read past where we want even
though new_frames is almost always 1 and should never be large. This patch is
basically taken out of kpfleming's eventfd branch, as he mentioned that he
remembered fixing it there when I talked to him about this issue.


Merged revisions 345163 from

Merged revisions 345164 from

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

11 years agoUpdate reqresp_parser parse_uri doxygen comments.
Walter Doekes [Mon, 14 Nov 2011 19:03:29 +0000 (19:03 +0000)]
Update reqresp_parser parse_uri doxygen comments.

The issue mentioned in the bug report had been fixed recently by
twilson. The reporter included this documentation fix.

(closes issue ASTERISK-18572)
Reported by: Richard Miller
Patch by: Richard Miller (modified)

Merged revisions 345160 from

Merged revisions 345161 from

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

11 years agoMoves voicemail setup password entry to the end of the setup process.
Jonathan Rose [Mon, 14 Nov 2011 16:21:06 +0000 (16:21 +0000)]
Moves voicemail setup password entry to the end of the setup process.

This change was made because forcegreeting and forcename settings in voicemail could be
circumvented by hanging up after entering a password, because the only way voicemail
currently observes whether a mailbox is new or not is by checking to see if the password
is the same as the mailbox number or not.

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

Merged revisions 345062 from

Merged revisions 345117 from

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

11 years agoEnsure that a null vmexten does not cause a segfault
Kinsey Moore [Mon, 14 Nov 2011 15:11:09 +0000 (15:11 +0000)]
Ensure that a null vmexten does not cause a segfault

When sip_send_mwi_to_peer was modified recently to avoid deadlocks, vmexten
was not expected to be null.  This change handles that situation to avoid
a segfault.

Merged revisions 345063 from

Merged revisions 345064 from

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

11 years agoIncreased max number of destinations.
TransNexus OSP Development [Mon, 14 Nov 2011 01:25:25 +0000 (01:25 +0000)]
Increased max number of destinations.

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

11 years agomISDN Round Robin break when no channel is available
Gregory Nietsky [Sat, 12 Nov 2011 16:32:45 +0000 (16:32 +0000)]
mISDN Round Robin break when no channel is available

Prevent channels been parsed repetitively.

Merged revisions 344965 from

Merged revisions 344966 from

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

11 years agoDon't forget to rescan MOH files for cached realtime classes
Terry Wilson [Sat, 12 Nov 2011 00:36:37 +0000 (00:36 +0000)]
Don't forget to rescan MOH files for cached realtime classes

Realtime MOH class caching was implemented because without it, you would build
a completely new MOH class and would start the music over at the beginning each
time hold was pressed in a conversation. Unfortunately, this broke re-scanning
for file changes for realtime MOH classes. This patch corrects that issue.

(closes issue ASTERISK-18039)

Merged revisions 344899 from

Merged revisions 344900 from

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

11 years agoUse __alignof__ instead of sizeof for stringfield length storage.
Walter Doekes [Fri, 11 Nov 2011 22:00:14 +0000 (22:00 +0000)]
Use __alignof__ instead of sizeof for stringfield length storage.

Kevin P Fleming suggested that r343157 should use __alignof__ instead
of sizeof. For most systems this won't be an issue, but better fix it
now while it's still fresh.


Merged revisions 344843 from

Merged revisions 344845 from

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

11 years agoVideo format was treated as audio when removed from the file playback scheduler
Matthew Jordan [Fri, 11 Nov 2011 21:57:46 +0000 (21:57 +0000)]
Video format was treated as audio when removed from the file playback scheduler

This patch fixes the format type check in ast_closestream and
filestream_destructor.  Previously a comparison operator was used, but since
audio formats are no longer contiguous (and AST_FORMAT_AUDIO_MASK includes
formats that have a value greater than the video formats), a bitwise AND
operation is used instead.  Duplicated code was also moved to filestream_close.

(closes issue ASTERISK-18682)
Reported by: Aldo Bedrij
Tested by: Matt Jordan


Merged revisions 344823 from

Merged revisions 344842 from

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

11 years agoRemove unneeded if(params) checks in reqresp_parser.
Walter Doekes [Fri, 11 Nov 2011 21:37:53 +0000 (21:37 +0000)]
Remove unneeded if(params) checks in reqresp_parser.

Nick Lewis added them in
for no apparent reason. There is no way that params could become NULL in
that piece of code, so I removed these excess checks again.

Merged revisions 344837 from

Merged revisions 344839 from

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

11 years agoFix bad quoting of multiline mxml opaque_data that caused invalid xml.
Walter Doekes [Fri, 11 Nov 2011 21:33:54 +0000 (21:33 +0000)]
Fix bad quoting of multiline mxml opaque_data that caused invalid xml.

The opaque_data was added and enclosed in single quotes, assuming it
would be only a single line. The rest of the lines were appended after
the closing quote.

(closes issue ASTERISK-18852)
Reported by: peep_ on IRC


Merged revisions 344835 from

Merged revisions 344836 from

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

11 years agoFix regression introduced by SDP fixups
Kinsey Moore [Fri, 11 Nov 2011 20:15:16 +0000 (20:15 +0000)]
Fix regression introduced by SDP fixups

If capability is adjusted when switching to UDPTL during fax transmission, fax
teardown fails.  Make sure capability is only touched if RTP is active.  This
regression was introduced in R344385.

Merged revisions 344769 from

Merged revisions 344770 from

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

11 years agoCheck sip.conf maxforwards parameter for range 1 <= x <= 255.
Richard Mudgett [Fri, 11 Nov 2011 18:37:32 +0000 (18:37 +0000)]
Check sip.conf maxforwards parameter for range 1 <= x <= 255.


Merged revisions 344715 from

Merged revisions 344716 from

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

11 years agoMake CLI "core show channel" not hold the channel lock during console output.
Richard Mudgett [Fri, 11 Nov 2011 18:02:52 +0000 (18:02 +0000)]
Make CLI "core show channel" not hold the channel lock during console output.

Holding the channel lock while the CLI "core show channel" command is
executing can slow down the system.  It could block the system if the
console output is halted or paused.

* Made capture the CLI "core show channel" output into a buffer to be
output after the channel is unlocked.

* Removed use of C++ keyword as a variable name.  out renamed to obuf.

* Checked allocation of obuf for failure so will not crash.

(closes issue ASTERISK-18571)
Reported by: Pavel Troller
Tested by: rmudgett

Merged revisions 344661 from

Merged revisions 344662 from

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

11 years agoFix a segmentation fault when using an extension with CID matching and no CID.
Jonathan Rose [Fri, 11 Nov 2011 15:47:39 +0000 (15:47 +0000)]
Fix a segmentation fault when using an extension with CID matching and no CID.

Attempting to call an extension which used Caller ID matching with a channel that
has an empty caller id string would result in a segmentation fault.

(closes issue ASTERISK-18392
Reported By: Ales Zelenik

Merged revisions 344608 from

Merged revisions 344609 from

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

11 years agoFix app_macro.c MODULEINFO section termination.
Richard Mudgett [Thu, 10 Nov 2011 23:21:30 +0000 (23:21 +0000)]
Fix app_macro.c MODULEINFO section termination.

(closes issue ASTERISK-18848)
Reported by: Tony Mountifield

Merged revisions 344557 from

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

11 years agoFix potential deadlock calling ast_call() with channel locks held.
Richard Mudgett [Thu, 10 Nov 2011 23:02:46 +0000 (23:02 +0000)]
Fix potential deadlock calling ast_call() with channel locks held.

Fixed app_queue.c:ring_entry() calling ast_call() with the channel locks
held.  Chan_local attempts to do deadlock avoidance in its ast_call()
callback and could deadlock if a channel lock is already held.

Merged revisions 344539 from

Merged revisions 344540 from

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

11 years agoMake AMI event AgentCalled get CallerID/ConnectedLine info from the incoming channel.
Richard Mudgett [Thu, 10 Nov 2011 22:38:29 +0000 (22:38 +0000)]
Make AMI event AgentCalled get CallerID/ConnectedLine info from the incoming channel.

It was strange that the AgentCalled AMI event would get most of its
information from the incoming channel but then get the CallerID
information from the outgoing channel.  Before connected line support was
added, this information was always the same at this point.

(closes issue ASTERISK-18152)
Reported by: Thomas Farnham
Tested by: rmudgett

Merged revisions 344536 from

Merged revisions 344537 from

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

11 years agoMerged revisions 344493 via svnmerge from
David Vossel [Thu, 10 Nov 2011 21:56:16 +0000 (21:56 +0000)]
Merged revisions 344493 via svnmerge from

  r344493 | dvossel | 2011-11-10 15:54:42 -0600 (Thu, 10 Nov 2011) | 12 lines

  Fixes issue with ConfBridge participants hanging up during DTMF feature menu usage getting stuck in conference forever.

  When a conference user enters the DTMF menu they are suspended from the
  bridge while the channel is handed off to the DTMF feature code.  If a
  user entered this state and hungup, there existed a race condition where
  the channel could not exit the conference because it was waiting on a
  signal that would never arrive.  This patch fixes that, because it would
  stupid for me to talk about the problem and commit a patch for something else.

  (closes issue ASTERISK-18829)
  Reported by: zvision

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

11 years agoFix another incorrect case with meetme's PIN logic and add documentation
Kinsey Moore [Thu, 10 Nov 2011 21:15:39 +0000 (21:15 +0000)]
Fix another incorrect case with meetme's PIN logic and add documentation

This fixes an issue where a user of a dynamic conference was asked for a PIN
twice.  This also adds documentation to assist in future modifications to the
piece of code responsible for PIN checking.

(closes issue AST-670)

Merged revisions 344439 from

Merged revisions 344440 from

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

11 years agoFix several bugs with SDP parsing and well-formedness of responses
Kinsey Moore [Thu, 10 Nov 2011 18:15:02 +0000 (18:15 +0000)]
Fix several bugs with SDP parsing and well-formedness of responses

Fix bug ASTERISK-16558 which dealt with the order of responses to incoming
streams defined by SDP.

Fix unreported bug where offering multiple same-type streams would cause
Asterisk to reply with an incorrect SDP response missing one or more streams
without a proper declination.

Fix bugs related to a single non-audio stream being offered with responses
requesting codecs that were not offered in the initial invite along with an
additional audio stream that was not in the initial invite.


Merged revisions 344385 from

Merged revisions 344386 from

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

11 years agoonly attempt to do stun handling on ipv4 or ipv4 mapped to ipv6 addresses
Matthew Nicholson [Thu, 10 Nov 2011 16:29:13 +0000 (16:29 +0000)]
only attempt to do stun handling on ipv4 or ipv4 mapped to ipv6 addresses

Patch by: jkonieczny (modified)

Merged revisions 344330 from

Merged revisions 344334 from

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

11 years agoFix deadlock during dialplan reload.
Richard Mudgett [Wed, 9 Nov 2011 20:55:43 +0000 (20:55 +0000)]
Fix deadlock during dialplan reload.

Another deadlock between the conlock/hints and channels/channel locking

* Don't hold the channel and private lock in sip_new() when calling

(closes issue ASTERISK-18740)
Reported by: Byron Clark
      sip_exists_exten_dlock_3.diff (license #5041) patch uploaded by Gregory Hinton Nietsky
      ASTERISK-18740.patch (license #6157) patch uploaded by Byron Clark
Tested by: Byron Clark

Merged revisions 344268 from

Merged revisions 344271 from

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

11 years agoDon't treat a host:port string as a domain
Terry Wilson [Wed, 9 Nov 2011 20:10:52 +0000 (20:10 +0000)]
Don't treat a host:port string as a domain

The domain matching code prior to 1.8 used to manually remove the port
from the host:port string when determining if an incoming request
matched the list of domains. When switching to the new parsing
functions, the documentation implied that the "domain" was being
returned by these functions, when instead it was returning the
"hostport" as defined by RFC 3261. This led to confusion and resulted
in 1.8+ rejecting an incoming request from x.x.x.x:xxxxx when
domain=x.x.x.x was set in sip.conf.

This patch renames the "domain" variables in the parsing functions to
"hostport" to more accurately describe what it is that they are
returning and also properly truncates the resulting hostport strings
when dealing with domain matching.


Merged revisions 344215 from

Merged revisions 344216 from

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

11 years agoAdd a unit test for ast_sockaddr_split_hostport
Terry Wilson [Wed, 9 Nov 2011 19:31:27 +0000 (19:31 +0000)]
Add a unit test for ast_sockaddr_split_hostport


Merged revisions 344157 from

Merged revisions 344175 from

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

11 years agoGenerate response to Status Enquiry message with Status q.931 message.
Alexandr Anikin [Wed, 9 Nov 2011 19:08:44 +0000 (19:08 +0000)]
Generate response to Status Enquiry message with Status q.931 message.
Some PBXes require this for call status checking

(closes issue ASTERISK-18748)
Reported by: Fabrizio Lazzaretti
      ASTERISK-18748-5.patch (License #5415) patch uploaded by may213
Tested by: Fabrizio Lazzaretti

Merged revisions 344158 from

Merged revisions 344159 from

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

11 years agoFix pin parameter behavior regression in MeetMe
Kinsey Moore [Wed, 9 Nov 2011 17:15:44 +0000 (17:15 +0000)]
Fix pin parameter behavior regression in MeetMe

The last time this code was touched (by me), a subtlety was missed based on the
difference between needing to check a pin's validity and the need to prompt
for a pin.

(closes issue ASTERISK-18488)

Merged revisions 344102 from

Merged revisions 344103 from

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

11 years agodon't call ltohl() twice on the same value
Matthew Nicholson [Wed, 9 Nov 2011 15:28:33 +0000 (15:28 +0000)]
don't call ltohl() twice on the same value

Patch by: pawel (modified)

Merged revisions 344048 from

Merged revisions 344049 from

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

11 years agoResidual changes for Asterisk v10 branch from ASTERISK-18747.
Richard Mudgett [Tue, 8 Nov 2011 22:14:38 +0000 (22:14 +0000)]
Residual changes for Asterisk v10 branch from ASTERISK-18747.

Residual changes for Asterisk v10 branch from ASTERISK-18747 after commit and associated dialogs
callid hash key change fix.

* Make check_rtp_timeout() return CMP_MATCH if need to delete dialog from
dialogs_rtpcheck.  This is an optimization to avoid an unneeded
lock/unlock and object search when using ao2_unlink.

* Prevent crash in check_rtp_timeout() if dialog->rtp is NULL.


Merged revisions 344004 from

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

11 years agoFix crash when dialplan remove include is called with too few arguments.
Walter Doekes [Tue, 8 Nov 2011 19:29:25 +0000 (19:29 +0000)]
Fix crash when dialplan remove include is called with too few arguments.

"dialplan remove include x from y" crashed when the amount of arguments
was less than 6.

(closes issue ASTERISK-18762)
Reported by: Andrey Solovyev
Tested by: Andrey Solovyev

Merged revisions 343936 from

Merged revisions 343944 from

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

11 years agoMerged revisions 343900 via svnmerge from
David Vossel [Tue, 8 Nov 2011 18:35:19 +0000 (18:35 +0000)]
Merged revisions 343900 via svnmerge from

  r343900 | dvossel | 2011-11-08 12:29:33 -0600 (Tue, 08 Nov 2011) | 11 lines

  Fixes regression caused by r343635

  There was a missing unlock for a function return that is only
  present in Asterisk 10 and Asterisk Trunk.

  (closes issue ASTERISK-18839)
  Reported by: Michael L. Young
      asterisk-18839-missing-lock-trunk-v2.diff (License #5026) patch uploaded by Michael L. Young

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

11 years agoFixed reference to incorrect variable if unknown host configured crash.
Richard Mudgett [Tue, 8 Nov 2011 18:02:51 +0000 (18:02 +0000)]
Fixed reference to incorrect variable if unknown host configured crash.

* Fixed a LOG_ERROR message referencing the config variable list v that
had previously been processed and became NULL.

* Added error return value set that was missing in an ast_append_ha()
error return path.

(closes issue ASTERISK-18743)
Reported by: Michele
      issueA18743-fix_dynamic_exclude_static_bad_host_log.patch (license #5674) patch uploaded by Walter Doekes
Tested by: Michele

Merged revisions 343851 from

Merged revisions 343852 from

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

11 years agoFix boo-boo in prep_tarball script.
Leif Madsen [Tue, 8 Nov 2011 13:23:27 +0000 (13:23 +0000)]
Fix boo-boo in prep_tarball script.

A hardcoded a branch number was in the prep_tarball which could not work. Changed
it to the  variable.

Merged revisions 343789 from

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

11 years agoMake "sip show settings" CLI command get RPID flags from the right global page
Kinsey Moore [Mon, 7 Nov 2011 22:37:51 +0000 (22:37 +0000)]
Make "sip show settings" CLI command get RPID flags from the right global page

The "Trust RPID" and "Send RPID" entries in the "sip show settings" CLI command
pulled the flags from the incorrect global flags page.  These are now read from
sip global flags page 0.

(closes issue AST-711)

Merged revisions 343743 from

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

11 years agoAllow built in variables to be used with dynamic weights.
Leif Madsen [Mon, 7 Nov 2011 21:58:14 +0000 (21:58 +0000)]
Allow built in variables to be used with dynamic weights.

You can now use the built in variables , , and
within a dynamic weight. For example, this could be useful when you want
to pass requested lookup number to the SHELL() function which could be
used to execute a script to dynamically set the weight of the result.

(Closes issue ASTERISK-13657)
Reported by: Joel Vandal
Tested by: Leif Madsen, Russell Bryant
     asterisk-1.6-dundi-varhead.patch uploaded by Joel Vandal (License #5374)

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

11 years agorespect case changes in peer names on sip reload
Matthew Nicholson [Mon, 7 Nov 2011 21:44:05 +0000 (21:44 +0000)]
respect case changes in peer names on sip reload


Merged revisions 343690 from

Merged revisions 343691 from

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

11 years agoFix __sip_subscribe_mwi_do() incorectly changing dialogs hash key callid.
Richard Mudgett [Mon, 7 Nov 2011 21:29:01 +0000 (21:29 +0000)]
Fix __sip_subscribe_mwi_do() incorectly changing dialogs hash key callid.

Changing an object value used as a container key requires removing the
object from the container and reinserting it.

* Created change_callid_pvt() to call instead of build_callid_pvt().  The
change_callid_pvt() will correctly change the dialog callid so the ao2
conainter can explicitly unlink it.

Merged revisions 343637 from

Merged revisions 343677 from

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

11 years agoPrevent BLF subscriptions from causing deadlocks
Kinsey Moore [Mon, 7 Nov 2011 20:35:58 +0000 (20:35 +0000)]
Prevent BLF subscriptions from causing deadlocks

Fix a locking inversion in sip_send_mwi_to_peer that was causing deadlocks.
This function now requires that both the peer and associated pvt be unlocked
before it is called for cases where peer and peer->mwipvt form a circular

(closes issue ASTERISK-18663)

Merged revisions 343621 from

Merged revisions 343635 from

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

11 years agoCorrect the default udptl port range.
Walter Doekes [Mon, 7 Nov 2011 19:58:44 +0000 (19:58 +0000)]
Correct the default udptl port range.

The udptl port range was defined as 4000-4999 in the udptl.conf.sample,
as 4500-4599 if you didn't have a config and 4500-4999 if your config
was broken. Default is now 4000-4999.

(closes issue ASTERISK-16250)
Reviewed by: Tilghman Lesher


Merged revisions 343580 from

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

11 years agoFix deadlock if peer is destroyed while sending MWI notice.
Richard Mudgett [Mon, 7 Nov 2011 19:54:09 +0000 (19:54 +0000)]
Fix deadlock if peer is destroyed while sending MWI notice.

A dialog cannot be destroyed by the ao2_callback dialog_needdestroy
because of a deadlock between the dialogs container lock and the RWLOCK of
the events subscription list.

* Create dialogs_to_destroy container to hold dialogs that will be

* Ensure that the event subscription callback will never happen with an
invalid peer pointer by making the event callback removal the first thing
in the peer destructor callback.

NOTE: This particular deadlock will not happen with Asterisk 10, but some
of the changes still apply.

(closes issue ASTERISK-18747)
Reported by: Gregory Hinton Nietsky


Merged revisions 343577 from

Merged revisions 343578 from

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

11 years agolist all of the codecs associated with a particular format id for CLI command "core...
Matthew Nicholson [Mon, 7 Nov 2011 18:42:04 +0000 (18:42 +0000)]
list all of the codecs associated with a particular format id for CLI command "core show codec"


Merged revisions 343533 from

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

11 years agoFormatting and doxygen improvements
Olle Johansson [Sun, 6 Nov 2011 09:51:09 +0000 (09:51 +0000)]
Formatting and doxygen improvements

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

11 years agoFinal fix memleaks in GkClient codes, same for Timer codes.
Alexandr Anikin [Fri, 4 Nov 2011 19:50:10 +0000 (19:50 +0000)]
Final fix memleaks in GkClient codes, same for Timer codes.
(these memleaks stop development of gk codes, now i can continue)
Fix printHandler 'Unbalanced Structure' issues with locking printHandler
data for single thread.

Merged revisions 343281 from

Merged revisions 343445 from

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

11 years agoFix sqlite config driver segfault and broken queries
Walter Doekes [Thu, 3 Nov 2011 20:37:50 +0000 (20:37 +0000)]
Fix sqlite config driver segfault and broken queries

The sqlite realtime handler assumed you had a static config configured
as well. The realtime multientry handler assumed that you weren't using
dynamic realtime.

(closes issue ASTERISK-18354)
(closes issue ASTERISK-18355)


Merged revisions 343375 from

Merged revisions 343393 from

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

11 years agoRemove invalid flag given to iterator in func_dialgroup.c
Richard Mudgett [Thu, 3 Nov 2011 19:57:49 +0000 (19:57 +0000)]
Remove invalid flag given to iterator in func_dialgroup.c

Merged revisions 343336 from

Merged revisions 343337 from

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

11 years agoMake room for the fax detect flags
Terry Wilson [Thu, 3 Nov 2011 15:40:49 +0000 (15:40 +0000)]
Make room for the fax detect flags

The original REGISTERTRYING flag, in addition to being impossible to
check, also encroached on the space for the flag above it. This
patch moves the flags that were below REGISTERTRYING back to where
they were as though we had just removed the REGISTERTRYING option.

Merged revisions 343276 from

Merged revisions 343277 from

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

11 years agoRemove registertrying option in chan_sip
Terry Wilson [Wed, 2 Nov 2011 23:08:46 +0000 (23:08 +0000)]
Remove registertrying option in chan_sip

This option is not only useless, but has been broken since inception since
the flag was never copied from the peer where it is set to the pvt where
it was checked. RFC 3261 specificially states that you should not send a
provisional response to a non-INVITE request, and if we did fix the code
so that it worked, it would cause the same kind of user enumeration
vulnerability that we've discussed with the nat= setting. This patch
removes registertrying option and any code that would have sent a 100
response to a register.


Merged revisions 343220 from

Merged revisions 343221 from

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

11 years agoFix improper warning introduced by r342927 and more tweaks
Walter Doekes [Wed, 2 Nov 2011 22:46:27 +0000 (22:46 +0000)]
Fix improper warning introduced by r342927 and more tweaks

Changeset r342927 introduced a warning which was only supposed to be
emitted when a found realtime peer had an empty (or no) name. It turned
out that there were some inconsistencies left. Now found peers with an
empty name are explicitly ignored like before r342927 but better.

Reviewed by: Stefan Schmidts, Terry Wilson


Merged revisions 343181 from

Merged revisions 343192 from

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

11 years agoEnsure that string field lengths are properly aligned
Walter Doekes [Wed, 2 Nov 2011 22:02:07 +0000 (22:02 +0000)]
Ensure that string field lengths are properly aligned

Integers should always be aligned. For some platforms (ARM, SPARC) this
is more important than for others. This changeset ensures that the
string field string lengths are aligned on *all* platforms, not just on
the SPARC for which there was a workaround. It also fixes that the
length integer can be resized to 32 bits without problems if needed.

(closes issue ASTERISK-17310)
Reported by: radael, S Adrian
Reviewed by: Tzafrir Cohen, Terry Wilson
Tested by: S Adrian


Merged revisions 343157 from

Merged revisions 343158 from

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

11 years agoAdd note about how Authenticate() application with option 'd' works.
Leif Madsen [Wed, 2 Nov 2011 19:33:49 +0000 (19:33 +0000)]
Add note about how Authenticate() application with option 'd' works.

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

Merged revisions 343102 from

Merged revisions 343103 from

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

11 years agoUpdate documentation for leastrecent strategy.
Leif Madsen [Wed, 2 Nov 2011 18:11:12 +0000 (18:11 +0000)]
Update documentation for leastrecent strategy.

In queues.conf.sample the leastrecent strategy was incorrectly described. Now updated
to reflect how the strategy actually checks peers.

(closes issue ASTERISK-17854)
Reported by: Sebastian Denz
     queues.conf-doc_issue.patch (License #6139)

Merged revisions 343047 from

Merged revisions 343048 from

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

11 years agoModify comments in MeetMe application documentation about DAHDI.
Kevin P. Fleming [Wed, 2 Nov 2011 13:46:15 +0000 (13:46 +0000)]
Modify comments in MeetMe application documentation about DAHDI.

The MeetMe application documentation has some comments about usage of DAHDI,
and they were a bit outdated relative to modern DAHDI releases. This patch
changes the comment to just tell the user that a functional DAHDI timing
source is required, and no longer mention 'dahdi_dummy', since that module
does not exist in current DAHDI releases.

Merged revisions 342990 from

Merged revisions 342991 from

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

11 years agoSeveral fixes to the chan_sip dynamic realtime peer/user lookup
Walter Doekes [Tue, 1 Nov 2011 21:02:56 +0000 (21:02 +0000)]
Several fixes to the chan_sip dynamic realtime peer/user lookup

There were several problems with the dynamic realtime peer/user lookup
code. The lookup logic had become rather hard to read due to lots of
incremental changes to the realtime_peer function. And, during the
addition of the sipregs functionality, several possibilities for memory
leaks had been introduced. The insecure=port matching has always been
broken for anyone using the sipregs family. And, related, the broken
implementation forced those using sipregs to *still* have an ipaddr
column on their sippeers table.

Thanks Terry Wilson for comprehensive testing and finding and fixing
unexpected behaviour from the multientry realtime call which caused
the realtime_peer to have a completely unused code path.

This changeset fixes the leaks, the lookup inconsistenties and that
you won't need an ipaddr column on your sippeers table anymore (when
you're using sipregs). Beware that when you're using sipregs, peers
with insecure=port will now start matching!

(closes issue ASTERISK-17792)
(closes issue ASTERISK-18356)
Reported by: marcelloceschia, Walter Doekes
Reviewed by: Terry Wilson


Merged revisions 342927 from

Merged revisions 342929 from

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

11 years agoCleanup references to sipusers and sipfriends dynamic realtime families
Walter Doekes [Tue, 1 Nov 2011 19:53:26 +0000 (19:53 +0000)]
Cleanup references to sipusers and sipfriends dynamic realtime families

Somewhere between 1.4 and 1.8 the sipusers family has become completely
unused. Before that, the sipfriends family had been obsoleted in favor
of separate sipusers and sippeers families. Apparently, they have been
merged back again into a single family which is now called "sippeers".

Reviewed by: irroot, oej, pabelanger


Merged revisions 342869 from

Merged revisions 342870 from

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

11 years agoMisc format capability fixes.
Richard Mudgett [Mon, 31 Oct 2011 17:51:22 +0000 (17:51 +0000)]
Misc format capability fixes.

* Fixed typo in format_cap.c:joint_copy_helper() using the wrong variable.

* Fix potential race between checking if an interface exists and adding it
to the container in format.c:ast_format_attr_reg_interface().

* Fixed double rwlock destroy in format.c:ast_format_attr_init() error
exit path.

* Simplified format.c:find_interface() and format.c:has_interface().

Merged revisions 342824 from

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

11 years agoFixed invalid memory access when adding extension to pattern match tree
Matthew Jordan [Mon, 31 Oct 2011 16:10:32 +0000 (16:10 +0000)]
Fixed invalid memory access when adding extension to pattern match tree

When an extension is removed from a context, its entry in the pattern match
tree is not deleted.  Instead, the extension is marked as deleted.  When an
extension is removed and re-added, if that extension is also a prefix of
another extension, several log messages would report an error and did not
check whether or not the extension was deleted before accessing the memory.
Additionally, if the extension was already in the tree but previously
deleted, and the pattern was at the end of a match, the findonly flag was
not honored and the extension would be erroneously undeleted.

Additionaly, it was discovered that an IAX2 peer could be unregistered
via the CLI, while at the same time it could be scheduled for unregistration
by Asterisk.  The unregistration method now checks to see if the peer
was already unregistered before continuing with an unregistration.

(closes issue ASTERISK-18135)
Reported by: Jaco Kroon, Henry Fernandes, Kristijan Vrban
Tested by: Matt Jordan


Merged revisions 342769 from

Merged revisions 342770 from

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

11 years agoDon't crash on empty notify channel
Terry Wilson [Sun, 30 Oct 2011 02:31:02 +0000 (02:31 +0000)]
Don't crash on empty notify channel

Merged revisions 342715 from

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

11 years agoWhitespace and some better macro variable names.
Richard Mudgett [Sat, 29 Oct 2011 04:41:21 +0000 (04:41 +0000)]
Whitespace and some better macro variable names.

* Renamed AST_LIST_TRAVERSE_SAFE_BEGIN __new_prev to __list_current.

* Renamed AST_LIST_MOVE_CURRENT __list_cur to __extracted.

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

11 years agoFix AST_LIST_INSERT_BEFORE_CURRENT() updating the wrong variable.
Richard Mudgett [Sat, 29 Oct 2011 04:31:51 +0000 (04:31 +0000)]
Fix AST_LIST_INSERT_BEFORE_CURRENT() updating the wrong variable.

AST_LIST_INSERT_BEFORE_CURRENT() could not be used twice in an iteration
or before AST_LIST_REMOVE_CURRENT() without corrupting the list.
AST_LIST_INSERT_BEFORE_CURRENT() could also corrupt the list if
the next iteration.

* Fixed cut and paste error using the wrong variable in

* Added linked list unit tests for AST_LIST_INSERT_BEFORE_CURRENT(),

Merged revisions 342661 from

Merged revisions 342662 from

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

11 years agotweak the v21 detector to detect an additional pattern of hits and misses
Matthew Nicholson [Thu, 27 Oct 2011 20:11:11 +0000 (20:11 +0000)]
tweak the v21 detector to detect an additional pattern of hits and misses

Merged revisions 342605 from

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

11 years agoFix sequence number overflow over 16 bits causing codec change in RTP packets.
Jonathan Rose [Thu, 27 Oct 2011 19:48:23 +0000 (19:48 +0000)]
Fix sequence number overflow over 16 bits causing codec change in RTP packets.

Sequence number was handled as an unsigned integer (usually 32 bits I think, more
depending on the architecture) and was put into the rtp packet which is basically
just a bunch of bits using an or operation. Sequence number only has 16 bits
allocated to it in an RTP packet anyway, so it would add to the next field which
just happened to be the codec. This makes sure the sequence number is set to be
a 16 bit integer regardless of architecture (hopefully) and also makes it so the
incrementing of the sequence number does bitwise or at the peak of a 16 bit number
so that the value will be set back to 0 when going beyond 65535 anyway.

(closes issue ASTERISK-18291)
Reported by: Will Schick

Merged revisions 342602 from

Merged revisions 342603 from

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

11 years agoCleanup reference leaks in res_jabber
Jonathan Rose [Thu, 27 Oct 2011 14:24:01 +0000 (14:24 +0000)]
Cleanup reference leaks in res_jabber

res_jabber.c had a number of places where astobjs would be referenced and have their
reference counts bumped without having a dereference made before the object lost scope.
This patch adds a number of ASTOBJ_UNREFs to resolve that.


Merged revisions 342545 from

Merged revisions 342546 from

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

11 years agoCheck fopen return value for ao2 reference debug output.
Richard Mudgett [Tue, 25 Oct 2011 22:06:43 +0000 (22:06 +0000)]
Check fopen return value for ao2 reference debug output.

Reported by: wdoekes
Patched by: wdoekes


Merged revisions 342487 from

Merged revisions 342488 from

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

11 years agoChange D-channel warning to be less confusing on non-NFAS setups.
Richard Mudgett [Tue, 25 Oct 2011 21:54:31 +0000 (21:54 +0000)]
Change D-channel warning to be less confusing on non-NFAS setups.

The "No D-channels available!  Using Primary channel as D-channel anyway!"
WARNING message has been confusing on non-NFAS setups.  The message refers
to things that are NFAS specific.

* Changed the warning to several different warnings to be more accurate
for the situation and less confusing as a result:
"No D-channels up!  Switching selected D-channel from X to Y.",
"No D-channels up!", and
"D-channel is down!".

Merged revisions 342484 from

Merged revisions 342485 from

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

11 years agoUse int for storing ao2_container_count instad of size_t
Terry Wilson [Tue, 25 Oct 2011 21:11:14 +0000 (21:11 +0000)]
Use int for storing ao2_container_count instad of size_t


Merged revisions 342435 from

Merged revisions 342436 from

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

11 years agoSimplify queue membercount code
Terry Wilson [Tue, 25 Oct 2011 20:07:59 +0000 (20:07 +0000)]
Simplify queue membercount code

Despite an ominous sounding comment stating that membercount was for "logged
in" members only and thus we couldn't use ao2_container_count(), I could not
find a single place in the code where that seemed to be accurate. The only time
we decremented membercount was when we were marking something dead or actually
removing it. The only places we incremented it were either after ao2_link(), or
trying to correct for having set it to 0 during a reload. In every case where
we were correcting the value, it seemed that we were trying to make the count
actually match what ao2_container_count() would return. The only place I could
find where we made a determination about something being "logged in" or not, we
didn't trust the membercount, but instead looked at devicestate, paused, etc.

This patch removes membercount, replaces its use with ao2_container_count, and
manually adds the results of ao2_container_count to a "membercount" field for
ast_data queue query results. This patch also would fix AST-676, but as it is
slightly riskier than the previously committed fix, the two commits have been
made separately.


Merged revisions 342383 from

Merged revisions 342384 from

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

11 years agoProperly update membercount for reloaded members
Terry Wilson [Tue, 25 Oct 2011 19:54:17 +0000 (19:54 +0000)]
Properly update membercount for reloaded members

Since q->membercount is set to 0 before reloading, it is important
to increment it again for reloaded members as well as added.

(closes issue AST-676)


Merged revisions 342380 from

Merged revisions 342381 from

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

11 years agoFix compilation on Snow Leopard/FreeBSD for pbx_spool.c
Kinsey Moore [Tue, 25 Oct 2011 19:09:32 +0000 (19:09 +0000)]
Fix compilation on Snow Leopard/FreeBSD for pbx_spool.c

One of the changes in the recent spool handling of hardlinks patch was just
outside a HAVE_INOTIFY block and caused compilation to fail in some build
environments.  This has been corrected.

Merged revisions 342328 from

Merged revisions 342329 from

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

11 years agoMerged revisions 342277 via svnmerge from
Kinsey Moore [Tue, 25 Oct 2011 16:08:52 +0000 (16:08 +0000)]
Merged revisions 342277 via svnmerge from

  r342277 | kmoore | 2011-10-25 11:08:04 -0500 (Tue, 25 Oct 2011) | 25 lines

  Merged revisions 342276 via svnmerge from

    r342276 | kmoore | 2011-10-25 11:06:57 -0500 (Tue, 25 Oct 2011) | 18 lines

    Fix spool handling to allow call files to be hardlinked into place

    This fixes the inotify code to handle call files being hardlinked into the
    spool directory.

    The smsq utility does this, instead of rename(), to ensure that it cannot
    accidentally overwrite an existing spool file. A rename() might do that, but
    link() will definitely not.

    The inotify code had broken this, because it would wait for an IN_CLOSE_WRITE
    event on the file... which was never forthcoming, since it was never opened.
    Now we look for IN_OPEN events following the IN_CREATE event, and only wait
    for an IN_CLOSE_WRITE if the file was actually opened.

    Patch-by: dwmw2
    (closes issue ASTERISK-18331)

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

11 years agoReturn NULL when no results returned for realtime_multientry
Terry Wilson [Tue, 25 Oct 2011 01:29:32 +0000 (01:29 +0000)]
Return NULL when no results returned for realtime_multientry

It was not documented what the return value should be when no entries
were returned with the multientry realtime callback. This change forces
consistent behavior even if the backends return an empty ast_config.


Merged revisions 342223 from

Merged revisions 342224 from

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

11 years agoFix ao2obj.h comment typos and add missing link/unlink nolock debug defines.
Richard Mudgett [Mon, 24 Oct 2011 22:37:58 +0000 (22:37 +0000)]
Fix ao2obj.h comment typos and add missing link/unlink nolock debug defines.

Merged revisions 342183 from

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

11 years agoFixes a segfault caused by referencing null frames introduced in r338623
Jonathan Rose [Mon, 24 Oct 2011 22:09:11 +0000 (22:09 +0000)]
Fixes a segfault caused by referencing null frames introduced in r338623

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

11 years agoFix use of OBJ_KEY in Queue application.
Richard Mudgett [Mon, 24 Oct 2011 21:01:58 +0000 (21:01 +0000)]
Fix use of OBJ_KEY in Queue application.

To use the new OBJ_KEY flag, the container hash and compare callback
functions must be updated to support OBJ_KEY.  Otherwise, bad things

(issue ASTERISK-14769)

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

11 years agoOutbound SIP OPTIONS messages will now include fromuser of related peer.
Jonathan Rose [Mon, 24 Oct 2011 20:01:28 +0000 (20:01 +0000)]
Outbound SIP OPTIONS messages will now include fromuser of related peer.

This behavior matches up more closely with the way invite/register/etc are handled.
This patch also modifies some adjacent code for code style compliance.  Pretty minor.

(closes issue ASTERISK-17616)
Reported by: Jeremy Kister
     chan_sip.c-options-fromuser-fix-v1.patch uploaded by Jeremy Kister (license #6232)

Merged revisions 342061 from

Merged revisions 342062 from

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

11 years agoqueues container needs locking when using the OBJ_NOLOCK flag
Gregory Nietsky [Mon, 24 Oct 2011 07:40:18 +0000 (07:40 +0000)]
queues container needs locking when using the OBJ_NOLOCK flag

Merged revisions 342017 from

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

11 years agoRemove some ref leaks and a return without unlock.
Gregory Nietsky [Sun, 23 Oct 2011 14:35:26 +0000 (14:35 +0000)]
Remove some ref leaks and a return without unlock.

There some resource leaks introduced in asterisk 10
make sure that locks are not held on return and we
release ref's held.

Merged revisions 341972 from

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

11 years agoWhitespace Fixups / Add Braces
Gregory Nietsky [Sun, 23 Oct 2011 11:37:50 +0000 (11:37 +0000)]
Whitespace Fixups / Add Braces

This janitorial patch is related to work on RB1538

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