aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlmadsen <lmadsen@f38db490-d61c-443f-a65b-d21fe96a405b>2009-09-03 19:26:56 +0000
committerlmadsen <lmadsen@f38db490-d61c-443f-a65b-d21fe96a405b>2009-09-03 19:26:56 +0000
commitdd05769ffe181a48fff93ff3c1cc96f8074eafc6 (patch)
tree4213d79d90b2ac0f915ad990415ce67537f97aeb
parent561017bcc87663aecccb580b3e693e2b1d6c9e82 (diff)
parent916d6175cc0c2fbdca0f13ec78a33d5cbeb08291 (diff)
Creating tag for the release of asterisk-1.2.35
git-svn-id: http://svn.digium.com/svn/asterisk/tags/1.2.35@216050 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--.lastclean1
-rw-r--r--.version1
-rw-r--r--ChangeLog6858
-rw-r--r--Makefile2
-rw-r--r--acl.c12
-rw-r--r--asterisk-1.2.35-summary.html59
-rw-r--r--asterisk-1.2.35-summary.txt89
-rw-r--r--astobj2.c19
-rw-r--r--channels/chan_iax2.c1348
-rw-r--r--channels/iax2-parser.c11
-rw-r--r--channels/iax2-parser.h2
-rw-r--r--channels/iax2.h2
-rw-r--r--configs/iax.conf.sample56
-rw-r--r--doc/IAX2-security.pdfbin0 -> 358100 bytes
-rw-r--r--include/asterisk/acl.h15
-rw-r--r--include/asterisk/astobj2.h10
-rw-r--r--include/asterisk/sha1.h81
-rw-r--r--include/asterisk/utils.h4
-rw-r--r--sha1.c385
-rw-r--r--utils.c19
20 files changed, 1830 insertions, 7144 deletions
diff --git a/.lastclean b/.lastclean
deleted file mode 100644
index ec635144f..000000000
--- a/.lastclean
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/.version b/.version
deleted file mode 100644
index 0ca6e9449..000000000
--- a/.version
+++ /dev/null
@@ -1 +0,0 @@
-1.2.35
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 02cce0b88..000000000
--- a/ChangeLog
+++ /dev/null
@@ -1,6858 +0,0 @@
-2009-09-03 Leif Madsen <lmadsen@digium.com>
-
- * Asterisk 1.2.35 released
-
- * AST-2009-006
-
-2009-06-05 Tilghman Lesher <tlesher@digium.com>
-
- * Asterisk 1.2.34 released
-
-2009-08-10 19:13 +0000 [r211526-211527] Tilghman Lesher <tlesher@digium.com>
-
- * channels/misdn_config.c, frame.c, utils/frame.c,
- pbx/pbx_loopback.c, channels/chan_phone.c, apps/app_osplookup.c,
- pbx/pbx_spool.c, channels/chan_skinny.c, res/res_agi.c,
- indications.c, cli.c, channel.c, cdr.c, apps/app_groupcount.c,
- channels/chan_mgcp.c, manager.c, apps/app_adsiprog.c,
- apps/app_dial.c, channels/chan_zap.c, channels/chan_sip.c,
- apps/app_privacy.c, apps/app_waitforsilence.c,
- codecs/codec_speex.c, channels/chan_agent.c, funcs/func_math.c,
- apps/app_disa.c, channels/iax2-provision.c, pbx/dundi-parser.c,
- apps/app_talkdetect.c, apps/app_queue.c, pbx.c, dnsmgr.c,
- apps/app_math.c, Makefile, apps/app_waitforring.c,
- apps/app_zapbarge.c, apps/app_cut.c, channels/chan_misdn.c,
- acl.c, channels/chan_h323.c, res/res_osp.c, apps/app_macro.c,
- apps/app_sms.c, pbx/pbx_dundi.c, pbx/pbx_config.c,
- apps/app_verbose.c, apps/app_chanspy.c, apps/app_mixmonitor.c,
- apps/app_voicemail.c, channels/chan_vpb.c, apps/app_readfile.c,
- muted.c, /, apps/app_meetme.c, res/res_features.c,
- apps/app_record.c, apps/app_sayunixtime.c, funcs/func_strings.c,
- apps/app_random.c, apps/app_alarmreceiver.c, asterisk.c,
- channels/chan_modem.c, channels/chan_iax2.c: AST-2009-005
-
-2009-07-14 14:45 +0000 [r206384] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Ensure apathetic replies are sent out on
- the proper socket. chan_iax2 supports multiple address bindings.
- The send_apathetic_reply() function did not attempt to send its
- response on the same socket that the incoming message came in on.
-
-2009-06-05 Leif Madsen <lmadsen@digium.com>
-
- * Asterisk 1.2.33 released
-
-2009-06-04 18:57 +0000 [r199137] David Vossel <dvossel@digium.com>
-
- * channels/chan_iax2.c: Additional updates to AST-2009-001
-
-2009-06-04 David Vossel <dvossel@digium.com>
-
- * channels/chan_iax2.c, apps/app_chanspy.c: Fixes REGAUTH loop
- related to AST-2009-001, also addresses a small compile time
- error in app_chanspy.c.
-
-2009-04-02 Leif Madsen <lmadsen@digium.com>
-
- * Asterisk 1.2.32 released
-
-2009-04-02 17:02 +0000 [r186056] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_sip.c, configs/sip.conf.sample: Fix for
- AST-2009-003
-
-2009-01-23 Leif Madsen <lmadsen@digium.com>
-
- * Asterisk 1.2.31.1 released
-
-2009-01-23 19:19 +0000 [r170580] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: Updates to AST-2009-001
-
-2009-01-15 01:15 +0000 [r168632] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: 1.2 regression on security fix AST-2009-001
-
-2009-01-09 22:10 +0000 [r168197] Kevin P. Fleming <kpfleming@digium.com>
-
- * sounds/LICENSE (added): add license for Allison Smith prompts
- (AST-162)
-
-2009-01-06 Leif Madsen <lmadsen@digium.com>
-
- * Asterisk 1.2.31 released
-
-2009-01-06 20:44 +0000 [r167259] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: Security fix AST-2009-001.
-
-2008-12-10 Tilghman Lesher <tlesher@digium.com>
-
- * Asterisk 1.2.30.4 released
-
-2008-12-10 21:06 +0000 [r162868] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: Fix for AST-2008-012
-
-2008-12-05 20:50 +0000 [r161421] Sean Bright <sean.bright@gmail.com>
-
- * include/asterisk/astobj2.h, astobj2.c: Fix build errors on
- FreeBSD (uint -> unsigned int). (closes issue #14006) Reported
- by: alphaque Patches: astobj2.h-patch uploaded by alphaque
- (license 259) (Slightly modified by seanbright)
-
-2008-12-01 Tilghman Lesher <tlesher@digium.com>
-
- * Asterisk 1.2.30.3 released
-
-2008-11-25 21:37 +0000 [r159245] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: Regression fix for last security fix. Set
- the iseqno correctly. (closes issue #13918) Reported by:
- ffloimair Patches: 20081119__bug13918.diff.txt uploaded by
- Corydon76 (license 14) Tested by: ffloimair
-
-2008-08-09 Tilghman Lesher <tlesher@digium.com>
-
- * Asterisk 1.2.30.2 released
-
-2008-08-09 15:24 +0000 [r136945] Tilghman Lesher <tlesher@digium.com>
-
- * include/asterisk/compat.h, include/asterisk/astobj2.h: Regression
- fixes for Solaris
-
-2008-07-25 15:00 +0000 [r133577] Russell Bryant <russell@digium.com>
-
- * LICENSE: Fix the IAX2 URI for calling Digium
-
-2008-07-23 Tilghman Lesher <tlesher@digium.com>
-
- * Asterisk 1.2.30.1 released
-
-2008-07-24 03:46 +0000 [r133360] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_iax2.c: This part was not correctly patched for
- AST-2008-010.
-
-2008-07-22 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.30 released
-
-2008-07-22 21:14 +0000 [r132711] Tilghman Lesher <tlesher@digium.com>
-
- * configs/iax.conf.sample, channels/chan_iax2.c: Fixes for
- AST-2008-010 and AST-2008-011
-
-2008-06-03 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.29 released
-
-2008-06-03 19:30 +0000 [r120109] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Copy the From header into a variable so that
- pedantic SIP handling does not try to mess with a NULL pointer.
- (AST-2008-008) (closes issue #12607) Reported by: hooi
-
-2008-05-30 12:49 +0000 [r119008-119237] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: - Instead of only enforcing destination
- call number checking on an ACK, check all full frames except for
- PING and LAGRQ, which may be sent by older versions too quickly
- to contain the destination call number. (As suggested by Tim
- Panton on the asterisk-dev list) - Merge changes from
- team/russell/iax2-frame-race, which prevents PING and LAGRQ from
- being sent before the destination call number is known.
-
- * channels/chan_iax2.c: Merge changes from
- team/russell/iax2-another-fix-to-the-fix As described in the
- following post to the asterisk-dev mailing list, only enforce
- destination call numbers when processing an ACK.
- http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html
-
-2008-05-21 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.28.1 released
-
-2008-05-08 19:14 +0000 [r115564] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Fix a race condition that bbryant just
- found while doing some IAX2 testing. He was running Asterisk
- trunk running IAX2 calls through a few Asterisk boxes, however,
- the audio was extremely choppy. We looked at a packet trace and
- saw a storm of INVAL and VNAK frames being sent from one box to
- another. It turned out that what had happened was that one box
- tried to send a CONTROL frame before the 3 way handshake had
- completed. So, that frame did not include the destination call
- number, because it didn't have it yet. Part of our recent work
- for security issues included an additional check to ensure that
- frames that are supposed to include the destination call number
- have the correct one. This caused the frame to be rejected with
- an INVAL. The frame would get retransmitted for forever, rejected
- every time ... This race condition exists in all versions that
- got the security changes, in theory. However, it is really only
- likely that this would cause a problem in Asterisk trunk. There
- was a control frame being sent (SRCUPDATE) at the _very_
- beginning of the call, which does not exist in 1.2 or 1.4.
- However, I am fixing all versions that could potentially be
- affected by the introduced race condition. These changes are what
- bbryant and I came up with to fix the issue. Instead of simply
- dropping control frames that get sent before the handshake is
- complete, the code attempts to wait a little while, since in most
- cases, the handshake will complete very quickly. If it doesn't
- complete after yielding for a little while, then the frame gets
- dropped.
-
-2008-05-07 16:22 +0000 [r115511] Russell Bryant <russell@digium.com>
-
- * include/asterisk/dlinkedlists.h (removed), channels/chan_iax2.c:
- Remove remnants of dlinkedlists. I didn't actually use them in
- the final version of my IAX2 improvements.
-
-2008-05-06 19:54 +0000 [r115421] Jason Parker <jparker@digium.com>
-
- * contrib/scripts/get_ilbc_source.sh: read requires an argument on
- some non-bash shells (closes issue #12593) Reported by: bkruse
- Patches: getilbc.sh_12593_v1.diff uploaded by bkruse (license
- 132)
-
-2008-05-05 17:53 +0000 [r115296] Russell Bryant <russell@digium.com>
-
- * Makefile, include/asterisk/astobj2.h (added), astobj2.c (added),
- include/asterisk/dlinkedlists.h (added), channels/chan_iax2.c:
- Merge changes from team/russell/iax2_find_callno_1.2 These
- changes address a critical performance issue introduced in the
- latest release. The fix for the latest security issue included a
- change that made Asterisk randomly choose call numbers to make
- them more difficult to guess by attackers. However, due to some
- inefficient (this is by far, an understatement) code, when
- Asterisk chose high call numbers, chan_iax2 became unusable after
- just a small number of calls. On a small embedded platform, it
- would not be able to handle a single call. On my Intel Core 2 Duo
- @ 2.33 GHz, I couldn't run more than about 16 IAX2 channels.
- Ouch. These changes address some performance issues of the
- find_callno() function that have bothered me for a very long
- time. On every incoming media frame, it iterated through every
- possible call number trying to find a matching active call. This
- involved a mutex lock and unlock for each call number checked.
- So, if the random call number chosen was 20000, then every media
- frame would cause 20000 locks and unlocks. Previously, this
- problem was not as obvious since Asterisk always chose the lowest
- call number it could. A second container for IAX2 pvt structs has
- been added. It is an astobj2 hash table. When we know the remote
- side's call number, the pvt goes into the hash table with a hash
- value of the remote side's call number. Then, lookups for
- incoming media frames are a very fast hash lookup instead of an
- absolutely insane array traversal. In a quick test, I was able to
- get more than 3600% more IAX2 channels on my machine with these
- changes.
-
-2008-04-29 12:52 +0000 [r114822] Kevin P. Fleming <kpfleming@digium.com>
-
- * contrib/scripts/get_ilbc_source.sh: stop script from appending
- source code if run multiple times
-
-2008-04-22 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.28 released
-
-2008-04-22 22:20 +0000 [r114561] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: When we receive a full frame that is
- supposed to contain our call number, ensure that it has the
- correct one. (closes issue #10078) (AST-2008-006)
-
-2008-03-26 19:49 +0000 [r110869-111125] Kevin P. Fleming <kpfleming@digium.com>
-
- * UPGRADE.txt: update UPGRADE notes to document usage of the script
-
- * contrib/scripts/get_ilbc_source.sh (added), codecs/ilbc: add a
- script to make getting the iLBC source code simple for end users
-
- * codecs/ilbc/StateConstructW.h (removed), codecs/ilbc/packing.h
- (removed), codecs/ilbc/getCBvec.c (removed),
- codecs/ilbc/LPCdecode.c (removed), codecs/ilbc/enhancer.c
- (removed), codecs/ilbc/lsf.c (removed), codecs/ilbc/iLBC_encode.c
- (removed), codecs/ilbc/getCBvec.h (removed),
- codecs/ilbc/LPCdecode.h (removed), codecs/ilbc/enhancer.h
- (removed), codecs/ilbc/FrameClassify.c (removed),
- codecs/ilbc/iLBC_define.h (removed), codecs/ilbc/lsf.h (removed),
- codecs/ilbc/iLBC_encode.h (removed), codecs/ilbc/FrameClassify.h
- (removed), codecs/ilbc/helpfun.c (removed), codecs/ilbc/doCPLC.c
- (removed), codecs/ilbc/anaFilter.c (removed),
- codecs/ilbc/helpfun.h (removed), codecs/ilbc/createCB.c
- (removed), codecs/ilbc/doCPLC.h (removed),
- codecs/ilbc/anaFilter.h (removed), UPGRADE.txt,
- codecs/ilbc/iLBC_decode.c (removed), codecs/ilbc/constants.c
- (removed), codecs/ilbc/createCB.h (removed),
- codecs/ilbc/iLBC_decode.h (removed), codecs/ilbc/constants.h
- (removed), codecs/ilbc/iCBSearch.c (removed),
- codecs/ilbc/filter.c (removed), codecs/ilbc/gainquant.c
- (removed), codecs/ilbc/hpInput.c (removed),
- codecs/ilbc/hpOutput.c (removed), codecs/ilbc/iCBSearch.h
- (removed), codecs/ilbc/filter.h (removed), codecs/ilbc/hpInput.h
- (removed), codecs/ilbc/gainquant.h (removed),
- codecs/ilbc/LPCencode.c (removed), codecs/ilbc/hpOutput.h
- (removed), codecs/ilbc/StateSearchW.c (removed),
- codecs/ilbc/LPCencode.h (removed), codecs/ilbc/StateSearchW.h
- (removed), codecs/ilbc/iCBConstruct.c (removed),
- codecs/ilbc/syntFilter.c (removed), codecs/ilbc/iCBConstruct.h
- (removed), codecs/ilbc/syntFilter.h (removed),
- codecs/ilbc/StateConstructW.c (removed), codecs/ilbc/packing.c
- (removed): due to licensing restrictions, we cannot distribute
- the source code for iLBC encoding and decoding... so remove it,
- and add instructions on how the user can obtain it themselves
-
-2008-03-20 21:53 +0000 [r110335] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c, channels/chan_iax2.c: Fix some very broken
- code that was introduced in 1.2.26 as a part of the security fix.
- The dnsmgr is not appropriate here. The dnsmgr takes a pointer to
- an address structure that a background thread continuously
- updates. However, in these cases, a stack variable was passed.
- That means that the dnsmgr thread would be continuously writing
- to bogus memory.
-
-2008-03-18 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.27 released
-
-2008-03-18 16:27 +0000 [r109488] Terry Wilson <twilson@digium.com>
-
- * include/asterisk/astobj.h: Fix character string being treated as
- format string
-
-2008-03-18 15:08 +0000 [r109391] Jason Parker <jparker@digium.com>
-
- * channels/chan_sip.c: Do not return with a successful
- authentication if the From header ends up empty. (AST-2008-003)
-
-2008-01-22 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.26.2 released
-
-2008-01-07 20:46 +0000 [r96931] Russell Bryant <russell@digium.com>
-
- * configs/extensions.conf.sample: Change misery.digium.com to
- pbx.digium.com
-
-2007-12-23 01:30 +0000 [r94661] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_sip.c: Fix for fix for security fix (third time's
- the charm?)
-
-2007-12-20 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.26.1 released
-
-2007-12-20 20:21 +0000 [r94214-94255] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Fix another potential seg fault ... (closes
- issue #11606) Reported by: dimas
-
- * channels/chan_iax2.c: Fix a couple of places where it's possible
- to dereference a NULL pointer.
-
-2007-12-18 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.26 released
-
-2007-12-18 18:44 +0000 [r93667-93675] Tilghman Lesher <tlesher@digium.com>
-
- * channels/chan_sip.c, channels/chan_iax2.c: Fixing AST-2007-027
- (Closes issue #11119)
-
-2007-11-29 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.25 released
-
-2007-11-29 21:10 +0000 [r90170] Tilghman Lesher <tlesher@digium.com>
-
- * cdr/cdr_pgsql.c: Properly escape src and dst fields (Fixes
- AST-2007-026)
-
-2007-09-13 18:10 +0000 [r82334] Kevin P. Fleming <kpfleming@digium.com>
-
- * LICENSE: clarify the OpenSSL and OpenH323 license exceptions
-
-2007-08-07 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.24 released
-
-2007-08-07 17:44 +0000 [r78370] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: Revert patch committed for issue #9660. It
- broke E&M trunks. (closes issue #10360) (closes issue #10364)
-
-2007-08-02 17:56 +0000 [r77942] Steve Murphy <murf@digium.com>
-
- * fskmodem.c: This patch hopefully solves 10141; The user is
- running with it, and it doesn't appear to harm asterisk's
- operation, and may prevent a crash. I'll store it in 1.2, as we
- have shut down support on 1.2, but since I developed the patch
- before support finished, and it might affect 1.4 and trunk, I'm
- going ahead with it.
-
-2007-07-31 19:19 +0000 [r77842] Steve Murphy <murf@digium.com>
-
- * contrib/scripts/ast_grab_core: This probably isn't super-general,
- but it's a first stab at using kill -11 to generate a core file
- instead of gcore.
-
-2007-07-30 18:40 +0000 [r77782] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_agi.c: Revert change in revision 71656, even though it
- fixed a bug, because many people were depending upon the (broken)
- behavior.
-
-2007-07-30 14:50 +0000 [r77767] Joshua Colp <jcolp@digium.com>
-
- * apps/app_macro.c: (closes issue #10334) Reported by: ramonpeek
- Pass through the return value from macro_exec through the MacroIf
- application.
-
-2007-07-25 00:07 +0000 [r76978] Steve Murphy <murf@digium.com>
-
- * channels/chan_zap.c: this fixes bug 10293, where the error
- message because defaultzone or loadzone was not defined was
- confusing
-
-2007-07-24 22:11 +0000 [r76934] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/lock.h: Oops, res contains the error code, not
- errno. I was wondering why a mutex was reporting "No such file or
- directory"...
-
-2007-07-24 Jason Parker <jparker@digium.com>
-
- * Asterisk 1.2.23 released
-
-2007-07-24 16:32 +0000 [r76802] Jason Parker <jparker@digium.com>
-
- * channels/chan_iax2.c: Don't create the Asterisk channel until we
- are starting the PBX on it. (ASA-2007-018)
-
-2007-07-23 18:28 +0000 [r76560-76653] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_agent.c: (closes issue #5866) Reported by: tyler Do
- not force channel format changes when a generator is present. The
- generator may have changed the formats itself and changing them
- back would cause issues.
-
- * channels/chan_sip.c: (closes issue #10236) Reported by: homesick
- Patches: rpid_1.4_75840.patch uploaded by homesick (license 91)
- Accept Remote Party ID on guest calls.
-
-2007-07-22 21:39 +0000 [r76409] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/app.h: We should not use C++ reserved words in
- API headers (closes issue #10266)
-
-2007-07-21 02:01 +0000 [r76226] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: Backport a fix for a memory leak that was
- fixed in trunk in reivision 76221 by rizzo. The memory used for
- the localaddr list was not freed during a configuration reload.
-
-2007-07-20 17:16 +0000 [r76080] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: (closes issue #10247) Reported by:
- fkasumovic Patches: chan_sip.patch uploaded by fkasumovic
- (license #101) Drop any peer realm authentication entries when
- reloading so multiple entries do not get added to the peer.
-
-2007-07-19 15:49 +0000 [r75757-75927] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: When processing full frames, take sequence
- number wraparound into account when deciding whether or not we
- need to request retransmissions by sending a VNAK. This code
- could cause VNAKs to be sent erroneously in some cases, and to
- not be sent in other cases when it should have been. (closes
- issue #10237, reported and patched by mihai)
-
- * channels/chan_iax2.c: When traversing the queue of frames for
- possible retransmission after receiving a VNAK, handle sequence
- number wraparound so that all frames that should be retransmitted
- actually do get retransmitted. (issue #10227, reported and
- patched by mihai)
-
-2007-07-18 20:31 +0000 [r75748] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Store prior to copy (closes issue #10193)
-
-2007-07-18 17:48 +0000 [r75657] Dwayne M. Hubbard <dhubbard@digium.com>
-
- * apps/app_queue.c: removed the word 'pissed' from ast_log(...)
- function call for BE-90
-
-2007-07-17 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.22 released
-
-2007-07-17 20:57 +0000 [r75440-75449] Russell Bryant <russell@digium.com>
-
- * channels/chan_skinny.c: Properly check for the length in the
- skinny packet to prevent an invalid memcpy. (ASA-2007-016)
-
- * channels/iax2-parser.h, channels/chan_iax2.c,
- channels/iax2-parser.c: Ensure that when encoding the contents of
- an ast_frame into an iax_frame, that the size of the destination
- buffer is known in the iax_frame so that code won't write past
- the end of the allocated buffer when sending outgoing frames.
- (ASA-2007-014)
-
- * channels/chan_iax2.c: After parsing information elements in IAX
- frames, set the data length to zero, so that code later on does
- not think it has data to copy. (ASA-2007-015)
-
-2007-07-16 20:46 +0000 [r75251-75304] Kevin P. Fleming <kpfleming@digium.com>
-
- * dns.c: provide proper copyright/license attribution for this
- structure that was copied from a BSD-licensed header file long,
- long ago...
-
- * Makefile: install the LICENSE file along with the music files
-
- * sounds/fpm-world-mix.mp3 (removed), sounds/moh/fpm-calm-river.mp3
- (added), Makefile, sounds/moh (added),
- sounds/moh/fpm-world-mix.mp3 (added), sounds/moh/LICENSE (added),
- sounds/fpm-sunshine.mp3 (removed), sounds/moh/fpm-sunshine.mp3
- (added), sounds/fpm-calm-river.mp3 (removed): move FreePlayMusic
- files into a subdirectory, and include a license statement for
- them
-
-2007-07-13 20:35 +0000 [r75107] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: Fix a couple potential minor memory leaks.
- load_moh_classes() could return without destroying the loaded
- configuration.
-
-2007-07-13 20:10 +0000 [r75066] Mark Michelson <mmichelson@digium.com>
-
- * apps/app_chanspy.c: Fixed an issue where chanspy flags were
- uninitialized if no options were passed. What triggered this
- investigation was an IRC chat where some people's quiet flags
- were set while others' weren't even though none of them had
- specified the q option.
-
-2007-07-13 20:07 +0000 [r75052-75059] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: Ensure that adding a user to the list of
- users of a specific music on hold class is not done at the same
- time as any of the other operations on this list to prevent list
- corruption. Using the global moh_data lock for this is not ideal,
- but it is what is used to protect these lists everywhere else in
- the module, and I am only changing what is necessary to fix the
- bug.
-
- * channels/chan_zap.c: (closes issue #9660) Reported by: mmacvicar
- Patches submitted by: bbryant, russell Tested by: mmacvicar,
- marco, arcivanov, jmhunter, explidous When using a TDM400P (and
- probably other analog cards) there was a chance that you could
- hang up and pick the phone back up where it has been long enough
- to be not considered a flash hook, but too soon such that the
- device reports that it is busy and the person on the phone will
- only hear silence. This patch makes chan_zap more tolerant of
- this and gives the device a couple of seconds to succeed so the
- person on the phone happily gets their dialtone.
-
-2007-07-12 15:51 +0000 [r74814] Joshua Colp <jcolp@digium.com>
-
- * res/res_musiconhold.c: Only print out a warning for situations
- where it is actually helpful. (issue #10187 reported by denke)
-
-2007-07-11 22:53 +0000 [r74766] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: The function make_trunk() can fail and
- return -1 instead of a valid new call number. Fix the uses of
- this function to handle this instead of treating it as the new
- call number. This would cause a deadlock and memory corruption.
- (possible cause of issue #9614 and others, patch by me)
-
-2007-07-11 21:12 +0000 [r74719] Mark Michelson <mmichelson@digium.com>
-
- * channels/chan_agent.c: The cli command "agent logoff Agent/x
- soft" did not work...at all. Now it does. (closes issue #10178,
- reported and patched by makoto, with slight modification for 1.4
- and trunk by me)
-
-2007-07-11 18:33 +0000 [r74656] Russell Bryant <russell@digium.com>
-
- * res/res_config_odbc.c: Make sure that the ESCAPE immediately
- follows the condition that uses LIKE. This fixes realtime
- extensions with ODBC. (closes issue #10175, reported by stuarth,
- patch by me)
-
-2007-07-11 17:15 +0000 [r74587] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_phone.c, channels/Makefile: Use some Makefile magic
- to determine if linux/compiler.h is present. (issue #10174
- reported by francesco_r)
-
-2007-07-10 19:57 +0000 [r74373-74427] Jason Parker <jparker@digium.com>
-
- * apps/app_queue.c: Fix an issue where it was possible to have a
- service level of over 100% Between the time recalc_holdtime and
- update_queue was called, it was possible that the call could have
- been hungup. Move both additions to the same place, so this won't
- happen. Issue 10158, initial patch by makoto, modified by me.
-
- * channels/chan_agent.c: Fix an issue with wrapuptime not working
- when using AgentLogin. Issue 10169, patch by makoto, with a minor
- mod by me to not re-break issue 9618
-
- * dns.c: Use res_ndestroy on systems that have it. Otherwise, use
- res_nclose. This prevents a memleak on NetBSD - and possibly
- others. Issue 10133, patch by me, reported and tested by scw
-
-2007-07-10 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.21.1 released
-
-2007-07-10 15:37 +0000 [r74316] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: Fix a small typo in description in of
- Voicemail() application. Issue 10170, patch by casper.
-
-2007-07-10 15:30 +0000 [r74313] Russell Bryant <russell@digium.com>
-
- * res/res_config_odbc.c: Only use ESCAPE when LIKE is used. (issue
- #10075, this part reported by jmls on IRC, patch by me)
-
-2007-07-10 14:48 +0000 [r74264] Joshua Colp <jcolp@digium.com>
-
- * app.c: Ensure the group information category exists before trying
- to do a string comparison with it. (issue #10171 reported by
- mlegas)
-
-2007-07-09 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.21 released
-
-2007-07-09 21:00 +0000 [r74165] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: When the specified class isn't found,
- properly fall back to the channel's music class or the default.
- (issue #10123, reported by blitzrage, patches from juggie, qwell,
- and me)
-
-2007-07-09 20:18 +0000 [r74158] Jason Parker <jparker@digium.com>
-
- * channels/chan_zap.c: Several chan_zap options were not working on
- reload because they were arbitrarily disallowed when reloading
- some/most PRI options (such as signalling) was disallowed.
- Options such as polarityonanswerdelay and answeronpolarityswitch
- can safely be changed on a reload. This corrects that behavior.
- Issue 9186, patch by tzafrir.
-
-2007-07-06 23:01 +0000 [r73678-73768] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: If a sip_pvt struct has already registered
- an extension state callback, remove the old one before adding a
- new one. If this isn't done, Asterisk will crash. (issue #10120)
-
- * res/res_config_odbc.c: (closes issue #10075) Reported by: apsaras
- Patches submitted by: Corydon76 Tested by: apsaras Fix a problem
- with MSSQL 2005 by explicitly stating that '\' is being used as
- an escape character.
-
- * channels/chan_sip.c: (closes issue #10125) Reported by: makoto
- Patches submitted by: makoto This fixes a crash in chan_sip that
- happens when the bindaddr setting is not valid on Asterisk
- startup, gets fixed, and then a reload gets issued.
-
-2007-07-06 15:26 +0000 [r73674] Mark Michelson <mmichelson@digium.com>
-
- * channels/chan_agent.c: Fixed a bug wherein agents get stuck busy.
- (issue 9618, reported by jiddings, patched by moi) closes issue
- #9618
-
-2007-07-05 22:11 +0000 [r73547] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: we shouldn't allow G.723.1 endpoints to use
- VAD, just like we don't support it for G.729
-
-2007-07-05 19:15 +0000 [r73315-73466] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Copy language information to the dialog
- structure when calling a peer for situations where a PBX may be
- started on the dialed channel. (issue #10121 reported by
- clegall_proformatique)
-
- * apps/app_chanspy.c, channel.c: Tweak spy locking. (issue #9951
- reported by welles)
-
- * channels/chan_local.c: Actually check to make sure a PBX was
- started on one of the Local channels instead of blindly assuming
- it was. (issue #10112 reported by makoto)
-
- * apps/app_queue.c: Reset ServicelevelPerf variable back to 0 if we
- are unable to calculate it each time... otherwise we will get
- previous values. (issue #10117 reported by noriyuki)
-
-2007-07-04 14:50 +0000 [r73207-73252] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: bchannel configurations like
- echocancel and volume control, need to be setuped on inbound
- calls too.
-
- * channels/chan_misdn.c: bad bug in overlapdial case, we called
- start_pbx multiple times, because the state wasn't changed..
-
-2007-07-03 12:34 +0000 [r73052] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_dial.c: RetryDial should accept a 0 argument, but it
- does not, because atoi does not distinguish between 0 and error
- (closes issue #10106)
-
-2007-07-03 08:04 +0000 [r73004] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed issue, that misdn_l2l1_check could
- only be called from mISDN Source channels.. #9449
-
-2007-07-02 17:58 +0000 [r72924] Jason Parker <jparker@digium.com>
-
- * say.c: Fix an issue with playing "oclock" multiple times in
- French with 24 hour time format. Issue 10101
-
-2007-07-01 23:51 +0000 [r72805] Russell Bryant <russell@digium.com>
-
- * pbx/pbx_spool.c: When appending lines to call files to keep track
- of retries, write a leading newline just in case the original
- call file did not have a newline at the end. This fix is in
- response to a problem I saw reported on the asterisk-users
- mailing list.
-
-2007-06-29 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.20 released
-
-2007-06-29 16:30 +0000 [r72629] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Backport changes that make chan_iax2 not
- start the PBX on an incoming channel until the three-way call
- setup is completed. These changes are already in 1.4 and trunk.
-
-2007-06-29 13:08 +0000 [r72585] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: check if the
- bchannel stack id is already used, if so don't use it a second
- time. Also added a release_chan lock, so that the same chan_list
- object cannot be freed twice. chan_misdn does not crash anymore
- on heavy load with these changes.
-
-2007-06-27 23:24 +0000 [r72378] Joshua Colp <jcolp@digium.com>
-
- * apps/app_mixmonitor.c: Update documentation to clarify variable
- usage with MixMonitor. (issue #9494 reported by netoguy)
-
-2007-06-27 23:22 +0000 [r72333-72373] Brett Bryant <bbryant@digium.com>
-
- * asterisk.c: Reinstating patch. This actually fixes the problem,
- however I was running a development branch without it and
- mistakenly thought it wasn't fixed. Fixes issue #10010, and
- #9654: 100% CPU usage caused by an asterisk console losing it's
- controlling terminal.
-
- * asterisk.c: Reverted changes for earlier revisions 72259 to
- 72261. Issue #9654, #10010
-
-2007-06-27 22:43 +0000 [r72327] Joshua Colp <jcolp@digium.com>
-
- * apps/app_queue.c: Fix issue where queue log events might be
- missing. (issue #7765 reported by mtryfoss)
-
-2007-06-27 21:06 +0000 [r72267] Russell Bryant <russell@digium.com>
-
- * pbx/pbx_config.c: Fix a minor issue with parsing the priority
- number. You could have as much whitespace as you want around a
- numeric priority, but you couldn't have any whitespace around a
- special priority like "n" or "hint". (issue #10039, reported by
- mitheloc, fixed by me)
-
-2007-06-27 20:43 +0000 [r72259] Brett Bryant <bbryant@digium.com>
-
- * asterisk.c: Fixes 100% load when controlling terminal disappears.
- Issue #9654, #10010
-
-2007-06-27 20:23 +0000 [r72256] Joshua Colp <jcolp@digium.com>
-
- * channel.c: I may possibly get shot for doing this... but... defer
- CDR processing until after the channel has been dealt with. This
- should eliminate all of the issues with channels going funky
- (SIP/PRI) when you are posting CDRs to a database that is either
- slow or unavailable and do not want to enable batching.
-
-2007-06-27 18:40 +0000 [r72184] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: Fix another problem in voicemail with
- missing symbols. Issue 10074, patch by kryptolus, extended to
- include #if 0'd blocks (just in case)
-
-2007-06-27 13:22 +0000 [r72040-72099] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c:
- simplified generation for dummy bchannels, also we mark them as
- dummies, so they are not used later as real-bchannels, optimized
- the RESTART mechanisms, we block a channel now on cause:44, and
- send out a RESTART automatically, then on reception of
- RESTART_ACKNOWLEDGE we unblock the channel again.
-
- * channels/misdn/isdn_lib.h, channels/misdn/isdn_lib.c: simplified
- channel finding and locking a lot. removed unnecessary #ifdefed
- areas.
-
- * channels/misdn/isdn_lib.c: isdn_lib.c didn't compile
-
- * channels/misdn/isdn_lib.c: for inbound TE calls, we setup the
- bchannel when we get the CONNECT_ACKNOWLEDGE, to make sure mISDN
- has everything ready. removed some #if 0 areas which weren't used
- anymore.
-
-2007-06-26 17:49 +0000 [r71847] Jason Parker <jparker@digium.com>
-
- * Makefile: Don't try to install an init script that doesn't exist.
- Reported to me on #asterisk on Freenode IRC.
-
-2007-06-26 12:25 +0000 [r71656-71750] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Issue 10062 - Trying to move a message
- without selecting one first results in memory corruption
-
- * res/res_agi.c: Issue 10035 - handle_exec returns a result
- inconsistent with all of the other AGI commands
-
-2007-06-25 01:02 +0000 [r71414] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Ignore other URIs after the first in a 300
- Multiple Choice response. (issue #10041 reported by homesick)
-
-2007-06-24 20:04 +0000 [r71358] Russell Bryant <russell@digium.com>
-
- * asterisk.c: Revert the patch from issue 9654 due to an unexpected
- side effect
-
-2007-06-24 17:32 +0000 [r71288] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * manager.c, db.c: Issue 10043 - There is a legitimate need to be
- able to set variables to the empty string.
-
-2007-06-22 16:02 +0000 [r71124] Joshua Colp <jcolp@digium.com>
-
- * res/res_features.c: Send an unhold indication when going off
- hold. (issue #10036 reported by speedy)
-
-2007-06-22 14:52 +0000 [r71065] Jason Parker <jparker@digium.com>
-
- * file.c, res/res_agi.c: Fix a few silly usages of ast_playstream()
- - it only ever returns 0... Issue 10035
-
-2007-06-22 14:39 +0000 [r71064] Brett Bryant <bbryant@digium.com>
-
- * asterisk.c: Fixed infinite loop when controlling terminal was
- lost and return value of input function wasn't checked for
- errors. This would cause 100% cpu to be taken up. (closes issue
- #9654, issue #10010) Reported by: mnicholson, and eserra Idea for
- the patch from mnicholson, patched by me
-
-2007-06-21 22:29 +0000 [r70948] Steve Murphy <murf@digium.com>
-
- * cdr.c: This little fix is in response to bug 10016, but may not
- cure it. The code is wrong, clearly. In a situation where you set
- the CDR's amaflags, and then ForkCDR, and then set the new CDR's
- amaflags to some other value, you will see that all CDRs have had
- their amaflags changed. This is not good. So I fixed it.
-
-2007-06-21 21:37 +0000 [r70898] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Don't explode if the gain option is
- specified without a value. (issue #9274 reported by mfarver)
-
-2007-06-21 19:13 +0000 [r70804] Steve Murphy <murf@digium.com>
-
- * cdr/cdr_custom.c: it was pointed out that the cdr_custom config
- load could get a lock, and under certain circumstances, would
- never release it. I also noted that the situation where more than
- one mapping spec was warned about, but did not ignore further
- mappings as it had promised. I think I have fixed both
- situations.
-
-2007-06-21 13:11 +0000 [r70672] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: we activate the
- bchannels in TE mode on incoming calls only when we want to
- connect the call.
-
-2007-06-20 22:20 +0000 [r70551] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Don't overwrite the configured username
- setting upon a REGISTER. (issue #8565 reported by jsmith)
-
-2007-06-20 19:25 +0000 [r70444] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_dial.c: Issue 9997 - Timelimit times out the wrong
- channel
-
-2007-06-20 18:45 +0000 [r70396] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: Fix a problem where an established call
- would not be properly disconnected when a PRI disconnect is
- received depending on which cause code was received. (issue
- #9588, original patch by softins, updated patch from jtexter3,
- and some additional feedback from mhardeman)
-
-2007-06-20 15:42 +0000 [r70311-70342] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: forgot one place ..
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_lib.c: fixed a bug that was introduced by
- copy and paste in the last commit ..bchannels weren't cleaned
- properly.
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_lib.c: on receiption of cause:44 we mark the
- channel as in use and inform the user about the situation, we
- need to test the RESTART stuff then. Also shuffled the
- empty_chan_in_stack function after the bchannel cleaning
- functions, to avoid race conditions.
-
-2007-06-19 18:07 +0000 [r70053] Steve Murphy <murf@digium.com>
-
- * channel.c: This fixes 9246, where channel variables are not
- available in the 'h' exten, on a 'ZOMBIE' channel. The fix is to
- consolidate the channel variables during a masquerade, and then
- copy the merged variables back onto the clone, so the zombie has
- the same vars that the 'original' has.
-
-2007-06-19 17:00 +0000 [r69992] Joshua Colp <jcolp@digium.com>
-
- * rtp.c: Handle the CC field in the RTP header. (issue #9384
- reported by DoodleHu)
-
-2007-06-19 16:45 +0000 [r69990] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: Backport fix for crashes related to
- subscriptions from 1.4 ... Fix a crash that could occur when
- handing device state changes. When the state of a device changes,
- the device state thread tells the extension state handling code
- that it changed. Then, the extension state code calls the
- callback in chan_sip so that it can update subscriptions to that
- extension. A pointer to a sip_pvt structure is passed to this
- function as the call which needs a NOTIFY sent. However, there
- was no locking done to ensure that the pvt struct didn't
- disappear during this process. (issue #9946, reported by
- tdonahue, patch by me, patch updated to trunk to use the sip_pvt
- lock wrappers by eliel)
-
-2007-06-19 16:21 +0000 [r69894-69986] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Update BRIDGEPEER variable if set to the new channel
- name when a masquerade happens. (issue #9699 reported by dimas)
-
- * apps/app_meetme.c: Perform an extra hangup check just in case.
- (issue #9589 reported by bcnit)
-
-2007-06-19 13:23 +0000 [r69887] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: when we send out a SETUP, but get no
- response, we should cleanup everything after reception of a
- hangup.
-
-2007-06-19 12:57 +0000 [r69765-69846] Joshua Colp <jcolp@digium.com>
-
- * res/res_features.c: Add parked call extension AFTER the parking
- slot has been announced, otherwise two threads will try to handle
- the same channel and it will go kaboom. (issue #9191 reported by
- japple)
-
- * channels/chan_sip.c: Set the peer name on the dialog to the one
- configured in sip.conf and NOT the username to be used for
- authentication attempts. (issue #9967 reported by achauvin)
-
-2007-06-18 17:45 +0000 [r69743] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * contrib/scripts/safe_asterisk: Issue 9998 - Remove SIG prefix,
- since it's not supported by ksh
-
-2007-06-15 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.19 released
-
-2007-06-14 23:21 +0000 [r69469] Jason Parker <jparker@digium.com>
-
- * config.c: Fix an issue where the line number in an unterminated
- comment block error message would show the wrong line number.
- "Reported" to me on #asterisk (somebody posted an error message,
- and I happened to catch it)
-
-2007-06-14 20:56 +0000 [r69347] Russell Bryant <russell@digium.com>
-
- * channel.c: Backport rev 69010 from the 1.4 branch ... In
- ast_channel_make_compatible(), just return if the channels' read
- and write formats already match up. There are code paths that
- call this function on a pair of channels multiple times. This
- made calls fail that were using g729 in some cases. The reason is
- that codec_g729a will unregister itself from the list of
- available translators will all licenses are in use. So, the first
- time the function got called, the right translation path was
- allocated. However, the second time it got called, the code would
- not find a translation path to/from g729 and make the call fail,
- even if the channel actually already had a g729 translation path
- allocated. (SPD-32)
-
-2007-06-14 15:15 +0000 [r69258] Jason Parker <jparker@digium.com>
-
- * funcs/func_groupcount.c: Change a quite broken while loop to a
- for loop, so "continue;" works as expected instead of eating 99%
- CPU... Issue 9966, patch by me.
-
-2007-06-13 18:12 +0000 [r69127] Joshua Colp <jcolp@digium.com>
-
- * app.c: Return group counting to previous behavior where you could
- only have one group per category. (issue #9711 reported by
- irroot)
-
-2007-06-13 09:55 +0000 [r69053] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_msg_parser.c: restart indicator 0x80 is
- correct, at least that's what libpri does.
-
-2007-06-12 14:18 +0000 [r68921] Joshua Colp <jcolp@digium.com>
-
- * rtp.c: Bring RTP back to Asterisk at the end of a native bridge
- no matter what.
-
-2007-06-12 08:35 +0000 [r68732-68887] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: if the bridged partner is mISDN too we
- should not send dtmf tones, they are transmitted inband always
-
- * channels/chan_misdn.c: if we have already some digits, we just
- stop the tones.
-
- * channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: added
- check for NULL Pointer when calling misdn_new. Asterisk does not
- allow us to create channels anymore when stop gracefully is used
- :). also modified the restart_indicator to 0
-
-2007-06-11 14:29 +0000 [r68682] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Improve deadlock handling of the channel list. (issue
- #8376 reported by one47)
-
-2007-06-11 09:18 +0000 [r68631] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c,
- channels/misdn/isdn_lib.c: fixed problem that the dummybc chanels
- had no lock, checking for the lock now. Also fixed the channel
- restart stuff, we can now specify and restart particular channels
- too.
-
-2007-06-08 22:22 +0000 [r68526] Russell Bryant <russell@digium.com>
-
- * apps/app_dictate.c: Don't automatically hang up after running
- Dictate so that callers can exit cleanly using '#' (closes issue
- #9577, patch from Thomas Andrews)
-
-2007-06-08 00:15 +0000 [r68368-68397] Joshua Colp <jcolp@digium.com>
-
- * say.c: Don't call ast_waitstream_full when the control file
- descriptor and audio file descriptor are not set, simply call
- ast_waitstream! (issue #8530 reported by rickead2000)
-
- * dnsmgr.c: Do a DNS lookup immediately upon calling the dnsmgr
- function, don't wait until a refresh happens. (issue #9097
- reported by plack)
-
-2007-06-07 23:13 +0000 [r68351] Russell Bryant <russell@digium.com>
-
- * say.c: Fix a problem where saying a character wouldn't properly
- break out when the caller pressed '#' (issue #8113, reported by
- patbaker82, patch from jamesgolovich (hey, long time no see!) and
- patbaker82)
-
-2007-06-07 20:02 +0000 [r68204] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: Don't try to save voicemail greetings
- unless the user presses '1' to accept/save. Issue 9904, patch by
- me.
-
-2007-06-07 14:19 +0000 [r67938-68070] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Allow the 'g' option to work if used with the
- 'S' option. (issue #9888 reported by gasparz)
-
- * channels/chan_sip.c: Only notify the devicestate system of a peer
- state change when the peer is built from the config file. (issue
- #9900 reported by arkadia)
-
-2007-06-06 16:40 +0000 [r67715] Russell Bryant <russell@digium.com>
-
- * channel.c: We have some bug reports showing crashes due to a
- double free of a channel. Add a sanity check to
- ast_channel_free() to make sure we don't go on trying to free a
- channel that wasn't found in the channel list. (issue #8850, and
- others...)
-
-2007-06-06 13:28 +0000 [r67593-67649] Joshua Colp <jcolp@digium.com>
-
- * rtp.c: Reinvite the RTP back to the Asterisk machine when the
- timeout happens. (issue #9888 reported by gasparz)
-
- * devicestate.c: Revert channel name splitting fix for Zap. The
- moral of the story is don't use - in your user/peer names. (issue
- #9668 reported by stevedavies)
-
-2007-06-05 15:42 +0000 [r67306-67307] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/chan_misdn_config.h: briding is a bool, fixed copy
- and paste issue.
-
- * channels/chan_misdn.c: simplified the EVENT_SETUP handling in the
- cb_events function a lot. Commented the different possibilities a
- bit and made functions of shared code. When the dialed extension
- does not exist in the extensions.conf we'll jump into the 'i'
- extension if this does exist, else we disconnect the call with
- the cause:1 = No Route to Destination.
-
-2007-06-05 11:18 +0000 [r67239] Nadi Sarrar <ns@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/chan_misdn_config.h: Backport of the overlap_dial
- functionality from asterisk-1.4's chan_misdn.
-
-2007-06-05 10:05 +0000 [r67209] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/chan_misdn_config.h: added possibility to
- deactivate bridging per port
-
-2007-06-04 23:41 +0000 [r67060-67161] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_math.c: According to MATH, 0+1181000386 = 1181000448.
- Oops.
-
- * contrib/init.d/rc.debian.asterisk,
- contrib/init.d/rc.mandrake.asterisk,
- contrib/init.d/rc.redhat.asterisk,
- contrib/init.d/rc.gentoo.asterisk,
- contrib/init.d/rc.mandrake.zaptel,
- contrib/init.d/rc.slackware.asterisk: Add revision Id tags (by
- request of tzafrir)
-
-2007-05-31 16:12 +0000 [r66764] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: It is now possible for this path of
- execution to have the frame pointer be NULL, therefore we need to
- check for it before trying to access it. (issue #9836 reported by
- barthpbx)
-
-2007-05-31 15:58 +0000 [r66744] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_macro.c: Issue 9818 - Fix for issue 8329 breaks
- pbx_realtime. Issue 8329 will remain unfixed for pbx_realtime,
- but only because we lack core API to do it.
-
-2007-05-29 21:49 +0000 [r66537] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_strings.c: If the value of a variable passed to
- FIELDQTY is blank, then FIELDQTY should return 0, not 1.
-
-2007-05-29 07:53 +0000 [r66349] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #9802 - Change inuse counter on CANCEL
-
-2007-05-25 13:46 +0000 [r66127] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * say.c: Issue 9791 - Fix pronunciation of seconds in Dutch
-
-2007-05-24 14:40 +0000 [r65837] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Allow RFC2833 to be negotiated when an
- INVITE comes in without SDP and is not matched to a user or peer.
- (issue #9546 reported by mcrawford)
-
-2007-05-24 09:19 +0000 [r65767] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: we should only activate the generator in
- chan_misdn, when asterisk hask not yet taken the call
- (WAITING4DIGS state). Alerting audio will be generated fomr
- asterisk for example.
-
-2007-05-23 20:46 +0000 [r65676-65682] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: ensure that variables are set on a newly
- created channel before we start a PBX on it
-
- * channels/chan_iax2.c: if we are going to set variables on a newly
- created channel, it should be done *before* we start the PBX on
- it
-
-2007-05-23 13:06 +0000 [r65389-65588] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: Revert revision 62417 as someone reported
- problems with it to Mark. This was related to issue #9588.
-
- * apps/app_queue.c: Fix a memory leak that I just noticed in the
- device state handling in app_queue. On most device state changes,
- it would leak roughly 8 to 64 bytes (the length of the name of
- the device).
-
-2007-05-22 07:46 +0000 [r65328] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: we stop the tones only when we're in the
- pre-call phase, otherwise e.g. when in CONNECTED state we should
- not stop tones when we receive an Information Message
-
-2007-05-18 20:56 +0000 [r65172] Steve Murphy <murf@digium.com>
-
- * apps/app_dial.c, include/asterisk/cdr.h, cdr.c: This update will
- fix the situation that occurs as described by 9717, where when
- several targets are specified for a dial, if any one them reports
- FAIL, the whole call gets FAIL, even though others were ringing
- OK. I rearranged the priorities, so that a new disposition, NULL,
- is at the lowest level, and the disposition get init'd to NULL.
- Then, next up is FAIL, and next up is BUSY, then NOANSWER, then
- ANSWERED. All the related set routines will only do so if the
- disposition value to be set to is greater than what's already
- there. This gives the intended effect. So, if all the targets are
- busy, you'd get BUSY for the call disposition. If all get BUSY,
- but one, and that one rings is not answered, you get NOANSWER. If
- by some freak of nature, the NULL value doesn't get overridden,
- then the disp2str routine will report NOANSWER as before.
-
-2007-05-18 18:10 +0000 [r65075-65122] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Not getting an ACK to a 200 OK in the
- initial invite is critical to the call.
-
- * channels/chan_sip.c: Issue 9235 - part of the problem, maybe not
- all. Please retry with this patch (and no other patch) if you
- have problems with hanging SIP channels. Thank you. A special
- Thank You to WeBRainstorm that gave me access to his system.
-
-2007-05-18 11:23 +0000 [r64902-65007] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c: fixed a
- warning regarding Keypad encoding. encode the IE sending_complete
- at the right position.
-
- * channels/chan_misdn.c: we *need* to send a PROCEEDING when
- sending_complete is set, even if need_more_infos is requested.
-
-2007-05-17 21:14 +0000 [r64819] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/linkedlists.h: How is it that we never caught
- that this is returning the opposite of our documentation, until
- now?
-
-2007-05-17 16:52 +0000 [r64758] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: If we have a negative current message, we
- shouldn't go back even further... Issue 9727.
-
-2007-05-16 10:55 +0000 [r64514-64603] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Fixing possible bug in auth of BYE
-
- * channels/chan_sip.c: Support SIP uri's starting with SIP: and
- sip: (reported by Tony Mountfield on the mailing list. Thanks!)
-
- * channels/chan_sip.c: Issue #9726 - rlister - Better logging for
- ACL denials While at it, also added better logging and handling
- of peers that are not supposed to register. My patch, stole the
- issue report from Russell. My apologies, Russell :-)
-
-2007-05-16 08:23 +0000 [r64513] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: in the case immediate=yes, we directly
- jump into the dialplan, where people can use PlayTones to
- indicate a Dialtone, so we don't need to to that by ourself. also
- we should not do a dialtone_indicate for incoming calls on a TE
- port in overlapdialmode.
-
-2007-05-14 18:34 +0000 [r64275] Joshua Colp <jcolp@digium.com>
-
- * devicestate.c: Only perform stripping of - strings from the
- channel name for Zap channels. Anywhere else we might remove a
- legitimate part of a device name. (issue #9668 reported by
- stevedavies)
-
-2007-05-11 16:31 +0000 [r63903] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * Makefile, contrib/scripts/safe_asterisk: Issue 9121 - fixups for
- safe_asterisk script
-
-2007-05-10 23:14 +0000 [r63828] Jason Parker <jparker@digium.com>
-
- * channels/chan_iax2.c: Fix an issue with trying to kill a thread
- before it gets created. Issue 9709, patch by nic_bellamy.
-
-2007-05-10 20:38 +0000 [r63748] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Do not allocate SIP pvt's for PEERs we can
- not reach. This was seen as a lot of dialogs being created then
- immediately destroyed at reload/restart of the SIP channel.
-
-2007-05-09 17:20 +0000 [r63653] Matthew Fredrickson <creslin@digium.com>
-
- * channels/chan_zap.c: Make sure we only create a DSP if it's
- requested on SUB_REAL
-
-2007-05-09 16:51 +0000 [r63610] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Properly handle hints that point to multiple
- devices in chan_sip. Why chan_sip is even doing this I have no
- idea but I would rather not go into a rant. (issue #9536 reported
- by rlister)
-
-2007-05-09 14:48 +0000 [r63565] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_directory.c: Replicate fix from 51158 (app_voicemail) to
- app_directory (Issue 9224)
-
-2007-05-09 11:26 +0000 [r63519] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: release_chan frees ch, so we should never
- touch ch after release_chan, this may cause segfaults.
-
-2007-05-08 22:19 +0000 [r63477] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_macro.c: Issue 9602 - segfault in app_macro
-
-2007-05-08 15:07 +0000 [r63402] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: added
- application misdn_check_l2l1 which tries to pull up the L1/L2 on
- all ports that have the layers down in a group. It waits then for
- a timeout. This helps for scenarios where multiple PMP BRIs are
- grouped together, or where a provider has a faulty PTP
- Implementation, that looses the L2 after a while.
-
-2007-05-08 06:20 +0000 [r63359] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Issue 9527 - upon entering a folder, no
- message is selected (curmsg == -1), so deleting causes memory
- corruption (beyond bounds)
-
-2007-05-07 21:39 +0000 [r63285] Joshua Colp <jcolp@digium.com>
-
- * include/asterisk/app.h, app.c, channel.c: Properly handle what
- happens during a masquerade in relation to group counting. (issue
- #9657 reported by ramonpeek)
-
-2007-05-07 14:06 +0000 [r63195] Olle Johansson <oej@edvina.net>
-
- * config.c: Releasing the whole in-memory configuration while
- you're adding to it is not a good thing. Please review this
- change. Caused by additions (+) to non-existing contexts.
-
-2007-05-03 16:42 +0000 [r62987] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: When a peer is seeded or built tell the
- devicestate core to update it's status. This is easier then
- having chan_sip load before pbx_config. (issue #9658 reported by
- dlynes)
-
-2007-05-03 15:39 +0000 [r62885-62945] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: when
- we're in state WAITING4DIGS, we use the asterisk tone-generator
- which prods us, so we can't just return -1 in misdn_write in this
- case. Added a MISDN_KEYPAD channel variable, and fixed the
- sending of keypad. this enables us to modify the call forward
- parameters in the switch.
-
- * channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: fixed
- the problem that misdn_write did not return -1 when called with 0
- samples in a frame this resultet in a deadlock in some
- circumstances, when the call ended because of a busy extension.
- added encoding of keypad.
-
-2007-05-03 00:23 +0000 [r62796-62841] Kevin P. Fleming <kpfleming@digium.com>
-
- * res/res_config_odbc.c: doh... initializing the pointer variable
- will work just a bit better
-
- * res/res_config_odbc.c: increase reliability and efficiency of
- static Realtime config loading via ODBC: don't request fields we
- aren't going to use don't request sorting on fields that are
- pointless to sort on explicitly request the fields we want,
- because we can't expect the database to always return them in the
- order they were created (reported by blitzrage in person (!),
- patch by me)
-
-2007-05-02 20:10 +0000 [r62737] Steve Murphy <murf@digium.com>
-
- * cdr.c, pbx.c: Some tweaks to satisfy CDR bug 8796, where being in
- 'h' extension louses up the dst field
-
-2007-05-02 17:38 +0000 [r62691] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_iax2.c: Issue 9638 - if a text frame is sent with
- no terminating NULL through a bridged IAX connection, the remote
- end will receive garbage characters tacked onto the end.
-
-2007-05-01 21:55 +0000 [r62496-62547] Russell Bryant <russell@digium.com>
-
- * res/res_features.c: Remove an unnecessary check that makes it so
- if you hang up after doing an attended transfer before the target
- extension answers the channel, the transfer is not successful.
- (issue #9338, patch by svanlund)
-
- * configs/indications.conf.sample: Add indications.conf information
- for the Philippines. (issue #9525, reported and patched by
- loloski)
-
-2007-04-30 15:57 +0000 [r62417] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: This patch fixes an issue where depending on
- the cause code, when the network sends a PRI disconnect, the call
- may not be properly hung up. (issue #9588, reported and patched
- by softins)
-
-2007-04-30 14:34 +0000 [r62368] Joshua Colp <jcolp@digium.com>
-
- * asterisk.c: Update copyright notice. It's now the year 2007!
-
-2007-04-27 16:16 +0000 [r62173] Jason Parker <jparker@digium.com>
-
- * codecs/codec_zap.c: This transcoder message needn't be a NOTICE.
- I've seen it cause confusion more than a few times.
-
-2007-04-27 13:57 +0000 [r62126] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7351 - SIP Cancel fails due to the
- wrong contact uri. Reported by PPYY, failed to fix by OEJ final
- fix by wojtekka - THANKS!!!! THis was a hard one to catch.
-
-2007-04-26 16:30 +0000 [r61958-62037] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Revert previous fix for when the IAX2
- channel goes funky (that's the technical term). This is causing
- legit calls to be prematurely hung up. (issue #9600 reported by
- justdave)
-
- * config.c: Don't count failed include attempts against the
- configuration include level. (issue #9593 reported by mostyn)
-
-2007-04-25 22:24 +0000 [r61913] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_zap.c: handle a very bizarre race condition with
- channels being redirected before a simple switch can be started
- on them (issue #9286)
-
-2007-04-25 21:55 +0000 [r61862-61866] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: If the callerid= option is specified, but
- empty, clear any previous data.
-
- * channels/chan_iax2.c: Ensure that callerid settings are reset on
- a reload.
-
-2007-04-25 18:52 +0000 [r61804] Joshua Colp <jcolp@digium.com>
-
- * include/asterisk/app.h, funcs/func_groupcount.c, app.c,
- apps/app_groupcount.c, channel.c: Merge rewritten group counting
- support. No more storing data on the variable list of the
- channels. That was bad, mmmk? (issue #7497 reported by sabbathbh)
-
-2007-04-25 16:20 +0000 [r61798] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: Fix a typo where cid_num got copied instead
- of cid_ani. (issue #9587, reported and patched by xrg)
-
-2007-04-24 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.18 released
-
-2007-04-24 21:33 +0000 [r61786] Russell Bryant <russell@digium.com>
-
- * manager.c: Don't crash if a manager connection provides a
- username that exists in manager.conf but does not have a
- password, and also requests MD5 authentication. (ASA-2007-012)
-
-2007-04-24 18:20 +0000 [r61776-61777] Dwayne M. Hubbard <dhubbard@digium.com>
-
- * channels/chan_phone.c, channels/chan_zap.c,
- channels/chan_modem.c: removed #if 0 block from chan_phone,
- chan_zap, and chan_modem restart_monitor()
-
- * channels/chan_modem.c: removed pthread_join in restart_monitor()
- to make it like chan_zap and other channel drivers
-
-2007-04-24 16:05 +0000 [r61771] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Allow RFC2833 to be sent in the response SDP
- when an INVITE comes in without SDP. (issue #9546 reported by
- mcrawford)
-
-2007-04-24 13:50 +0000 [r61770] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib_intern.h, channels/misdn/isdn_lib.h,
- channels/misdn/isdn_lib.c: added lock for sending messages to
- avoid double sending. shuffled some empty_chans after the
- cb_event calls, this avoids that a release_complete from a quite
- different call releases a fresh created setup by accident.
-
-2007-04-20 21:14 +0000 [r61692-61704] Jason Parker <jparker@digium.com>
-
- * loader.c: Fix an issue that I noticed while looking over issue
- 9571. The reload timestamp was getting set after reloading the
- built-in stuff, and before the modules.
-
- * apps/app_queue.c: If the '* to hangup' option is not enabled, we
- don't need to disable * as a valid exit key. If it was enabled,
- this statement would've never been checked in the first place.
- Issue #9552
-
-2007-04-19 07:56 +0000 [r61685] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Send NOTIFY to Contact: in SUBSCRIBE - as
- reported by Intertex and Citel. Fixed during SIPit 20 in Antwerp.
-
-2007-04-19 02:30 +0000 [r61680] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_language.c, funcs/func_moh.c, funcs/func_groupcount.c,
- funcs/func_timeout.c, funcs/func_cdr.c, funcs/func_callerid.c:
- Bug 9557 - Specifying the GetVar AMI action without a Channel
- parameter can cause Asterisk to crash. The reason this needs to
- be fixed in the functions instead of in AMI is because Channel
- can legitimately be NULL, such as when retrieving global
- variables.
-
-2007-04-16 14:08 +0000 [r61663] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't stop RTP on errors on INFO messages.
- Disclaimer: This patch was needed for Edvina AstHoloApp and was
- meant to be included in 1.2, but never made it in time so I felt
- I could add it now. No, just joking, patching error found while
- testing T.140 with Omnitor earlier this spring.
-
-2007-04-13 19:15 +0000 [r61655] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Add OUTBOUND_GROUP_ONCE variable to app_dial.
- This behaves the same as OUTBOUND_GROUP except it will get unset
- after use so it won't get accidentally inherited. (issue #BE-140)
-
-2007-04-11 16:01 +0000 [r61376-61476] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: If someone sets the "useragent" option in
- sip.conf to be empty, then don't add the User-Agent header at
- all. It is an optional header, anyway. Also, the bug report says
- that some of Japan's SIP providers don't allow it for some weird
- reason. (issue #9488, reported by makoto, fixed by me)
-
- * channels/chan_sip.c: Fix a bug with switching between
- host=dynamic and using specific hosts for peers. The code would
- only reset the peer's address when it is dynamic if it was a new
- peer structure. Now, it will also reset the address if it was
- already in the peer list, but before the reload, it was not
- dynamic. (issue #9515, reported by caio1982, fixed by me)
-
- * channels/chan_sip.c: Remove the attempt at reporting
- configuration errors in sip.conf. This can cause a bunch of
- improper messages when using realtime. I give up. As oej tried to
- convince me when I put this in, there is just no easy way to do
- it. (inspired by a message on the -dev list)
-
-2007-04-11 12:05 +0000 [r61357] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: some fixes for
- PMP Hold/Retrieve, it should work now, when briding=no
-
-2007-04-10 12:31 +0000 [r61170] Nadi Sarrar <ns@beronet.com>
-
- * channels/misdn_config.c: msns config parameter defaults to '*'
-
-2007-04-09 19:38 +0000 [r61038] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: - Don't send ActionID before Response:
- header. - Don't use a blank in an AMI header
-
-2007-04-09 17:22 +0000 [r60935] Jason Parker <jparker@digium.com>
-
- * apps/app_directory.c: Allow matching on names shorter than 3
- chars. This also fixes the case where somebody wants to match on
- less then 3 chars. Issue 9071
-
-2007-04-09 02:49 +0000 [r60846-60849] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk.h, asterisk.c: Don't check for error when
- lowering priority (according to the manpage, it should never
- happen anyway). It might could happen, though, if another thread
- messed with the priority, so safeguard against that (reported via
- -dev list).
-
- * channels/chan_local.c: Bug 9505 - If the return value for
- local_queue_frame is set, then p->lock is no longer valid.
-
-2007-04-09 00:59 +0000 [r60797] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: When calling a device that then forwards us
- elsewhere... we have to make our channels compatible if it is the
- only channel being dialed. (issue #9445 reported by
- marcelbarbulescu)
-
-2007-04-08 14:00 +0000 [r60660-60711] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_macro.c: Gosub called within a Macro resets the
- arguments improperly and causes general weirdness. (Issue 8329)
-
- * file.c: Bug 9486 - memory leak when opening a filestream
-
-2007-04-06 17:03 +0000 [r60456] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: There should only be one code path for doing
- DTMF conditionals on channels. This fixes it.
-
-2007-04-06 14:41 +0000 [r60398] Kevin P. Fleming <kpfleming@digium.com>
-
- * codecs/codec_zap.c: remove undocumented 'cardsmode' parameter and
- stop searching for transcoders during reload()
-
-2007-04-05 16:09 +0000 [r60267] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: Just because we can't find the voicemail
- configuration file, doesn't mean that the module failed to load.
- The user could be using realtime. Issue #9473
-
-2007-04-05 12:52 +0000 [r60213] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Only unlock our pvt and net locks if we are
- actually going to try to lock the owner again. (issue #9472
- reported by zoa)
-
-2007-04-04 17:38 +0000 [r59886-60134] Russell Bryant <russell@digium.com>
-
- * manager.c: It is valid to redirect channels via the manager
- interface that are not in the UP state. Instead of checking for
- that to prevent to ensure a dead channel doesn't get redirected,
- just use the ast_check_hangup() API call. (issue #9457, reported
- by Callmewind, patch by me) (related to issue #8977)
-
- * channels/chan_sip.c: Fix the return value of
- handle_common_options() so that it always properly indicates
- whether it handled the option or not. (issue #9455, reported by
- Netview, fixed by me)
-
- * channels/chan_sip.c: Add a missing "\r\n" in the body of the
- NOTIFY that is sent to indicate the status of a transfer. (issue
- #9388, reported by rarritt)
-
- * mkpkgconfig: Use the more generic check for "sed -r" support that
- was already present in 1.4. (related to issue #9399)
-
- * mkpkgconfig: On Darwin, the -r argument to sed is not valid. It
- has to be -E. (issue #9399, reported by jcovert)
-
- * channels/chan_sip.c: Don't attempt to report configuration errors
- in build_user(). oej pointed out that for a "friend" entry, this
- won't work, because all user options are valid for peers, but not
- the other way around.
-
- * channels/chan_sip.c: Make chan_sip report when it encounters an
- unknown option. (issue #9440, reported by nightcrawler)
-
- * app.c: When doing a built-in blind or attended transfer, restore
- the ability to use '#' to terminate the number and immediately do
- the transfer instead of having to dial the number and just wait
- for the feature digit timeout. (issue #8366, xueliangliang)
-
-2007-04-03 10:40 +0000 [r59788-59803] Nadi Sarrar <ns@beronet.com>
-
- * channels/misdn_config.c: ptp is the 5th bit, not the 4th.
-
- * channels/misdn_config.c, channels/misdn/chan_misdn_config.h: Use
- the new sysfs way of mISDN 1.2 to check if a port is NT or not.
-
-2007-04-02 18:55 +0000 [r59723] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Increase the maximum size for a string of
- mailboxes to 1024. (issue #9270 reported by rtucker)
-
-2007-04-02 12:08 +0000 [r59623-59639] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/chan_misdn_config.h: added option which allows us
- to accept incoming SETUP Messages without automatically sending
- Proceeding or Setup Acknowledge, this is useful with some broken
- switches and if you want to Release incoming calls without
- previously having acknowledged them. The new option is
- noautorespond_on_setup=yes|no default is no, so we don't break
- the existing behaviour
-
- * channels/chan_misdn.c: don't be verbose if no need
-
- * channels/misdn/isdn_lib.c: we can now make 30 channels on a PRI
- (before we forgot chan 31..)
-
-2007-04-01 22:35 +0000 [r59608] Russell Bryant <russell@digium.com>
-
- * netsock.c: Add the SO_REUSEADDR flag to sockets handled by
- netsock. This is needed by the patch that went in for issue 7874.
- chan_iax2 needs to be able to create socket that is lisetning on
- INADDR_ANY, but also be able to bind sockets to specific
- addresses. (Thanks to Stevenson on the asterisk-dev mailing list
- for explaining why this flag was needed.)
-
-2007-03-29 17:33 +0000 [r59360] Joshua Colp <jcolp@digium.com>
-
- * apps/app_meetme.c: Keep a global array of variables indicating
- whether certain conference rooms are in use. This ensures that
- two people going into a new dynamic conference when the 'e'
- option is set don't go into the same conference room. (issue
- #8835 reported by eliel)
-
-2007-03-29 17:14 +0000 [r59355-59357] Russell Bryant <russell@digium.com>
-
- * rtp.c: If an error occurs when reading from an RTP socket, and
- the error code does not indicate that we should try again, then
- return NULL instead of a "null frame". This will prevent Asterisk
- from trying over and over again, and eventually causing the
- system to crash. (issue #8285, john)
-
- * channels/chan_iax2.c: Backport the change to chan_iax2 to return
- NULL instead of a "null frame" from its read callback. See
- revision 59341 to the 1.4 branch for more info.
-
-2007-03-29 16:04 +0000 [r59299-59301] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * cdr/cdr_odbc.c: Issue 9415 - No point to getting a diagnostic
- field if we aren't doing anything with the information. (Plus, it
- tends to crash the Postgres ODBC driver.)
-
- * res/res_odbc.c: Change ENV section to use setenv, instead of
- putenv (Alexandru Pirvulescu <sigxcpu@gmail.com>, reported via
- -dev list)
-
-2007-03-27 23:36 +0000 [r59280-59283] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Oops
-
- * apps/app_voicemail.c: Fix a few remaining bad mmap(2) return
- values
-
-2007-03-27 23:19 +0000 [r59258-59277] Russell Bryant <russell@digium.com>
-
- * apps/app_directory.c: Fix the check of the return value from
- mmap(). Thanks to Corydon for catching this one.
-
- * channels/chan_iax2.c: Fix the use of the "sourceaddress" option
- when "bindaddr" is set to 0.0.0.0 instead of having each
- interface explicitly listed. (issue #7874, patch by stevens)
-
-2007-03-27 13:56 +0000 [r59252] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed #9355
-
-2007-03-26 10:21 +0000 [r59199] Nadi Sarrar <ns@beronet.com>
-
- * channels/misdn_config.c, channels/misdn/isdn_lib.h,
- channels/chan_misdn.c, channels/misdn/Makefile,
- channels/misdn/chan_misdn_config.h, channels/Makefile,
- channels/misdn/isdn_lib.c: mISDN >= 1.2 provides a dsp pipeline
- for i.e. echo cancellation modules, make chan_misdn use it.
-
-2007-03-24 01:35 +0000 [r59194] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Only try to handle a response if it has a
- response code. (ASA-2007-011)
-
-2007-03-23 16:07 +0000 [r59186-59187] Steve Murphy <murf@digium.com>
-
- * apps/app_macro.c: Ugh. that was dumb. Fixed an error.
-
- * apps/app_macro.c: Added a few words in the Macro doc strings
- about the behavior of macros with hangups (et al.), as per 9337
-
-2007-03-21 18:03 +0000 [r59086] Joshua Colp <jcolp@digium.com>
-
- * res/res_monitor.c: Indicate the filename changed when it is
- changed. (issue #9311 reported by jsmith)
-
-2007-03-20 09:23 +0000 [r59062-59063] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: modified a loglevel
-
- * channels/chan_misdn.c: avoid sending a disconnect when we already
- received one.
-
-2007-03-19 Jason Parker <jparker@digium.com>
-
- * Asterisk 1.2.17 released
-
-2007-03-14 16:38 +0000 [r58896] Russell Bryant <russell@digium.com>
-
- * SECURITY: Add a note to the security file that the Asterisk CLI
- and log files may contain sensitive information, and that people
- should keep this in mind.
-
-2007-03-13 12:58 +0000 [r58849-58850] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed the crypt_keys stuff
-
- * channels/misdn_config.c, channels/misdn/isdn_lib.h,
- channels/chan_misdn.c, channels/misdn/chan_misdn_config.h,
- channels/misdn/isdn_lib.c: added method standard_dec for dialing
- out on groups, to avoid conflicts, which caused issues with some
- ISDN providers
-
-2007-03-13 11:45 +0000 [r58847] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #9229 - No port in request URI on
- register to non default SIP ports (neelakantan)
-
-2007-03-12 16:49 +0000 [r58832] Joshua Colp <jcolp@digium.com>
-
- * include/asterisk/lock.h: We can't use the assembler version of
- fetchadd_int under Intel Macs. (issue #9254 reported by darrell
- budic)
-
-2007-03-09 20:46 +0000 [r58579] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: If we are unable to lookup the host in a c
- line we have to abort, otherwise the previous data is gone and we
- will (potentially) have no data when all is said and done.
-
-2007-03-09 14:43 +0000 [r58558] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: we can free channel 31 as well, since
- we can occupy it
-
-2007-03-08 16:04 +0000 [r58388] Joshua Colp <jcolp@digium.com>
-
- * dsp.c: Only print out debug message if the definition that makes
- the variables shows up was actually defined. (issue #9233
- reported by serginuez)
-
-2007-03-07 18:17 +0000 [r58164-58242] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Fix a problem where the Asterisk channel
- name could be that of the wrong IAX2 user for a call. This is
- because the first step of choosing this name is to look for an
- IAX2 peer that happens to have the same IP/port number that this
- call is coming from and assuming that is it. However, this is not
- always correct. So, I have made it change this name after
- authentication happens since at that point, we have an exact
- match.
-
- * manager.c: Fix a misplaced block of code in the 1.2 version of
- the patch to fix issue #8977
-
- * manager.c: If the channels acquired using the manager Redirect
- action are not up, then don't attempt to do anything with them.
- It could lead to weird behavior, including crashes. (issue #8977)
-
-2007-03-06 22:52 +0000 [r58115] Steve Murphy <murf@digium.com>
-
- * channels/chan_sip.c: Fix for 9220: Eyebeam cannot renew
- subscriptions for presence info. Reason: re-SUBSCRIBE requests
- don't include Accept headers, which the rfc says are optional (to
- put it tersely), (it uses MAY), and luckily, the sip_pvt struct
- has the format info stored, so we simply leave it if the format
- is set, and the accept header null.
-
-2007-03-06 20:33 +0000 [r58052] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Change error message to proper message
-
-2007-03-06 15:17 +0000 [r58008] BJ Weschke <bweschke@btwtech.com>
-
- * channels/h323/Makefile: Cleanup the Makefile so that we only
- attempt to include a file when we're building and not 'clean'ing
- so 'make clean' completes successfully. chan_h323 maintainer:
- please check to make sure I haven't broken your build target.
- From: jsmith in #asterisk-dev
-
-2007-03-05 23:18 +0000 [r57962] Christian Richter <christian.richter@beronet.com>
-
- * channels/Makefile: subdirs like misdn and h323 should be cleaned
- by the clean target from channels/Makefile as well
-
-2007-03-05 17:49 +0000 [r57869] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Make create_dirpath use our standard for
- return values. -1 is failure, 0 is success. (issue #9205 reported
- by ballares)
-
-2007-03-05 14:53 +0000 [r57825] Steve Murphy <murf@digium.com>
-
- * pbx.c: Fixed a typo introduced via 9156
-
-2007-03-04 10:39 +0000 [r57753] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: fixed another
- place where the out_cause was hardcoded to 16
-
-2007-03-03 06:36 +0000 [r57648] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Memory leak of a list, if call recording
- was abandoned
-
-2007-03-02 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.16 released
-
-2007-03-02 18:32 +0000 [r57523] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: fixed typo
-
-2007-03-02 17:02 +0000 [r57475] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: If a SIP message comes in and goes to a
- method handler that requires additional values that may not be
- present then send back an error.
-
-2007-03-02 16:39 +0000 [r57458] Steve Murphy <murf@digium.com>
-
- * pbx.c: further refinement in wording of goto documentation, as
- per 9156, goto not proceeding to next instruction
-
-2007-03-01 22:19 +0000 [r57317] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_local.c: Don't even attempt to optimize things when
- a proxy channel is involved. It will just explode in weird and
- unexplaineable ways. (issue #9175 reported by
- clegall_proformatique)
-
-2007-02-28 19:12 +0000 [r57118] Steve Murphy <murf@digium.com>
-
- * pbx.c: a small documentation update, to reflect reality in the
- goto doc strings, as per 9156, Goto does not proceed to next prio
- if jump fails
-
-2007-02-28 18:55 +0000 [r57092] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_agent.c: Fix a few more issues with the agent
- logoff CLI command. (issue #9123 reported by arbrandes)
-
-2007-02-28 16:09 +0000 [r57034] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: fixed
- bugs.digium.com bugs: #9157 and bugs.beronet.com bugs: #302,
- #303, #304
-
-2007-02-26 20:05 +0000 [r56850] Joshua Colp <jcolp@digium.com>
-
- * pbx/pbx_config.c: Obey the clearglobalvars option in extensions
- reload (or dialplan reload depending on your version). (issue
- #9146 reported by ramonpeek)
-
-2007-02-26 00:34 +0000 [r56729] Russell Bryant <russell@digium.com>
-
- * utils.c: Ensure that lock.h is included in utils.c with
- AST_API_MODULE defined so that the implementations will be
- properly included when the AST_INLINE_API functions are not going
- to be inlined. (issue #9124, festr)
-
-2007-02-25 14:38 +0000 [r56684] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channel.c: Issue 9130 - If prev is the last item on the channel
- list, then evaluating additional conditions (e.g. name prefix)
- will cause a NULL dereference.
-
-2007-02-23 23:20 +0000 [r56406-56504] Russell Bryant <russell@digium.com>
-
- * asterisk.c: Fix up a couple more signal handlers to not do bad
- things that could cause various undesirable results. The other
- day, I made Asterisk deadlock by hitting Control-C because of a
- bad signal handler. Now, signal handlers just set a flag and
- write to an alert pipe for the flag to be handled. Then, there is
- another thread that is monitoring for these flags. If being run
- in console mode, it is just the main thread. If Asterisk is in
- the background, a thread is created to do it.
-
- * channels/chan_iax2.c: Don't destroy mutexes before unregistering
- all of the entry points from the core. Also, fix a potential
- memory leak from not destroying the locks for all of the possible
- call numbers (about 32k of them).
-
-2007-02-22 23:19 +0000 [r56230-56279] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_agent.c: Always defer Agent logoff if any channels
- are up until they hang up. (issue #9123 reported by arbrandes)
-
- * channels/chan_sip.c, channel.c: Only change the original or clone
- channel if it's the channel behind the proxy channel, not if it's
- just a regular bridged channel.
-
-2007-02-22 00:53 +0000 [r56010] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: If we receive a frame that is not in any of
- the negotiated formats, then drop it. (potentially issue #8781
- and SPD-12)
-
-2007-02-21 20:32 +0000 [r55956] Joshua Colp <jcolp@digium.com>
-
- * apps/app_meetme.c: Change naughty warning message to provide
- useful information. If a write now fails on a channel in meetme
- it will tell you the channel name instead of spitting out the
- wrong error message.
-
-2007-02-21 14:03 +0000 [r55868] Kevin P. Fleming <kpfleming@digium.com>
-
- * build_tools/make_svn_branch_name: use new tag version script
-
-2007-02-21 00:19 +0000 [r55750] Russell Bryant <russell@digium.com>
-
- * apps/app_meetme.c, utils.c, include/asterisk/lock.h: Fix random
- crashes when using the MeetMe application. This patch converts
- list handling to use the linked list macros and most importantly,
- implements reference counting on the ast_conference objects. The
- reference counting was first backported from 1.4. However, that
- code has some problems that caused the reference count to never
- hit zero. Those problems are fixed in this patch and will be
- resolved in 1.4 and trunk next, with a different patch. (issues
- #7647, #9073, #9106, BE-115).
-
-2007-02-20 22:39 +0000 [r55669] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_agent.c: Defer clearing callback information if
- channels are up until they are hung up. This ensures the hangup
- process goes smoothly and no channels get hung in limbo. (issue
- #8088 reported by kebl0155)
-
-2007-02-20 19:49 +0000 [r55588] Russell Bryant <russell@digium.com>
-
- * apps/app_page.c: Convert a tab to spaces so that the
- documentation is printed out properly aligned.
-
-2007-02-19 18:09 +0000 [r55434] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: forcename and forcegreetings options should
- check to see if the recording already exists
-
-2007-02-18 12:32 +0000 [r55249-55277] Olle Johansson <oej@edvina.net>
-
- * apps/app_record.c: Documentation update (#9053, jsmith)
-
- * channels/chan_sip.c: Issue #9020 - SIP message retransmission
- time too short. Backporting fix implemented in 1.4, where we have
- a minimum level for the T1 timer.
-
-2007-02-17 03:53 +0000 [r55073-55153] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Answer the channel before recording privacy
- information. (issue #8926 reported by lmamane)
-
- * channels/chan_sip.c: Allow chan_sip to handle attended transfers
- from a SIP phone that is sitting behind chan_agent. Yes folks,
- all it took was one line of code. (issue #8784 reported by
- pzieba)
-
-2007-02-16 22:48 +0000 [r55005] Russell Bryant <russell@digium.com>
-
- * apps/app_meetme.c, configs/meetme.conf.sample: Revert the change
- I did in revisions 54955, 54969, and 54970, in 1.2, 1.4, and
- trunk. I decided that once a conference is created from
- meetme.conf, it is acceptable behavior that the pin can not be
- changed until the conference goes away. I also added a note in
- meetme.conf to describe this behavior. We still have another
- issue in 1.4 and trunk where some conferences with no users don't
- go away. That is the real bug that needs to be addressed here.
-
-2007-02-16 22:13 +0000 [r54999] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_agent.c: Do not send indications through
- ast_indicate in chan_agent but instead go directly to the
- technology. This way when indications are emulated they happen on
- the Agent channel and do not screw up formats on the channels.
- (issue #8439 reported by punkgode)
-
-2007-02-16 20:56 +0000 [r54955] Russell Bryant <russell@digium.com>
-
- * apps/app_meetme.c: For conferences that are configured in
- meetme.conf, check the configuration file every time someone
- joins the conference instead of only when the conference is first
- created. This is to ensure that changes to the pin numbers in the
- config file are always honored. (issue #9073)
-
-2007-02-16 11:38 +0000 [r54771] Olle Johansson <oej@edvina.net>
-
- * res/res_agi.c: Issue #9069 - If we open with TH we should not
- close with /TD. (seanbright)
-
-2007-02-15 16:14 +0000 [r54622] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Use a separate variable to indicate execution
- should continue instead of the return value. (issue #8842
- reported by pluto70)
-
-2007-02-14 18:40 +0000 [r54438] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c:
-
-2007-02-14 16:25 +0000 [r54373] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: When handling glare on a PRI, move the
- requested channel rather than hang up the old one. Fix for 8957
- and 9011.
-
-2007-02-13 18:35 +0000 [r54179] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Make sure that outbound calls are applied to
- the peer. This fixes some issues with "hints not working", but
- only in 1.2.
-
-2007-02-08 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.15 released
-
-2007-02-08 22:17 +0000 [r53658] Kevin P. Fleming <kpfleming@digium.com>
-
- * codecs/codec_zap.c: ensure channelcount is cleared before we
- enumerate transcoders, so 'reload' doesn't double the channel
- count
-
-2007-02-08 13:36 +0000 [r53529] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Issue 9003 - If fullname is empty, quote()
- passes back "\""
-
-2007-02-07 15:38 +0000 [r53357] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Fix a few potential memory leaks with
- realtime users and peers. (issue #8999 reported by bsmithurst)
-
-2007-02-07 15:30 +0000 [r53354] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_macro.c: Issue 7440 - Macro called from Macro from the h
- extension exits prematurely
-
-2007-02-06 06:58 +0000 [r53245] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * manager.c: Issue 8987 - Status could return two responses
- (mnicholson)
-
-2007-02-06 00:08 +0000 [r53224] Jason Parker <jparker@digium.com>
-
- * configs/dnsmgr.conf.sample: Add a proper newline at the end of
- this sample config file.
-
-2007-02-03 20:39 +0000 [r53133-53134] Russell Bryant <russell@digium.com>
-
- * apps/app_meetme.c, utils.c, include/asterisk/lock.h: Revert some
- changes that accidentally got committed as a part of another fix.
-
- * apps/app_dial.c, apps/app_meetme.c, utils.c,
- include/asterisk/lock.h: set the DIALSTATUS variable to contain
- "INVALIDARGS" when the dial application exits early because of
- invalid arguments instead of just leaving it empty. (issue #8975)
-
-2007-02-02 16:58 +0000 [r53117] Joshua Colp <jcolp@digium.com>
-
- * config.c: Pass the glob expanded filename to process_text_line so
- that error messages contain the actual filename, not the original
- include one. (issue #8959 reported by tzafrir)
-
-2007-02-01 23:14 +0000 [r53107] Jason Parker <jparker@digium.com>
-
- * apps/app_chanspy.c: Fix a small typo. Synopsis lines shouldn't
- have a newline
-
-2007-02-01 22:21 +0000 [r53095-53103] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Copy noncodeccapability over to the joint
- variable so that telephone-event will get transmitted in the sent
- INVITE.
-
- * channels/chan_sip.c: Don't negotiate RFC2833 when not configured
- to do so. (issue #8799 reported by mdu113)
-
-2007-02-01 21:12 +0000 [r53090] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: - Make sure we release call from call
- counter before we destroy call (maybe #7744 and more) -
- Backported by accident from 1.4
-
-2007-02-01 21:03 +0000 [r53084] Joshua Colp <jcolp@digium.com>
-
- * res/res_musiconhold.c: Return previous behavior of having MOH
- pick up where it was left off. (issue #8672 reported by
- sinistermidget)
-
-2007-02-01 20:07 +0000 [r53069-53074] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_strings.c: Bug 8965
-
- * funcs/func_strings.c, pbx.c: No wonder FIELDQTY doesn't work with
- functions... the documentation in pbx.c was wrong
-
-2007-01-31 21:25 +0000 [r53045] Russell Bryant <russell@digium.com>
-
- * channels/chan_mgcp.c, manager.c, channels/chan_zap.c,
- pbx/pbx_spool.c, apps/app_meetme.c, apps/app_page.c,
- channels/chan_sip.c, channels/chan_skinny.c,
- channels/chan_h323.c, pbx/pbx_dundi.c, apps/app_queue.c,
- channels/chan_iax2.c, apps/app_rpt.c, cdr.c, pbx.c: Fix a bunch
- of places where pthread_attr_init() was called, but
- pthread_attr_destroy() was not.
-
-2007-01-31 18:58 +0000 [r53044] Kevin P. Fleming <kpfleming@digium.com>
-
- * codecs/codec_zap.c: update to match modified transcoder API
-
-2007-01-31 17:41 +0000 [r53039] Russell Bryant <russell@digium.com>
-
- * rtp.c: Use the proper format string to print unsigned values in
- the rtp debug output. (issue #8954, wmis)
-
-2007-01-31 17:28 +0000 [r53034] Kevin P. Fleming <kpfleming@digium.com>
-
- * codecs/Makefile: allow codec_zap to build again, now that
- transcoder support is in zaptel 1.2
-
-2007-01-30 19:41 +0000 [r52857-52954] Russell Bryant <russell@digium.com>
-
- * channel.c: Don't print a message indicating that we don't know
- what to do with a proceeding control frame in
- ast_request_and_dial(). We just need to ignore it. (reported by
- JerJer on #asterisk-dev)
-
- * asterisk.c: The SIGHUP handler was implemented to allow admins to
- send SIGHUP to a running Asterisk process to reload the
- configuration. However, doing the actual reload in the signal
- handler itself is a very bad thing to do, because the reload
- process includes calling non-reentrant functions such as
- malloc/calloc/etc. If Asterisk is running in the background, then
- the reload will happen immediately. However, if running in
- console mode, the reload doesn't work until something is typed at
- the console. That sort of defeats the purpose, but I don't see an
- easy way to get around it at this point.
-
- * codecs/Makefile: Comment out the parts in the Makefile that make
- codec_zap get built. It will not yet build against zaptel 1.2, so
- I am disabling it to prevent further bug reports until it gets
- merged. (issue #8940)
-
-2007-01-30 14:38 +0000 [r52843] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: fixed some
- possible segfaults. also fixed an very important bug which occurs
- on high load (when calls are very fast generated)
-
-2007-01-30 00:15 +0000 [r52762] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Fix the extraction of the timestamp from
- video frames. It was using the mapping for a mini-frame instead
- of a video-frame, which caused it to get invalid data. (issue
- #8795, mihai)
-
-2007-01-29 23:39 +0000 [r52716] Joshua Colp <jcolp@digium.com>
-
- * apps/app_mixmonitor.c: Now that filename is part of the structure
- and since it comes before postprocess... we have to add it to our
- postprocess line. (reported on asterisk-dev by Boris Bakchiev)
-
-2007-01-29 16:48 +0000 [r52503] Jason Parker <jparker@digium.com>
-
- * codecs/codec_zap.c: Use the correct zaptel header file location.
- Currently, this will not build - transcoder support will be added
- to zaptel later today.
-
-2007-01-27 02:09 +0000 [r52360-52415] Joshua Colp <jcolp@digium.com>
-
- * apps/app_queue.c: Make COMPLETECALLER and COMPLETEAGENT output to
- queue_log follow documentation. (issue #7677 reported by amilcar)
-
- * channels/chan_iax2.c: Make the last context entry read in the
- dominant one. (issue #8918 reported by pj)
-
-2007-01-25 19:15 +0000 [r52162-52264] Joshua Colp <jcolp@digium.com>
-
- * jitterbuf.c: Allow dequeueing of frames with negative timestamp
- by moving jitterbuffer frames check to jb_next. (issue #8546
- reported by harmen)
-
- * apps/app_mixmonitor.c: Add another note about audio files being
- played back to each bridged party. (issue #8718 reported by ppyy)
-
-2007-01-25 00:39 +0000 [r52137] Russell Bryant <russell@digium.com>
-
- * apps/app_groupcount.c: Fix a seg fault when running this
- application with no arguments from AGI. (issue #8905, junky)
-
-2007-01-24 17:43 +0000 [r52002] Steve Murphy <murf@digium.com>
-
- * utils/check_expr.c, utils/Makefile: updated check_expr via 8322
- (refactoring of expression checking impl); elfring contributed a
- nice code reorg, I contributed some time to get it working again,
- better messages
-
-2007-01-24 10:48 +0000 [r51966] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed the busy problem (dialstatus was not
- busy when we called a busy extension)
-
-2007-01-24 00:57 +0000 [r51828-51843] Russell Bryant <russell@digium.com>
-
- * channel.c: Fix an issue related to synchronization of recordings
- when using Monitor(). The bug is a miscalculation of the amount
- to seek the stream for writing to disk when the number of samples
- coming in and out of a channel do not match up. (issue #8298,
- #8887, report and patch by guillecabeza, patch files created and
- testing done by whoiswes)
-
- * apps/app_while.c: Don't set a new value for the END_ variable on
- the channel before using the old value. If you do, it will lead
- to accessing a memory address that has been free()'d. (issue
- #8895, arkadia)
-
-2007-01-23 01:41 +0000 [r51512] Joshua Colp <jcolp@digium.com>
-
- * res/res_musiconhold.c: Yield before reading from zaptel timing
- source under Solaris so that other threads get a chance to do
- things. (issue #7875 reported by bob)
-
-2007-01-22 19:39 +0000 [r51410] Russell Bryant <russell@digium.com>
-
- * codecs/Makefile, codecs/codec_zap.c (added): Merge codec_zap
- support for the transcoder card. This is a standalone codec
- module so it will not affect anything else.
-
-2007-01-22 19:08 +0000 [r51359-51406] Joshua Colp <jcolp@digium.com>
-
- * apps/app_mixmonitor.c: Move filestream creation to Mixmonitor
- loop. This will prevent a blank file from being created if no
- frames ever pass through to be recorded. (issue #7589 reported by
- steve_mcneil)
-
- * channels/chan_h323.c: Explicitly declare what codecs are
- supported by default globally since using a bitmask for all may
- include ones we don't need. (issue #8357 reported by
- gknispel_proformatique)
-
-2007-01-19 16:44 +0000 [r51300] Russell Bryant <russell@digium.com>
-
- * asterisk.c: Fix a memory leak on command line tab completion. The
- container for the matches was freed, but the individual matches
- themselves were not. (issue #8851, arkadia)
-
-2007-01-18 23:47 +0000 [r51271] Dwayne M. Hubbard <dhubbard@digium.com>
-
- * channels/chan_zap.c: issue 7877: chan_zap module reload does not
- use default/initialized values on subsequent loads. Reset
- configuration variables to default values prior to parsing
- configuration file.
-
-2007-01-18 23:35 +0000 [r51269] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_zap.c: support echo cancellers that can handle 64ms
- or 128ms of echo cancellation
-
-2007-01-18 21:11 +0000 [r51235-51255] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * stdtime/localtime.c: If a timezone is not specified, assume
- localtime (instead of gmtime) (Issue #7748)
-
- * contrib/scripts/vmdb.sql: Document all the fields, including the
- indication that "uniqueid" should not be renamed.
-
-2007-01-17 21:17 +0000 [r51197] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: Move the check for a failure of
- ast_channel_alloc() to before locking the pvt structure again.
- Otherwise, on a failure, this will cause a deadlock.
-
-2007-01-17 20:52 +0000 [r51158-51194] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * utils.c: When ast_strip_quoted was called with a zero-length
- string, it would treat a NULL as if it were the quoting character
- (and would thus return the string in memory immediately following
- the passed-in string).
-
- * doc/voicemail_odbc_postgresql.txt (added): Add documentation
- walkthrough on getting Postgres to work with voicemail (from
- Issue 8513)
-
- * apps/app_voicemail.c: Postgres driver doesn't like a NULL pointer
- when retrieving the length (Bug 8513)
-
-2007-01-16 17:36 +0000 [r51085-51145] Joshua Colp <jcolp@digium.com>
-
- * res/res_features.c: Return previous behavior. ParkedCalls will be
- able to do DTMF based transfers again. trunk however will get an
- option to allow this to be set on/off. (issue #8804 reported by
- nortex)
-
- * channels/chan_zap.c: Add none as a valid callgroup/pickupgroup
- option. I consider it a bug that it would inherit it all the way
- down and not have any way to reset it to nothing - so that's why
- it is in 1.2. (issue #8296 reported by gkloepfer)
-
-2007-01-15 23:09 +0000 [r50987] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_groupcount.c: Check return value before dereferencing
- (Bug 8822)
-
-2007-01-15 20:44 +0000 [r50946] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_voicemail.c: Solves issue with forwarding voicemails
- from folders other than inbox. patch by anthonyl.
-
-2007-01-14 05:01 +0000 [r50781] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * db1-ast/recno/rec_utils.c, db1-ast/hash/hash_bigkey.c,
- db1-ast/hash/hsearch.c, db1-ast/recno/rec_open.c,
- db1-ast/recno/rec_delete.c, db1-ast/btree/bt_page.c,
- db1-ast/hash/hash_buf.c, db1-ast/hash/hash_page.c,
- db1-ast/recno/rec_close.c, db1-ast/recno/rec_search.c,
- db1-ast/btree/bt_get.c, db1-ast/hash/hash.c,
- db1-ast/recno/rec_put.c, db1-ast/include/ndbm.h, db1-ast/db/db.c,
- db1-ast/btree/bt_debug.c, db1-ast/mpool/mpool.c,
- db1-ast/btree/bt_seq.c, db1-ast/recno/rec_get.c,
- db1-ast/btree/bt_split.c, db1-ast/hash/hash_func.c,
- db1-ast/btree/bt_utils.c, db1-ast/btree/bt_open.c,
- db1-ast/recno/rec_seq.c, db1-ast/btree/bt_delete.c,
- db1-ast/btree/bt_overflow.c, db1-ast/hash/hash_log2.c,
- db1-ast/btree/bt_search.c, db1-ast/btree/bt_conv.c,
- db1-ast/btree/bt_close.c, db1-ast/btree/bt_put.c: Bug 8814 - db
- should look for its header using a relative path, instead of the
- system path (Fixes FreeWRT)
-
-2007-01-12 14:34 +0000 [r50561] Kevin P. Fleming <kpfleming@digium.com>
-
- * pbx.c: minor documentation clarification
-
-2007-01-11 18:11 +0000 [r50517] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #8793 bad response for Unsupported
- Extension (different fix).
-
-2007-01-11 14:45 +0000 [r50495-50506] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: when we get L2 UP, the L1 is UP
- definitely too, so we set the L1 state up as well.
-
- * channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c,
- channels/misdn/isdn_lib.c: * more additions to make the RESTART
- message work * added fix for misdn_call to allow SETUPs with
- empty extensions, replaced the strtok_r functions with strsep for
- that (inspired by Sandro Cappellazzo, thanks)
-
-2007-01-10 09:51 +0000 [r50335] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/fac.c, channels/misdn/ie.c,
- channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c: more
- fixes regarding warnings for gcc-4 and first additions for the
- restart Information element, in the first step we initiate a
- restart with a CLI command
-
-2007-01-10 04:51 +0000 [r50295] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Add another return value to dial_exec_full that
- indicates execution is going to continuing at a new
- extension/context/priority and to just let it slide. (issue #8598
- reported by jon)
-
-2007-01-10 02:16 +0000 [r50227] Russell Bryant <russell@digium.com>
-
- * Makefile: Make the number that represents the major version
- number a single digit instead of 2. Using two digits makes it an
- octal number when put into version.h, which breaks the
- compilation of any out of tree module that checks the version for
- any version after 1.2.7 (reported by Matteo Brancaleoni on the
- asterisk-dev mailing list, who gave credit to vihai for pointing
- it out)
-
-2007-01-09 13:30 +0000 [r50150] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: The advent of realtime has enabled people
- to use commas in the fullname field. This could cause an issue
- with sending voicemails, when the field is unquoted. (Issue 8595)
-
-2007-01-08 08:37 +0000 [r49922] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/misdn/ie.c,
- channels/misdn/isdn_lib.c: make gcc 4 happy, remove some warnings
-
-2007-01-08 05:10 +0000 [r49889] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Ensure we use the default refresh value of
- 60 if the remote server does not send one. (issue #8746 reported
- by maethor)
-
-2007-01-07 21:43 +0000 [r49833] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_dictate.c: If openstream fails, then we crash (Issue
- 8564)
-
-2007-01-05 16:56 +0000 [r49635] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c, channels/chan_skinny.c,
- channels/chan_iax2.c: ensure that threads which are supposed to
- be detached (because we aren't going to wait on them) are created
- properly
-
-2007-01-04 17:45 +0000 [r49354-49447] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_voicemail.c: converted a lot of 256 to PATH_MAX and some
- white space fixes.
-
- * apps/app_voicemail.c: good catch russell sorry i missed that. fix
- magic number with proper sizeof
-
- * apps/app_voicemail.c: When using ODBC_STORAGE VoicemailMain
- doesn't create the subdirectories for a mailbox such as the INBOX
- directory. this patch solves that problem, was written by anthony
- be-125
-
-2007-01-03 08:24 +0000 [r49135-49303] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: * Added check
- for bridging in misdn_call to avoid setting echocancellation when
- 2 mISDN channels are involved and when bridging is set. That lead
- to a kernel panic before under different situations, because we
- switched about 2 times between hardware bridging and
- echocancelation * readded MISDN_URATE variable which got lost
- before, this should make app_v110 work again * fixed typo
-
- * channels/misdn_config.c, channels/misdn/isdn_lib.h,
- channels/chan_misdn.c, configs/misdn.conf.sample,
- channels/misdn/isdn_lib.c: added check for channel ranges in the
- set/empty channel functions. set pmp_l1_check default to no.
- added misdn restart pid cli command. added cleaning of channel
- when we send a RELEASE_COMPLETE.
-
-2006-12-29 00:32 +0000 [r49045] Kevin P. Fleming <kpfleming@digium.com>
-
- * BUGS: location of the bug posting guidelines has changed
-
-2006-12-27 15:43 +0000 [r48974] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 8596: Set CAN_BYE flag for 100 trying
- too
-
-2006-12-25 05:19 +0000 [r48939-48955] Russell Bryant <russell@digium.com>
-
- * funcs/func_math.c: Fix an error introduced by copying and pasting
- the handling of the >= operator for the MATH function. If a
- single equal sign was used as an operator, the function would
- treat it is as if it were the >= operator. Now, it properly
- handles it as an invalid operator. (issue #8665, patch by
- tempest1)
-
- * channels/chan_iax2.c: Check for the proper return value on an
- error in a call to mmap(). This was reported by Andy Wang on the
- asterisk-dev list. Thanks!
-
- * channels/chan_sip.c: Remove a couple of misplaced dots in log
- messages. This was reported by Andrea Spadaccini on the
- asterisk-dev mailing list.
-
-2006-12-21 20:25 +0000 [r48782] Joshua Colp <jcolp@digium.com>
-
- * redhat/asterisk.spec: Add new silence sound files to the spec for
- Redhat. (issue #8652 reported by alvaro_palma_aste)
-
-2006-12-19 21:10 +0000 [r48584] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Free localuser structure when we fail to dial
- (issue #8612 reported by rizzo)
-
-2006-12-19 13:08 +0000 [r48576] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.c: when we reject a channel, because it's
- in use already, we shouldn't process the setup anymore. made the
- channel allocation a bit easier and more understandable, removed
- a few unused lines
-
-2006-12-18 10:19 +0000 [r48552] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: when our PTP
- Partner sends us a SETUP with a preselected channel we just
- accept it, even when we're NT. added some checks for segfaults.
-
-2006-12-15 10:51 +0000 [r48484] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #8592 - handle 504 as 503 - congestion
-
-2006-12-14 13:03 +0000 [r48467] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: removed FIXUP
- state. added check for channel allocation conflict when we create
- a setup while the other site creates a setup on the same channel,
- besides the check we resolve this conflict.
-
-2006-12-14 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.14 released
-
-2006-12-13 04:23 +0000 [r48434] Steve Murphy <murf@digium.com>
-
- * channel.c: This small patch fixes bug 8541, where the L option to
- the Dial app wasn't working right. A similar bug (8386) was filed
- and fixed earlier, but an intervening bug fix to a DTMF problem
- broke the L() code in a different way. Hopefully, everything is
- happy now.
-
-2006-12-12 05:11 +0000 [r48403] Kevin P. Fleming <kpfleming@digium.com>
-
- * sounds/silence (added), sounds/silence/1.gsm (added),
- sounds/silence/10.gsm (added), sounds/silence/2.gsm (added),
- sounds/silence/3.gsm (added), sounds/silence/4.gsm (added),
- sounds/silence/5.gsm (added), sounds/silence/6.gsm (added),
- sounds/silence/7.gsm (added), sounds/silence/8.gsm (added),
- sounds/silence/9.gsm (added): add silence files
-
-2006-12-11 23:00 +0000 [r48394-48398] Matt O'Gorman <mogorman@digium.com>
-
- * Makefile, apps/app_externalivr.c, sounds.txt: app_externalivr
- needs a real silence file, and additional changes to add silence
- files into core instead of extra patch provided by bug 8177 with
- minor additions.
-
-2006-12-11 00:33 +0000 [r48374] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_nbscat.c, apps/app_festival.c, apps/app_mp3.c,
- res/res_agi.c, apps/app_zapras.c, apps/app_externalivr.c,
- apps/app_ices.c, res/res_musiconhold.c: When doing a fork() and
- exec(), two problems existed (Issue 8086): 1) Ignored signals
- stayed ignored after the exec(). 2) Signals could possibly fire
- between the fork() and exec(), causing Asterisk signal handlers
- within the child to execute, which caused nasty race conditions.
-
-2006-12-10 02:14 +0000 [r48371] Steve Murphy <murf@digium.com>
-
- * channels/chan_zap.c: This version applies the patch suggested by
- stevens in bug 7836 (make inbound channel RINGING state
- consistent with other channels).
-
-2006-12-09 15:45 +0000 [r48361] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Use locking when accessing the
- registrations list. This list is not actually used very often, so
- the likelihood of there being a problem is pretty small, but
- still possible. For example, if the CLI command to list the
- registrations was called at the same time that a reload was
- occurring and the registrations list was getting destroyed and
- rebuilt, a crash could occur.
-
-2006-12-07 18:14 +0000 [r48356] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: Ensure that the file position is not
- incremented beyond the total number of files available for
- playback. (issue #8539, ulogic)
-
-2006-12-06 16:05 +0000 [r48322] Russell Bryant <russell@digium.com>
-
- * configs/iax.conf.sample: Fix the name of the rtignoreregexpire
- option in the sample configuration file. (issue #8526, arkadia)
-
-2006-12-06 15:48 +0000 [r48321] Christian Richter <christian.richter@beronet.com>
-
- * doc/README.misdn, channels/chan_misdn.c,
- channels/misdn/isdn_msg_parser.c: added the export and import of
- the MISDN_ADDRESS_COMPLETE Variable to inidcate wether the
- extension is already completely dialed or if there might come
- additional digits by information elements. also added some docs
- for that.
-
-2006-12-06 15:42 +0000 [r48320] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #8528 - make sure we don't delete the
- dialog too quickly after receiving a 487. Move 487 handling into
- handle_response_invite where it really belongs and don't add an
- ALREADYGONE flag to the dialog.
-
-2006-12-06 14:35 +0000 [r48319] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: changed a few debugs to higher debug
- levels
-
-2006-12-06 12:14 +0000 [r48272-48315] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't add Contact header on BYE, CANCEL,
- MESSAGE requests (Bye, Cancel backported from 1.4, MESSAGE bug
- reported to me by Gunnar at Omnitor)
-
- * channels/chan_sip.c: Only set the ALREADYGONE flag once in
- handle_response()
-
-2006-12-05 01:26 +0000 [r48251] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: If the recording in the database is too
- large, it will fail to retrieve with an mmap error. Not too sure
- why this doesn't happen when we put it in the database, also, but
- since that doesn't seem to be broken, I'm not going to fix it (at
- least until someone reports it). Solution is to ask for the file
- in smaller chunks. (Bug 8385)
-
-2006-12-04 21:20 +0000 [r48236-48246] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c: Revert change from 8016 - this breaks other
- stuff... Needs further review. Tip: When you've reported a bug
- about something and somebody has put up a patch for it.. It's not
- a good idea to open a completely new bug and say that something
- is broken because of the patch in the other bug - PLEASE mention
- something in the bug where the patch was actually created.
-
- * apps/app_voicemail.c: Fix an issue where a message isn't saved
- correctly when using ODBC storage and reviewing a message. Issue
- 8016 - patch by sokhapkin.
-
-2006-12-04 18:14 +0000 [r48233] Joshua Colp <jcolp@digium.com>
-
- * channel.c: If the generic bridge tells us not to retry, and we
- have a frame to spit out then break the bridge. Props to markit
- in #asterisk-bugs for bringing this up.
-
-2006-12-01 23:30 +0000 [r48192] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_dial.c: if Dial() is going to send music-on-hold to the
- calling party, it has to send PROGRESS first to ensure that the
- reverse audio path has been setup first (BE-106)
-
-2006-12-01 20:19 +0000 [r48183] Jason Parker <jparker@digium.com>
-
- * configs/extensions.conf.sample: Fix a small typo - issue 8848,
- reported by pabelanger
-
-2006-11-30 20:47 +0000 [r48165] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 8319 - noriyuki - nonce-count updated
- *after* use
-
-2006-11-30 20:27 +0000 [r48142-48161] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Don't write AST_FRAME_NULL or AST_FRAME_IAX frames out
- to the channel driver. (issue #8390 reported by hselasky)
-
- * channels/chan_iax2.c: Only print out debug message if bridged
- channel is not NULL. (issue #8412 reported by jubilex)
-
- * res/res_features.c: Do not listen for DTMF on the bridge that
- comes into existence when ParkedCall is executed. This means
- native bridging can now occur for this. (issue #8406 reported by
- kebl0155)
-
- * cdr.c: Print certain CDR messages out at the NOTICE level versus
- WARNING since they can occur when used with the CDR applications
- and are perfectly fine. (issue #8367 reported by dartvader)
-
- * res/res_features.c: Remember the pointer to the allocated block
- of memory so that we can free it and not cause a memory leak.
- (issue #8449 reported by arkadia)
-
- * configs/sip.conf.sample: Document 'port' for SIP peers, came up
- because of the current mailing list thread. (issue #8450 reported
- by blitzrage)
-
-2006-11-30 09:05 +0000 [r48127] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Do proper test and don't leave dialogs
- hanging...
-
-2006-11-29 16:47 +0000 [r48053-48106] Joshua Colp <jcolp@digium.com>
-
- * rtp.c: If the frame was duplicated before writing out then we
- need to free it. (issue #8429 reported by edguy3)
-
- * channels/chan_phone.c: According to the research I have done we
- never needed to include compiler.h in the first place so let's
- not! (issue #8430 reported by edguy3)
-
- * apps/app_voicemail.c: Use the proper function to get the new
- message count instead of always using the filesystem. (issue
- #8421 reported by slimey)
-
-2006-11-27 17:15 +0000 [r48045] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_musiconhold.c: Random MOH wasn't really random (bug 8381)
-
-2006-11-27 15:30 +0000 [r48037] Joshua Colp <jcolp@digium.com>
-
- * pbx/pbx_spool.c: Do not reference the freed outgoing structure in
- the debug message. (issue #8425 reported by arkadia)
-
-2006-11-24 14:33 +0000 [r47987] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Change some logging levels. Not having hints
- is not an ERROR, but still should be reported.
-
-2006-11-23 16:10 +0000 [r47968] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/isdn_lib.c: fixed a litle bug regarding
- HOLD/RETRIEVE. beatufied some logs, changed some loglevels.
- changed the default value of block_on_alarm
-
-2006-11-23 10:54 +0000 [r47958] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Remove unused variable (rizzo)
-
-2006-11-22 02:19 +0000 [r47910] Steve Murphy <murf@digium.com>
-
- * channel.c: This is the fix for bug 8386, wherein the time-limit
- args to dial didn't work correctly
-
-2006-11-20 19:59 +0000 [r47862] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Failing to trap -1 error from mmap causes
- segfault (Issue 8385)
-
-2006-11-20 19:50 +0000 [r47855-47859] Joshua Colp <jcolp@digium.com>
-
- * frame.c: Don't forget to byte swap if we are exiting the smoother
- feed early. (issue #8287 reported by arturs)
-
- * channels/chan_sip.c: Free history items at the end of use of the
- temporary SIP pvt structure. (issue #8383 reported by benh)
-
-2006-11-20 10:17 +0000 [r47842] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Just to be safe, disable all the scheduled
- items after deleting a scheduler entry (rizzo)
-
-2006-11-17 19:02 +0000 [r47802] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: backport proper channel_find_locked behavior from 1.4
- branch (noted by Steve Davies on asterisk-dev list)
-
-2006-11-16 23:16 +0000 [r47780] Jason Parker <jparker@digium.com>
-
- * apps/app_dial.c, apps/app_cut.c, apps/app_directory.c,
- apps/app_db.c: Fix a couple of typos in applications.. Initially
- spotted by mrobinson.
-
-2006-11-16 22:57 +0000 [r47776] Kevin P. Fleming <kpfleming@digium.com>
-
- * doc/README.cdr: update clearly wrong documentation regarding
- cdr_custom
-
-2006-11-16 20:29 +0000 [r47750-47761] Joshua Colp <jcolp@digium.com>
-
- * cdr/Makefile: Look for the header file specifically in all cases,
- not just the existence of the directory. (issue #8358 reported by
- mrness)
-
- * channels/chan_local.c: Because of the way chan_local is written
- we should be extra careful and make sure our callback functions
- have a tech_pvt. (issue #8275 reported by mflorell)
-
-2006-11-16 16:44 +0000 [r47743] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't fixup if we haven't got PVT.
- Suggestion from Martin Vit on -dev mailing list inspired by
- file's commit to chan_local. "This shouldn't happen" ;-)
-
-2006-11-15 22:29 +0000 [r47711] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_local.c: Make sure that the pvt structure exists
- before trying to do fixup on Local channels. (issue #7937
- reported by mada123, fix by alamantia with mods by me)
-
-2006-11-15 21:18 +0000 [r47705] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: CANCEL requests are never authenticated
- (according to RFC 3261)
-
-2006-11-15 20:30 +0000 [r47666-47696] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_voicemail.c: correct argument name typo that caused
- global variable to be used instead of the one for the specified
- voicemail user
-
- * config.c: when re-writing the config file, don't repeat the path
- if it hasn't changed
-
- * config.c: when appending a list of variable to a category, ensure
- the tail pointer points to the last variable in the list
-
- * config.c: clear the category's variable tail pointer as well when
- variables are detached from it
-
- * config.c: ouch... don't use printf, use ast_log/ast_verbose
-
- * apps/app_voicemail.c, include/asterisk/config.h: ensure that
- message duration is included in email notifications for forwarded
- messages (BE-96, fix by me after corydon used his clue-bat on me)
- ensure that duration in the message metadata is updated if
- prepending is done during forwarding (related to BE-96) remove
- prototype for API call that does not exist
-
-2006-11-15 15:17 +0000 [r47648-47655] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Send error message if we fail to allocate
- sip socket, possibly caused by too few file handles (wasn't
- possible before, but with the new way of sending temp messages,
- it is). Found this bug under heavy load testing with SIPP.
-
- * channels/chan_sip.c: Sending 200 OK and not getting ACK is
- considered critical for the call.
-
-2006-11-14 22:15 +0000 [r47631] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Update copyright information in the ADSI
- logo blob.
-
-2006-11-14 11:06 +0000 [r47596] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Avoid collissions between the peerpoke
- system and the retransmits. Issue #8272. In some cases, changed
- timers caused the retransmit system to destroy the dialog before
- peerpoke_expire got a chance.
-
-2006-11-13 21:26 +0000 [r47583] Joshua Colp <jcolp@digium.com>
-
- * cdr/cdr_pgsql.c: Initialize global pointers for connection and
- result to NULL. (issue #8356 reported by james)
-
-2006-11-13 20:18 +0000 [r47580] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_sip.c: Having more than 255 old messages caused
- corruption in the new/old count
-
-2006-11-13 19:04 +0000 [r47571] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't send 487 if we've already sent 200 OK
- on invite at time of receiving a BYE in the same transaction.
- (SIPP testing)
-
-2006-11-13 17:05 +0000 [r47549] Joshua Colp <jcolp@digium.com>
-
- * apps/app_sms.c: When sending an SMS with a user data header
- properly set the UDH flag in the first byte. (issue #8347
- reported by hoffmeis)
-
-2006-11-13 05:45 +0000 [r47522-47525] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_odbc.c: If the execute fails a second time, make sure
- that we don't pass back a stale handle
-
- * channels/chan_zap.c: Don't play dialtone if the seizing the
- channel fails (Bug 7754)
-
-2006-11-12 06:09 +0000 [r47496] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Only do the check to determine whether the
- channel calling this function is an IAX2 channel when getting the
- IP address using the special argument, CURRENTCHANNEL. (issue
- #8341, jcovert)
-
-2006-11-10 20:46 +0000 [r47452-47470] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Clear dialog on loop (backport from 1.4 by
- mistake)
-
- * channels/chan_sip.c: - Don't check for ignore in blocks that
- isn't reached if ignore is on... - return properly after sending
- reply in handle_request_invite
-
- * channels/chan_sip.c: Fix multipart/mixed SDP support (issue 8010,
- alphaque)
-
-2006-11-09 16:48 +0000 [r47379] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_phone.c: Don't include compiler.h on kernels 2.6.18
- and higher as, well, it's apparently going to be removed. This
- should make all you FC6 fans happy as your Asterisk will now
- build without any mods.
-
-2006-11-09 13:09 +0000 [r47359] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/chan_misdn_config.h: Fixed segfault when no
- misdn.conf exists, reported by Igor Neves, thanks.
-
-2006-11-08 07:40 +0000 [r47307-47308] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Remove dialog properly at unload of module
- (rizzo)
-
-2006-11-07 18:22 +0000 [r47274] Steve Murphy <murf@digium.com>
-
- * include/asterisk/channel.h, channel.c: This mod for bug_7506, to
- make the manager code output the proper event
-
-2006-11-07 13:02 +0000 [r47248] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't ever reply to an ACK. (Issue 8265)
-
-2006-11-07 01:22 +0000 [r47238] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: If random order is enabled for files mode
- music on hold, set a random initial position, instead of always
- starting at the first file, and doing the random operation only
- when switching to the next file. (bug reported by John Lange on
- the asterisk-dev mailing list)
-
-2006-11-02 17:47 +0000 [r46964] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: ignore files in a music on hold directory
- that begin with '.' (issue #8249, cboie)
-
-2006-11-02 15:15 +0000 [r46899] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't overwrite flags in the packet
-
-2006-11-02 13:55 +0000 [r46876] Russell Bryant <russell@digium.com>
-
- * callerid.c: Add a missing call to free before returning in an
- error condition (issue #8268, mrness)
-
-2006-11-01 21:20 +0000 [r46838] Matt O'Gorman <mogorman@digium.com>
-
- * logger.c: fix for bug #8083 crash caused by double free on m->msg
-
-2006-11-01 19:52 +0000 [r46803] Steve Murphy <murf@digium.com>
-
- * res/res_config_odbc.c: a fix for bug 8251; the var_val needs to
- accept longer strings or mass confusion and a lot of lost time is
- the result
-
-2006-11-01 18:24 +0000 [r46776] Russell Bryant <russell@digium.com>
-
- * res/res_monitor.c: soxmix and Asterisk expect different file
- extensions for certain formats. This was already handled for the
- wav49 format. However, it was not handled for ulaw and alaw. I
- fixed this in such a way that using the alternate extensions for
- ulaw and alaw will only happen if we know we're calling soxmix,
- and not a custom script defined using the MONITOR_EXEC variable.
- The wav49 processing was left alone so that external scripts will
- see no behavior change. (issue #7550, reported by mnicholson,
- proposed patch by junky, committed fix is a bit different)
-
-2006-10-31 15:46 +0000 [r46662] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_curl.c: Move thread-unsafe initializer to the module
- loading code; add the corresponding function to the module unload
- to fix a memory leak.
-
-2006-10-31 09:49 +0000 [r46585-46610] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c, configs/sip.conf.sample: Another try to fix
- ;rport NAT traversal support (issue #7473)
-
- * channels/chan_sip.c: If peer fails ACL check, fail the REGISTER
- attempt
-
- * channels/chan_sip.c: On the other hand, we already copy the NAT
- flags... Reverting.
-
- * channels/chan_sip.c: Issue 7473 - support ;rport on REGISTER
- requests too.
-
-2006-10-31 06:18 +0000 [r46557-46560] Russell Bryant <russell@digium.com>
-
- * utils.c: When handling the case where the hostname is just an
- IPV4 numeric address, be sure to set the address type. (issue
- #8247, alexr)
-
- * res/res_agi.c: fix some copy/paste bugs in the checking of
- arguments for the "control stream file" AGI command (issue #8255,
- mnicholson)
-
-2006-10-30 16:00 +0000 [r46402-46430] Olle Johansson <oej@edvina.net>
-
- * rtp.c: Bind rtcp to proper IP address
-
- * channels/chan_sip.c: Issue #7869 - Stop sending 302 redirect when
- not getting an answer...
-
- * channels/chan_sip.c: issue #7608: Notifications with wrong
- content-type. Reported by jsiddall.
-
-2006-10-27 17:36 +0000 [r46361] Russell Bryant <russell@digium.com>
-
- * res/res_agi.c, asterisk.c, apps/app_externalivr.c,
- res/res_musiconhold.c: We should always be using _exit() after a
- fork() or vfork() instead of exit(). This is because exit() does
- some extra cleanup which in some implementations of vfork(), for
- example, can actually modify the state of the parent process,
- causing very weird bugs or crashes. (issue #7971, Nick Gavrikov)
-
-2006-10-27 09:24 +0000 [r46350] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c:
- fixed a bug which caused chan_misdn to try to allocate 2 times
- the same channel on high load, which then caused instability of
- mISDN. removed a useless function from isdn_lib.c
-
-2006-10-26 20:06 +0000 [r46344] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7240, by mistake only committed to
- trunk (now 1.4), reported by edgreenberg in Issue #7966. Thanks
- Ed!
-
-2006-10-26 17:47 +0000 [r46332-46337] Jason Parker <jparker@digium.com>
-
- * contrib/scripts/astgenkey.8: oops - somebody forgot to change
- this - long ago, probably.
-
- * channels/chan_skinny.c: Remove a useless ast_mutex_unlock. Issue
- #8186, patch by anthonyl (fix suggested by benh).
-
-2006-10-25 19:28 +0000 [r46213-46258] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Working to resolve #7608 - adding debug
- output
-
- * channels/chan_sip.c: Fix the attack shield for 1.2 too. REFER and
- NOTIFY can create dialogs in the world of Asterisk.
-
-2006-10-25 08:41 +0000 [r46176] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn_config.c, channels/chan_misdn.c,
- channels/misdn/chan_misdn_config.h, configs/misdn.conf.sample:
- added nttimeout option to configure wether we disconnect calls on
- NT timeouts or not during an overlapdial session
-
-2006-10-23 00:25 +0000 [r45927] Joshua Colp <jcolp@digium.com>
-
- * cdr/cdr_odbc.c: Don't leak memory mmmk?
-
-2006-10-21 12:35 +0000 [r45808] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed issue, that if chan_misdn is loaded
- and couldn't be initialized it would cause a segfault after
- 'reload'. Reported by Drew/Matt thx.
-
-2006-10-19 17:16 +0000 [r45691] Joshua Colp <jcolp@digium.com>
-
- * apps/app_externalivr.c: Respect language selection when seeing if
- the file exists (issue #8178 reported by mnicholson)
-
-2006-10-17 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.13 released
-
-2006-10-17 20:37 +0000 [r45380] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Don't create a "real" pvt structure for
- requests that shouldn't be able to create one. Instead use a
- temporary pvt and fill it with enough information so we can send
- a reply.
-
-2006-10-17 17:50 +0000 [r45332] Jason Parker <jparker@digium.com>
-
- * channels/chan_skinny.c: Fix an integer signedness problem.
-
-2006-10-17 17:22 +0000 [r45326] Kevin P. Fleming <kpfleming@digium.com>
-
- * LICENSE: provide licensing language for IAXy firmware file
-
-2006-10-17 15:50 +0000 [r45306] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c, configs/sip.conf.sample: After some
- research, we realized that the default behaviour since a long
- time was doing the right thing, even though the change optimized
- a bit and removed a lot of potential risks. Conclusion: No need
- for a configuration option at all.
-
-2006-10-16 19:59 +0000 [r45260-45265] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c, configs/sip.conf.sample: Use responses
- rather then replies even though they mean the same thing.
-
- * channels/chan_sip.c, configs/sip.conf.sample: Add
- 'ignoreoodreplies' option which will not create a pvt structure
- on a SIP response but instead basically drop it.
-
-2006-10-14 00:16 +0000 [r45134] Steve Murphy <murf@digium.com>
-
- * pbx/pbx_ael.c: Made a small update to solve bug 8128; The
- switch-case fallthru goto to a pattern extension needed to
- resolved the wildcards to an appropriate digit for extension
- matching to work
-
-2006-10-13 22:57 +0000 [r45119] Kevin P. Fleming <kpfleming@digium.com>
-
- * acl.c: don't drop the entire permit/deny list when an attempt is
- made to add an invalid entry (BE-92)
-
-2006-10-13 19:27 +0000 [r45090] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: avoiding warning, fixing potential bug
- (backported from 1.2)
-
-2006-10-13 17:01 +0000 [r45060] Joshua Colp <jcolp@digium.com>
-
- * apps/app_chanspy.c: Turn on volume adjustment if it needs to be
- on (issue #8136 reported by mnicholson)
-
-2006-10-13 16:18 +0000 [r45048] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: when sending a call to a peer, use the
- proper socket if we have multiple bindings (reported on
- asterisk-dev)
-
-2006-10-13 15:49 +0000 [r45030] Joshua Colp <jcolp@digium.com>
-
- * dnsmgr.c: Pass the right value to usleep for sleeping, and always
- add the background refresh item back into the scheduler if
- enabled since it is deleted during reload. (issue #8142 reported
- by p_lindheimer)
-
-2006-10-13 13:11 +0000 [r44993-45020] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: fixed some
- echocandisable issues when bridged. this caused a kernel panic
- sometimes..also some minor formatting fixes
-
- * channels/misdn/isdn_msg_parser.c: fixed issue, that the
- hangupcause got a wrong isdn cause at RELEASE_COMPLETE
-
-2006-10-12 18:31 +0000 [r44955] Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/utils.h, channels/chan_sip.c, utils.c,
- netsock.c: ensure that IAX2 and SIP sockets allow UDP
- fragmentation when running on Linux (thanks to Brian Candler on
- the asterisk-dev list for the tip)
-
-2006-10-10 13:34 +0000 [r44785] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c, channels/misdn/isdn_lib.c: (re)added
- support of dynamical enabling hdlc on bchannels
-
-2006-10-09 14:36 +0000 [r44757] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #8101 - wrong parameter for screening
- in remote-party-id
-
-2006-10-06 16:52 +0000 [r44501-44580] Joshua Colp <jcolp@digium.com>
-
- * file.c: Even more frames to treat as though the remote side
- disappeared (issue #8097 reported by eldadran)
-
- * file.c: Treat busy control frames as hangup in the file streaming
- core (issue #8097 reported by eldadran)
-
-2006-10-05 10:02 +0000 [r44460] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed segfault which happens during
- hold/transfer action
-
-2006-10-05 01:27 +0000 [r44392-44432] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: fix Polycom presence notification again
-
- * channels/chan_sip.c: remove workaround for old Polycom firmware
- SUBSCRIBE requests add workaround for new Polycom firmware
- SUBSCRIBE requests (bug is known to exist in 2.0.1 firmware)
-
-2006-10-04 16:02 +0000 [r44343] Steve Murphy <murf@digium.com>
-
- * apps/app_macro.c: For bug 7776, I have inserted a warning about
- Macro nesting vs. stack limitations
-
-2006-10-04 15:26 +0000 [r44334-44335] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: if INFORMATION Message come with keypad
- instead of called party number, we just use the keypad as called
- party number.
-
- * channels/misdn_config.c, channels/misdn/isdn_lib.h,
- channels/chan_misdn.c, channels/misdn/chan_misdn_config.h,
- configs/misdn.conf.sample, channels/misdn/isdn_lib.c: added the
- option 'reject_cause' to make it possible to set the
- RELEASE_COMPLETE - cause on the 3. incoming PMP channel, which is
- automatically rejected because chan_misdn does not support that
- kind of callwaiting. Therefore chan_misdn supports now 3 incoming
- channels on a PMP BRI Port. misdn_lib_get_free_bc now gets the
- info if the requested channel is incoming or outgoing to make the
- 3. channel possible
-
-2006-10-03 20:14 +0000 [r44296] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: fix a logic error in my previous fix to the
- queue reload code
-
-2006-10-02 20:07 +0000 [r44168-44213] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Change the fd on the I/O context in case it
- changed during the reload, which is indeed possible. (issue #7943
- reported by eclubb)
-
- * contrib/init.d/rc.redhat.asterisk: We should be using $AST_SBIN
- instead of hardcoding the path for the error message (issue #7942
- reported by eclubb)
-
- * io.c: Shrink when current_ioc is unused. It is set to -1 when
- unused, not 0. (issue #7941 reported by eclubb)
-
-2006-10-02 13:28 +0000 [r44149] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_lib.c: fixed the hold/retrieve/transfer
- issues, removed a useless bc field, added setting of
- frame.delivery fields, some minor code cleanups
-
-2006-10-01 15:19 +0000 [r44110] Russell Bryant <russell@digium.com>
-
- * configs/queues.conf.sample: Fix the name of the
- "eventmemberstatus" option in the sample queues.conf (issue
- #8065, adamg)
-
-2006-09-29 13:44 +0000 [r43977] Kevin P. Fleming <kpfleming@digium.com>
-
- * cli.c: proper fix for ast_group_t change
-
-2006-09-28 18:00 +0000 [r43924] Joshua Colp <jcolp@digium.com>
-
- * frame.c, include/asterisk/logger.h, channels/chan_misdn.c,
- channels/chan_sip.c, channels/chan_skinny.c,
- funcs/func_timeout.c, apps/app_festival.c, res/res_features.c,
- apps/app_hasnewvoicemail.c, apps/app_alarmreceiver.c,
- channels/iax2-provision.c, res/res_musiconhold.c,
- res/res_monitor.c: Put in missing \ns on the end of ast_logs
- (issue #7936 reported by wojtekka)
-
-2006-09-28 17:31 +0000 [r43916] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: fix buggy (and overly complex) loop used during
- reload of app_queue for static member list updating
-
-2006-09-28 16:37 +0000 [r43897] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: app_queue is comparing the device names
- incorrectly while checking their statuses. It's internal list of
- interfaces includes the dial string, while the argument passed to
- this function does not have the dial string (/n for a local
- channel). This causes it to ignore the device state changes
- because it thinks it belongs to none of its members. (#8040
- reported and patch by tim_ringenbach)
-
-2006-09-28 16:32 +0000 [r43895] Kevin P. Fleming <kpfleming@digium.com>
-
- * cli.c: eliminate compiler warning introduced by recent changes
-
-2006-09-28 16:13 +0000 [r43891] Joshua Colp <jcolp@digium.com>
-
- * apps/app_meetme.c: Stop the stream after waitstream returns so
- that our formats get restored. (issue #7370 reported by
- kryptolus)
-
-2006-09-28 15:18 +0000 [r43871] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: Fix race condion crash with get_member_status
- (#7864 - tim_ringenbach reported and patched)
-
-2006-09-27 20:20 +0000 [r43815] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Avoid inability to lock directory log
- message by creating the directory ahead of time. (Issue 7631)
-
-2006-09-27 19:35 +0000 [r43800] Jason Parker <jparker@digium.com>
-
- * apps/app_playback.c, pbx.c: Playback() wasn't setting
- PLAYBACKSTATUS under several circumstances. Playback() returns -1
- on missing args - so should Background()
-
-2006-09-27 16:54 +0000 [r43778] Russell Bryant <russell@digium.com>
-
- * res/res_features.c, channel.c: Fix a problem that occurred if a
- user entered a digit that matched a bridge feature that was
- configured using multiple digits, and the digit that was pressed
- timed out in the feature digit timeout period. For example, if
- blind transfer is configured as '##', and a user presses just
- '#'. In this situation, the call would lock up and no longer pass
- any frames. (issue #7977 reported by festr, and issue #7982
- reported by michaels and valuable input provided by mneuhauser
- and kuj. Fixed by me, with testing help and peer review from
- Joshua Colp). There are a couple of issues involved in this fix:
- 1) When ast_generic_bridge determines that there has been a
- timeout, it returned AST_BRIDGE_RETRY. Then, when
- ast_channel_bridge gets this result, it calls ast_generic_bridge
- over again with the same timestamp for the next event. This
- results in an endless loop of nothing until the call is
- terminated. This is resolved by simply changing
- ast_generic_bridge to return AST_BRIDGE_COMPLETE when it sees a
- timeout. 2) I also changed ast_channel_bridge such that if in the
- process of calculating the time until the next event, it knows a
- timeout has already occured, to immediately return
- AST_BRIDGE_COMPLETE instead of attempting to bridge the channels
- anyway. 3) In the process of testing the previous two changes, I
- ran into a problem in res_features where ast_channel_bridge would
- return because it determined that there was a timeout. However,
- ast_bridge_call in res_features would then determine by its own
- calculation that there was still 1 ms before the timeout really
- occurs. It would then proceed, and since the bridge broke out and
- did *not* return a frame, it interpreted this as the call was
- over and hung up the channels. The reason for this was because
- ast_bridge_call in res_features and ast_channel_bridge in
- channel.c were using different times for their calculations.
- channel.c uses the start_time on the bridge config, which is the
- time that the feature digit was recieved. However, res_features
- had another time, 'start', which was set right before calling
- ast_channel_bridge. 'start' will always be slightly after
- start_time in the bridge config, and sometimes enough to round up
- to one ms. This is fixed by making ast_bridge_call use the same
- time as ast_channel_bridge for the timeout calculation.
-
-2006-09-27 12:51 +0000 [r43764] Christian Richter <christian.richter@beronet.com>
-
- * channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/isdn_lib.c: fixed a bug which led to chan_list
- zombies, when the call could not be properly established in
- misdn_call. also removed the ACK_HDLC stuff which is not really
- needed.
-
-2006-09-26 20:49 +0000 [r43708] Russell Bryant <russell@digium.com>
-
- * asterisk.c: Back in revision 4798, this message was changed from
- using ast_cli() to directly calling write(). During this change,
- checking if this was a remote console was removed. This caused
- this message about using "exit" or "quit" to exit an Asterisk
- console to come up in times where it did not make sense. This
- change restores the check to see if this is a remote console
- before printing the message. (fixes BE-4)
-
-2006-09-26 20:38 +0000 [r43705-43706] Joshua Colp <jcolp@digium.com>
-
- * .cleancount: I changed the channel structure... let's be sure
- this gets updated!
-
- * channels/chan_sip.c, include/asterisk/channel.h: Use proper type
- to represent the group variable (issue #8025 reported by makoto)
-
-2006-09-26 20:23 +0000 [r43699] Russell Bryant <russell@digium.com>
-
- * apps/app_voicemail.c: When parsing the sections of voicemail.conf
- that contain mailbox definitions, don't introduce a length limit
- on the definition by using a 256 byte temporary storage buffer.
- Instead, make the temporary buffer just as big as it needs to be
- to hold the entire mailbox definition. (fixes BE-68)
-
-2006-09-25 21:14 +0000 [r43634] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Two bugs when forwarding voicemail (Issue
- 7824): 1) delete=yes was ignored 2) maxmessages was ignored
-
-2006-09-24 13:50 +0000 [r43552] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Check to see if the channel that is
- activating the IAXPEER function is actually an IAX2 channel
- before proceeding to process it to avoid crashing. (issue #8017,
- reported by admott, fixed by myself)
-
-2006-09-22 21:53 +0000 [r43509] Joshua Colp <jcolp@digium.com>
-
- * apps/app_chanspy.c, channel.c: Yay another 'round of spy fixes!
- This fixes a small logic flaw with the cleanup function and a
- memory allocation issue. (issue #7960 reported by jojo & issue
- #7999 reported by aster1) Special thanks to csum77 for letting me
- into a box where this issue was happening.
-
-2006-09-21 17:01 +0000 [r43409-43420] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_rpt.c: Whitespace change... really just an excuse to
- test repotools
-
- * cdr/cdr_tds.c, cdr/Makefile: TDS 0.64 updates
-
-2006-09-20 05:08 +0000 [r43314] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_misdn.c, channels/chan_sip.c,
- channels/chan_skinny.c: make some more functions static
-
-2006-09-19 16:21 +0000 [r43269] Matt O'Gorman <mogorman@digium.com>
-
- * pbx/pbx_gtkconsole.c, apps/app_dial.c, channels/chan_sip.c,
- apps/app_macro.c, asterisk.c, config.c, apps/app_queue.c, pbx.c:
- fixes some verbose vs debug issues. patch from bug 2617
-
-2006-09-19 12:28 +0000 [r43248] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: cid is passed to a destructive function;
- thus a copy is needed (issue 7961)
-
-2006-09-18 20:08 +0000 [r43220] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7682 - don't add contacts to 4xx
- responses. (Ugly fix, not proud at all)
-
-2006-09-18 15:30 +0000 [r43163] Joshua Colp <jcolp@digium.com>
-
- * apps/app_math.c: Add deprecation notice about app_math (issue
- #7957 reported by k-egg)
-
-2006-09-18 15:05 +0000 [r43160] Steve Murphy <murf@digium.com>
-
- * configs/zapata.conf.sample: Clarified what "callwaiting" does in
- zapata.conf.
-
-2006-09-18 15:05 +0000 [r43159] Joshua Colp <jcolp@digium.com>
-
- * configs/indications.conf.sample: Add number unobtainable tone for
- New Zealand (issue #7969 reported by nic_bellamy)
-
-2006-09-17 13:54 +0000 [r43072] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_directory.c: Directory used the wrong context for
- delivery of 0- and *- keypresses (according to Directory's own
- documentation) - Issue 7965
-
-2006-09-16 07:57 +0000 [r43003-43019] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_iax2.c: When a realtime peer expires, reset the
- ipaddress in the realtime database back to 0 (Issue 6656)
-
- * apps/app_meetme.c: When the marked user enters the conference, we
- should no longer timeout
-
-2006-09-14 22:16 +0000 [r42946] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_zap.c: Error message references wrong argument
- (Issue 7951)
-
-2006-09-13 19:51 +0000 [r42892] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Backport bugfix patch from 7918 to 1.2 -
- msg_cfg destroyed before used
-
-2006-09-11 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.12.1 released
-
-2006-09-11 21:47 +0000 [r42697-42783] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_meetme.c, apps/app_page.c: When paging, only wait 5
- seconds for the marked user to enter the conference. After that,
- assume the paging already completed by the time the channel
- entered the conference and drop back out. (Issue 7275)
-
- * configs/extensions.conf.sample, configs/alsa.conf.sample,
- configs/zapata.conf.sample, configs/iax.conf.sample,
- configs/osp.conf.sample, configs/dundi.conf.sample,
- configs/enum.conf.sample, configs/vpb.conf.sample,
- configs/cdr.conf.sample, configs/voicemail.conf.sample,
- configs/phone.conf.sample, configs/misdn.conf.sample,
- configs/sip.conf.sample, configs/skinny.conf.sample,
- configs/features.conf.sample: Spelling/grammar fixes (Issue 7929)
-
- * configs/voicemail.conf.sample: Two grammar issues (bug 7927)
-
-2006-09-09 20:24 +0000 [r42600] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Only truly consider the channel in the same format if
- the format matches the raw format OR if a translation path
- already exists to translate between them. (issue #7887 reported
- by softins & issue #7803 reported by alvaro_palma_aste). Thanks
- goes to stubert for giving me access to a box and showing me a
- scenario where this occured.
-
-2006-09-09 12:14 +0000 [r42535] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: - Reset proper flag - Don't delete SIP
- dialog prematurely Strangely enough imported from svn trunk...
- It's confusing here in Greenland. (Committing from 36.000 feet
- above Greenland, on the way to asterisk@von
- http://www.pulver.com/asterisk )
-
-2006-09-08 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.12 released
-
-2006-09-08 18:50 +0000 [r42452] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Swap spies during masquerading
-
-2006-09-08 16:06 +0000 [r42421] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_authenticate.c: Jump logic was backwards: goto returns 0
- if it succeeds, and we should jump if authentication fails. (Bug
- #7907)
-
-2006-09-08 04:37 +0000 [r42402] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_local.c: Use ast_best_codec to set the read/write
- format
-
-2006-09-07 23:12 +0000 [r42355] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_record.c: Format vulnerability fix - allowing the user
- to specify a format is not a good idea (Bug 7811)
-
-2006-09-07 16:30 +0000 [r42260] Joshua Colp <jcolp@digium.com>
-
- * cdr.c: Let's use the same thing we use in other places to
- calculate our time for ast_cond_timedwait (issue #7697 reported
- by bn999)
-
-2006-09-07 02:14 +0000 [r42150-42200] Steve Murphy <murf@digium.com>
-
- * logger.c: This should fix the problem reported in 7564: logger
- config file errors getting lost because logging isn't configured
- yet. The problem was that the code that exists to handle this
- case was not getting reached, because other tests were causing an
- early return from ast_log().
-
- * Makefile: added hours,minutes,seconds .gsm files to the install
- portion of the makefile, as per bug 7545
-
-2006-09-06 20:02 +0000 [r42148] Joshua Colp <jcolp@digium.com>
-
- * res/res_agi.c: Don't close the second file descriptor if it's the
- same as the first one, as it will have already been closed
- elsewhere and could cause massive panic. (issue #7699 reported by
- bn999)
-
-2006-09-06 18:16 +0000 [r42133] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_agent.c: Look ma! No more deadlocks! <sic> As
- posted from #7458 and others similar to it in Mantis: p->app_lock
- was a mutex really designed for use with agents not in callback
- mode. That being the case, I've tried to code it so that when
- callback mode is used, the app_lock mutex will not be
- locked/unlocked at all. Please let me know how you make out - and
- if you continue to deadlock now, please reproduce the deadlock
- logging information and post to Mantis.
-
-2006-09-06 17:10 +0000 [r42110] Christian Richter <christian.richter@beronet.com>
-
- * channels/chan_misdn.c: fixed pipe consuming bug when using
- chanIsAvail (#7878), also moved a debug log to the very begining
- of misdn_hangup.
-
-2006-09-06 15:55 +0000 [r42054-42086] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Make realtime regseconds work as people
- expected (0 on registration expiration or release, and actual on
- normal state) (issue #7684 reported by kshumard)
-
- * include/asterisk/chanspy.h, apps/app_chanspy.c,
- apps/app_mixmonitor.c, channel.c: Merge in last round of spy
- fixes. This should hopefully eliminate all the issues people have
- been seeing by distinctly separating what each component
- (core/spy) is responsible for. Core is responsible for adding a
- spy to a channel, feeding frames to the spy, removing the spy
- from a channel, and telling the spy to stop. Spy is responsible
- for reading frames in, and cleaning up after itself.
-
-2006-09-05 16:27 +0000 [r42014] Jason Parker <jparker@digium.com>
-
- * configs/zapata.conf.sample: Small typo in zapata.conf.sample
- Reported by ppyy in 7881
-
-2006-09-04 15:46 +0000 [r41989] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't kill the pvt before we have sent ACK
- on CANCEL
-
-2006-09-03 17:38 +0000 [r41827-41882] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: Make sure the forwarded channel inherits
- variables appropriately when we receive a call forward in the
- queue. (#7867 - raarts reported and patched)
-
- * apps/app_queue.c: Don't keep trying the same member in certain
- strategies when members of the queue are unavailable (#7278 -
- diLLec reported and patched)
-
- * apps/app_chanspy.c: Let's NOT spy on Zap/psuedo channels,
- mmmmmmmmk?
-
- * apps/app_queue.c: Setting a retry of 0 is generally not a good
- idea and shouldn't be allowed. (#7574 - reported by regin)
-
-2006-09-01 22:49 +0000 [r41768] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Only wipe the redirected audio & video
- IP/port if it's specified, and trigger a reinvite.
-
-2006-09-01 17:35 +0000 [r41716] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c, include/asterisk/rtp.h, rtp.c: put in proper
- fix for issue #7294 instead of the broken partial fix that was
- committed, and thereby also fix issue #7438
-
-2006-09-01 16:33 +0000 [r41690-41691] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Finish up the last commit (was worse then originally
- reported)
-
- * channel.c: Don't treat an unexpected control subclass as voice
- (issue #7858 reported by PCadach)
-
-2006-08-30 19:01 +0000 [r41423] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7572 - Hangup when receiving a buggy
- 487 response to an INVITE
-
-2006-08-30 18:59 +0000 [r41411] Russell Bryant <russell@digium.com>
-
- * channels/chan_mgcp.c, channels/chan_phone.c,
- channels/chan_local.c, channels/chan_misdn.c,
- channels/chan_sip.c, channels/chan_skinny.c,
- channels/chan_features.c, channels/chan_h323.c,
- channels/chan_iax2.c: Restore original functionality of 1.2 in
- places where ANI was not set, but was changed to be set. The
- original change was done to ensure that the behavior of the
- "callerid" option in each channel driver was consistent, but it
- caused an unexpected behavior change of CDR records for users, so
- this change is being reverted in 1.2. (issue #7695)
-
-2006-08-30 17:58 +0000 [r41390] Joshua Colp <jcolp@digium.com>
-
- * include/asterisk/lock.h: Properly handle an ETIMEDOUT result from
- pthread_cond_timedwait (issue #7318 reported by arkadia)
-
-2006-08-30 14:31 +0000 [r41334] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 7822 - don't use SRV lookups if it's
- disabled.
-
-2006-08-29 13:33 +0000 [r41269] Russell Bryant <russell@digium.com>
-
- * pbx/pbx_config.c: clean up last commit ... most notably, there is
- no reason to do heap allocations here, and it also included a
- potential memory leak
-
-2006-08-29 05:49 +0000 [r41239-41262] Steve Murphy <murf@digium.com>
-
- * pbx/pbx_config.c: Fixes for bug 7813, via patch submitted by
- stevens.
-
- * doc/README.variables: Removed from the docs the mention of the !
- and =~ operators, as these were knocked out of ast_expr2 because
- they were new features. Let's hope I can keep them from getting
- knocked out of the trunk, too!
-
- * apps/app_macro.c: According to a note added to 7731 by
- mneuhauser, this will repair a break caused by the last fix
- (7731).
-
-2006-08-25 15:21 +0000 [r41066-41069] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: Don't send proceeding twice (#7800)
-
-2006-08-25 15:07 +0000 [r41065] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Text only - clarify the reason for entry
- into authentication mode when the skipuser option is ignored
-
-2006-08-24 19:41 +0000 [r40994] Russell Bryant <russell@digium.com>
-
- * include/asterisk/linkedlists.h, channel.c, pbx.c: Fix a few
- issues related to the handling of channel variables - in
- pbx_builtin_serialize_variables(), the variable list traversal
- would stop on a variables with empty name/values, which is not
- appropriate - When removing the GROUP variables, use
- AST_LIST_REMOVE_CURRENT instead of AST_LIST_REMOVE - During
- masquerading, when copying the variables list from one channel to
- the other, using AST_LIST_INSERT_TAIL is not valid for appending
- a whole list. It leaves the tail pointer of the list invalid.
- Introduce a new macro, AST_LIST_APPEND_LIST that appends a list
- properly. (issue #7802, softins)
-
-2006-08-24 17:13 +0000 [r40971-40979] Joshua Colp <jcolp@digium.com>
-
- * configs/zapata.conf.sample: Minor documentation fix to add the
- 'dynamic' dialplan option from angler
-
-2006-08-23 16:05 +0000 [r40901] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_agi.c: Revert last change - breaks retrieval of builtin
- variables
-
-2006-08-22 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.11 released
-
-2006-08-22 02:59 +0000 [r40821] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_random.c: Bug 7779 - Using initstate(3) means that we
- cannot unload this module once loaded.
-
-2006-08-21 22:34 +0000 [r40798] Matt O'Gorman <mogorman@digium.com>
-
- * asterisk.c: Move the load_modules call so that if a module needs
- realtime support it will work, none do currently but a good move
- none the less.
-
-2006-08-20 22:09 +0000 [r40692] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * CREDITS: Reformat to match the contribution style of other
- contributors
-
-2006-08-20 04:49 +0000 [r40601] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Turn media level c= parsing on by default
- (issue #7725 reported by psm)
-
-2006-08-19 01:03 +0000 [r40446] Jason Parker <jparker@digium.com>
-
- * apps/app_voicemail.c, apps/app_directory.c: Fix a bug with
- app_voicemail when trying to use app_directory to leave messages
- to another user (options 3, 5, 2). If the context/extension
- didn't exist in the dialplan (and why should it have to?), it
- would fail, saying that it's an "invalid extension". Fix was
- different in svn trunk. (issue BE-71)
-
-2006-08-18 19:10 +0000 [r40310-40392] Kevin P. Fleming <kpfleming@digium.com>
-
- * configs/zapata.conf.sample: make a feeble attempt to avoid the
- 'how do I enable my hardware echo canceler' questions
-
- * channels/misdn_config.c (added), channels/chan_misdn_config.c
- (removed): rename file per crichter's request
-
-2006-08-17 21:57 +0000 [r40306] Christian Richter <christian.richter@beronet.com>
-
- * doc/README.misdn, channels/misdn/mISDN.patch (removed),
- channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/fac.c (added), channels/misdn/Makefile,
- channels/misdn/chan_misdn_config.h, channels/misdn/ie.c,
- channels/misdn/fac.h (added), channels/misdn/portinfo.c
- (removed), channels/misdn/isdn_lib_intern.h,
- channels/chan_misdn_config.c, channels/misdn/isdn_msg_parser.c,
- configs/misdn.conf.sample, channels/Makefile,
- channels/misdn/isdn_lib.c: This rather small ;-) commit merges
- the changes from my team branch 0.3.0 into t he 1.2 branch. These
- changes include the new mISDN mqueue interface which makes it
- possible to compile chan_misdn against the current cvs version of
- mISDN/mISDNuser. These changes also contain various additions and
- numerous bugfixes to chan_misdn . Each change is documented in
- the commit logs in the team/crichter/0.3.0 branch.
-
-2006-08-17 16:36 +0000 [r40227] Russell Bryant <russell@digium.com>
-
- * channel.c: revert bogus change to attempt to fix bug 7506 which
- actually causes half of the channels not to get "Newchannel"
- events at all (issue #7745)
-
-2006-08-17 16:22 +0000 [r40223-40225] Joshua Colp <jcolp@digium.com>
-
- * funcs/func_cdr.c: Use the last CDR entry instead of the first CDR
- entry for variable retrieving variables using the CDR dialplan
- function. (issue #7689 reported by voipgate)
-
- * apps/app_macro.c: Make app_macro compile again
-
-2006-08-17 16:07 +0000 [r40220] Steve Murphy <murf@digium.com>
-
- * apps/app_macro.c: In app_macro, changed the previously changed
- upper recursion depth limit to a variable, default of the
- original val of 7. MACRO_RECURSION is a channel variable that
- will override the limit, but until I can understand and fix why
- this limit is neccessary, I am not advertising this variable in
- the docs. This fix mirrors the changes made in r40200 in trunk.
-
-2006-08-16 18:57 +0000 [r40057] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_mgcp.c: don't allow AUEP responses to overflow the
- stack during a string copy (reported by Mu Security)
-
-2006-08-15 22:49 +0000 [r39935] Russell Bryant <russell@digium.com>
-
- * res/res_agi.c: use pbx_builtin_getvar_helper() so that GET
- VARIABLE can retrieve global variables (issue #7609)
-
-2006-08-15 22:13 +0000 [r39931] Steve Murphy <murf@digium.com>
-
- * apps/app_macro.c: This revision fixes bug 7731, the inability for
- macros to be called more than one level deep in the 'h'
- extension. It also pushes up the limit of recursion depth from 7
- to 20.
-
-2006-08-08 18:39 +0000 [r39379] Kevin P. Fleming <kpfleming@digium.com>
-
- * CREDITS: add explicit listing of anthm's contributions (issue
- #7683)
-
-2006-08-08 17:04 +0000 [r39350] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: Increase the buffer size for the callid
- (issue #7675, reported by pssatcs)
-
-2006-08-07 01:28 +0000 [r39081] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: Fix a crash reported to me by hads on IRC.
- This crash would occur with the use of the
- "distinctiveringaftercid" option. Also, on this user's system,
- the crash would only occur when built without optimizations. This
- is because the bug is that the code would write past the end of
- an array that was allocated on the stack, and the structure of
- the stack is different with or without optimizations enabled.
-
-2006-08-07 00:15 +0000 [r39056] Joshua Colp <jcolp@digium.com>
-
- * channel.c: Reset our stream and vstream pointers back to NULL so
- that any generator that uses them (file based MOH) will not try
- to close them again. (issue #7668 reported by jmls)
-
-2006-08-05 09:01 +0000 [r38903-38982] Russell Bryant <russell@digium.com>
-
- * channel.c: Always generate a Newstate event in ast_setstate()
- instead of making it a Newchannel event if the state was
- AST_STATE_DOWN. The Newchannel event will always be generated in
- ast_request(), so this just causes a duplicated Newchannel event
- in some cases. (issue #7506, repoted by capouch, fixed by me)
-
- * apps/app_queue.c: remove duplicate queue log entry when the
- caller exits on a timeout (issue #7616, ppyy)
-
- * channels/chan_sip.c: don't advertise that this function can set a
- SIP header when it can only do reads
-
- * apps/app_dial.c: make sure the priv-callerintros directory exists
- before trying to create a file there (issue #7659, patch by hads,
- with some modifications by me)
-
- * channels/chan_mgcp.c, channels/chan_vpb.c, channels/chan_phone.c,
- channels/chan_misdn.c, channels/chan_zap.c, channels/chan_sip.c,
- channels/chan_skinny.c, channels/chan_h323.c,
- channels/chan_modem.c, channels/chan_iax2.c: Fix an issue that
- would cause a NewCallerID manager event to be generated before
- the channel's NewChannel event. This was due to a somewhat recent
- change that included using ast_set_callerid() where it wasn't
- before. This function should not be used in the channel driver
- "new" functions. (issue #7654, fixed by me) Also, fix a couple
- minor bugs in usecount handling. chan_iax2 could have increased
- the usecount but then returned an error. The place where chan_sip
- increased the usecount did not call ast_update_usecount()
-
- * channel.c: suppress a compiler warning about the usage of a
- potentially uninitialized variable
-
-2006-08-03 19:54 +0000 [r38825] Joshua Colp <jcolp@digium.com>
-
- * res/res_musiconhold.c: Treat the file as invalid if we have no
- valid formats for it (issue #7643 reported by KNK)
-
-2006-08-03 05:22 +0000 [r38761] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 7648 - Checking wrong count for
- plurality on new messages for Dutch language
-
-2006-08-02 19:29 +0000 [r38686-38731] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: fix brain-damage I introduced when trying to
- fix the CANCEL/BYE sending mechanism for pending INVITES accept
- unknown 1xx responses as 183 responses (as RFC3261 mandates we
- should do)
-
- * res/res_features.c, channel.c: ensure that the 'feature digit
- timeout' value is taken into account when deciding how long the
- bridge should run (this fixes a problem report where a digit
- press that did not invoke a feature is never passed across the
- bridge)
-
-2006-08-01 19:20 +0000 [r38654] Joshua Colp <jcolp@digium.com>
-
- * res/res_musiconhold.c: Close the stream when file based MOH stop.
- This won't get rid of their position in the file but it will
- cause the translation path to be setup again. (issue #7634
- reported by asimpson)
-
-2006-07-31 21:14 +0000 [r38611] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: don't reissue hangup requests for SIP
- channels that have expired their RTP timeouts (one time is
- enough) don't rescan the SIP private structure list too fast, it
- can cause channels to not be able to hang up (issue #7495, and
- probably others) use ast_softhangup_nolock() since we already
- hold the channel's lock
-
-2006-07-31 17:09 +0000 [r38585] Joshua Colp <jcolp@digium.com>
-
- * res/res_features.c: Add missing code to bring transferee channel
- out of MOH/autoservice under certain circumstance (issue #7611
- reported by guillecabeza with minor mods by myself)
-
-2006-07-31 04:06 +0000 [r38546-38547] Russell Bryant <russell@digium.com>
-
- * frame.c: one more small tweak for thread-safety of TRACE_FRAMES
-
- * frame.c: Make the frame counting done with TRACE_FRAMES defined
- thread-safe
-
-2006-07-29 23:18 +0000 [r38501] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: How many attempts does it take to make a SIP
- URI parser that works well? I'm up to 5 personally. On to the
- good stuff - parse the domain first, user second, and get rid of
- port & options/params last. (issue #7616 reported by andrew)
-
-2006-07-28 18:49 +0000 [r38420] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Make a copy of the request URI in
- check_user_full instead of modifying the one on the structure,
- and also strip params properly from the user portion of the SIP
- URI so as to preserve the domain (issue #7552 reported by dan42)
-
-2006-07-27 22:23 +0000 [r38347-38370] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_chanspy.c: use the enum that defines the option
- arguments, so that the likelihood of mismatched option indexes is
- reduced (which in this case was a bug, the volume argument was
- not checked properly)
-
- * channel.c: do a better job avoiding translation path
- teardown/setup when not needed
-
-2006-07-27 04:25 +0000 [r38328] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Fix crash when using the "regexten" option
- with MALLOC_DEBUG enabled. This was not reported in the bug
- tracker but the same bug has been demonstrated in other places in
- the code.
-
-2006-07-27 02:43 +0000 [r38310] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: don't do useless translation destroy/build when the
- channel is already in the correct format
-
-2006-07-27 01:58 +0000 [r38288] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: fix a crash when MALLOC_DEBUG is enabled and
- the regexten is enabled. The crash would occur when the extension
- got removed. (fixes issue #7484)
-
-2006-07-26 15:26 +0000 [r38234] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Put default callerid into contact when the
- one specified is either NULL or has a zero string length. (issue
- #7590 reported by key2)
-
-2006-07-25 19:43 +0000 [r38200] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: This resolves a deadlock that a tech support
- customer was getting frequently when his users would answer call
- waiting. If another thread is currently holding the zt_pvt lock
- for the first channel, unlock both channels and let asterisk
- retry the native bridge, just like what is done for the second
- channel directly below these changes.
-
-2006-07-24 17:05 +0000 [r38167] Steve Murphy <murf@digium.com>
-
- * codecs/gsm/Makefile: This fixes a compile problem for s390 as
- reported in bug 7253. Tested on both an s390 and non-s390
- machine.
-
-2006-07-19 17:10 +0000 [r37949] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: ensure that global 'maxauthreq' is reset to
- zero during 'reload'
-
-2006-07-18 00:41 +0000 [r37828-37856] Russell Bryant <russell@digium.com>
-
- * frame.c: don't crash if the frame has no data, but has a src
-
- * frame.c: if asked to duplicate a frame that has no data, don't
- set the frame's data pointer past the end of the allocatted
- buffer for the new frame
-
-2006-07-17 22:36 +0000 [r37765-37808] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * formats/format_h263.c: Backport buffer increase to 1.2
-
- * formats/format_h263.c: Overflow bad
-
-2006-07-15 23:29 +0000 [r37691] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * enum.c: Bug 7513 - ensure that each time we do a query, the
- results are returned in the same logical order, so that when we
- iterate over the list, we get all results, not some results
- repeated, due to insufficient sorting.
-
-2006-07-14 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.10 released
-
-2006-07-14 13:31 +0000 [r37612] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_sms.c: Bug 7526 - previous commit broke app_sms
-
-2006-07-13 21:22 +0000 [r37571] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_voicemail.c: don't fail/abort if the message category
- sound file cannot be played, just generate a warning message and
- continue message playback
-
-2006-07-13 18:44 +0000 [r37546] Russell Bryant <russell@digium.com>
-
- * rtp.c: yeah, ummm... This frame pointer should not be static.
- This situation only exists in 1.2 (pointed out by Constantine
- Filin on the asterisk-dev mailing list)
-
-2006-07-13 16:44 +0000 [r37531] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: report address of peer trying to subscribe
- to unknown hint
-
-2006-07-13 15:45 +0000 [r37458-37516] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * doc/README.enum: Bug 7532 - Typo in enum example
-
- * contrib/init.d/rc.mandrake.zaptel: Merge fixup for asterisk
- startup script to zaptel startup script
-
-2006-07-12 15:53 +0000 [r37441-37442] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_voicemail.c: fix a weird case where a lock file could be
- left (but would happen almost never)
-
- * app.c: fix a case where ast_lock_path() could leave a
- randomly-named lock file hanging around make ast_unlock_path
- actually report when unlocking fails
-
-2006-07-12 15:23 +0000 [r37439] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Add support to have maxauthreq as a global
- option
-
-2006-07-12 13:54 +0000 [r37417-37419] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_zap.c, utils.c, res/res_agi.c, apps/app_zapras.c,
- asterisk.c, channels/chan_modem.c, channels/chan_iax2.c: remove
- some more bad examples of using printf
-
- * enum.c, pbx/pbx_config.c: get rid of some more printf's (although
- most of these were ifdef-ed out)
-
-2006-07-12 03:55 +0000 [r37402] Matt O'Gorman <mogorman@digium.com>
-
- * app.c: GRRR no fprintf!
-
-2006-07-11 19:00 +0000 [r37378] Joshua Colp <jcolp@digium.com>
-
- * configs/iax.conf.sample, channels/chan_iax2.c: Add configuration
- option for IAX2 users that will limit the amount of outstanding
- AUTHREQs we are waiting for replies on.
-
-2006-07-10 21:01 +0000 [r37361] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: do masquerade-behind-proxy checking with better
- control over locks
-
-2006-07-07 23:57 +0000 [r37307] Joshua Colp <jcolp@digium.com>
-
- * rtp.c: Change message regarding marker bit forcing when SSRC
- changes to be shown only during debug so it doesn't overload high
- capacity systems
-
-2006-07-06 21:41 +0000 [r37224] Matt O'Gorman <mogorman@digium.com>
-
- * channel.c: patch resolves issue with when to decide if its right
- time to native bridge, feature redirect was not being checked.
- patch from bug #7296
-
-2006-07-06 20:38 +0000 [r37212] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_agent.c: Don't do weird things on a callback agent
- that has attempted logoff while still on the phone.
-
-2006-07-06 15:48 +0000 [r37173] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_sip.c: Instead of giving the scheduled item ID on a
- peer expiration, give the time until they expire (issue #7455
- reported by slavon)
-
-2006-07-06 13:47 +0000 [r37143] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_db.c: Fix spelling/grammar (issue 7493)
-
-2006-07-05 15:31 +0000 [r36998] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_oss.c: Spell extension correctly in documentation
- for chan_oss dial (issue #7487 reported by flefoll)
-
-2006-07-04 14:45 +0000 [r36838-36911] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Tell clients based on old SIP standard that
- we only support MD5 digest authentication...
-
- * channels/chan_sip.c: issue #7470 - Need larger buffer for
- record-route headers...
-
-2006-07-03 05:12 +0000 [r36697-36751] Russell Bryant <russell@digium.com>
-
- * asterisk.c: fix a race condition that caused asterisk to log a
- *ton* of warnings on mac osx about poll returning an error
- because the polled file descriptor was bad.
-
- * channels/chan_mgcp.c, channels/chan_phone.c,
- channels/chan_local.c, channels/chan_misdn.c,
- channels/chan_sip.c, channels/chan_skinny.c,
- channels/chan_agent.c, channels/chan_features.c,
- channels/chan_h323.c, channels/chan_modem.c,
- channels/chan_iax2.c: use ast_set_callerid to be more consistent
- and to make sure that the "callerid" option in the conf files is
- always handled the same way and sets ANI (issue #7285, gkloepfer)
-
- * dsp.c: fix the build with BUSYDETECT_TONEONLY defined (issue
- #7414)
-
-2006-06-30 14:05 +0000 [r36290-36377] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_directory.c: Bug 7349 - Directory did not work correctly
- when USE_ODBC_STORAGE was defined.
-
- * Makefile: Bug 7388 - compatibility changes for Solaris
-
-2006-06-29 07:19 +0000 [r36253-36254] Kevin P. Fleming <kpfleming@digium.com>
-
- * configs/queues.conf.sample: clarify documentation for
- 'persistentmembers' setting
-
- * configs/sip.conf.sample: add documentation for peer-specific
- 'outboundproxy' setting
-
-2006-06-28 14:12 +0000 [r36187] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Don't delete scheduled item twice in
- sip_destroy (already fixed in svn trunk)
-
-2006-06-26 17:10 +0000 [r36078] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: ensure that two SIP channels that exist at
- the same moment will not have the same channel names (issue
- #7245, different fix)
-
-2006-06-26 15:27 +0000 [r36043] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 6997 maybe, but anyway - don't
- retransmit responses to NON-invite requests.
-
-2006-06-25 15:10 +0000 [r35915] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_sip.c: Bug 7425 - Size of buffer is passed in by
- len
-
-2006-06-23 11:30 +0000 [r35669] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: We should lock the queue before we go making
- changes to member interface statuses.
-
-2006-06-21 19:25 +0000 [r35334] Joshua Colp <jcolp@digium.com>
-
- * configs/indications.conf.sample: Add Venezuelan indications
- (issue #7402 reported by palillo)
-
-2006-06-20 15:05 +0000 [r35121] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * stdtime/private.h: Bug 7398 - Solaris puts its zoneinfo files in
- a nonstandard place
-
-2006-06-20 10:27 +0000 [r35058] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6820 - Possible fix (already
- implemented in trunk)
-
-2006-06-19 20:27 +0000 [r34911] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Call reset_user_pw upon changing the
- password using externpass (issue #7395 reported by Ryan Cumming)
-
-2006-06-19 18:07 +0000 [r34875] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Issue 7357 - txt file left behind when
- going to operator. Also, fix a possible file descriptor leak.
-
-2006-06-18 21:03 +0000 [r34627-34655] Russell Bryant <russell@digium.com>
-
- * pbx.c: don't set state to BUSY if the channel is already in the
- UP state (issue #7376, backported from trunk)
-
- * configs/iax.conf.sample, channels/chan_iax2.c: don't store
- multiple secrets delimited with semicolons for peers because this
- is only valid for users. Instead, only keep the last specified
- secret for a peer entry. Also, document how multiple secrets are
- handled in the sample config. (Reported by PCadach on
- #asterisk-bugs)
-
-2006-06-16 03:37 +0000 [r34400] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Zero out a declared structure so as to not
- crash if it contains invalid data (reported by Qwell on
- #asterisk-dev)
-
-2006-06-15 14:11 +0000 [r34306] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 7294 - patch by phsultan - Asterisk
- sends Invite instead of BYE in some cases.
-
-2006-06-15 13:30 +0000 [r34274] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: don't use prefixed structure names for internal
- structures don't use a plural structure name for a singular
- object
-
-2006-06-15 12:40 +0000 [r34242] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: VoicemailMain exits on any key, when the
- language is set to Italian, instead of properly handling the key
- (issue 7353).
-
-2006-06-14 22:22 +0000 [r33841-34160] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: coding style cleanups on queue interface
- handling code that was committed for the last release
-
- * channels/chan_iax2.c: use existing dial string parser for strings
- supplied to iax2_devicestate, because they can be complete dial
- strings, not just device names
-
- * include/asterisk/plc.h, jitterbuf.c, plc.c, apps/app_dumpchan.c,
- apps/app_chanspy.c: clarify file headers that mention disclaimer
- usage
-
- * file.c: don't output 'no format found' when we _did_ find the
- format but couldn't open the desired file for some other reason
-
- * apps/app_mixmonitor.c: memory allocation optimizations
-
-2006-06-13 12:40 +0000 [r33753-33813] Russell Bryant <russell@digium.com>
-
- * pbx.c: remove duplicate mutex_unlock
-
- * apps/app_voicemail.c: fix various places where the code returns
- without unlocking vmlock or destroying loaded configuration
-
- * apps/app_festival.c: add a missing close of an open fd, destroy
- of open config, and removal of the calling channel from the
- localusers list
-
- * asterisk.c: revert a change that caused more problems than it
- fixed and fix the real problem in this code. fds was declared as
- an array of zero size which caused some weird problems, some of
- which would only be seen when compiling without optimizations.
- (fixes issues #7071, #7326, and #7305)
-
-2006-06-12 21:34 +0000 [r33724] Joshua Colp <jcolp@digium.com>
-
- * include/asterisk/chanspy.h, apps/app_mixmonitor.c, channel.c:
- Greatly simply the mixmonitor thread, and move channel reference
- directly to spy structure so that the core can modify it.
-
-2006-06-12 20:40 +0000 [r33693] Russell Bryant <russell@digium.com>
-
- * res/res_agi.c: fix a place where a frame would be free'd twice
-
-2006-06-12 16:03 +0000 [r33638] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_local.c: only allow chan_local to masquerade the
- outbound channel onto its owner, instead of the other way around
- (this will ensure that group variables on the outbound channel are
- preserved)
-
-2006-06-12 15:27 +0000 [r33615] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_agi.c: Move set priority up, because at this point in the
- code, stdout is no longer the console. If we're unable to set
- priority, the error goes to Asterisk as if it were an AGI command
- (issue 7335).
-
-2006-06-11 21:21 +0000 [r33449-33548] Russell Bryant <russell@digium.com>
-
- * pbx.c: fix another place where a frame does not get free'd
-
- * apps/app_meetme.c: fix up five little places where frames would
- not be free'd and remove an unnecessary mutex_unlock where there
- is no way for it to be locked at that time
-
- * apps/app_ices.c: fix a place that would leak a frame (all of
- these fixes are in applications that call ast_read() on a channel
- but have code paths in them that would not free the frame)
-
- * apps/app_festival.c: fix a couple places that would leak a frame
-
- * apps/app_alarmreceiver.c: fix two places that would cause a frame
- to be leaked
-
- * apps/app_url.c: fix a case where an HTML frame would be leaked
-
- * apps/app_test.c: Free frames read from the channel when measuring
- noise. This resulted in about 9 or 10 seconds of leaked frames in
- both the TestClient and TestServer applications
-
- * apps/app_zapbarge.c, apps/app_zapscan.c: backport a couple of
- frame leak fixes from the trunk (revisions 33446, 33447)
-
-2006-06-09 18:52 +0000 [r33264-33300] Joshua Colp <jcolp@digium.com>
-
- * apps/app_meetme.c: Allow the format outputted by meetme list to
- be used for meetme commands (like kick) (issue #7322 reported by
- darkskiez)
-
- * channels/chan_iax2.c: Remove an unneeded double lock (issue #7310
- reported by arkadia)
-
- * apps/app_dial.c: Handle hangup during recording of screened name
- (issue #7304 reported by kulldominique)
-
- * apps/app_meetme.c: Add missing newlines (issue #7323 reported by
- darkskiez)
-
-2006-06-09 15:53 +0000 [r33235] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Do not require a context on a domain=
- setting
-
-2006-06-08 16:57 +0000 [r33036] Kevin P. Fleming <kpfleming@digium.com>
-
- * frame.c: handle out-of-memory conditions properly in
- ast_frisolate() (reported by Slav Kenov on asterisk-dev mailing
- list)
-
-2006-06-07 17:53 +0000 [r32818] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: fix some broken code with
- BRIDGE_OPTIMIZATION defined (issue #7292)
-
-2006-06-06 16:55 +0000 [r32605] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 7287 - A too short voicemail with
- ODBC_STORAGE will cause the first voicemail to be deleted
- erroneously
-
-2006-06-06 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.9.1 released
-
-2006-06-06 16:02 +0000 [r32582] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * callerid.c: Bug 7268 - Callerid leaks memory on error
-
-2006-06-06 15:48 +0000 [r32566] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: clean up yesterday's security fix to not
- cause breakage when video mini frames are received
-
-2006-06-03 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.9 released
-
-2006-06-05 19:53 +0000 [r32373] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: ensure that the received number of bytes is
- included in all IAX2 incoming frame analysis checks (fixes a
- known vulnerability)
-
-2006-06-04 03:43 +0000 [r31921] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: return bridge exit logic to what it was before
- i broke it :-(
-
-2006-06-03 17:02 +0000 [r31775] Russell Bryant <russell@digium.com>
-
- * res/res_musiconhold.c: when using moh files mode, don't look for
- a file past the number of files that have been loaded, or worse,
- past the size of the files array
-
-2006-06-01 21:46 +0000 [r31321-31555] Kevin P. Fleming <kpfleming@digium.com>
-
- * res/res_musiconhold.c: remove pointless forcing of the channel
- into SLINEAR mode; the write format will be set later based on
- the file that is chosen to be played to the channel
-
- * include/asterisk/channel.h, channel.c: handle Zap transfers
- behind chan_agent properly so the agent doesn't get stuck waiting
- for the call to hang up
-
- * configs/sip.conf.sample: remove a sample entry that never should
- have been added (code to support it was not merged)
-
-2006-05-31 23:50 +0000 [r31194] Russell Bryant <russell@digium.com>
-
- * res/res_agi.c: if the connection to a FastAGI server fails
- because of a timeout, log a more informative log message
-
-2006-05-31 22:26 +0000 [r31161] Kevin P. Fleming <kpfleming@digium.com>
-
- * rtp.c: silence a warning message that is not a warning
-
-2006-05-31 20:26 +0000 [r31127] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: fix misplaced manager event (issue #6866,
- flefoll)
-
-2006-05-30 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.8 released
-
-2006-05-30 14:55 +0000 [r30770] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: Fix infinite loop scenario and add some sanity
- checking to prevent segfault on a NULL parameter coming in (which
- probably shouldn't happen, but just to be safe...)
-
-2006-05-26 17:09 +0000 [r30424-30546] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_queue.c: A new way to try and deal with deadlocks that
- occur in app_queue at present. Using this approach, we only
- manipulate the main queue mutexes when we get a dev state change
- on a device that is actually a member of a queue. Backported from
- /trunk for the "bug fix".
-
-2006-05-25 20:03 +0000 [r30373] Joshua Colp <jcolp@digium.com>
-
- * apps/app_meetme.c: Don't play the enter sound twice when a person
- joins a conference after the leader has joined it. (issue #6138
- reported by shanermn)
-
-2006-05-25 17:39 +0000 [r30293-30296] Kevin P. Fleming <kpfleming@digium.com>
-
- * codecs/gsm/Makefile: don't try to use -march=s390 when building
- on S/390 systems (reported via asterisk-users mailing list)
-
- * channels/chan_sip.c: allow SIPCHANINFO(peername) to work for
- calls from users as well (issue #7215)
-
-2006-05-25 15:27 +0000 [r30239] Joshua Colp <jcolp@digium.com>
-
- * configs/extensions.conf.sample: Get rid of an incorrect SIP dial
- string in the sample extensions.conf - I even tried variations...
- no go (issue #7222 reported by arkadia)
-
-2006-05-24 21:24 +0000 [r30069-30098] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: oops... make sure to stop processing a
- request once we have sent an authentication challenge (issue
- #7220)
-
- * channels/chan_sip.c: don't send CANCEL on a pending INVITE if we
- haven't received a provisional response yet... mark it pending
- until the first response is received (issue #7079)
-
-2006-05-24 19:55 +0000 [r30037] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_meetme.c: app_meetme used the ast_max_exten instead of
- path_max solves bug 6822
-
-2006-05-24 19:44 +0000 [r30033-30035] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Merge branch for bug 6264 (Privacy option 2
- returns dial-status ANSWER / option_priority_jumping not
- respected) (reported by jkoopmann and branch by murf)
-
- * logger.c: Fix deadlock caused by a race condition in the logger
- when reloading (issue #7195 reported and fixed by softins)
-
-2006-05-24 16:59 +0000 [r29904-29973] Kevin P. Fleming <kpfleming@digium.com>
-
- * res/res_agi.c: support video recording via AGI 'RECORD FILE'
- command (issue #7068)
-
- * apps/app_queue.c: fix various bugs related to exiting from queue
- via keypress and moh handling (issue #6776, different fix)
-
- * channels/chan_zap.c: respect 'usecallingpres' in zapata.conf even
- if CLID has not been set for the channel (issue #7123)
-
- * channels/chan_sip.c, configs/sip.conf.sample: add an option to
- allow the admin to 'hide' SIP user/peer names from systems trying
- to 'fish' names
-
-2006-05-23 21:44 +0000 [r29849] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: fix the sourceaddress option (issue #7213,
- alphaque)
-
-2006-05-23 18:16 +0000 [r29764] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: simplify/fix lock retry, and fix comment
-
-2006-05-23 17:17 +0000 [r29733] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_sip.c: Sanity check code for an extended failure in
- trying to obtain a channel lock that may have been obtained
- elsewhere. Prevents the monitor thread of the SIP module from
- going into an infinite loop, effectively, breaking SIP until you
- restart Asterisk or the mutex is unlocked, whichever comes first.
-
-2006-05-23 17:15 +0000 [r29732] Kevin P. Fleming <kpfleming@digium.com>
-
- * dnsmgr.c, res/res_features.c, include/asterisk/linkedlists.h,
- include/asterisk/lock.h, apps/app_sql_postgres.c, pbx.c: backport
- some mutex initialization and linked list handling fixes from
- trunk
-
-2006-05-23 15:58 +0000 [r29696] BJ Weschke <bweschke@btwtech.com>
-
- * res/res_features.c: Fix a potential leak and correct (hopefully)
- a segfault under certain conditions. #6784 (vovan and perry
- testing)
-
-2006-05-22 21:27 +0000 [r29464-29555] Joshua Colp <jcolp@digium.com>
-
- * apps/app_waitforsilence.c: Increase the silence threshold to 128
- to "fix" it, so I'm told. (issue #6595 reported by davetroy fixed
- by casper)
-
- * res/res_features.c: Use the correct language when playing the
- transfer sound (issue #7109 reported by casper)
-
- * channels/chan_local.c: Preserve presentation bit when going
- through chan_local (issue #7002 reported by acunningham)
-
-2006-05-22 14:59 +0000 [r29394-29398] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_meetme.c: Bug 7194 - spelling fix
-
- * pbx.c: Bug 7196 - month range did not work
-
-2006-05-21 15:16 +0000 [r29196] BJ Weschke <bweschke@btwtech.com>
-
- * res/res_features.c: When an application that is executed via
- applicationmap and exits non-zero, make sure that we pass through
- the correct return value from the application to make sure a
- segfault doesn't occur by a bridge trying to continue when it
- should not. Also, when executing applications via applicationmap,
- make sure that the application is executed against the channel
- whose DTMF caused it to be fired off in the first place. (part
- 1/2 of #7090 - this is the only fix that will be applied to both
- 1.2 and /trunk) acunningham and blitzrage on testing...
-
-2006-05-20 19:50 +0000 [r29052] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: fix the possibility of writing one byte past
- the end of a buffer. (issue #7189, Mithraen)
-
-2006-05-20 02:35 +0000 [r28968] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: don't allow queue member devices to ring longer
- than the total queue timeout (issue #6423, reported and patched
- by bcnit)
-
-2006-05-20 02:31 +0000 [r28966] Russell Bryant <russell@digium.com>
-
- * apps/app_sms.c: fix a case where code made assumptions about how
- memory for variables is allocatted on the stack - this patch is
- slightly different than the one that went in for the trunk
-
-2006-05-20 00:55 +0000 [r28794-28896] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: don't try to predict where the compiler
- will place things on the stack... put them in the right place
- explicitly (issues #7029 and #7100, maybe others)
-
- * channels/chan_sip.c: use the specified 'subscribecontext' for a
- peer rather than the context found via the target domain (domain
- contexts are for calls, not for subscriptions) (issue #7122,
- reported by raarts)
-
-2006-05-19 19:18 +0000 [r28754-28790] Russell Bryant <russell@digium.com>
-
- * utils/smsq.c: fix the build of smsq with -Werror. I learned
- something new about format strings from this patch! (issue #7141,
- Mithraen)
-
- * asterisk.c: This explicit poll is only needed on mac. In fact, it
- breaks some systems such as some versions of Fedora, causing
- 'asterisk -rx' to never exit. This has been tested on systems
- showing the asterisk -rx problem, as well as other unaffected
- versions of linux, mac osx 10.4, and FreeBSD 6. (issue #7071)
-
-2006-05-19 17:04 +0000 [r28627-28698] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_zap.c: Make the minidle option actually exist as
- documented (issue #7159 reported by imran)
-
- * apps/app_voicemail.c: When forwarding messages use the context
- that the active voicemail user was found in. (issue #7010)
-
- * enum.c: Backport of fix for issue #6654 that was fixed in trunk
- but not here
-
- * apps/app_queue.c: Treat paused queue members as unreachable
- (issue #7127 reported by peterh)
-
-2006-05-18 20:43 +0000 [r28335-28384] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: fix up a few more places to find the SDP
- properly (fallout from fix for #7124)
-
- * channels/chan_sip.c: handle incoming multipart/mixed message
- bodies in SIP and find the SDP, if present (issue #7124 reported
- and patched by eborgstrom, but very different fix)
-
- * enum.c: use unsigned counters for handling answer/IE lengths
- while processing DNS results (issue #7174)
-
- * channels/chan_sip.c: support 'inactive' tag for SDP media streams
- (simple fix, proper fix will appear in 1.4 release) (issue #7130)
-
-2006-05-18 17:27 +0000 [r28257] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_hasnewvoicemail.c: Bug 7167 - HasNewVoicemail and
- VMCOUNT() didn't work when USE_ODBC_STORAGE was defined
-
-2006-05-18 16:31 +0000 [r28169-28212] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Return -1 on error in ODBC messagecount and
- 0 on success (issue #7133 reported by cfieldmtm)
-
- * apps/app_voicemail.c: Fix endless looping message by checking
- value of res before doing retries stuff. (issue #7140 reported by
- tanischen)
-
-2006-05-18 12:13 +0000 [r28125] Olle Johansson <oej@edvina.net>
-
- * apps/app_meetme.c: Video in meetme? Hmmm. Removed until we do
- have some code for it.
-
-2006-05-17 22:34 +0000 [r27973] Joshua Colp <jcolp@digium.com>
-
- * channels/chan_iax2.c: Fix codec priority stuff during
- authentication (issue #6194 reported by jkoopmann)
-
-2006-05-17 19:27 +0000 [r27927] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7176 - Crash in expire_register (We
- need to find out what's causing peer to be undefined, so this is
- just a bandaid, not a real fix)
-
-2006-05-17 17:07 +0000 [r27767-27847] Joshua Colp <jcolp@digium.com>
-
- * apps/app_voicemail.c: Priority jumping not working on VoiceMail
- app with new syntax (issue #7164 reported and fixed by
- alvaro_palma_aste)
-
- * apps/app_osplookup.c: OSPNext does not handle success/failure
- correctly (issue #7147 reported and fixed by eborgstrom)
-
-2006-05-17 09:21 +0000 [r27723] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: chan_sip did not use the TRANSFER_CONTEXT
- for transfers, like res_features. Now fixed.
-
-2006-05-17 02:19 +0000 [r27636] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 7125 - Fix race condition between
- resequencing and leaving a message
-
-2006-05-16 23:31 +0000 [r27594] Joshua Colp <jcolp@digium.com>
-
- * apps/app_dial.c: Inherit channel variables during call forwards
- when going through chan_local (issue #7095 reported by raarts)
-
-2006-05-16 20:05 +0000 [r27468] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: don't leak frames when deferring DTMF or dropping
- duplicate ANSWER frames (issue #7041, slightly different fix,
- reported/patched by clausf)
-
-2006-05-13 04:08 +0000 [r27093] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 7134 - File descriptor leak with ODBC
- storage of voicemail
-
-2006-05-11 23:02 +0000 [r27051] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_logic.c: Bug 7086 - pbx_checkcondition substitution,
- so that arbitrary strings are true (for regex)
-
-2006-05-11 09:05 +0000 [r26760-26773] Kevin P. Fleming <kpfleming@digium.com>
-
- * rtp.c: backport fix from trunk for bug #6934, ensuring that RTP
- mark bit is changed when SSRC changes
-
- * channels/chan_sip.c: ensure that we send a response to REGISTER
- requests that are successfully authenticated but contain invalid
- Contact URIs
-
-2006-05-09 14:18 +0000 [r26050-26090] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_sip.c, doc/README.variables: Add the appropriate
- jumping behavior that is the standard for 1.2.X to SIPGetHeader
- that is now deprecated in /trunk. #7111 (blitzrage!!!)
-
- * apps/app_voicemail.c: Correct memory leak in find_user_realtime
- #7118 (fnordian)
-
-2006-05-08 15:09 +0000 [r25608] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 7103 - mikma - The header is named
- "Require" - Don't reply to ACK (Not using patch against trunk)
-
-2006-05-08 14:12 +0000 [r25518-25563] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_agent.c: Don't show agents as available when they
- are in wrap-up time. #6726 (ZX81)
-
- * apps/app_queue.c: Make QueueStatusComplete event thread safe by
- wrapping it inside the queue lock clause already there. #7013
- (bziherl reporting)
-
- * apps/app_queue.c: Don't recheck valid_exit() after getting the
- result from say_position (which already checks it). Should
- prevent another loop if the caller hits digits during the
- position announcement. #6776 (tgj reporting)
-
-2006-05-08 11:16 +0000 [r25442] Joshua Colp <jcolp@digium.com>
-
- * res/res_features.c: Incorrect log statement when playing transfer
- sounds (issue #7008 reported and fixed by nathan)
-
-2006-05-07 13:38 +0000 [r25288-25322] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_meetme.c: Fix playback behavior to exit correctly when
- we receive a hangup during playback of the invalid pin message.
- #7091 (AntD reporting)
-
- * asterisk.c: Reset the value of ast_mainpid if we fork so future
- remote unix connections display the correct PID. #7098 (tzafrir
- reporting)
-
-2006-05-06 02:32 +0000 [r25015-25165] Russell Bryant <russell@digium.com>
-
- * frame.c: fix a problem where the frame's data pointer is
- overwritten by the newly allocated data buffer before the data
- can be copied from it. This is in the ast_frisolate() function
- which is rarely used. (issue #6732, stefankroon)
-
- * channels/chan_zap.c: ensure that the appropriate manager events
- are sent in all of the places where alarms are detected or
- cleared (issue #6866, flefoll)
-
- * channels/chan_h323.c: update chan_h323 to reflect the new
- prototype for rtp_set_peer (issue #6560, casper) This was fixed a
- couple months ago in the trunk, but never in 1.2.
-
-2006-05-05 20:44 +0000 [r25014] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_voicemail.c, include/asterisk/app.h, app.c: Voicemail
- fixes along with an API change approved by russellb to fix the
- bug(s). (jcollie and supczinskib) #7064
-
-2006-05-05 17:39 +0000 [r24837-24911] Russell Bryant <russell@digium.com>
-
- * apps/app_while.c, apps/app_macro.c: use pbx_checkcondition()
- instead of ast_true() to evaluate the condition for MacroIf and
- WhileIf (issue #7086)
-
-2006-05-04 16:27 +0000 [r24706] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_queue.c: Bug 7023 - reload should not unpause members
-
-2006-05-04 11:17 +0000 [r24567-24669] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_verbose.c: Make sure that only the "|" is a recognized
- delimiter for Verbose(), as the app documentation already
- specifies. #7080 (alessiof reporting)
-
- * apps/app_dial.c: Correct application documentation to make users
- aware that certain options cannot be used in conjunction with
- others. #6666 (chotaire)
-
-2006-05-03 18:31 +0000 [r24496] Russell Bryant <russell@digium.com>
-
- * redhat/asterisk.spec: fix up "make rpm" - don't reference the
- gzipped man page, because we don't store them compressed anymore
- - add some files that currently were not listed (issue #6837)
-
-2006-05-03 12:39 +0000 [r24381] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #7074 - Problem with long contact
- lines
-
-2006-05-02 19:39 +0000 [r24295] BJ Weschke <bweschke@btwtech.com>
-
- * file.c: Make certain ast_stopstream() sets the channel's stream
- members to NULL after closing them. #7067 (jcomellas)
-
-2006-05-02 02:12 +0000 [r24019-24097] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_privacy.c: Prompt does not request '#' to end input, so
- the application should not require it
-
- * apps/app_nbscat.c, apps/app_festival.c, apps/app_mp3.c,
- apps/app_zapras.c, asterisk.c, apps/app_externalivr.c,
- apps/app_ices.c, res/res_musiconhold.c,
- include/asterisk/options.h: Bug 6864 - drop realtime priority on
- ALL external processes
-
-2006-05-01 19:34 +0000 [r23985-23988] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_voicemail.c: Make sure that when someone 0's out while
- recording a msg and then chooses to DELETE the recorded file, the
- .txt file isn't left around by itself to cause problems later.
- #7061 (dimitripietro reporting, blitzrage confirmed)
-
-2006-05-01 15:12 +0000 [r23951] Russell Bryant <russell@digium.com>
-
- * pbx.c: add missing locking of the dialplan functions list in the
- "show functions" CLI command
-
-2006-05-01 10:45 +0000 [r23305-23899] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_skel.c: fix this to actually compile so people can learn
- from it
-
- * cdr/cdr_sqlite.c: eliminate compiler warning
-
- * channels/chan_iax2.c: remove a pointless comparison, since the
- buffer is smaller than the length being checked for
-
- * Makefile, editline/configure, cdr/Makefile, channels/Makefile,
- db1-ast/Makefile: allow top-level OPTIMIZE setting to affect
- builds in these subdirectories too
-
- * Makefile: let the compiler determine whether hardware or software
- floating point should be used (like we do in the editline
- subdirectory)
-
- * Makefile, apps/Makefile: remove extraneous -m64 flag that is not
- needed remove old 'look' target which is no longer needed (these
- are coming from Debian patches <G>)
-
- * editline/makelist: ensure that the script output is correctly
- generated when the system's character set does not use the
- English lowercase/uppercase character groups
-
- * Makefile: do installation in subdirs as a separate target (so
- external modules can use the Makefile more easily) generate final
- messages -after- running any post-install script that may be
- present
-
-2006-04-28 16:40 +0000 [r23176] Russell Bryant <russell@digium.com>
-
- * configs/zapata.conf.sample, configs/mgcp.conf.sample,
- configs/sip.conf.sample: note that group assignments must be from
- 0 to 63 (issue #7048)
-
-2006-04-27 19:11 +0000 [r22954] Joshua Colp <jcolp@digium.com>
-
- * apps/app_queue.c: Queue(somequeue,,,,) -> interpreted as
- Queue(somequeue,,,,0) (issue #7044 reported nathan fixed by
- jsmith - sort of)
-
-2006-04-27 16:12 +0000 [r22866] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: Fix buglet in channel reassignment on
- SETUP_ACK
-
-2006-04-26 19:18 +0000 [r22596] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_voicemail.c: do not allow for users to forward voicemail
- to themselves, patch from 7001
-
-2006-04-21 22:39 +0000 [r22112-22113] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channel.c: Bug 7004 - release all threads waiting on a condition
- prior to freeing it
-
-2006-04-19 21:10 +0000 [r21638] Kevin P. Fleming <kpfleming@digium.com>
-
- * contrib/scripts/safe_asterisk.8, contrib/scripts/safe_asterisk:
- support system-specific scripts in safe_asterisk, before starting
- Asterisk proper
-
-2006-04-19 18:43 +0000 [r21597] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * cdr/cdr_odbc.c: Bug 6553 - plug memory leaks when ODBC connection
- is down
-
-2006-04-18 23:31 +0000 [r21237] Kevin P. Fleming <kpfleming@digium.com>
-
- * pbx.c: properly handle brace-wrapped strings in variable/function
- references in the dialplan
-
-2006-04-18 06:26 +0000 [r20966-21037] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_random.c: Bug 6984 - off by one error in Random()
-
- * res/res_musiconhold.c: Bug 6544 - when we remove a music class,
- the thread servicing it should die
-
-2006-04-14 17:21 +0000 [r20034-20037] Kevin P. Fleming <kpfleming@digium.com>
-
- * sounds.txt: uncomment files that actually do exist (oops)
-
- * sounds.txt: update text to match actual prompts being distributed
- (thanks to Kinsey in the support department for reviewing all the
- prompts!)
-
-2006-04-13 20:37 +0000 [r19891] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 6947 - Allow vm broadcasts to more than
- 256 characters worth of mailboxes
-
-2006-04-13 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.7.1 released
-
-2006-04-13 17:40 +0000 [r19812] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_page.c: oops... let's not set a variable and then
- immediately overwrite it while assuming its old value will
- magically return
-
-2006-04-13 15:56 +0000 [r19768] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * pbx.c: Bug 6957 - variable names beginning with CALLERID weren't
- substituted correctly
-
-2006-04-12 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.7 released
-
-2006-04-11 22:39 +0000 [r19394-19397] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_dial.c: Bug 6490 - telco intercept should report
- NOANSWER instead of CHANUNAVAIL
-
- * apps/app_voicemail.c: Bug 6061 - Fix ODBC storage of VM on PGSQL
- and MSSQL
-
-2006-04-11 21:58 +0000 [r19353] Kevin P. Fleming <kpfleming@digium.com>
-
- * Makefile: don't create a 'voicemail' symlink in the sounds
- directory; app_voicemail has not needed it since January of 2005
- (issue #6613)
-
-2006-04-11 21:55 +0000 [r19351] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * asterisk.c: Bug 6097 - possible descriptor leak
-
-2006-04-11 21:50 +0000 [r19345-19348] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_page.c: don't call the originating device as part of the
- Page() operation (issue #6932)
-
- * channel.c: simplify spy queue flushing logic, and always force a
- flush when one side gets full, even if the other side is not
- empty (issue #6457)
-
- * pbx/pbx_config.c: don't destroy the entire dialplan during
- 'reload', just atomically replace it like 'extensions reload'
- does (issue #6047)
-
-2006-04-11 20:46 +0000 [r19303] Joshua Colp <joshnet@nbnet.nb.ca>
-
- * include/asterisk/linkedlists.h: Minor linked lists bug fix. When
- you're dealing with swapping entries around a lot it can cause a
- seg fault.
-
-2006-04-11 20:11 +0000 [r19301] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_dial.c: handle call time limit properly when warning is
- requested _after_ call would hae already ended (issue #6356)
-
-2006-04-11 01:05 +0000 [r18866-19008] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_voicemail.c, app.c: When using the silence detector in
- ast_play_and_record() and ast_play_and_prepend(), the truncation
- code never gets called to remove the detected silence, because
- the value of res is zero when control gets to that point. #6903
- w/some mods (softins)
-
- * res/res_features.c: Don't say that we can pass an 'exten'
- argument in the documentation of Park() when we really cannot.
- #6902 (opsys)
-
-2006-04-08 19:20 +0000 [r18436-18494] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 6914 - .txt file fails to rename on
- operator out
-
- * formats/format_jpeg.c: Bug 6913 - fix for possible buffer
- overflow
-
-2006-04-07 14:16 +0000 [r18250-18260] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: - Fix cause codes - Add cause code for
- incompatible formats
-
- * channels/chan_sip.c: - Fix possible minor memory leak in chan_sip
- - Return proper cause code on memory allocation error
-
-2006-04-06 22:15 +0000 [r18087-18089] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_meetme.c: fix typo
-
- * apps/app_meetme.c: small fix... don't try to check conference
- details if it couldn't be created or found
-
- * apps/app_meetme.c: don't try to support 'i' or 'r' options if
- chan_zap is not loaded, and warn the user when they attempt to
- use them (issue #6675) update application help text to more
- clearly define when Zaptel and chan_zap are required
-
-2006-04-06 17:24 +0000 [r17945] Russell Bryant <russell@digium.com>
-
- * apps/app_alarmreceiver.c: move continue out of block that checks
- verbose level (issue #6880)
-
-2006-04-06 17:00 +0000 [r17702-17905] Joshua Colp <joshnet@nbnet.nb.ca>
-
- * pbx.c: Unlock channel on failure so that ast_mutex_destroy
- doesn't throw a fit (issue #6647 reported by casper)
-
-2006-04-05 06:50 +0000 [r17335-17489] Olle Johansson <oej@edvina.net>
-
- * CREDITS, enum.c: Issue #6654: Enum crash on ADDRESS record,
- possibly bad record, but still a crash
-
- * channels/chan_zap.c: Issue #6878 - Unhide DNDstate manager events
- (thanks casper)
-
- * apps/app_queue.c: Issue #6882 - move "res=-1" out of verbosity
- block, minor code cleanups (casper)
-
-2006-04-04 15:24 +0000 [r17283] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_senddtmf.c: Adds documentation to show what the w flag.
- Patch from Ian Kinner at Digium.
-
-2006-04-03 20:38 +0000 [r17074-17150] Olle Johansson <oej@edvina.net>
-
- * configs/features.conf.sample: Issue 6870 - document that parking
- lots need to be numeric
-
- * channels/chan_sip.c: Issue #6848 take two - Use the tag provided
- by the SUBSCRIBE request when sending NOTIFY
-
- * channels/chan_sip.c: Ugly patch to avoid hangup causes in
- non-final responses
-
-2006-03-31 19:11 +0000 [r16744-16771] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: move a NULL check to before the first time
- the pointer is dereferenced (issue #6832)
-
- * channels/chan_iax2.c: fix the situation where bindport is
- specified but bindaddr is not (issue #6616)
-
-2006-03-31 18:24 +0000 [r16742] Kevin P. Fleming <kpfleming@digium.com>
-
- * pbx.c: ensure that hint watchers (subscribers) cannot be added or
- removed while the dialplan is being modified
-
-2006-03-30 22:56 +0000 [r16579-16581] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_sip.c: Bug 6853 - Manager fixes: 1) extra ActionID,
- 2) missing colon
-
- * asterisk.c: Bug 6849 - trivial typo fix
-
-2006-03-30 21:44 +0000 [r16534-16559] Joshua Colp <joshnet@nbnet.nb.ca>
-
- * codecs/gsm/Makefile: Add another check for 64-bit goodness (issue
- #6850 reported by evilbunny)
-
- * res/res_musiconhold.c: Do not exceed the array size for maximum
- allowed moh files. (issue #6842)
-
-2006-03-30 01:34 +0000 [r16303-16346] Olle Johansson <oej@edvina.net>
-
- * res/res_features.c: Set initial value on adsipark
-
- * apps/app_groupcount.c: Typo fix.
-
- * configs/extensions.conf.sample: Typo (Issue 6839, casper)
-
-2006-03-29 19:11 +0000 [r16082-16192] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/pbx.h, apps/app_stack.c, pbx.c: Bug 6830 - Let
- GosubIf work with the same conditions as a GotoIf (change in API
- approved by Russell)
-
- * pbx.c: Bug 6835 - Updates to GotoIf help text
-
-2006-03-29 04:15 +0000 [r16008] Russell Bryant <russell@digium.com>
-
- * strcompat.c: tell unsetenv for solaris to return the result of
- the setenv call
-
-2006-03-29 00:58 +0000 [r15898] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6823 - Portability issue with the
- registration port number patch from yesterday. Be compatible with
- more systems than OS/X :-) Thanks Rizzo for the advice.
-
-2006-03-29 00:32 +0000 [r15896] Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/linkedlists.h: ensure that list traversal loops
- which skip entries properly update the 'previous entry' pointer
- so when entries _are_ removed the list does not get damaged
-
-2006-03-28 20:22 +0000 [r15703-15743] Russell Bryant <russell@digium.com>
-
- * agi/Makefile, strcompat.c, astmm.c: backport astmm + sparc fixes
- from the trunk
-
- * channels/chan_iax2.c: fix Bus Error on sparc (issue #6354)
-
-2006-03-28 19:07 +0000 [r15699] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Fix breakage of NAT support for peers with
- qualify=yes. Thanks Damin for access to your system, sorry folks.
-
-2006-03-28 18:09 +0000 [r15658] Russell Bryant <russell@digium.com>
-
- * pbx/pbx_ael.c: fix the order in which for loops are expanded
- (issue #6810)
-
-2006-03-28 17:48 +0000 [r15615] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * contrib/init.d/rc.redhat.asterisk: Bug 6815 - Adding quotes to
- make bash happy
-
-2006-03-27 23:45 +0000 [r15366-15381] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6736 - Use flags for OPTION messages.
- Thanks Casper!
-
- * channels/chan_sip.c: Issue #6597 - sip show registry shows
- incorrect port
-
- * channels/chan_sip.c: Issue #6409 - Use "s" extension when there's
- no username in the URI
-
-2006-03-26 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.6 released
-
-2006-03-25 05:07 +0000 [r14821-14868] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * contrib/init.d/rc.redhat.asterisk: Bug 6601 - More configuration
- abilities for the RH init script
-
- * apps/app_voicemail.c: Fix incorrect size of zeroing (left over
- from when maxmsg was hardcoded at 100)
-
- * apps/app_voicemail.c: Bug 6783 - When context is specified,
- voicemail should look for mailboxes in that context
-
-2006-03-24 14:48 +0000 [r14704] Russell Bryant <russell@digium.com>
-
- * image.c: use the correct variable in an error message (issue
- #6791)
-
-2006-03-24 04:53 +0000 [r14610-14659] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_voicemail.c: Fix a typo in the app description
-
- * include/asterisk/sched.h: Doxygen comment typo corrections
-
-2006-03-23 21:51 +0000 [r14523] Joshua Colp <joshnet@nbnet.nb.ca>
-
- * res/res_features.c: Issue #6764 - Return BUSY signal when other
- party is busy at Attended Transfer (Reported by mnachev)
-
-2006-03-23 21:44 +0000 [r14522] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: Fix SETUP_ACK handling so that we change
- channels if so requested
-
-2006-03-23 20:43 +0000 [r14467] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_meetme.c: Bug #5884 - fix a possible race state in
- app_meetme when a channel has gone away and we are reading
- continuously for more frames. (mneuhauser)
-
-2006-03-23 20:13 +0000 [r14462] Russell Bryant <russell@digium.com>
-
- * apps/app_readfile.c: don't crash when asked to read from a file
- that doesn't exist (issue #6786)
-
-2006-03-22 22:18 +0000 [r14191-14276] Joshua Colp <joshnet@nbnet.nb.ca>
-
- * apps/app_voicemail.c: Fix a minor code issue
-
- * apps/app_voicemail.c: Issue #6781 - Verbose levels not enforced
- in app_voicemail (Reported by flobi)
-
- * include/asterisk/cdr.h, cdr.c: Issue #5918 - Disposition showing
- FAILED even though call is answered successfully (Reported by
- tracinet)
-
- * pbx.c: Issue #6780 - ast_pbx_outgoing_cdr_failed description fix.
- (Reported and fixed by casper)
-
-2006-03-22 09:10 +0000 [r14140] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6766 - fix ;user=phone functionality.
- (Reported by alein, fix by russell - thanks!)
-
-2006-03-21 18:59 +0000 [r13814-13964] Russell Bryant <russell@digium.com>
-
- * configs/features.conf.sample: add a note explaining how to set
- the DYNAMIC_FEATURES variable to allow the use of custom features
- (issue #6747)
-
- * res/res_features.c: fix crash when using the ParkAndAnnounce
- application. When using this application, there will be no peer
- channel to play the parking announcement to. (issue #6756)
-
- * funcs/func_strings.c: fix REGEX on strings that contain quotes
- (issue #6678)
-
- * sounds.txt: fix spelling of whiskey
-
- * apps/app_meetme.c: don't add conference participant if the user
- hangs up while recording their name (issue #6661)
-
- * sample.call: re-add the Account parameter to the sample call file
- since it's not really deprecated since the CDR function is no
- longer built in
-
-2006-03-21 06:24 +0000 [r13707-13748] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 6714 - Workaround to avoid retrieving
- incomplete voicemail message
-
- * editline/term.c: Do away with some warnings and fix some
- indentation
-
-2006-03-20 17:36 +0000 [r13634] Olle Johansson <oej@edvina.net>
-
- * channels/chan_iax2.c: Do not overwrite ANI if it's set by IE
- (sendani=yes in the peer)
-
-2006-03-19 09:59 +0000 [r13550] Russell Bryant <russell@digium.com>
-
- * apps/app_dial.c: revert the change made in revision 12927 in
- favor of keeping the original behavior of the option. The
- documentation has now been updated to reflect the actual
- behavior. (issue #6523)
-
-2006-03-19 09:25 +0000 [r13547] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Reset global_rtautoclear at sip reload
-
-2006-03-16 20:05 +0000 [r13279] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * ast_expr2.y, ast_expr2.c: Bug 6737 - Fix compile warning on OS X
-
-2006-03-16 17:58 +0000 [r13239] Olle Johansson <oej@edvina.net>
-
- * configs/sip.conf.sample: Issue #6690 - clarify progressinband
- default setting
-
-2006-03-16 17:42 +0000 [r13237] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: always use the callerid signalling method
- set in the zt_pvt strucutre as opposed to the last one read from
- the config file (issue #6734, with mods)
-
-2006-03-16 06:56 +0000 [r13197] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: To quote giant developers: "Oops". Thanks,
- Tony!
-
-2006-03-15 22:16 +0000 [r13161] Russell Bryant <russell@digium.com>
-
- * cdr.c: - remove some calculations that will always result in 0 -
- if a CDR was never started, don't try to calculate a duration and
- consider it failed
-
-2006-03-15 13:01 +0000 [r13026] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6728: Remove parameters to Event:
- header on SUBSCRIBE requests
-
-2006-03-14 18:41 +0000 [r12925-12927] Russell Bryant <russell@digium.com>
-
- * apps/app_dial.c: when using the G() option to Dial, fix sending
- the called channel to 1 priority beyond what was specified (issue
- #6523)
-
- * apps/app_queue.c: fix a problem with not loading realtime queue
- members by always reloading a realtime queue from the database
- even if it is found in the list (issue #6680)
-
-2006-03-12 19:26 +0000 [r12646] Russell Bryant <russell@digium.com>
-
- * pbx.c: add locking to protect the list of global dialplan
- variables
-
-2006-03-12 17:57 +0000 [r12577] Russell Bryant <russell@digium.com>
-
- * codecs/gsm/Makefile: fix build on parisc (issue #6704)
-
-2006-03-10 12:13 +0000 [r12477-12495] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #5937 - Make sure SIP CANCEL's are
- re-transmitted
-
- * channels/chan_sip.c: Issue #6576 - SIP_CODEC not used for early
- media (reported by gpapadop73)
-
-2006-03-08 10:51 +0000 [r12458] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue #6657 - Ignore 183 session progress
- without SDP
-
-2006-03-07 00:05 +0000 [r12161-12195] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_sip.c: Bug 6020 - Race condition where packet could
- be lost if first packet on list is acked
-
- * editline/np/vis.c, editline/readline.c: Bug 6664 - More fixes for
- Solaris
-
-2006-03-06 14:23 +0000 [r12036-12072] Olle Johansson <oej@edvina.net>
-
- * channel.c: Revert earlier change
-
- * channel.c: Fix for astmm compilation
-
-2006-03-06 02:32 +0000 [r11946] Russell Bryant <russell@digium.com>
-
- * configs/zapata.conf.sample: fix a typo in the description of the
- ringtimeout option
-
-2006-03-05 12:40 +0000 [r11849] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Clear page2 flags at reload too
-
-2006-03-04 11:45 +0000 [r11778] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_mixmonitor.c: Substitute variables in the post_process
- string (if it exists) before those variables could possibly
- disappear (channel hangup) #6462
-
-2006-03-03 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.5 released
-
-2006-03-03 00:38 +0000 [r11607-11635] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * Makefile: Bug 6638 - Use POSIX command for Solaris
-
- * build_tools/make_build_h: Bug 6638 - Change from a historic BSD
- command to a POSIX command for determining username
-
- * asterisk.c: Bug 6637 - Fixes for Solaris
-
- * Makefile: If debugging, the frame pointer is helpful
-
-2006-03-02 19:05 +0000 [r11528-11561] Russell Bryant <russell@digium.com>
-
- * res/res_monitor.c: fix inaccurate ack message to ChangeMonitor
- action (issue #6630)
-
- * asterisk.sgml: make the terminology used in the synopsis match
- the option description
-
- * asterisk.sgml: add the -L option to the synopsis on the man page
-
-2006-03-01 17:41 +0000 [r11479-11503] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * cdr/cdr_manager.c, cdr/cdr_tds.c, res/res_config_odbc.c,
- include/asterisk/cdr.h, cdr/cdr_pgsql.c, cdr/cdr_odbc.c, cdr.c:
- Bug 6615 - Fix 64bit conversion errors by using a long int
-
- * build_tools/make_svn_branch_name: Bug 6618 - Solaris
- compatibility fix
-
-2006-02-28 19:46 +0000 [r11382-11410] Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: fix the output that indicates whether
- qualify smoothing is on or not (issue #6608)
-
- * asterisk.c: adjust the keys directory when astvarlibdir is
- specified in asterisk.conf (issue #6602)
-
- * res/res_agi.c: add a missing newline in the agi app description
- (thanks wunderkin!)
-
-2006-02-27 15:20 +0000 [r11250-11281] Russell Bryant <russell@digium.com>
-
- * cli.c: don't try to print the help text for a CLI command when
- RESULT_SHOWUSAGE is returned if there is no help text available
- (issue #6604)
-
- * channels/chan_sip.c: fix finding realtime peers that are not
- dynamic by ip address (issue #6093)
-
- * channel.c: don't hang up the channel if its state is set to UP
- before we return from ast_call (issue #6569)
-
-2006-02-26 16:26 +0000 [r11165] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/logger.h, logger.c: Bug 5950 - reenable queue
- log rotation; also, eliminate redundant code
-
-2006-02-25 19:54 +0000 [r11120] Matt Frederickson <creslin@digium.com>
-
- * translate.c: Backport of fix to translation optimizations. Thanks
- again file!
-
-2006-02-25 05:08 +0000 [r11058-11089] Kevin P. Fleming <kpfleming@digium.com>
-
- * translate.c: factor the number of translation steps required into
- translation path decisions, so that equal cost paths that require
- fewer translations are preferred
-
- * translate.c: reformat code to fit guidelines remember which
- translation paths are multi-step paths
-
- * channel.c: ensure that spy frame queueing is able to deal with
- translation failing for any reason (issue #6546)
-
-2006-02-23 23:06 +0000 [r10952] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * Makefile: set PWD properly
-
-2006-02-23 14:57 +0000 [r10736-10863] Kevin P. Fleming <kpfleming@digium.com>
-
- * dnsmgr.c, include/asterisk/linkedlists.h: backport list handling
- fix from trunk (solves memory leak problem in cdr variables and
- device state watchers) remove unused variable to silence
- compiler warning
-
- * configs/iax.conf.sample: add comment warning people about trying
- to use hostnames/IPs in the sample config
-
-2006-02-20 23:01 +0000 [r10577] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * app.c: Would be nice to tell people to look in the right file to
- increase a constant
-
-2006-02-20 06:17 +0000 [r10511-10535] Mark Spencer <markster@digium.com>
-
- * channels/chan_sip.c: Handle ACKing properly (remove gratuitous
- -1)
-
- * channels/chan_iax2.c: Fix numerous places in jitter buffer where
- freed memory is referenced
-
-2006-02-19 18:29 +0000 [r10462-10487] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * formats/format_sln.c: Okay, fseek doesn't return an offset
-
- * apps/app_voicemail.c: Fix possible lack of initialization of
- useadsi
-
- * formats/format_sln.c: Bug 6539 - Division by two negates error
- flag
-
-2006-02-18 00:17 +0000 [r10409] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * app.c: Bug 6529 - memory leak in ast_play_and_prepend
-
-2006-02-17 01:55 +0000 [r10301-10368] Russell Bryant <russell@digium.com>
-
- * jitterbuf.c: fix incorrent index calculation for jitterbuffer
- history (issue #6517)
-
- * apps/app_voicemail.c: when executing the Directory application
- from voicemail and a context is not specified, use the "default"
- context, not the channel's current context (issue #6507)
-
-2006-02-15 01:21 +0000 [r10108-10137] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_agent.c: ensure that agents logged in via the
- manager interface are stored in the persistence database (related
- to issue #6301)
-
- * funcs/func_enum.c: handle longer ENUM lookup results (issue
- #6476)
-
- * res/res_agi.c: ensure that FastAGI launcher can handle system
- call interruption (issue #6449)
-
-2006-02-14 20:56 +0000 [r10021] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_meetme.c: bug fix from 6485 with musiconhold not being
- turned off by app_meetme
-
-2006-02-14 20:20 +0000 [r10018] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_queue.c: don't double-increment abandon counter for
- calls that are hung up while dialing members (issue #6289)
-
-2006-02-14 19:11 +0000 [r9990] Mark Spencer <markster@digium.com>
-
- * apps/app_meetme.c: Fix stopstream in menus (bug #6137)
-
-2006-02-14 18:50 +0000 [r9961-9964] BJ Weschke <bweschke@btwtech.com>
-
- * asterisk.c: #ifdef the include too.
-
- * asterisk.c: #ifdef'd the prctl fix to only try and compile on
- linux systems. Thanks rizzo for pointing this out.
-
-2006-02-14 18:30 +0000 [r9953-9958] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: when answering INVITE, don't send codecs the
- peer didn't offer (issue #6052)
-
- * rtp.c: revert yesterday's temporary fix for issue #6052
-
-2006-02-14 04:45 +0000 [r9861-9870] BJ Weschke <bweschke@btwtech.com>
-
- * asterisk.c: Fixed my silly backport error from r9861
-
- * asterisk.c: Merged changes from r9844 from /trunk. Make sure that
- PR_SET_DUMPABLE is set to make certain that we still dump core if
- Asterisk has setuid'd to run as non-root.
-
-2006-02-14 00:46 +0000 [r9818] Kevin P. Fleming <kpfleming@digium.com>
-
- * rtp.c: don't try to use peer's dynamic codec numbers, it leads to
- duplication (issue #6052)
-
-2006-02-13 17:37 +0000 [r9756] Josh Roberson <josh@asteriasgi.com>
-
- * apps/app_meetme.c: Don't set the formats before we stop
- indications. (issue #6380)
-
-2006-02-11 19:23 +0000 [r9581-9609] Russell Bryant <russell@digium.com>
-
- * channels/chan_mgcp.c, channels/chan_sip.c, pbx/pbx_dundi.c,
- channels/chan_iax2.c: fix memory leak from not destroying the
- scheduler context on module unload
-
- * apps/app_page.c: fix due to CDR changes
-
- * manager.c, pbx/pbx_spool.c, include/asterisk/channel.h,
- include/asterisk/pbx.h, include/asterisk/manager.h, channel.c,
- pbx.c: now that CDR is a loadable module, don't depend on it
- elsewhere (issue #6460)
-
-2006-02-11 15:22 +0000 [r9528] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c, cdr.c: clean up my mess from thread-starting
- change
-
-2006-02-11 06:29 +0000 [r9493] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_sip.c: kpfleming's fix from r9472 backported to 1.2
-
-2006-02-10 20:38 +0000 [r9404] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_mgcp.c, dnsmgr.c, channels/chan_sip.c,
- devicestate.c, channels/chan_modem.c, cdr.c: don't create monitor
- threads in detached mode, when we need to be able to
- pthread_join() them later if the module is unloaded (solve
- crash-on-unload problem for these channel modules)
-
-2006-02-09 21:10 +0000 [r9323-9326] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Revert behavior change from previous commit
- (fixes only)
-
- * apps/app_voicemail.c: Backport 5929 to 1.2
-
-2006-02-09 02:31 +0000 [r9246-9262] Russell Bryant <russell@digium.com>
-
- * apps/Makefile: add another location for postgresql headers (issue
- #6419)
-
- * channels/chan_iax2.c: reload peercontext on iax2 reload (issue
- #6442)
-
-2006-02-08 22:34 +0000 [r9233] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * cdr/Makefile: Leave it to RH/CentOS to put the freetds headers in
- a completely nonstandard location.
-
-2006-02-08 22:12 +0000 [r9232] Matt O'Gorman <mogorman@digium.com>
-
- * logger.c, channels/chan_oss.c: Make logger report
- error,warning,notice if logger.conf not found, also updated
- chan_oss to give correct error message if its config file is not
- found.
-
-2006-02-05 17:10 +0000 [r9156] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_macro.c: Bug 6176 - Fix race condition
-
-2006-02-02 18:37 +0000 [r9086] Kevin P. Fleming <kpfleming@digium.com>
-
- * Makefile: don't override ASTERISKVERSIONNUM to 000000 for non-svn
- builds
-
-2006-02-02 16:12 +0000 [r9073] Matt Frederickson <creslin@digium.com>
-
- * res/res_odbc.c: Fix for (#6309), potential (highly unlikely)
- memory leak in res_odbc
-
-2006-01-30 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.4 Released
-
-2006-01-30 17:08 +0000 [r8905] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_zap.c: disable buggy PRI user-user code until it
- can be fixed
-
-2006-01-28 13:52 +0000 [r8808] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 6182 - Don't remove scheduled event
- until it's really done. (reported by malverian)
-
-2006-01-27 08:02 +0000 [r8785] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 6362 - Register without Contact: and
- Expires: fails (reporter: op)
-
-2006-01-27 00:52 +0000 [r8758] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * ast_expr2.h, ast_expr2f.c, ast_expr2.c: Bug 6072 - Revisions to
- the source bison and flex files don't auto-regenerate these files
-
-2006-01-26 19:42 +0000 [r8729] Russell Bryant <russell@digium.com>
-
- * channels/chan_zap.c: fix problem with dtmf on e&m (issue #6364)
-
-2006-01-26 14:39 +0000 [r8710] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 5898: Registrations does not get
- deleted if there's an active SIP dialog
-
-2006-01-25 19:14 +0000 [r8666-8677] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: don't call ast_update_realtime with
- uninitialized variables if we get a registration with an expirey
- of 0 seconds (issue #6173)
-
- * channels/chan_features.c: fix memory leak (inspired by issue
- #6351)
-
-2006-01-25 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.3 Released
-
-2006-01-25 09:46 +0000 [r8632] Olle Johansson <oej@edvina.net>
-
- * channel.c: Issue #6439 - the "timebomb" bug. Patch by Markster
- over GPRS
-
-2006-01-25 05:38 +0000 [r8619] Russell Bryant <russell@digium.com>
-
- * utils/astman.c: don't leak almost 200 bytes for each new channel
- (issue #6330)
-
-2006-01-25 01:50 +0000 [r8608] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_dial.c: ensure hangup cause code is handled properly
- when channel does not return a frame (issue #6346)
-
-2006-01-24 22:55 +0000 [r8600] Russell Bryant <russell@digium.com>
-
- * asterisk.c: completely arbitrary whitespace change for testing
- something with svnmerge ...
-
-2006-01-24 22:32 +0000 [r8588] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: ensure that channel cannot become zombie after we
- check but before we try to start indications
-
-2006-01-24 20:37 +0000 [r8573] Matt Frederickson <creslin@digium.com>
-
- * channels/chan_zap.c: Backport fix for #6229, hangup on polarity
- reversal
-
-2006-01-24 19:21 +0000 [r8537-8562] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Issue 6114: Don't hangup on BYE/ALSO with no
- channel.
-
- * channels/chan_sip.c: Issue #6308 - never send response to ACK.
- (Reported by whiskerp)
-
-2006-01-22 19:03 +0000 [r8437-8445] Russell Bryant <russell@digium.com>
-
- * apps/app_queue.c: fix memory leak from not freeing the queue
- member list when freeing an old queue
-
- * channel.c: fix MixMonitor crash (issue #6321, probably others)
-
-2006-01-22 15:13 +0000 [r8433] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_sip.c: Bug fix: Correct some scenarios where
- CALL_LIMIT could not be getting adjusted properly allowing
- chan_sip to send calls when it really shouldn't. Bug #6111
-
-2006-01-22 08:52 +0000 [r8429] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_sip.c: Bug 6281 - Cannot set more than a single
- header with SIPAddHeader
-
-2006-01-22 02:05 +0000 [r8412-8418] Russell Bryant <russell@digium.com>
-
- * pbx.c: add a modified fix to prevent writing outside of the
- provided workspace when calculating a substring (issue #6271)
-
- * pbx.c: temporarily revert substring fix pending the result of the
- discussion in issue #6271
-
- * pbx.c: prevent the possibility of writing outside of the
- available workspace (issue #6271)
-
-2006-01-21 18:29 +0000 [r8394] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_queue.c: Bug 5936 - AddQueueMember fails on realtime
- queue, if queue not yet loaded
-
-2006-01-20 18:34 +0000 [r8347] Russell Bryant <russell@digium.com>
-
- * apps/app_queue.c: fix invalid value of prev_q (issue #6302)
-
-2006-01-20 01:00 +0000 [r8320] Matt O'Gorman <mogorman@digium.com>
-
- * channels/chan_iax2.c: solved problem with delayreject and iax
- trunking bug 4291
-
-2006-01-19 19:40 +0000 [r8281] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Enable "musicclass" setting for sip peers as
- per the config sample.
-
-2006-01-19 19:14 +0000 [r8276] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * ast_expr2.y, ast_expr2.fl: Bug 6072 - Memory leaks in the
- expression parser
-
-2006-01-19 04:56 +0000 [r8232-8242] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: fix Message-Account header to use the ip
- address if the fromdomain isn't set (issue #6278)
-
- * apps/app_milliwatt.c: fix a seg fault due to assuming that space
- gets allocatted on the stack in the same order that we declare
- the variables (issue #6290)
-
-2006-01-18 21:02 +0000 [r8194] Matt O'Gorman <mogorman@digium.com>
-
- * apps/app_meetme.c: Solves issue with the login proccess in meetme
- patch from 6136
-
-2006-01-18 02:49 +0000 [r8173] Russell Bryant <russell@digium.com>
-
- * ChangeLog (removed): remove ChangeLog from the 1.2 branch. It
- will only be present in the tags.
-
-2006-01-18 Russell Bryant <russell@digium.com>
-
- * Asterisk 1.2.2 Released
-
-2006-01-18 00:47 +0000 [r8140-8162] Matt O'Gorman <mogorman@digium.com>
-
- * loader.c: Changed order of autoload so that pbx_ comes before
- channels, and in doing so cause bug 6002 to not be an issue
-
- * apps/app_festival.c: Stop any generators running on a channel
- when festival is called as described in 5996
-
-2006-01-17 18:29 +0000 [r8134] Matt Frederickson <creslin@digium.com>
-
- * res/res_features.c: Backport of fix for #6094
-
-2006-01-17 16:55 +0000 [r8124] Matt O'Gorman <mogorman@digium.com>
-
- * logger.c: Fixed code ordering of logger_init and queue_log_init
- bug 6263
-
-2006-01-17 13:11 +0000 [r8112-8122] Kevin P. Fleming <kpfleming@digium.com>
-
- * asterisk.c: update CLI copyright notice
-
- * asterisk.c: do rlimit check _after_ reading config file, in case
- 'dumpcore' is specified there
-
-2006-01-14 19:06 +0000 [r8074] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * funcs/func_strings.c: Bug 6238 - Fix segfault when delimiter not
- specified
-
-2006-01-13 06:07 +0000 [r8047] Russell Bryant <russell@digium.com>
-
- * channels/chan_agent.c: fix spelling errors (issue #6227)
-
-2006-01-12 06:14 +0000 [r7999] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c, configs/voicemail.conf.sample: Bug 6211 -
- Add option deletevoicemail as equivalent to option delete for
- Realtime
-
-2006-01-11 19:08 +0000 [r7965-7986] Russell Bryant <russell@digium.com>
-
- * channels/chan_agent.c: move variable to correct scope (issue
- #6197)
-
- * apps/app_voicemail.c: fix temp greetings with ODBC storage (issue
- #6078)
-
- * channels/chan_sip.c: fix mem leak on module unload (issue #6190)
-
- * app.c: don't override an error condition that occurred when
- acting on the primary channel when stopping the autoservice on
- the peer channel. (from issue #6087)
-
- * translate.c: lock list of translators *before* recalculating the
- translation matrix
-
-2006-01-11 04:38 +0000 [r7963] Matt O'Gorman <mogorman@digium.com>
-
- * channel.c: Minor typo refrenced in 6191
-
-2006-01-11 04:19 +0000 [r7957-7960] Russell Bryant <russell@digium.com>
-
- * pbx.c: fix locking error - lock instead of unlock
-
- * apps/app_dial.c: fix a little typo
-
-2006-01-11 01:30 +0000 [r7955] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 6192 - behave correctly when mailbox is
- specified as argument
-
-2006-01-10 08:48 +0000 [r7939] Olle Johansson <oej@edvina.net>
-
- * doc/README.cdr: - Adding reference to README.tds - Reformatting
- table
-
-2006-01-09 22:48 +0000 [r7917] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: re-initialize _all_ sequence numbers when
- transfer completes
-
-2006-01-09 22:07 +0000 [r7915] Russell Bryant <russell@digium.com>
-
- * file.c: add missing unlock (issue #6112)
-
-2006-01-09 20:08 +0000 [r7904-7908] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * pbx/pbx_spool.c: Bug 6157 - Memory leak
-
- * doc/README.variables: Update variable documentation to match the
- code
-
-2006-01-09 18:11 +0000 [r7898-7900] Kevin P. Fleming <kpfleming@digium.com>
-
- * asterisk.c: commit user/group-related changes from trunk
-
- * db.c: backport fix from revision 7856 of trunk
-
- * apps/app_voicemail.c: fix breakage introduced in revision 7871
-
-2006-01-09 05:11 +0000 [r7870-7871] Russell Bryant <russell@digium.com>
-
- * apps/app_voicemail.c: fix seg fault when using greek syntax in
- VoicemMailMain (issue #6142)
-
- * manager.c: backport fix for unnecessary unlock (issue #6171)
-
-2006-01-07 07:27 +0000 [r7848] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * pbx/pbx_spool.c: Bug 6156 - catch all threading errors, not just
- simple failure
-
-2006-01-06 00:34 +0000 [r7831] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * pbx/pbx_config.c: Dumb error messages - "Context 'context'
- already included in 'in' context"
-
-2006-01-06 00:21 +0000 [r7829] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_agent.c: update agent persistence when an agent
- gets logged off by autologoff
-
-2006-01-05 23:53 +0000 [r7827] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/strings.h: Bug 6076 - Fix documentation of
- ast_trim_blank return value
-
-2006-01-05 23:49 +0000 [r7825] Kevin P. Fleming <kpfleming@digium.com>
-
- * channel.c: eliminate rounding errors that caused call time limits
- to be inaccurate (issue #5913) round 'time left' reported during
- call limit warnings up to sound more accurate
-
-2006-01-05 23:07 +0000 [r7823] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * res/res_features.c: Bug 6081 - fix for memory leak, formatting
- fixes
-
-2006-01-05 20:52 +0000 [r7819] Kevin P. Fleming <kpfleming@digium.com>
-
- * formats/format_pcm.c, formats/format_pcm_alaw.c: ensure that
- variable is initialized
-
-2006-01-05 09:13 +0000 [r7812] Olle Johansson <oej@edvina.net>
-
- * res/res_features.c: Fix copyright of changed file
-
-2006-01-05 00:58 +0000 [r7799-7809] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_agent.c: send device state updates for auto-logoff
- of agents as well
-
- * formats/format_pcm.c, formats/format_pcm_alaw.c: doh... fseek()
- has no useful return value
-
- * formats/format_pcm.c, formats/format_pcm_alaw.c: use proper
- fwrite() parameters and return value
-
- * formats/format_pcm.c, formats/format_pcm_alaw.c: return properly
- after extending file
-
- * formats/format_pcm.c, formats/format_pcm_alaw.c: ensure that
- ulaw/alaw sound files are filled with silence when extended (not
- zeroes)
-
- * channel.c: make monitoring more tolerant of peers that deliver
- frames in bursts
-
-2006-01-04 21:46 +0000 [r7792-7795] Olle Johansson <oej@edvina.net>
-
- * res/res_features.c: Issue #5980: Removing extra CR+LF in manager
- events - needs port to trunk
-
- * channels/chan_sip.c: Fixing typo in XML for video updates.
-
-2006-01-04 07:06 +0000 [r7773] Russell Bryant <russell@digium.com>
-
- * funcs/func_moh.c: use a more correct way of determining the size
- of the destination buffer
-
-2006-01-04 05:27 +0000 [r7771] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_privacy.c: Fix the 'if' clause to be true under the
- right conditions. Bug #6126
-
-2006-01-03 20:22 +0000 [r7746] Kevin P. Fleming <kpfleming@digium.com>
-
- * ast_expr.y (removed): remove unused 'old' expression parser
-
-2006-01-03 18:15 +0000 [r7743] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_stack.c: Bug 6121 - typo in application description
-
-2006-01-03 17:24 +0000 [r7736-7740] Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/chanspy.h, apps/app_chanspy.c,
- apps/app_mixmonitor.c, channel.c: revert incorrect fix for bug
- #6048 from revision 7709 put in correct (simpler) fix add doxygen
- docs for channel spy 'state' values
-
- * channels/chan_sip.c: backport rport scanning fix from trunk (bug
- #6071)
-
- * ast_expr2f.c, ast_expr2.fl: don't leak memory for (most)
- expression evaluations
-
-2006-01-02 07:31 +0000 [r7709] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_mixmonitor.c: Bug 6084 - MixMonitor after a 'cli stop
- monitor' deadlocks
-
-2006-01-02 02:04 +0000 [r7706] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_sip.c, channels/chan_iax2.c: Fix compiler warnings.
-
-2005-12-30 14:54 +0000 [r7677] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channel.c: Bug 6091 - Fix race condition around uniqueid
-
-2005-12-28 17:35 +0000 [r7663-7665] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: fix memory leak in build_rpid (issue #6070)
-
- * apps/app_chanspy.c: backport fix for permissions of created
- recordings (issue #6067)
-
-2005-12-27 00:07 +0000 [r7641] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_zap.c: backport fix to ensure that DSP is never
- enabled on pseudo channels
-
-2005-12-26 20:32 +0000 [r7637] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * cdr/cdr_tds.c: Remove copy of code in libc, preferring code in
- utils.c (public domain code)
-
-2005-12-26 18:19 +0000 [r7634] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c, channels/chan_agent.c, apps/app_sms.c,
- asterisk.c, config.c, pbx/pbx_dundi.c, apps/app_externalivr.c,
- apps/app_queue.c, channels/chan_iax2.c, cli.c,
- apps/app_chanspy.c, res/res_monitor.c: cast time_t to an int in
- printf/scanf (issue #5635)
-
-2005-12-23 06:38 +0000 [r7608] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_hasnewvoicemail.c: Bug 6051 - VMCOUNT should work as
- documented and count all, not quit after finding 1
-
-2005-12-23 03:01 +0000 [r7606] Kevin P. Fleming <kpfleming@digium.com>
-
- * asterisk.c: add license reference to copyright notice displayed
- when CLI session begins add 'show warranty' and 'show license'
- CLI commands (still need a complete list of non-GPL components
- included in Asterisk)
-
-2005-12-23 00:00 +0000 [r7605] BJ Weschke <bweschke@btwtech.com>
-
- * apps/app_waitforsilence.c: Another app documentation tweak.
-
-2005-12-22 22:04 +0000 [r7601] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 6050 SQL requires the use of single
- ticks to delimit values, not quotes
-
-2005-12-22 20:36 +0000 [r7595-7599] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c, configs/sip.conf.sample: revert changes to
- videosupport to allow per-peer setting, since it isn't quite
- complete and there is not an obvious fix at this point
-
- * channels/chan_sip.c: remove stray unlock (issue #5955)
-
-2005-12-21 22:23 +0000 [r7586] Josh Roberson <josh@asteriasgi.com>
-
- * channels/chan_sip.c: Actually put in the per-peer settings for
- sip video, as they didn't make it in at astricon somehow, and
- I've been too busy up until now to redo it.
-
-2005-12-21 20:01 +0000 [r7582] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * channels/chan_alsa.c: Allow a chan_alsa that failed to open sound
- devices to be unloaded.
-
-2005-12-21 19:53 +0000 [r7580] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_agent.c: Bug #6040 - Documentation correction
-
-2005-12-21 19:23 +0000 [r7577] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * pbx/pbx_ael.c: Bug 5777 - Remove parentheses on Goto in AEL, so
- that it parses correctly
-
-2005-12-20 20:21 +0000 [r7550-7557] Russell Bryant <russell@digium.com>
-
- * res/res_agi.c: check array bounds when parsing arguments to AGI
- (issue #5868)
-
- * channels/chan_iax2.c: backport fix for reloading peer context
- (issue #6007)
-
- * apps/app_directed_pickup.c: backport fix for segfault on directed
- pickup when no CDR is available (issue #5998)
-
-2005-12-20 12:58 +0000 [r7546] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_meetme.c: backport fix for larger-than-20ms-frames from
- trunk (bug #5697)
-
-2005-12-19 23:47 +0000 [r7529] Russell Bryant <russell@digium.com>
-
- * channels/chan_sip.c: I messed up and accidently committed this to
- the trunk first ... - add note on required values of sip_methods
- struct - remove duplicate function prototype - remove duplicate
- ast_mutex_lock (issue #6025)
-
-2005-12-19 19:06 +0000 [r7521-7523] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * file.c: Bug 5988 - record append option not working
-
- * cdr.c: Bug 6026 - segfault for the sequence NoCDR(),
- SetAMAFlags()
-
-2005-12-17 18:55 +0000 [r7517-7519] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * doc/README.ael: Document that curley braces must be on the same
- line as the keyword.
-
- * apps/app_chanspy.c: Bug 6009 - off by one error
-
-2005-12-17 03:59 +0000 [r7510-7515] Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c: Max-Forwards headers must only be present on
- requests, not responses
-
- * channels/chan_sip.c: forcibly expire previous subscriptions from
- a peer when they resubscribe (keeps them from building up and
- waiting for expiration, and stops us sending unwanted NOTIFY
- messages to devices)
-
- * build_tools/make_svn_branch_name: fix some buglet when building
- team branch version strings
-
-2005-12-17 01:02 +0000 [r7508] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/linkedlists.h: We want to check the previous
- value, not the current value (which was just changed).
-
-2005-12-16 00:49 +0000 [r7497] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_cut.c: First field is truncated
-
-2005-12-15 10:52 +0000 [r7490] Christian Richter <christian.richter@beronet.com>
-
- * doc/README.misdn, channels/misdn/mISDNuser.patch (added),
- channels/misdn/isdn_lib_intern.h, channels/misdn/mISDN.patch
- (added), channels/misdn/isdn_lib.h, channels/chan_misdn.c,
- channels/misdn/Makefile, channels/misdn/chan_misdn_config.h,
- channels/misdn/ie.c, channels/chan_misdn_config.c,
- channels/misdn/isdn_msg_parser.c, channels/Makefile,
- channels/misdn/isdn_lib.c: * Added mISDN/mISDNuser Echo cancel
- Patch * Fixed Makefiles so that chan_misdn can be compiled again
- * added some hints, that mISDN cannot be compiled against gcc-4,
- SMP, Spinlock Debug * fixed some Minor issues in chan_misdn,
- regarding Type Of Number and Presentation
-
-2005-12-15 02:51 +0000 [r7482] BJ Weschke <bweschke@btwtech.com>
-
- * channel.c: Bug #6003 - Don't free the channel structure until
- after having sent the manager event.
-
-2005-12-13 18:54 +0000 [r7435-7470] Kevin P. Fleming <kpfleming@digium.com>
-
- * doc/README.variables: clarify substring documentation
-
- * utils.c: correct broken math in tvfix() for timestamp values over
- one million
-
- * apps/app_dial.c: restore ability of caller to hangup calls that
- are still ringing (issue #5839)
-
- * channels/chan_sip.c, pbx.c: ensure that hangups while incoming
- calls are in early state are handled properly (issue #5919)
-
- * channels/chan_agent.c: only report AGENT_IDLE for callback mode
- agents when they are actually idle (issue #5902)
-
- * app.c: use the stream's current point when pausing/unpausing,
- instead of elapsed time (which doesn't work when the stream has
- been skipped forward or backward) (issue #5897)
-
- * apps/app_externalivr.c: set all the child file descriptors to
- non-blocking so that we don't hang if the child fails to send a
- newline-terminated command or error message
-
-2005-12-12 17:19 +0000 [r7433] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/linkedlists.h: Typo
-
-2005-12-11 06:08 +0000 [r7430] Russell Bryant <russell@digium.com>
-
- * utils/astman.c: silence a couple of compiler warnings about
- pointer signedness
-
-2005-12-11 01:26 +0000 [r7427-7429] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * include/asterisk/linkedlists.h: Bug 5965 - major bug in
- AST_LIST_REMOVE
-
- * apps/app_voicemail.c: Bug 5967
-
-2005-12-10 18:10 +0000 [r7425] BJ Weschke <bweschke@btwtech.com>
-
- * channels/chan_zap.c: Bug #5877 Make sure the digit string from
- E&M wink DNIS collection is properly null terminated as it grows.
-
-2005-12-08 23:45 +0000 [r7404-7406] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 5960
-
- * configs/res_odbc.conf.sample: Documenting two keywords that were
- previously missing
-
-2005-12-08 01:05 +0000 [r7382-7386] Kevin P. Fleming <kpfleming@digium.com>
-
- * pbx.c: initialize the buffer before using it...
-
- * pbx.c: ensure that hints are allowed to use global variable
- references
-
-2005-12-06 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.1 Released
-
-2005-12-05 06:47 +0000 [r7335-7340] Russell Bryant <russell@digium.com>
-
- * Makefile: remove ASTERISKVERSIONNUM from the version string given
- to doxygen
-
- * apps/app_queue.c: don't delete dynamic queue members when
- reloading the static members from a realtime database (issue
- #5922)
-
- * channels/chan_sip.c: fix the order of arguments to an error
- message (issue #5927)
-
-2005-12-04 18:03 +0000 [r7329] Kevin P. Fleming <kpfleming@digium.com>
-
- * build_tools/make_svn_branch_name: use a more efficient way to get
- the revision number, that will also report if the working copy
- contains uncommitted modifications
-
-2005-12-03 19:55 +0000 [r7310] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * apps/app_voicemail.c: Bug 5925: check for "Unknown", as that's
- what app_voicemail puts into the field for Unknown callerid Also,
- remove useless res checks (initialized to 0; never set)
-
-2005-12-03 01:24 +0000 [r7299] Olle Johansson <oej@edvina.net>
-
- * configs/sip.conf.sample: Documenting the default registerattempts
- setting as 0, continue hammering the server for ever and ever ;-)
-
-2005-12-02 21:12 +0000 [r7285] Tilghman Lesher <tilghman@mail.jeffandtilghman.com>
-
- * contrib/init.d/rc.debian.asterisk,
- contrib/init.d/rc.mandrake.asterisk,
- contrib/init.d/rc.redhat.asterisk,
- contrib/init.d/rc.gentoo.asterisk,
- contrib/init.d/rc.mandrake.zaptel,
- contrib/init.d/rc.slackware.asterisk: Turn on executable bits for
- startup scripts, and fix bash var interpolation for Mandrake
-
-2005-12-02 00:52 +0000 [r7275] Olle Johansson <oej@edvina.net>
-
- * channels/chan_sip.c: Bug #5907. Improve SIP INFO DTMF debugging
- output. (1.2 & Trunk)
-
-2005-12-02 00:51 +0000 [r7266-7274] Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_page.c, pbx.c: inherit channel variables into channels
- created by Page() application (issue #5888)
-
- * apps/app_voicemail.c, configs/voicemail.conf.sample, UPGRADE.txt:
- allow previous context-searching behavior to be used if desired
- (issue #5899)
-
- * apps/app_voicemail.c: properly handle password changes when
- mailbox is last line of config file and not followed by a newline
- (issue #5870) reformat password changing code to conform to
- coding guidelines (issue #5870)
-
- * channels/chan_agent.c: protect agent_bridgedchannel() from
- segfaulting when there is no bridged channel (issue #5879)
-
- * channels/chan_local.c: allow variables to exist on both 'halves'
- of the Local channel (issue #5810)
-
- * apps/app_festival.c: don't block waiting for the Festival server
- forever when it goes away (issue #5882)
-
- * channel.c: ensure channel's scheduling context is freed (issue
- #5788)
-
- * Makefile, patches (removed): Makefile 'update' target now
- supports updating from Subversion repositories (issue #5875)
- remove support for 'patches' subdirectory, it's no longer useful
-
-2005-12-01 23:18 +0000 [r7261-7265] Olle Johansson <oej@edvina.net>
-
- * doc/README.misdn: Changing bug report address to the Asterisk
- issue tracker
-
- * doc/README.jitterbuffer, doc/README.realtime: Removing references
- to 1.1dev, replacing with 1.2, in documentation files.
-
- * doc/README.misdn: Fixing some spelling errors, as well as
- changing "cvs" to "subversion" in misdn documentation.
-
-2005-12-01 19:25 +0000 [r7257] Kevin P. Fleming <kpfleming@digium.com>
-
- * build_tools/make_svn_branch_name: ensure that 'svn info' output
- is in the expected language for the script to parse (issue #5880)
-
-2005-12-01 02:33 +0000 [r7228-7251] Russell Bryant <russell@digium.com>
-
- * apps/app_externalivr.c: use ast_app_separate_args to split
- arguments (issue #5686)
-
- * apps/app_queue.c: fix queue weight feature - compare member
- interfaces instead of pointers to the members, since each queue
- has its own list of members. (issue #5863)
-
- * build_tools/make_svn_branch_name: use '=' instead of '==' for
- string comparisons. /bin/bash is ok with this, but /bin/sh is
- not. (issue #5885)
-
- * redhat/asterisk (removed), Makefile: remove outdated redhat init
- script and provide the updated one in 'make rpm' (issue #5786)
-
- * contrib/init.d/rc.debian.asterisk,
- contrib/init.d/rc.redhat.asterisk: Comment out LD_ASSUME_KERNEL
- by default. Print error messages if the asterisk executable or
- the asterisk configuration directory are not found. (issue #5785,
- #5708)
-
- * apps/app_dial.c: fix DIALEDTIME when call has not been answered
- (issue #5862)
-
- * rtp.c: do not allow an rtp message with zero type (issue #5749)
-
- * pbx.c: fix hint case sensitivity (issue #5856)
-
- * configs/sip.conf.sample: add description of the "fromdomain"
- option (issue #5874)
-
-2005-11-30 03:52 +0000 [r7227] Josh Roberson <josh@asteriasgi.com>
-
- * apps/app_voicemail.c, UPGRADE.txt, ChangeLog: backport fix from
- trunk
-
-2005-11-30 03:37 +0000 [r7219-7226] Kevin P. Fleming <kpfleming@digium.com>
-
- * doc/cdr.txt, doc/CODING-GUIDELINES, include/asterisk.h,
- doc/README.mp3: remove remaining CVS references
-
- * channel.c: port memory leak fix from rev 7223 in trunk
-
- * include/asterisk/lock.h: do the multiple-lock check for cond_wait
- properly...
-
-2005-11-29 06:12 +0000 [r7216-7218] Russell Bryant <russell@digium.com>
-
- * apps/app_cut.c: print an error message if invalid arguments are
- specified
-
- * apps/app_skel.c: fix a couple of typos and a buglet
-
-2005-11-29 01:25 +0000 [r7199-7213] Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/lock.h: if the lock protected a pthread_cond is
- held recursively, warn before waiting onthe condition
-
- * Makefile, build_tools/make_svn_branch_name (added): port version
- string computation from trunk
-
- * / (added): branch renames remove unneeded branches
-
-2005-11-29 Josh Roberson <josh@asteriasgi.com>
-
- * apps/app_voicemail.c: Only look in 'default' context when no context defined to VoiceMailMain(). (issue #5887)
-
-2005-11-25 Russell Bryant <russell@digium.com>
-
- * apps/app_dial.c: Properly duplicate the string for ANI (issue #5850)
-
-2005-11-23 Russell Bryant <russell@digium.com>
-
- * configs/voicemail.conf.sample: Add note to indicate that #include should not be used for this file. (issue #5828)
-
- * indications.c: Fix spelling of "cadence", allowing the old misspelling for backwards compatability. (issue #5826)
- * configs/indications.conf.sample: Fix spelling of "cadence", allowing the old misspelling for backwards compatability. (issue #5826)
- * include/asterisk/indications.h: Fix spelling of "cadence", allowing the old misspelling for backwards compatability. (issue #5826)
- * res/res_indications.c: Fix spelling of "cadence", allowing the old misspelling for backwards compatability. (issue #5826)
-
- * apps/app_voicemail.c: Remove left over "yay!" debugging message. (issue #5829)
-
-2005-11-21 Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_cut.c: remove unnecessary include that causes spurious rebuilding
-
- * channels/chan_sip.c (build_peer): ensure that case changes made to peer names are not ignored during reload operations
- (build_peer): when a peer is changed from dynamic to static mode, reset the default port number if no other has been specified
-
- * channels/chan_iax2.c (build_peer and build_user): ensure that case changes made to peer/user names are not ignored during reload operations
- (build_peer): when a peer is changed from dynamic to static mode, reset the default port number if no other has been specified
-
-2005-11-21 Russell Bryant <russell@digium.com>
-
- * Makefile: Revert previous change for Darwin.
-
- * apps/app_osplookup.c: Properly populate the number of results. (issue #5789)
-
- * Makefile: Don't hard-code that poll functionality needs to be provided on Darwin.
- * apps/Makefile: Fix incorrect portion of the patch to fix 'make install' on Solaris.
-
- * channels/chan_iax2.c (iax2_getpeername): Return non-zero to indicate that a peer was found when using realtime (issue #5815)
-
-2005-11-20 Russell Bryant <russell@digium.com>
-
- * Makefile apps/Makefile: Fix 'make install' for Solaris. (issue #5775)
-
- * apps/app_record.c: Don't leak a frame if writing it to the file fails. (issue #5787)
-
- * Makefile: Create the monitor spool directory when the other spool directories are created.
-
- * channels/chan_sip.c channels/chan_iax2.c: Change warning messages about the number of scheduled events happening all at once to debug messages. (issue #5794)
-
- * pbx/pbx_spool.c: Fix crash when a value is not specified with a variable on a Set: line in a call file. (issue #5806)
-
- * apps/app_meetme.c: Fix the 'X' option to the MeetMe application. (issue #5773)
-
- * apps/app_voicemail.c: Correct the use of a mailbox entered by the calling party instead of indicated as an argument to the Voicemail application. (issue #5774)
-
- * apps/app_controlplayback.c: Fix logic in checking for success when jumping to priority n+101.
- * apps/app_md5.c: Fix logic in checking for success when jumping to priority n+101.
-
- * apps/app_hasnewvoicemail.c: Fix a typo in the application description. Also, fix the logic in checking for success when jumping to priority n+101. (issue #5795)
-
- * UPGRADE.txt: Add a note on a second way that the IAX2 channel naming convention has changed. (issue #5792)
- * channels/chan_iax2.c: Fix alignment of the output for the "iax2 show peer <peer>" CLI command (issue #5792)
-
- * channels/Makefile: Re-add chan_oss to the default build. (issue #5799)
-
- * res/res_musiconhold.c: Fix incorrect argument for the buffer size to an ast_copy_string call (issue #5803)
-
- * funcs/func_enum.c: Shorten the module description (issue #5791)
-
-2005-11-17 Russell Bryant <russell@digium.com>
-
- * Makefile: Fix the output of Makefile generated variables to doxygen
-
- * channels/chan_sip.c: Add missing carriage return and line feed to the SDP line indicating that we don't support VAD (issue #5780)
-
-2005-11-16 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.0 released.
-
-2005-11-16 Jeremy McNamara <jj@nufone.net>
-
- * apps/app_voicemail.c (load_config): do not terminate asterisk if no voicemail config file
- * channels/chan_skinny: Don't register channel type until ready, code formatting updates
-
-2005-11-16 Josh Roberson <josh@asteriasgi.com>
-
- * Makefile: Update to fix non-responsive remote console on Darwin (OSX)(issue #5757)
-
-2005-11-16 Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/Makefile: don't build chan_modem and sub-modules by default
- * configs/modules.conf.sample: explicitly 'noload' chan_modem.so and submodules, in case old versions exist
-
- * res/Makefile: issue mpg123 not-installed warning at 'make install' time, not 'make'
-
- * apps/app_forkcdr.c (forkcdr_exec): issue warning (and don't segfault) if ForkCDR is called on a channel that doesn't have a CDR (issue #5763)
-
- * channel.c (ast_queue_hangup): ensure that the channel lock is held before changing its fields... (issue #5770)
-
- * res/res_musiconhold.c: don't spit out incorrect log messages (and leak memory) during reload (issue #5766)
-
- * channels/chan_sip.c (process_sdp): don't pass video codec number into ast_getformatname(), it is not valid input for that function (issue #5764)
-
- * pbx/pbx_ael.c (match_assignment): properly parse equal signs surrounded by whitespace (issue #5761)
-
- * doc/README.realtime: document the limitations of using FreeTDS with Realtime (issue #5767)
-
-2005-11-15 Kevin P. Fleming <kpfleming@digium.com>
-
- * Makefile: use -g3 for compiler to include macro information for debugger
-
- * astmm.c (__ast_vasprintf): don't re-use the ap list without copying it; that's not safe on some platforms (issue #5035)
-
- * doc/README.backtrace: add note about properly building Asterisk to be able to produce backtraces; wrap text and remove DOS line endings
-
- * channels/chan_sip.c (add_codec_to_sdp): add 'annexb=no' to G.729A SDP (issue #5539)
-
- * channels/chan_alsa.c (alsa_hangup): handle autohangup properly (issue #5672)
-
- * channels/chan_misdn.c (and other files): various fixes (issue #5739)
-
- * channels/chan_sip.c (handle_request_info): properly forward 'flash' events received via SIP INFO (issue #5751, different patch)
-
- * apps/app_disa.c (disa_exec): don't duplicate constant strings when not needed
-
- * apps/app_playback.c (playback_exec): use correct logic tests for options (issue #5752)
-
- * apps/app_disa.c (disa_exec): use standard arg parsing routines (issue #5736)
-
-2005-11-15 Russell Bryant <russell@digium.com>
-
- * manager.c: Don't crash on a SetVar action if the channel name is not set, or variable's value is not set (issue #5760)
-
- * doc/README.variables: Add application exit status variables
-
-2005-11-14 Josh Roberson <josh@asteriasgi.com>
-
- * manager.c: Fix crash on variable passing from AMI originate (issue #5737)
-
-2005-11-14 Russell Bryant <russell@digium.com>
-
- * many files: Merge doxygen documentation updates. (issue #5605)
-
- * apps/app_dial.c: Fix typo in RetryDial description.
-
-2005-11-12 Russell Bryant <russell@digium.com>
-
- * channels/chan_oss.c: Fix a typo in an error message.
-
-2005-11-11 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.0-rc2 released.
-
-2005-11-11 Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_sip.c (thread_safe_rand): ensure that threads don't get the same random number (issue #5712)
-
- * apps/app_voicemail.c (forward_message): correct bugs in message forwarding (issue #5718)
- (copy_message): use correct path for locking (issue #5704)
-
- * apps/app_dial.c (wait_for_answer): correct flag copying for automon feature (issue #5720)
-
- * channels/chan_iax2.c: correct comment
-
- * apps/app_voicemail.c (close_mailbox): correct previous commit (issue #5663)
- (vm_change_password): fix password change writing (issue #5721)
-
- * channels/chan_sip.c (transmit_invite): remove useless debug message; don't try to add OSP tokens to OPTIONS pings
-
- * apps/app_voicemail.c (close_mailbox): properly remove deleted messages at mailbox close time (issue #5663)
-
-2005-11-11 Mark Spencer <markster@digium.com>
-
- * channels/chan_zap.c (zt_bridge): only enable/disable DTMF detection on SUB_REAL channels
-
-2005-11-10 Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c: ensure that system headers that provide basic types are included first (issue #5713)
-
-2005-11-11 Russell Bryant <russell@digium.com>
-
- * many files in apps/: Clean up application descriptions. Clarify some wording and make sure they wrap at 80 characters.
-
-2005-11-10 Mark Spencer <markster@digium.com>
-
- * rtp.c (ast_rtp_raw_write): use unsigned int for return value from calc_txstamp() (issue #5595)
- (calc_txstamp): never return a value that was less than zero before being turned into 'unsigned int' (issue #5595)
-
-2005-11-10 Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/chanspy.h: move spy-related stuff into separate header so chan_h323 can build (issue #5590)
-
- * include/asterisk/linkedlists.h (AST_LIST_HEAD_SET_NOLOCK): properly initialize tail pointer when list head is directly set (issue #5669)
-
- * app.c (ast_app_parse_options): ok, so we aren't all perfect... let's make the while loop actually work properly here (issue #5684)
-
- * apps/app_disa.c (disa_exec): correct password file parsing (issue #5676)
-
- * apps/app_meetme.c (conf_run): don't restrict admin users from joining a locked conference (issue #5680)
-
- * channels/chan_misdn.c: include stdio.h (issue #5671)
- * channels/chan_misdn_config.c: fix prototype warning (issue #5671)
-
- * pbx.c: remove apps that were deprecated before 1.0 was released (issue #5673)
-
- * apps/app_striplsd.c, apps/app_substring.c: remove apps that were deprecated before 1.0 was released (issue #5673)
-
- * include/asterisk/lock.h (PTHREAD_MUTEX_RECURSIVE_NP): work around header problems on Cygwin (issue #5668)
-
- * pbx/pbx_ael.c: handle switch default cases inside macros properly (issue #5354)
-
- * configs/voicemail.conf.sample (format): add strong warning about changing format list when mailboxes contain messages (issue #5689)
-
- * many files: ensure that system headers are included before Asterisk headers (issue #5693)
-
- * channels/chan_iax2.c (complete_iax2_show_peer): don't return from function without releasing lock (issue #5685)
-
- * channels/iax2-provision.c (iax_provision_reload): don't leak memory (issue #5700)
-
- * pbx/pbx_ael.c (handle_macro): don't leak memory (issue #5701)
- (handle_context): ditto
-
- * res/res_features.c (load_config): properly initialize referenced variable (issue #5703)
-
- * apps/app_queue.c (rqm_exec): correct segfault problem (issue #5705)
- (aqm_exec): ditto
-
- * app.c (ast_app_parse_options): don't increment 's' until after checking for NULL (related to issue #5630)
-
- * apps/app_rpt.c: solve a memory leak (config structure was not freed) (issue #5706)
-
-2005-11-10 Russell Bryant <russell@digium.com>
-
- * app.c (ast_app_separate_args): Don't consider the open parenthesis as part of the arguments to an option. (issue #5630)
-
- * many files: Change all references to ast_separate_app_args to ast_app_separate_args
-
- * many files in apps/: Clean up some application descriptions. Make sure all descriptions in changed files are wrapped at 80 characters.
-
-2005-11-09 Russell Bryant <russell@digium.com>
-
- * pbx.c: Clean up descriptions of built-in dialplan applications. Changes include clearer wording and not referring to return values.
-
-2005-11-09 Kevin P. Fleming <kpfleming@digium.com>
-
- * channels/chan_iax2.c (update_registry): don't complain about unspecifed registration expiration intervals, just use the minimum
-
-2005-11-08 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.0-rc1 released.
-
- * include/asterisk/file.h: add test to ensure that stdio.h is included before this file (issue #5658)
-
- * res/res_odbc.c (odbc_prepare_and_execute): add new API call for use to properly handle prepared statements across server disconnects (issue #5563)
-
- * pbx.c (pbx_substitute_variables_helper_full): use already-substituted buffer for parsing variable name (issue #5664)
-
- * channels/chan_zap.c (zt_request): return AST_CAUSE_CONGESTION when a group-channel is requested and the group exists but all channels are busy (issue #3360, related fix)
- * channels/chan_iax2.c (create_addr): treat UNREACHABLE as AST_CAUSE_UNREGISTERED so that it will generate CHANUNAVAIL from app_dial (issue #3360)
-
- * res/res_features.c (ast_bridge_call_thread_launch): set SCHED_RR separately from thread creation, so it won't fail when running as non-root (issue #5601, different fix)
-
- * pbx.c (pbx_builtin_pushvar_helper): add new API function for setting variables that can exist multiple times (issue #2720)
- * apps/Makefile (APPS): add app_stack (issue #2720)
- * apps/app_stack.c: new applications (issue #2720)
-
- * apps/app_meetme.c: fix two audio delay problems related to using non-Zap channels in conferences (issues #3599 and #4252)
- * configs/meetme.conf.sample: add documentation of new 'audiobuffers' setting to control buffering on incoming audio from non-Zap channels
-
- * channels/chan_local.c (local_call): move channel variables from incoming to outgoing instead of inheriting them (issue #5604)
-
- * many files: add explicit include of stdio.h (issue #5650)
-
-2005-11-07 Kevin P. Fleming <kpfleming@digium.com>
-
- * UPGRADE.txt (Parking): add note about new parking behavior (issue #5532)
-
- * many files: more Cygwin compatibility, and proper getloadavg() prototype/macro (issue #5569)
-
- * include/asterisk/lock.h (__ast_pthread_mutex_lock): correct build with DETECT_DEADLOCKS defined (issue #5570)
-
-2005-11-07 Russell Bryant <russell@digium.com>
-
- * apps/app_queue.c: upgrade to new arg/option API and implement priority jumping control (issue #5580)
- * many files: Add missing include of stdio.h, and remove some duplicate and unused header includes
-
- * include/asterisk/app.h: Increment the arg_index in the options structure to fix applicaiton options that have arguments to them
-
-2005-11-07 Kevin P. Fleming <kpfleming@digium.com>
-
- * cryptostub.c: include necessary headers
- * include/asterisk/crypto.h: don't include unnecessary headers
-
- * manager.c (action_setvar): add support for setting global variables (issue #5571)
-
- * Makefile: correct cross-compilation issue introduced in Cygwin patches (issue #5572)
-
- * apps/app_voicemail.c: upgrade to new arg/option API and implement priority jumping control (issue #5649)
-
- * asterisk.c (main): setpriority() failure is not a reason to stop the process (issue #5581)
-
- * say.c (ast_say_date_with_format_da): say hours properly (issue #5576)
-
- * manager.c (astman_get_variables): restore old multiple-variable behavior for "Variable" header (issue #5585)
-
- * many files: don't check for NULL before calling ast_strlen_zero, it can do it itself (issue #5648)
-
- * pbx.c (handle_show_hints): use proper state-to-string function for hint state (issue #5583)
-
- * rtp.c: use unsigned format for debug packet output (issue #5595)
-
- * asterisk.c (main): force a dnsmgr background refresh after all other modules are initialized (issue #5599)
- * dnsmgr.c: add ability to start a background refresh on demand (issue #5599)
-
- * apps/app_dial.c (HANDLE_CAUSE): set CDR disposition to match cause code (issue #5602)
-
- * asterisk.c: support 'runuser' and 'rungroup' options in asterisk.conf (issue #5621)
-
- * res/Makefile, apps/Makefile, channels/Makefile, Makefile: support WITHOUT_ZAPTEL define to forcibly avoid building Zaptel support (issue #5634)
-
- * Makefile: various fixes (issue #5633)
-
- * apps/app_osplookup.c: upgrade to new arg/option API and implement priority jumping control
-
- * channels/chan_misdn.c: various fixes (issue #5639)
- * channels/misdn/isdn_lib.c: various fixes (issue #5639)
-
- * apps/app_playback.c: upgrade to new arg/option API and implement priority jumping control
-
- * apps/app_privacy.c: upgrade to new arg/option API and implement priority jumping control
-
- * apps/app_sendtext.c: upgrade to new arg/option API and implement priority jumping control
-
- * apps/app_transfer.c: upgrade to new arg/option API and implement priority jumping control
-
- * apps/app_txtcidname.c: upgrade to new arg/option API and implement priority jumping control
-
- * Makefile: restore function of 'dont-optimize'
-
- * config.c (config_text_file_load): don't generate log message when stat() fails
-
- * many files: clean up application documentation to not refer to return values, since they cannot be used in the dialplan (work done by Neil Lewis)
-
-2005-11-06 Russell Bryant <russell@digium.com>
-
- * many files: alphabetize options in applicaiton descriptions
-
- * channels/chan_iax2.c: Use an enum to define iax peer/user flags as well as the pvt structure state. Use the ast_flags macros for checking or setting the state.
-
- * sounds.txt: Add missing words from the description of the vm-opts prompt
-
- * apps/app_externalivr.c: Add a space that fixes building on older versions of gcc
-
- * many files: Add doxygen updates to categorize modules into groups. Convert a lot of comments over to doxygen style. Add some text giving a basic overview of channels.
-
- * many files: Update applications to add an exit status variable, make priority jumping optional, and use new args parsing macros
-
- * pbx.c cdr.c res/res_features.c apps/app_dial.c include/asterisk/cdr.h: Convert some built-in applications to use new args parsing macros. Change ast_cdr_reset to take a pointer to an ast_flags structure instead of an integer for flags.
-
- * channels/chan_agent.c: Don't loop forever on an invalid options string
-
- * apps/app_disa.c apps/app_forkcdr.c: Fix to use correct arguments to ast_cdr_reset
-
-2005-11-05 Kevin P. Fleming <kpfleming@digium.com>
-
- * Makefile: don't rebuild asterisk/build.h unless the asterisk binary is going to be relinked for some other reason (stops spurious recompile/link every time 'make' is issued); clean up variable substitutions to use consistent syntax
- * asterisk.c: don't include asterisk/build.h (it's unnecessary)
- * cli.c: don't include asterisk/build.h, use extern references to buildinfo.c
- * buildinfo.c: new file to hold version info strings
-
-2005-11-04 Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_mixmonitor.c (mixmonitor_exec): correct app name in an error message
-
-2005-11-04 Russell Bryant <russell@digium.com>
-
- * channels/chan_iax2.c: Create a function that stores a peer's status in a given buffer. Use this function in "iax2 show peers" and "iax2 show peer <peername>". Also, add the peer's status as an option to the IAXPEER dialplan function.
-
-2005-11-04 Kevin P. Fleming <kpfleming@digium.com>
-
- * include/asterisk/compiler.h: don't try to use always_inline on old compilers
-
-2005-11-03 Russell Bryant <russell@digium.com>
-
- * res/res_agi.c: initialize buffer for result so that the contents are always valid in the response to GET FULL VARIABLE
-
-2005-11-03 Kevin P. Fleming <kpfleming@digium.com>
-
- * doc/README.variables: document DYNAMIC_FEATURES
-
- * res/res_features.c (ast_bridge_call): remove unused variables
-
- * apps/app_dial.c (dial_exec_full): simplify options and flag usage
-
- * include/asterisk/app.h: re-work application arg/option parsing APIs for consistent naming, add doxygen docs for option API
- * many files: update to new APIs
-
-2005-11-02 Kevin P. Fleming <kpfleming@digium.com>
-
- * apps/app_dial.c (dial_exec_full): convert to use API calls for argument/option parsing
-
- * include/asterisk/channel.h: add doxygen docs for silence generator APIs
-
- * channel.c (ast_channel_bridge): simplify native-bridge return logic, remove 'unsuccessful' message since it causes too many questions :-)
-
-2005-11-01 Kevin P. Fleming <kpfleming@digium.com>
-
- * stdtime/localtime.c: fix build failure on uClibc systems (issue #5558)
- * devicestate.c: same
-
- * many files: make chan_misdn actually build (issue #5566)
-
- * many files: more Cygwin build system support (issue #4678)
-
- * apps/app_parkandannounce.c (parkandannounce_exec): supply parent channel to ast_request_and_dial so channel variables can be inherited (issue #5564)
- * include/asterisk/channel.h: add parent_channel field
- * channel.c (__ast_request_and_dial): use parent_channel field to inherit variables into new channel
-
- * apps/app_cut.c (cut_internal): use ast_app_separate_args() instead of open code (issue #5560)
-
- * apps/app_mixmonitor.c (launch_monitor_thread): ast_strlen_zero can handle NULL input (issue #5561)
- (mixmonitor_exec): same
-
- * res/res_features.c (ast_feature_request_and_dial): ensure that channel variables are inherited from the channel placing the call (issue #5499)
-
- * utils.c (getloadavg): change to using _BSD_SOURCE as the indicator for whether this function is present or not (issue #5549)
-
- * include/asterisk/utils.h (ast_slinear_saturated_add): force to be inlined whenever possible
- (ast_slinear_saturated_multiply): same
- (ast_slinear_saturated_divide): same
- (inaddrcmp): same
- * include/asterisk/strings.h (ast_strlen_zero): force to be inlined whenever possible
- * include/asterisk/compiler.h (force_inline): add macro to force inlining of functions
-
- * app.c (ast_play_and_record): use ast_silence_generator during recording if requested
- * asterisk.c: add global option to enable silence-during-record (issue #5135)
- * channel.c (silence_generator_alloc): new
- (silence_generator_release): new
- (silence_generator_generate): new
- (ast_channel_start_silence_generator): new API call to start generating silence on a channel
- (ast_channel_stop_silence_generator): parallel call to stop silence generation
- * apps/app_record.c (record_exec): use ast_silence_generator during recording if requested
-
-2005-11-01 Kevin P. Fleming <kpfleming@digium.com>
-
- * Asterisk 1.2.0-beta2 released.
-
diff --git a/Makefile b/Makefile
index 0413ee64b..605fbb71f 100644
--- a/Makefile
+++ b/Makefile
@@ -354,7 +354,7 @@ OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o \
utils.o plc.o jitterbuf.o dnsmgr.o devicestate.o \
netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \
- cryptostub.o astobj2.o
+ cryptostub.o astobj2.o sha1.o
ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/sys/poll.h),)
OBJS+= poll.o
diff --git a/acl.c b/acl.c
index 9665f35e8..87250a993 100644
--- a/acl.c
+++ b/acl.c
@@ -74,14 +74,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
AST_MUTEX_DEFINE_STATIC(routeseq_lock);
#endif
-struct ast_ha {
- /* Host access rule */
- struct in_addr netaddr;
- struct in_addr netmask;
- int sense;
- struct ast_ha *next;
-};
-
/* Default IP - if not otherwise set, don't breathe garbage */
static struct in_addr __ourip = { 0x00000000 };
@@ -102,7 +94,7 @@ void ast_free_ha(struct ast_ha *ha)
}
/* Copy HA structure */
-static void ast_copy_ha(struct ast_ha *from, struct ast_ha *to)
+void ast_copy_ha(const struct ast_ha *from, struct ast_ha *to)
{
memcpy(&to->netaddr, &from->netaddr, sizeof(from->netaddr));
memcpy(&to->netmask, &from->netmask, sizeof(from->netmask));
@@ -141,7 +133,7 @@ struct ast_ha *ast_duplicate_ha_list(struct ast_ha *original)
return ret; /* Return start of list */
}
-struct ast_ha *ast_append_ha(char *sense, char *stuff, struct ast_ha *path)
+struct ast_ha *ast_append_ha(char *sense, const char *stuff, struct ast_ha *path)
{
struct ast_ha *ha = malloc(sizeof(struct ast_ha));
char *nm = "255.255.255.255";
diff --git a/asterisk-1.2.35-summary.html b/asterisk-1.2.35-summary.html
deleted file mode 100644
index 2b0f455d5..000000000
--- a/asterisk-1.2.35-summary.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.2.35</title></head>
-<body>
-<h1 align="center"><a name="top">Release Summary</a></h1>
-<h3 align="center">asterisk-1.2.35</h3>
-<h3 align="center">Date: 2009-09-03</h3>
-<h3 align="center">&lt;asteriskteam@digium.com&gt;</h3>
-<hr/>
-<h2 align="center">Table of Contents</h2>
-<ol>
- <li><a href="#summary">Summary</a></li>
- <li><a href="#contributors">Contributors</a></li>
- <li><a href="#commits">Other Changes</a></li>
- <li><a href="#diffstat">Diffstat</a></li>
-</ol>
-<hr/>
-<a name="summary"><h2 align="center">Summary</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p>
-<p>Security Advisories: <a href="http://downloads.asterisk.org/pub/security/AST-2009-006.html">AST-2009-006</a></p>
-<p>The data in this summary reflects changes that have been made since the previous release, asterisk-1.2.34.</p>
-<hr/>
-<a name="contributors"><h2 align="center">Contributors</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were closed by commits that went into this release.</p>
-<table width="100%" border="0">
-<tr>
-<td width="33%"><h3>Coders</h3></td>
-<td width="33%"><h3>Testers</h3></td>
-<td width="33%"><h3>Reporters</h3></td>
-</tr>
-<tr valign="top">
-<td>
-3 lmadsen<br/>
-</td>
-<td>
-</td>
-<td>
-</td>
-</tr>
-</table>
-<hr/>
-<a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
-<table width="100%" border="1">
-<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.2.35?view=revision&revision=215941">215941</a></td><td>lmadsen</td><td>Create 1.2.35 from 1.2.34.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.2.35?view=revision&revision=215946">215946</a></td><td>lmadsen</td><td>Update .version and ChangeLog.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.2.35?view=revision&revision=215951">215951</a></td><td>lmadsen</td><td>Update ChangeLog</td>
-<td></td></tr></table>
-<hr/>
-<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p>
-<pre>
-.version | 2 +-
-ChangeLog | 6 ++++++
-2 files changed, 7 insertions(+), 1 deletion(-)
-</pre><br/>
-<hr/>
-</body>
-</html>
diff --git a/asterisk-1.2.35-summary.txt b/asterisk-1.2.35-summary.txt
deleted file mode 100644
index 3fad4c27b..000000000
--- a/asterisk-1.2.35-summary.txt
+++ /dev/null
@@ -1,89 +0,0 @@
- Release Summary
-
- asterisk-1.2.35
-
- Date: 2009-09-03
-
- <asteriskteam@digium.com>
-
- ----------------------------------------------------------------------
-
- Table of Contents
-
- 1. Summary
- 2. Contributors
- 3. Other Changes
- 4. Diffstat
-
- ----------------------------------------------------------------------
-
- Summary
-
- [Back to Top]
-
- This release has been made to address one or more security vulnerabilities
- that have been identified. A security advisory document has been published
- for each vulnerability that includes additional information. Users of
- versions of Asterisk that are affected are strongly encouraged to review
- the advisories and determine what action they should take to protect their
- systems from these issues.
-
- Security Advisories: AST-2009-006
-
- The data in this summary reflects changes that have been made since the
- previous release, asterisk-1.2.34.
-
- ----------------------------------------------------------------------
-
- Contributors
-
- [Back to Top]
-
- This table lists the people who have submitted code, those that have
- tested patches, as well as those that reported issues on the issue tracker
- that were resolved in this release. For coders, the number is how many of
- their patches (of any size) were committed into this release. For testers,
- the number is the number of times their name was listed as assisting with
- testing a patch. Finally, for reporters, the number is the number of
- issues that they reported that were closed by commits that went into this
- release.
-
- Coders Testers Reporters
- 3 lmadsen
-
- ----------------------------------------------------------------------
-
- Commits Not Associated with an Issue
-
- [Back to Top]
-
- This is a list of all changes that went into this release that did not
- directly close an issue from the issue tracker. The commits may have been
- marked as being related to an issue. If that is the case, the issue
- numbers are listed here, as well.
-
- +------------------------------------------------------------------------+
- | Revision | Author | Summary | Issues Referenced |
- |----------+---------+-------------------------------+-------------------|
- | 215941 | lmadsen | Create 1.2.35 from 1.2.34. | |
- |----------+---------+-------------------------------+-------------------|
- | 215946 | lmadsen | Update .version and | |
- | | | ChangeLog. | |
- |----------+---------+-------------------------------+-------------------|
- | 215951 | lmadsen | Update ChangeLog | |
- +------------------------------------------------------------------------+
-
- ----------------------------------------------------------------------
-
- Diffstat Results
-
- [Back to Top]
-
- This is a summary of the changes to the source code that went into this
- release that was generated using the diffstat utility.
-
- .version | 2 +-
- ChangeLog | 6 ++++++
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
- ----------------------------------------------------------------------
diff --git a/astobj2.c b/astobj2.c
index 1f33eec3f..833a98a40 100644
--- a/astobj2.c
+++ b/astobj2.c
@@ -413,7 +413,7 @@ void *ao2_callback(struct ao2_container *c,
const enum search_flags flags,
ao2_callback_fn cb_fn, void *arg)
{
- int i, last; /* search boundaries */
+ int i, start, last; /* search boundaries */
void *ret = NULL;
if (INTERNAL_OBJ(c) == NULL) /* safety check on the argument */
@@ -443,13 +443,15 @@ void *ao2_callback(struct ao2_container *c,
* (this only for the time being. We need to optimize this.)
*/
if ((flags & OBJ_POINTER)) /* we know hash can handle this case */
- i = c->hash_fn(arg, flags & OBJ_POINTER) % c->n_buckets;
+ start = i = c->hash_fn(arg, flags & OBJ_POINTER) % c->n_buckets;
else /* don't know, let's scan all buckets */
i = -1; /* XXX this must be fixed later. */
/* determine the search boundaries: i..last-1 */
if (i < 0) {
- i = 0;
+ start = i = 0;
+ last = c->n_buckets;
+ } else if ((flags & OBJ_CONTINUE)) {
last = c->n_buckets;
} else {
last = i + 1;
@@ -505,6 +507,17 @@ void *ao2_callback(struct ao2_container *c,
}
}
AST_LIST_TRAVERSE_SAFE_END
+
+ if (ret) {
+ /* This assumes OBJ_MULTIPLE with !OBJ_NODATA is still not implemented */
+ break;
+ }
+
+ if (i == c->n_buckets - 1 && (flags & OBJ_POINTER) && (flags & OBJ_CONTINUE)) {
+ /* Move to the beginning to ensure we check every bucket */
+ i = -1;
+ last = start;
+ }
}
ao2_unlock(c);
return ret;
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index daaa51a77..f47ca8202 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -281,6 +281,20 @@ static int global_rtautoclear = 120;
static int reload_config(void);
static int iax2_reload(int fd, int argc, char *argv[]);
+/*!
+ * \brief Call token validation settings.
+ */
+enum calltoken_peer_enum {
+ /*! \brief Default calltoken required unless the ip is in the ignorelist */
+ CALLTOKEN_DEFAULT = 0,
+ /*! \brief Require call token validation. */
+ CALLTOKEN_YES = 1,
+ /*! \brief Require call token validation after a successful registration
+ * using call token validation occurs. */
+ CALLTOKEN_AUTO = 2,
+ /*! \brief Do not require call token validation. */
+ CALLTOKEN_NO = 3,
+};
struct iax2_user {
char name[80];
@@ -303,6 +317,7 @@ struct iax2_user {
struct iax2_context *contexts;
struct iax2_user *next;
struct ast_variable *vars;
+ enum calltoken_peer_enum calltoken_required; /*!< Is calltoken validation required or not, can be YES, NO, or AUTO */
};
struct iax2_peer {
@@ -348,8 +363,10 @@ struct iax2_peer {
int pokefreqnotok; /*!< How often to check when the host has been determined to be down */
int historicms; /*!< How long recent average responses took */
int smoothing; /*!< Sample over how many units to determine historic ms */
+ uint16_t maxcallno; /*!< Max call number limit for this peer. Set on registration */
struct ast_ha *ha;
+ enum calltoken_peer_enum calltoken_required; /*!< Is calltoken validation required or not, can be YES, NO, or AUTO */
struct iax2_peer *next;
};
@@ -482,6 +499,8 @@ struct chan_iax2_pvt {
struct ast_codec_pref rprefs;
/*! Our call number */
unsigned short callno;
+ /*! Our callno_entry entry */
+ struct callno_entry *callno_entry;
/*! Peer callno */
unsigned short peercallno;
/*! Negotiated format, this is only used to remember what format was
@@ -616,8 +635,18 @@ struct chan_iax2_pvt {
int frames_dropped;
/*! received frame count: (just for stats) */
int frames_received;
+ /*! num bytes used for calltoken ie, even an empty ie should contain 2 */
+ unsigned char calltoken_ie_len;
};
+/*! table of available call numbers */
+static struct ao2_container *callno_pool;
+
+/*! table of available trunk call numbers */
+static struct ao2_container *callno_pool_trunk;
+
+static const unsigned int CALLNO_POOL_BUCKETS = 2699;
+
static struct ast_iax2_queue {
struct iax_frame *head;
struct iax_frame *tail;
@@ -625,6 +654,63 @@ static struct ast_iax2_queue {
ast_mutex_t lock;
} iaxq;
+static int randomcalltokendata;
+
+static const time_t MAX_CALLTOKEN_DELAY = 10;
+
+#define MAX_PEER_BUCKETS 563
+
+/*! Table containing peercnt objects for every ip address consuming a callno */
+static struct ao2_container *peercnts;
+
+/*! Table containing custom callno limit rules for a range of ip addresses. */
+static struct ao2_container *callno_limits;
+
+/*! Table containing ip addresses not requiring calltoken validation */
+static struct ao2_container *calltoken_ignores;
+
+static uint16_t DEFAULT_MAXCALLNO_LIMIT = 2048;
+
+static uint16_t DEFAULT_MAXCALLNO_LIMIT_NONVAL = 8192;
+
+static uint16_t global_maxcallno;
+
+/*! Total num of call numbers allowed to be allocated without calltoken validation */
+static uint16_t global_maxcallno_nonval;
+
+static uint16_t total_nonval_callno_used = 0;
+
+/*! peer connection private, keeps track of all the call numbers
+ * consumed by a single ip address */
+struct peercnt {
+ /*! ip address consuming call numbers */
+ unsigned long addr;
+ /*! Number of call numbers currently used by this ip address */
+ uint16_t cur;
+ /*! Max call numbers allowed for this ip address */
+ uint16_t limit;
+ /*! Specifies whether limit is set by a registration or not, if so normal
+ * limit setting rules do not apply to this address. */
+ unsigned char reg;
+};
+
+/*! used by both callno_limits and calltoken_ignores containers */
+struct addr_range {
+ /*! ip address range for custom callno limit rule */
+ struct ast_ha ha;
+ /*! callno limit for this ip address range, only used in callno_limits container */
+ uint16_t limit;
+ /*! delete me marker for reloads */
+ unsigned char delme;
+};
+
+struct callno_entry {
+ /*! callno used for this entry */
+ uint16_t callno;
+ /*! was this callno calltoken validated or not */
+ unsigned char validated;
+};
+
static struct ast_user_list {
struct iax2_user *users;
ast_mutex_t lock;
@@ -673,6 +759,7 @@ AST_MUTEX_DEFINE_STATIC(dpcache_lock);
static void reg_source_db(struct iax2_peer *p);
static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in *sin);
+static struct iax2_user *realtime_user(const char *username, struct sockaddr_in *sin);
static void destroy_peer(struct iax2_peer *peer);
static int ast_cli_netstats(int fd, int limit_fmt);
@@ -707,7 +794,7 @@ static void jb_error_output(const char *fmt, ...)
vsnprintf(buf, 1024, fmt, args);
va_end(args);
- ast_log(LOG_ERROR, buf);
+ ast_log(LOG_ERROR, "%s", buf);
}
static void jb_warning_output(const char *fmt, ...)
@@ -719,7 +806,7 @@ static void jb_warning_output(const char *fmt, ...)
vsnprintf(buf, 1024, fmt, args);
va_end(args);
- ast_log(LOG_WARNING, buf);
+ ast_log(LOG_WARNING, "%s", buf);
}
static void jb_debug_output(const char *fmt, ...)
@@ -731,7 +818,7 @@ static void jb_debug_output(const char *fmt, ...)
vsnprintf(buf, 1024, fmt, args);
va_end(args);
- ast_verbose(buf);
+ ast_verbose("%s", buf);
}
#endif
@@ -739,7 +826,6 @@ static void jb_debug_output(const char *fmt, ...)
/* XXX We probably should use a mutex when working with this XXX */
static struct chan_iax2_pvt *iaxs[IAX_MAX_CALLS];
static ast_mutex_t iaxsl[IAX_MAX_CALLS];
-static struct timeval lastused[IAX_MAX_CALLS];
/*!
* \brief Another container of iax2_pvt structures
@@ -782,6 +868,9 @@ static int iax2_setoption(struct ast_channel *c, int option, void *data, int dat
static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms);
static int iax2_transfer(struct ast_channel *c, const char *dest);
static int iax2_fixup(struct ast_channel *oldchannel, struct ast_channel *newchan);
+static struct callno_entry *get_unused_callno(int trunk, int validated);
+static int replace_callno(void *obj);
+static void sched_delay_remove(struct sockaddr_in *sin, struct callno_entry *callno_entry);
static const struct ast_channel_tech iax2_tech = {
.type = channeltype,
@@ -905,6 +994,21 @@ static int uncompress_subclass(unsigned char csub)
return csub;
}
+static struct iax2_user *find_user(const char *name, int realtime)
+{
+ struct iax2_user *user;
+ ast_mutex_lock(&userl.lock);
+ for(user = userl.users; user; user = user->next) {
+ if (!strcasecmp(user->name, name)) {
+ break;
+ }
+ }
+ ast_mutex_unlock(&userl.lock);
+ if(!user && realtime)
+ user = realtime_user(name, NULL);
+ return user;
+}
+
static struct iax2_peer *find_peer(const char *name, int realtime)
{
struct iax2_peer *peer;
@@ -1036,7 +1140,6 @@ static void iax2_destroy(int callno)
retry:
ast_mutex_lock(&iaxsl[callno]);
pvt = iaxs[callno];
- gettimeofday(&lastused[callno], NULL);
if (pvt)
owner = pvt->owner;
@@ -1096,6 +1199,9 @@ static void pvt_destructor(void *obj)
iax2_destroy_helper(pvt);
+ sched_delay_remove(&pvt->addr, pvt->callno_entry);
+ pvt->callno_entry = NULL;
+
if (pvt->bridgetrans)
ast_translator_free_path(pvt->bridgetrans);
pvt->bridgetrans = NULL;
@@ -1173,9 +1279,19 @@ static struct iax_frame *iaxfrdup2(struct iax_frame *fr)
return new;
}
-#define NEW_PREVENT 0
-#define NEW_ALLOW 1
-#define NEW_FORCE 2
+/* keep these defined in this order. They are used in find_callno to
+ * determine whether or not a new call number should be allowed. */
+enum {
+ /* do not allow a new call number, only search ones in use for match */
+ NEW_PREVENT = 0,
+ /* search for match first, then allow a new one to be allocated */
+ NEW_ALLOW = 1,
+ /* do not search for match, force a new call number */
+ NEW_FORCE = 2,
+ /* do not search for match, force a new call number. Signifies call number
+ * has been calltoken validated */
+ NEW_ALLOW_CALLTOKEN_VALIDATED = 3,
+};
static int match(struct sockaddr_in *sin, unsigned short callno, unsigned short dcallno, struct chan_iax2_pvt *cur, int check_dcallno)
{
@@ -1215,7 +1331,7 @@ static int make_trunk(unsigned short callno, int locked)
{
int x;
int res= 0;
- struct timeval now;
+ struct callno_entry *callno_entry;
if (iaxs[callno]->oseqno) {
ast_log(LOG_WARNING, "Can't make trunk once a call has started!\n");
return -1;
@@ -1224,46 +1340,642 @@ static int make_trunk(unsigned short callno, int locked)
ast_log(LOG_WARNING, "Call %d is already a trunk\n", callno);
return -1;
}
- gettimeofday(&now, NULL);
- for (x=TRUNK_CALL_START;x<IAX_MAX_CALLS - 1; x++) {
- ast_mutex_lock(&iaxsl[x]);
- if (!iaxs[x] && ((now.tv_sec - lastused[x].tv_sec) > MIN_REUSE_TIME)) {
- iaxs[x] = iaxs[callno];
- iaxs[x]->callno = x;
- iaxs[callno] = NULL;
- /* Update the two timers that should have been started */
- if (iaxs[x]->pingid > -1)
- ast_sched_del(sched, iaxs[x]->pingid);
- if (iaxs[x]->lagid > -1)
- ast_sched_del(sched, iaxs[x]->lagid);
- iaxs[x]->pingid = ast_sched_add(sched, ping_time * 1000, send_ping, (void *)(long)x);
- iaxs[x]->lagid = ast_sched_add(sched, lagrq_time * 1000, send_lagrq, (void *)(long)x);
- if (locked)
- ast_mutex_unlock(&iaxsl[callno]);
- res = x;
- if (!locked)
- ast_mutex_unlock(&iaxsl[x]);
- break;
- }
- ast_mutex_unlock(&iaxsl[x]);
- }
- if (x >= IAX_MAX_CALLS - 1) {
+
+ if (!(callno_entry = get_unused_callno(1, iaxs[callno]->callno_entry->validated))) {
ast_log(LOG_WARNING, "Unable to trunk call: Insufficient space\n");
return -1;
}
- ast_log(LOG_DEBUG, "Made call %d into trunk call %d\n", callno, x);
+ x = callno_entry->callno;
+ ast_mutex_lock(&iaxsl[x]);
+
+ /*!
+ * \note We delete these before switching the slot, because if
+ * they fire in the meantime, they will generate a warning.
+ */
+ iaxs[x] = iaxs[callno];
+ iaxs[x]->callno = x;
+ /* since we copied over the pvt from a different callno, make sure the old entry is replaced
+ * before assigning the new one */
+ if (iaxs[x]->callno_entry) {
+ ast_sched_add(sched, MIN_REUSE_TIME * 1000, replace_callno, iaxs[x]->callno_entry);
+ }
+ iaxs[x]->callno_entry = callno_entry;
+ iaxs[callno] = NULL;
+ /* Update the two timers that should have been started */
+ if (iaxs[x]->pingid > -1)
+ ast_sched_del(sched, iaxs[x]->pingid);
+ if (iaxs[x]->lagid > -1)
+ ast_sched_del(sched, iaxs[x]->lagid);
+ iaxs[x]->pingid = ast_sched_add(sched, ping_time * 1000, send_ping, (void *)(long)x);
+ iaxs[x]->lagid = ast_sched_add(sched, lagrq_time * 1000, send_lagrq, (void *)(long)x);
+ if (locked)
+ ast_mutex_unlock(&iaxsl[callno]);
+ res = x;
+ if (!locked)
+ ast_mutex_unlock(&iaxsl[x]);
+
+ if (option_debug)
+ ast_log(LOG_DEBUG, "Made call %d into trunk call %d\n", callno, x);
+
/* We move this call from a non-trunked to a trunked call */
update_max_trunk();
update_max_nontrunk();
return res;
}
+static int addr_range_delme_cb(void *obj, void *arg, int flags)
+{
+ struct addr_range *lim = obj;
+ lim->delme = 1;
+ return 0;
+}
+
+static int addr_range_hash_cb(const void *obj, const int flags)
+{
+ const struct addr_range *lim = obj;
+ return abs((int) lim->ha.netaddr.s_addr);
+}
+
+static int addr_range_cmp_cb(void *obj, void *arg, int flags)
+{
+ struct addr_range *lim1 = obj, *lim2 = arg;
+ return ((lim1->ha.netaddr.s_addr == lim2->ha.netaddr.s_addr) &&
+ (lim1->ha.netmask.s_addr == lim2->ha.netmask.s_addr)) ?
+ CMP_MATCH | CMP_STOP : 0;
+}
+
+static int peercnt_hash_cb(const void *obj, const int flags)
+{
+ const struct peercnt *peercnt = obj;
+ return abs((int) peercnt->addr);
+}
+
+static int peercnt_cmp_cb(void *obj, void *arg, int flags)
+{
+ struct peercnt *peercnt1 = obj, *peercnt2 = arg;
+ return (peercnt1->addr == peercnt2->addr) ? CMP_MATCH | CMP_STOP : 0;
+}
+
+static int addr_range_match_address_cb(void *obj, void *arg, int flags)
+{
+ struct addr_range *addr_range = obj;
+ struct sockaddr_in *sin = arg;
+
+ if ((sin->sin_addr.s_addr & addr_range->ha.netmask.s_addr) == addr_range->ha.netaddr.s_addr) {
+ return CMP_MATCH | CMP_STOP;
+ }
+ return 0;
+}
+
+/*!
+ * \internal
+ *
+ * \brief compares sin to calltoken_ignores table to determine if validation is required.
+ */
+static int calltoken_required(struct sockaddr_in *sin, const char *name, int subclass)
+{
+ struct addr_range *addr_range;
+ struct iax2_peer *peer = NULL;
+ struct iax2_user *user = NULL;
+ /* if no username is given, check for guest accounts */
+ const char *find = ast_strlen_zero(name) ? "guest" : name;
+ int res = 1; /* required by default */
+ int optional = 0;
+ enum calltoken_peer_enum calltoken_required = CALLTOKEN_DEFAULT;
+ char iabuf[INET_ADDRSTRLEN];
+ /* There are only two cases in which calltoken validation is not required.
+ * Case 1. sin falls within the list of address ranges specified in the calltoken optional table and
+ * the peer definition has not set the requirecalltoken option.
+ * Case 2. Username is a valid peer/user, and that peer has requirecalltoken set either auto or no.
+ */
+
+ /* ----- Case 1 ----- */
+ if ((addr_range = ao2_callback(calltoken_ignores, 0, addr_range_match_address_cb, sin))) {
+ ao2_ref(addr_range, -1);
+ optional = 1;
+ }
+
+ /* ----- Case 2 ----- */
+ if ((subclass == IAX_COMMAND_NEW) && (user = find_user(find, 1))) {
+ calltoken_required = user->calltoken_required;
+ } else if ((subclass != IAX_COMMAND_NEW) && (peer = find_peer(find, 1))) {
+ calltoken_required = peer->calltoken_required;
+ }
+
+ if (option_debug) {
+ ast_log(LOG_DEBUG, "Determining if address %s with username %s requires calltoken validation. Optional = %d calltoken_required = %d \n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), name, optional, calltoken_required);
+ }
+ if (((calltoken_required == CALLTOKEN_NO) || (calltoken_required == CALLTOKEN_AUTO)) ||
+ (optional && (calltoken_required == CALLTOKEN_DEFAULT))) {
+ res = 0;
+ }
+
+ return res;
+}
+
+/*!
+ * \internal
+ *
+ * \brief set peercnt callno limit.
+ *
+ * \details
+ * First looks in custom definitions. If not found, global limit
+ * is used. Entries marked as reg already have
+ * a custom limit set by a registration and are not modified.
+ */
+static void set_peercnt_limit(struct peercnt *peercnt)
+{
+ uint16_t limit = global_maxcallno;
+ struct addr_range *addr_range;
+ struct sockaddr_in sin = {
+ .sin_addr.s_addr = peercnt->addr,
+ };
+ char iabuf[INET_ADDRSTRLEN];
+
+
+ if (peercnt->reg && peercnt->limit) {
+ return; /* this peercnt has a custom limit set by a registration */
+ }
+
+ if ((addr_range = ao2_callback(callno_limits, 0, addr_range_match_address_cb, &sin))) {
+ limit = addr_range->limit;
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "custom addr_range %d found for %s\n", limit, ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr));
+ }
+ ao2_ref(addr_range, -1);
+ }
+
+ peercnt->limit = limit;
+}
+
+/*!
+ * \internal
+ * \brief sets limits for all peercnts in table. done on reload to reflect changes in conf.
+ */
+static int set_peercnt_limit_all_cb(void *obj, void *arg, int flags)
+{
+ struct peercnt *peercnt = obj;
+
+ set_peercnt_limit(peercnt);
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "Reset limits for peercnts table\n");
+ }
+ return 0;
+}
+
+/*!
+ * \internal
+ * \brief returns match if delme is set.
+ */
+static int prune_addr_range_cb(void *obj, void *arg, int flags)
+{
+ struct addr_range *addr_range = obj;
+
+ return addr_range->delme ? CMP_MATCH : 0;
+}
+
+/*!
+ * \internal
+ * \brief modifies peercnt entry in peercnts table. Used to set custom limit or mark a registered ip
+ */
+static void peercnt_modify(unsigned char reg, uint16_t limit, struct sockaddr_in *sin)
+{
+ /* this function turns off and on custom callno limits set by peer registration */
+ struct peercnt *peercnt;
+ struct peercnt tmp = {
+ .addr = sin->sin_addr.s_addr,
+ };
+ char iabuf[INET_ADDRSTRLEN];
+
+ if ((peercnt = ao2_find(peercnts, &tmp, OBJ_POINTER))) {
+ peercnt->reg = reg;
+ if (limit) {
+ peercnt->limit = limit;
+ } else {
+ set_peercnt_limit(peercnt);
+ }
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "peercnt entry %s modified limit:%d registered:%d", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), peercnt->limit, peercnt->reg);
+ }
+ ao2_ref(peercnt, -1); /* decrement ref from find */
+ }
+}
+
+/*!
+ * \internal
+ * \brief adds an ip to the peercnts table, increments connection count if it already exists
+ *
+ * \details First searches for the address in the peercnts table. If found
+ * the current count is incremented. If not found a new peercnt is allocated
+ * and linked into the peercnts table with a call number count of 1.
+ */
+static int peercnt_add(struct sockaddr_in *sin)
+{
+ struct peercnt *peercnt;
+ unsigned long addr = sin->sin_addr.s_addr;
+ int res = 0;
+ struct peercnt tmp = {
+ .addr = addr,
+ };
+ char iabuf[INET_ADDRSTRLEN];
+
+ /* Reasoning for peercnts container lock: Two identical ip addresses
+ * could be added by different threads at the "same time". Without the container
+ * lock, both threads could alloc space for the same object and attempt
+ * to link to table. With the lock, one would create the object and link
+ * to table while the other would find the already created peercnt object
+ * rather than creating a new one. */
+ ao2_lock(peercnts);
+ if ((peercnt = ao2_find(peercnts, &tmp, OBJ_POINTER))) {
+ ao2_lock(peercnt);
+ } else if ((peercnt = ao2_alloc(sizeof(*peercnt), NULL))) {
+ ao2_lock(peercnt);
+ /* create and set defaults */
+ peercnt->addr = addr;
+ set_peercnt_limit(peercnt);
+ /* guarantees it does not go away after unlocking table
+ * ao2_find automatically adds this */
+ ao2_link(peercnts, peercnt);
+ } else {
+ ao2_unlock(peercnts);
+ return -1;
+ }
+
+ /* check to see if the address has hit its callno limit. If not increment cur. */
+ if (peercnt->limit > peercnt->cur) {
+ peercnt->cur++;
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "ip callno count incremented to %d for %s\n", peercnt->cur, ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
+ }
+ } else { /* max num call numbers for this peer has been reached! */
+ ast_log(LOG_ERROR, "maxcallnumber limit of %d for %s has been reached!\n", peercnt->limit, ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
+ res = -1;
+ }
+
+ /* clean up locks and ref count */
+ ao2_unlock(peercnt);
+ ao2_unlock(peercnts);
+ ao2_ref(peercnt, -1); /* decrement ref from find/alloc, only the container ref remains. */
+
+ return res;
+}
+
+/*!
+ * \internal
+ * \brief decrements a peercnts table entry
+ */
+static void peercnt_remove(struct peercnt *peercnt)
+{
+ struct sockaddr_in sin = {
+ .sin_addr.s_addr = peercnt->addr,
+ };
+ char iabuf[INET_ADDRSTRLEN];
+
+ if (peercnt) {
+ /* Container locked here since peercnt may be unlinked from list. If left unlocked,
+ * peercnt_add could try and grab this entry from the table and modify it at the
+ * "same time" this thread attemps to unlink it.*/
+ ao2_lock(peercnts);
+ peercnt->cur--;
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "ip callno count decremented to %d for %s\n", peercnt->cur, ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr));
+ }
+ /* if this was the last connection from the peer remove it from table */
+ if (peercnt->cur == 0) {
+ ao2_unlink(peercnts, peercnt);/* decrements ref from table, last ref is left to scheduler */
+ }
+ ao2_unlock(peercnts);
+ }
+}
+
+/*!
+ * \internal
+ * \brief called by scheduler to decrement object
+ */
+static int peercnt_remove_cb(void *obj)
+{
+ struct peercnt *peercnt = (struct peercnt *) obj;
+
+ peercnt_remove(peercnt);
+ ao2_ref(peercnt, -1); /* decrement ref from scheduler */
+
+ return 0;
+}
+
+/*!
+ * \internal
+ * \brief decrements peercnts connection count, finds by addr
+ */
+static int peercnt_remove_by_addr(struct sockaddr_in *sin)
+{
+ struct peercnt *peercnt;
+ struct peercnt tmp = {
+ .addr = sin->sin_addr.s_addr,
+ };
+
+ if ((peercnt = ao2_find(peercnts, &tmp, OBJ_POINTER))) {
+ peercnt_remove(peercnt);
+ ao2_ref(peercnt, -1); /* decrement ref from find */
+ }
+ return 0;
+}
+
+/*!
+ * \internal
+ * \brief Create callno_limit entry based on configuration
+ */
+static void build_callno_limits(struct ast_variable *v)
+{
+ struct addr_range *addr_range = NULL;
+ struct addr_range tmp;
+ struct ast_ha *ha;
+ int limit;
+ int found;
+
+ for (; v; v = v->next) {
+ limit = -1;
+ found = 0;
+ ha = ast_append_ha("permit", v->name, NULL);
+
+ /* check for valid config information */
+ if (!ha) {
+ ast_log(LOG_ERROR, "Call number limit for %s could not be added, Invalid address range\n.", v->name);
+ continue;
+ } else if ((sscanf(v->value, "%d", &limit) != 1) || (limit < 0)) {
+ ast_log(LOG_ERROR, "Call number limit for %s could not be added. Invalid limit %s\n.", v->name, v->value);
+ ast_free_ha(ha);
+ continue;
+ }
+
+ ast_copy_ha(ha, &tmp.ha);
+ /* find or create the addr_range */
+ if ((addr_range = ao2_find(callno_limits, &tmp, OBJ_POINTER))) {
+ ao2_lock(addr_range);
+ found = 1;
+ } else if (!(addr_range = ao2_alloc(sizeof(*addr_range), NULL))) {
+ ast_free_ha(ha);
+ return; /* out of memory */
+ }
+
+ /* copy over config data into addr_range object */
+ ast_copy_ha(ha, &addr_range->ha); /* this is safe because only one ha is possible for each limit */
+ ast_free_ha(ha); /* cleanup the tmp ha */
+ addr_range->limit = limit;
+ addr_range->delme = 0;
+
+ /* cleanup */
+ if (found) {
+ ao2_unlock(addr_range);
+ } else {
+ ao2_link(callno_limits, addr_range);
+ }
+ ao2_ref(addr_range, -1); /* decrement ref from ao2_find and ao2_alloc, only container ref remains */
+ }
+}
+
+/*!
+ * \internal
+ * \brief Create calltoken_ignores entry based on configuration
+ */
+static int add_calltoken_ignore(const char *addr)
+{
+ struct addr_range tmp;
+ struct addr_range *addr_range = NULL;
+ struct ast_ha *ha = NULL;
+
+ if (ast_strlen_zero(addr)) {
+ ast_log(LOG_WARNING, "invalid calltokenoptional %s\n", addr);
+ return -1;
+ }
+
+ ha = ast_append_ha("permit", addr, NULL);
+
+ /* check for valid config information */
+ if (!ha) {
+ ast_log(LOG_WARNING, "Error creating calltokenoptional entry %s\n", addr);
+ return -1;
+ }
+
+ ast_copy_ha(ha, &tmp.ha);
+ /* find or create the addr_range */
+ if ((addr_range = ao2_find(calltoken_ignores, &tmp, OBJ_POINTER))) {
+ ao2_lock(addr_range);
+ addr_range->delme = 0;
+ ao2_unlock(addr_range);
+ } else if ((addr_range = ao2_alloc(sizeof(*addr_range), NULL))) {
+ /* copy over config data into addr_range object */
+ ast_copy_ha(ha, &addr_range->ha); /* this is safe because only one ha is possible */
+ ao2_link(calltoken_ignores, addr_range);
+ } else {
+ ast_free_ha(ha);
+ return -1;
+ }
+
+ ast_free_ha(ha);
+ ao2_ref(addr_range, -1); /* decrement ref from ao2_find and ao2_alloc, only container ref remains */
+
+ return 0;
+}
+
+static int iax2_show_callnumber_usage(int fd, int argc, char *argv[])
+{
+ struct ao2_iterator i;
+ struct peercnt *peercnt;
+ struct sockaddr_in sin;
+ int found = 0;
+ char iabuf[INET_ADDRSTRLEN];
+
+ if (argc < 4 || argc > 5)
+ return RESULT_SHOWUSAGE;
+
+ ast_cli(fd, "%-15s %-12s %-12s\n", "Address", "Callno Usage", "Callno Limit");
+ i = ao2_iterator_init(peercnts, 0);
+ while ((peercnt = ao2_iterator_next(&i))) {
+ sin.sin_addr.s_addr = peercnt->addr;
+ if (argc == 5 && (!strcasecmp(argv[4], ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr)))) {
+ ast_cli(fd, "%-15s %-12d %-12d\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr), peercnt->cur, peercnt->limit);
+ found = 1;
+ break;
+ } else {
+ ast_cli(fd, "%-15s %-12d %-12d\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr), peercnt->cur, peercnt->limit);
+ }
+ ao2_ref(peercnt, -1);
+ }
+ if (argc == 4) {
+ ast_cli(fd, "\nNon-CallToken Validation Limit: %d\nNon-CallToken Validated: %d\n", global_maxcallno_nonval, total_nonval_callno_used);
+ } else if (argc == 5 && !found) {
+ ast_cli(fd, "No callnumber table entries for %s found\n", argv[4] );
+ }
+ return RESULT_SUCCESS;
+}
+
+static struct callno_entry *get_unused_callno(int trunk, int validated)
+{
+ struct callno_entry *callno_entry = NULL;
+ if ((!ao2_container_count(callno_pool) && !trunk) || (!ao2_container_count(callno_pool_trunk) && trunk)) {
+ ast_log(LOG_WARNING, "Out of CallNumbers\n");
+ /* Minor optimization for the extreme case. */
+ return NULL;
+ }
+
+ /* the callno_pool container is locked here primarily to ensure thread
+ * safety of the total_nonval_callno_used check and increment */
+ ao2_lock(callno_pool);
+
+ /* only a certain number of nonvalidated call numbers should be allocated.
+ * If there ever is an attack, this separates the calltoken validating
+ * users from the non calltoken validating users. */
+ if (!validated && (total_nonval_callno_used >= global_maxcallno_nonval)) {
+ ast_log(LOG_WARNING, "NON-CallToken callnumber limit is reached. Current:%d Max:%d\n", total_nonval_callno_used, global_maxcallno_nonval);
+ ao2_unlock(callno_pool);
+ return NULL;
+ }
+
+ /* unlink the object from the container, taking over ownership
+ * of the reference the container had to the object */
+ callno_entry = ao2_find((trunk ? callno_pool_trunk : callno_pool), NULL, OBJ_POINTER | OBJ_UNLINK | OBJ_CONTINUE);
+
+ if (callno_entry) {
+ callno_entry->validated = validated;
+ if (!validated) {
+ total_nonval_callno_used++;
+ }
+ }
+
+ ao2_unlock(callno_pool);
+ return callno_entry;
+}
+
+static int replace_callno(void *obj)
+{
+ struct callno_entry *callno_entry = (struct callno_entry *) obj;
+
+ /* the callno_pool container is locked here primarily to ensure thread
+ * safety of the total_nonval_callno_used check and decrement */
+ ao2_lock(callno_pool);
+
+ if (!callno_entry->validated && (total_nonval_callno_used != 0)) {
+ total_nonval_callno_used--;
+ } else if (!callno_entry->validated && (total_nonval_callno_used == 0)) {
+ ast_log(LOG_ERROR, "Attempted to decrement total non calltoken validated callnumbers below zero... Callno is:%d \n", callno_entry->callno);
+ }
+
+ if (callno_entry->callno < TRUNK_CALL_START) {
+ ao2_link(callno_pool, callno_entry);
+ } else {
+ ao2_link(callno_pool_trunk, callno_entry);
+ }
+ ao2_ref(callno_entry, -1); /* only container ref remains */
+
+ ao2_unlock(callno_pool);
+ return 0;
+}
+
+static int callno_hash(const void *obj, const int flags)
+{
+ return abs(rand());
+}
+
+static int create_callno_pools(void)
+{
+ uint16_t i;
+
+ if (!(callno_pool = ao2_container_alloc(CALLNO_POOL_BUCKETS, callno_hash, NULL))) {
+ return -1;
+ }
+
+ if (!(callno_pool_trunk = ao2_container_alloc(CALLNO_POOL_BUCKETS, callno_hash, NULL))) {
+ return -1;
+ }
+
+ /* start at 2, 0 and 1 are reserved */
+ for (i = 2; i <= IAX_MAX_CALLS; i++) {
+ struct callno_entry *callno_entry;
+
+ if (!(callno_entry = ao2_alloc(sizeof(*callno_entry), NULL))) {
+ return -1;
+ }
+
+ callno_entry->callno = i;
+
+ if (i < TRUNK_CALL_START) {
+ ao2_link(callno_pool, callno_entry);
+ } else {
+ ao2_link(callno_pool_trunk, callno_entry);
+ }
+
+ ao2_ref(callno_entry, -1);
+ }
+
+ return 0;
+}
+
+/*!
+ * \internal
+ * \brief Schedules delayed removal of iax2_pvt call number data
+ *
+ * \note After MIN_REUSE_TIME has passed for a destroyed iax2_pvt, the callno is
+ * avaliable again, and the address from the previous connection must be decremented
+ * from the peercnts table. This function schedules these operations to take place.
+ */
+static void sched_delay_remove(struct sockaddr_in *sin, struct callno_entry *callno_entry)
+{
+ int i;
+ struct peercnt *peercnt;
+ struct peercnt tmp = {
+ .addr = sin->sin_addr.s_addr,
+ };
+ char iabuf[INET_ADDRSTRLEN];
+
+ if ((peercnt = ao2_find(peercnts, &tmp, OBJ_POINTER))) {
+ /* refcount is incremented with ao2_find. keep that ref for the scheduler */
+ if (option_debug) {
+ ast_log(LOG_NOTICE, "schedule decrement of callno used for %s in %d seconds\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), MIN_REUSE_TIME);
+ }
+ i = ast_sched_add(sched, MIN_REUSE_TIME * 1000, peercnt_remove_cb, peercnt);
+ if (i == -1) {
+ ao2_ref(peercnt, -1);
+ }
+ }
+
+ ast_sched_add(sched, MIN_REUSE_TIME * 1000, replace_callno, callno_entry);
+}
+
+/*!
+ * \internal
+ * \brief returns whether or not a frame is capable of starting a new IAX2 dialog.
+ *
+ * \note For this implementation, inbound pokes should _NOT_ be capable of allocating
+ * a new callno.
+ */
+static inline int iax2_allow_new(int frametype, int subclass, int inbound)
+{
+ if (frametype != AST_FRAME_IAX) {
+ return 0;
+ }
+ switch (subclass) {
+ case IAX_COMMAND_NEW:
+ case IAX_COMMAND_REGREQ:
+ case IAX_COMMAND_FWDOWNL:
+ case IAX_COMMAND_REGREL:
+ return 1;
+ case IAX_COMMAND_POKE:
+ if (!inbound) {
+ return 1;
+ }
+ break;
+ }
+ return 0;
+}
+
static int find_callno(unsigned short callno, unsigned short dcallno, struct sockaddr_in *sin, int new, int lockpeer, int sockfd, int check_dcallno)
{
int res = 0;
int x;
- struct timeval now;
char iabuf[INET_ADDRSTRLEN];
+ /* this call is calltoken validated as long as it is either NEW_FORCE
+ * or NEW_ALLOW_CALLTOKEN_VALIDATED */
+ int validated = (new > NEW_ALLOW) ? 1 : 0;
char host[80];
if (new <= NEW_ALLOW) {
if (callno) {
@@ -1308,8 +2020,7 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
}
}
if ((res < 1) && (new >= NEW_ALLOW)) {
- int start, found = 0;
-
+ struct callno_entry *callno_entry;
/* It may seem odd that we look through the peer list for a name for
* this *incoming* call. Well, it is weird. However, users don't
* have an IP address/port number that we can match against. So,
@@ -1319,37 +2030,29 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
if (!iax2_getpeername(*sin, host, sizeof(host), lockpeer))
snprintf(host, sizeof(host), "%s:%d", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ntohs(sin->sin_port));
- gettimeofday(&now, NULL);
-
- start = 2 + (rand() % (TRUNK_CALL_START - 1));
- for (x = start; 1; x++) {
- if (x == TRUNK_CALL_START) {
- x = 1;
- continue;
- }
-
- /* Find first unused call number that hasn't been used in a while */
- ast_mutex_lock(&iaxsl[x]);
- if (!iaxs[x] && ((now.tv_sec - lastused[x].tv_sec) > MIN_REUSE_TIME)) {
- found = 1;
- break;
- }
- ast_mutex_unlock(&iaxsl[x]);
- if (x == start - 1) {
- break;
- }
+ if (peercnt_add(sin)) {
+ /* This address has hit its callnumber limit. When the limit
+ * is reached, the connection is not added to the peercnts table.*/
+ return 0;
}
- /* We've still got lock held if we found a spot */
- if (x == start - 1 && !found) {
+
+ if (!(callno_entry = get_unused_callno(0, validated))) {
+ /* since we ran out of space, remove the peercnt
+ * entry we added earlier */
+ peercnt_remove_by_addr(sin);
ast_log(LOG_WARNING, "No more space\n");
return 0;
}
+ x = callno_entry->callno;
+ ast_mutex_lock(&iaxsl[x]);
+
iaxs[x] = new_iax(sin, lockpeer, host);
update_max_nontrunk();
if (iaxs[x]) {
if (option_debug && iaxdebug)
ast_log(LOG_DEBUG, "Creating new call structure %d\n", x);
+ iaxs[x]->callno_entry = callno_entry;
iaxs[x]->sockfd = sockfd;
iaxs[x]->addr.sin_port = sin->sin_port;
iaxs[x]->addr.sin_family = sin->sin_family;
@@ -1369,6 +2072,7 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
} else {
ast_log(LOG_WARNING, "Out of resources\n");
ast_mutex_unlock(&iaxsl[x]);
+ replace_callno(callno_entry);
return 0;
}
ast_mutex_unlock(&iaxsl[x]);
@@ -2112,6 +2816,8 @@ static int iax2_show_peer(int fd, int argc, char *argv[])
ast_cli(fd, " Context : %s\n", peer->context);
ast_cli(fd, " Mailbox : %s\n", peer->mailbox);
ast_cli(fd, " Dynamic : %s\n", ast_test_flag(peer, IAX_DYNAMIC) ? "Yes":"No");
+ ast_cli(fd, " Callnum limit: %d\n", peer->maxcallno);
+ ast_cli(fd, " Calltoken req: %s\n", (peer->calltoken_required == CALLTOKEN_YES) ? "Yes" : ((peer->calltoken_required == CALLTOKEN_AUTO) ? "Auto" : "No"));
ast_cli(fd, " Callerid : %s\n", ast_callerid_merge(cbuf, sizeof(cbuf), peer->cid_name, peer->cid_num, "<unspecified>"));
ast_cli(fd, " Expire : %d\n", peer->expire);
ast_cli(fd, " ACL : %s\n", (peer->ha?"Yes":"No"));
@@ -3104,13 +3810,248 @@ struct parsed_dial_string {
static int send_apathetic_reply(unsigned short callno, unsigned short dcallno,
struct sockaddr_in *sin, int command, int ts, unsigned char seqno,
- int sockfd)
+ int sockfd, struct iax_ie_data *ied)
+{
+ struct {
+ struct ast_iax2_full_hdr f;
+ struct iax_ie_data ied;
+ } data;
+ size_t size = sizeof(struct ast_iax2_full_hdr);
+
+ if (ied) {
+ size += ied->pos;
+ memcpy(&data.ied, ied->buf, ied->pos);
+ }
+
+ data.f.scallno = htons(0x8000 | callno);
+ data.f.dcallno = htons(dcallno);
+ data.f.ts = htonl(ts);
+ data.f.iseqno = seqno;
+ data.f.oseqno = 0;
+ data.f.type = AST_FRAME_IAX;
+ data.f.csub = compress_subclass(command);
+
+ return sendto(sockfd, &data, size, 0, (struct sockaddr *)sin, sizeof(*sin));
+}
+
+static void add_empty_calltoken_ie(struct chan_iax2_pvt *pvt, struct iax_ie_data *ied)
+{
+ /* first make sure their are two empty bytes left in ied->buf */
+ if (pvt && ied && (2 < ((int) sizeof(ied->buf) - ied->pos))) {
+ ied->buf[ied->pos++] = IAX_IE_CALLTOKEN; /* type */
+ ied->buf[ied->pos++] = 0; /* data size, ZERO in this case */
+ pvt->calltoken_ie_len = 2;
+ }
+}
+
+static void resend_with_token(int callno, struct iax_frame *f, char *newtoken)
+{
+ struct chan_iax2_pvt *pvt = iaxs[callno];
+ int frametype = f->af.frametype;
+ int subclass = f->af.subclass;
+ struct {
+ struct ast_iax2_full_hdr fh;
+ struct iax_ie_data ied;
+ } data = {
+ .ied.buf = { 0 },
+ .ied.pos = 0,
+ };
+ /* total len - header len gives us the frame's IE len */
+ int ie_data_pos = f->datalen - sizeof(struct ast_iax2_full_hdr);
+
+ if (!pvt) {
+ return; /* this should not be possible if called from socket_process() */
+ }
+
+ /*
+ * Check to make sure last frame sent is valid for call token resend
+ * 1. Frame should _NOT_ already have a destination callno
+ * 2. Frame must be a valid iax_frame subclass capable of starting dialog
+ * 3. Pvt must have a calltoken_ie_len which represents the number of
+ * bytes at the end of the frame used for the previous calltoken ie.
+ * 4. Pvt's calltoken_ie_len must be _LESS_ than the total IE length
+ * 5. Total length of f->data must be _LESS_ than size of our data struct
+ * because f->data must be able to fit within data.
+ */
+ if (f->dcallno || !iax2_allow_new(frametype, subclass, 0)
+ || !pvt->calltoken_ie_len || (pvt->calltoken_ie_len > ie_data_pos) ||
+ (f->datalen > sizeof(data))) {
+
+ return; /* ignore resend, token was not valid for the dialog */
+ }
+
+ /* token is valid
+ * 1. Copy frame data over
+ * 2. Redo calltoken IE, it will always be the last ie in the frame.
+ * NOTE: Having the ie always be last is not protocol specified,
+ * it is only an implementation choice. Since we only expect the ie to
+ * be last for frames we have sent, this can no way be affected by
+ * another end point.
+ * 3. Remove frame from queue
+ * 4. Free old frame
+ * 5. Clear previous seqnos
+ * 6. Resend with CALLTOKEN ie.
+ */
+
+ /* ---1.--- */
+ memcpy(&data, f->data, f->datalen);
+ data.ied.pos = ie_data_pos;
+
+ /* ---2.--- */
+ /* move to the beginning of the calltoken ie so we can write over it */
+ data.ied.pos -= pvt->calltoken_ie_len;
+ iax_ie_append_str(&data.ied, IAX_IE_CALLTOKEN, newtoken);
+
+ /* make sure to update token length incase it ever has to be stripped off again */
+ pvt->calltoken_ie_len = data.ied.pos - ie_data_pos; /* new pos minus old pos tells how big token ie is */
+
+ /* ---3.--- */
+ ast_mutex_lock(&iaxq.lock);
+ if (f->prev)
+ f->prev->next = f->next;
+ else
+ iaxq.head = f->next;
+ if (f->next)
+ f->next->prev = f->prev;
+ else
+ iaxq.tail = f->prev;
+ iaxq.count--;
+ ast_mutex_unlock(&iaxq.lock);
+
+ /* ---4.--- */
+ iax2_frame_free(f);
+
+ /* ---5.--- */
+ pvt->oseqno = 0;
+ pvt->rseqno = 0;
+ pvt->iseqno = 0;
+ pvt->aseqno = 0;
+ if (pvt->peercallno) {
+ remove_by_peercallno(pvt);
+ pvt->peercallno = 0;
+ }
+
+ /* ---6.--- */
+ send_command(pvt, AST_FRAME_IAX, subclass, 0, data.ied.buf, data.ied.pos, -1);
+}
+
+static void requirecalltoken_mark_auto(const char *name, int subclass)
{
- struct ast_iax2_full_hdr f = { .scallno = htons(0x8000 | callno), .dcallno = htons(dcallno),
- .ts = htonl(ts), .iseqno = seqno, .oseqno = 0, .type = AST_FRAME_IAX,
- .csub = compress_subclass(command) };
+ struct iax2_user *user = NULL;
+ struct iax2_peer *peer = NULL;
- return sendto(sockfd, &f, sizeof(f), 0, (struct sockaddr *)sin, sizeof(*sin));
+ if (ast_strlen_zero(name)) {
+ return; /* no username given */
+ }
+
+ if ((subclass == IAX_COMMAND_NEW) && (user = find_user(name, 1)) && (user->calltoken_required == CALLTOKEN_AUTO)) {
+ user->calltoken_required = CALLTOKEN_YES;
+ } else if ((subclass != IAX_COMMAND_NEW) && (peer = find_peer(name, 1)) && (peer->calltoken_required == CALLTOKEN_AUTO)) {
+ peer->calltoken_required = CALLTOKEN_YES;
+ }
+}
+
+/*!
+ * \internal
+ *
+ * \brief handles calltoken logic for a received iax_frame.
+ *
+ * \note frametype must be AST_FRAME_IAX.
+ *
+ * \note
+ * Three different cases are possible here.
+ * Case 1. An empty calltoken is provided. This means the client supports
+ * calltokens but has not yet received one from us. In this case
+ * a full calltoken IE is created and sent in a calltoken fullframe.
+ * Case 2. A full calltoken is received and must be checked for validity.
+ * Case 3. No calltoken is received indicating that the client does not
+ * support calltokens. In this case it is up to the configuration
+ * to decide how this should be handled (reject or permit without calltoken)
+ */
+static int handle_call_token(struct ast_iax2_full_hdr *fh, struct iax_ies *ies,
+ struct sockaddr_in *sin, int fd)
+{
+#define CALLTOKEN_HASH_FORMAT "%s%d%u%d" /* address + port + ts + randomcalldata */
+#define CALLTOKEN_IE_FORMAT "%u?%s" /* time + ? + (40 char hash) */
+ char buf[256] = { 0 };
+ time_t t = time(NULL);
+ char hash[41]; /* 40 char sha1 hash */
+ int subclass = uncompress_subclass(fh->csub);
+ char iabuf[INET_ADDRSTRLEN];
+
+ /* ----- Case 1 ----- */
+ if (ies->calltoken && !ies->calltokendata) { /* empty calltoken is provided, client supports calltokens */
+ struct iax_ie_data ied = {
+ .buf = { 0 },
+ .pos = 0,
+ };
+
+ /* create the hash with their address data and our timestamp */
+ snprintf(buf, sizeof(buf), CALLTOKEN_HASH_FORMAT, ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), sin->sin_port, (unsigned int) t, randomcalltokendata);
+ ast_sha1_hash(hash, buf);
+
+ snprintf(buf, sizeof(buf), CALLTOKEN_IE_FORMAT, (unsigned int) t, hash);
+ iax_ie_append_str(&ied, IAX_IE_CALLTOKEN, buf);
+ send_apathetic_reply(1, ntohs(fh->scallno), sin, IAX_COMMAND_CALLTOKEN, ntohl(fh->ts), fh->iseqno + 1, fd, &ied);
+
+ return 1;
+
+ /* ----- Case 2 ----- */
+ } else if (ies->calltoken && ies->calltokendata) { /* calltoken received, check to see if it is valid */
+ char *rec_hash = NULL; /* the received hash, make sure it matches with ours. */
+ char *rec_ts = NULL; /* received timestamp */
+ unsigned int rec_time; /* received time_t */
+
+ /* split the timestamp from the hash data */
+ rec_hash = strchr((char *) ies->calltokendata, '?');
+ if (rec_hash) {
+ *rec_hash++ = '\0';
+ rec_ts = (char *) ies->calltokendata;
+ }
+
+ /* check that we have valid data before we do any comparisons */
+ if (!rec_hash || !rec_ts) {
+ goto reject;
+ } else if (sscanf(rec_ts, "%u", &rec_time) != 1) {
+ goto reject;
+ }
+
+ /* create a hash with their address and the _TOKEN'S_ timestamp */
+ snprintf(buf, sizeof(buf), CALLTOKEN_HASH_FORMAT, ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), sin->sin_port, (unsigned int) rec_time, randomcalltokendata);
+ ast_sha1_hash(hash, buf);
+
+ /* compare hashes and then check timestamp delay */
+ if (strcmp(hash, rec_hash)) {
+ ast_log(LOG_WARNING, "Address %s failed CallToken hash inspection\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
+ goto reject; /* received hash does not match ours, reject */
+ } else if ((t < rec_time) || ((t - rec_time) >= MAX_CALLTOKEN_DELAY)) {
+ ast_log(LOG_WARNING, "Too much delay in IAX2 calltoken timestamp from address %s\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
+ goto reject; /* too much delay, reject */
+ }
+
+ /* at this point the call token is valid, returning 0
+ * will allow socket_process to continue as usual */
+ requirecalltoken_mark_auto(ies->username, subclass);
+ return 0;
+
+ /* ----- Case 3 ----- */
+ } else { /* calltokens are not supported for this client, how do we respond? */
+ if (calltoken_required(sin, ies->username, subclass)) {
+ ast_log(LOG_ERROR, "Call rejected, CallToken Support required. If unexpected, resolve by placing address %s in the calltokenignore list or setting user %s requirecalltoken=no\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ies->username);
+ goto reject;
+ }
+ return 0; /* calltoken is not required for this addr, so permit it. */
+ }
+
+reject:
+ /* received frame has failed calltoken inspection, send apathetic reject messages */
+ if (subclass == IAX_COMMAND_REGREQ || subclass == IAX_COMMAND_REGREL) {
+ send_apathetic_reply(1, ntohs(fh->scallno), sin, IAX_COMMAND_REGREJ, ntohl(fh->ts), fh->iseqno + 1, fd, NULL);
+ } else {
+ send_apathetic_reply(1, ntohs(fh->scallno), sin, IAX_COMMAND_REJECT, ntohl(fh->ts), fh->iseqno + 1, fd, NULL);
+ }
+
+ return 1;
}
/*!
@@ -3297,6 +4238,7 @@ static int iax2_call(struct ast_channel *c, char *dest, int timeout)
iaxs[callno]->sockfd = cai.sockfd;
/* Transmit the string in a "NEW" request */
+ add_empty_calltoken_ie(iaxs[callno], &ied); /* this _MUST_ be the last ie added */
send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_NEW, 0, ied.buf, ied.pos, -1);
ast_mutex_unlock(&iaxsl[callno]);
@@ -5719,8 +6661,11 @@ static int complete_dpreply(struct chan_iax2_pvt *pvt, struct iax_ies *ies)
}
/* Wake up waiters */
for (x=0;x<sizeof(dp->waiters) / sizeof(dp->waiters[0]); x++)
- if (dp->waiters[x] > -1)
- write(dp->waiters[x], "asdf", 4);
+ if (dp->waiters[x] > -1) {
+ if (write(dp->waiters[x], "asdf", 4) == -1) {
+ ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno));
+ }
+ }
}
prev = dp;
dp = dp->peer;
@@ -5742,6 +6687,13 @@ static int complete_transfer(int callno, struct iax_ies *ies)
ast_log(LOG_WARNING, "Invalid transfer request\n");
return -1;
}
+
+ /* since a transfer has taken place, the address will change.
+ * This must be accounted for in the peercnts table. Remove
+ * the old address and add the new one */
+ peercnt_remove_by_addr(&pvt->addr);
+ peercnt_add(&pvt->transfer);
+ /* now copy over the new address */
memcpy(&pvt->addr, &pvt->transfer, sizeof(pvt->addr));
memset(&pvt->transfer, 0, sizeof(pvt->transfer));
/* Reset sequence numbers */
@@ -5939,6 +6891,8 @@ static int expire_registry(void *data)
ast_log(LOG_DEBUG, "Expiring registration for peer '%s'\n", p->name);
if (ast_test_flag((&globalflags), IAX_RTUPDATE) && (ast_test_flag(p, IAX_TEMPONLY|IAX_RTCACHEFRIENDS)))
realtime_update_peer(p->name, &p->addr, 0);
+ /* modify entry in peercnts table as _not_ registered */
+ peercnt_modify(0, 0, &p->addr);
/* Reset the address */
memset(&p->addr, 0, sizeof(p->addr));
/* Reset expire notice */
@@ -6031,6 +6985,10 @@ static int update_registry(char *name, struct sockaddr_in *sin, int callno, char
if (inaddrcmp(&p->addr, sin)) {
if (iax2_regfunk)
iax2_regfunk(p->name, 1);
+
+ /* modify entry in peercnts table as _not_ registered */
+ peercnt_modify(0, 0, &p->addr);
+
/* Stash the IP address from which they registered */
memcpy(&p->addr, sin, sizeof(p->addr));
snprintf(data, sizeof(data), "%s:%d:%d", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ntohs(sin->sin_port), p->expiry);
@@ -6054,7 +7012,13 @@ static int update_registry(char *name, struct sockaddr_in *sin, int callno, char
/* Update the host */
/* Verify that the host is really there */
iax2_poke_peer(p, callno);
- }
+ }
+
+ /* modify entry in peercnts table as registered */
+ if (p->maxcallno) {
+ peercnt_modify(1, p->maxcallno, &p->addr);
+ }
+
/* Store socket fd */
p->sockfd = fd;
/* Setup the expiry */
@@ -6182,6 +7146,7 @@ static int registry_rerequest(struct iax_ies *ies, int callno, struct sockaddr_i
res = authenticate(challenge, reg->secret, NULL, authmethods, &ied, sin, NULL, NULL);
if (!res) {
reg->regstate = REG_STATE_AUTHSENT;
+ add_empty_calltoken_ie(iaxs[callno], &ied); /* this _MUST_ be the last ie added */
return send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_REGREQ, 0, ied.buf, ied.pos, -1);
} else
return -1;
@@ -6879,17 +7844,49 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
/* Deal with POKE/PONG without allocating a callno */
if (f.frametype == AST_FRAME_IAX && f.subclass == IAX_COMMAND_POKE) {
/* Reply back with a PONG, but don't care about the result. */
- send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_PONG, ntohs(fh->ts), fh->iseqno + 1, fd);
+ send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_PONG, ntohl(fh->ts), fh->iseqno + 1, fd, NULL);
return 1;
} else if (f.frametype == AST_FRAME_IAX && f.subclass == IAX_COMMAND_ACK && dcallno == 1) {
/* Ignore */
return 1;
}
+ f.datalen = res - sizeof(*fh);
+ if (f.datalen) {
+ if (f.frametype == AST_FRAME_IAX) {
+ if (iax_parse_ies(&ies, buf + sizeof(*fh), f.datalen)) {
+ ast_log(LOG_WARNING, "Undecodable frame received from '%s'\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr));
+ return 1;
+ }
+ f.data = NULL;
+ f.datalen = 0;
+ } else {
+ f.data = buf + sizeof(*fh);
+ memset(&ies, 0, sizeof(ies));
+ }
+ } else {
+ if (f.frametype == AST_FRAME_IAX)
+ f.data = NULL;
+ else
+ f.data = empty;
+ memset(&ies, 0, sizeof(ies));
+ }
+
+ if (!dcallno && iax2_allow_new(f.frametype, f.subclass, 1)) {
+ /* only set NEW_ALLOW if calltoken checks out */
+ if (handle_call_token(fh, &ies, &sin, fd)) {
+ return 1;
+ }
- if ((f.frametype == AST_FRAME_IAX) && ((f.subclass == IAX_COMMAND_NEW) || (f.subclass == IAX_COMMAND_REGREQ) ||
- (f.subclass == IAX_COMMAND_POKE) || (f.subclass == IAX_COMMAND_FWDOWNL) ||
- (f.subclass == IAX_COMMAND_REGREL)))
- new = NEW_ALLOW;
+ if (ies.calltoken && ies.calltokendata) {
+ /* if we've gotten this far, and the calltoken ie data exists,
+ * then calltoken validation _MUST_ have taken place. If calltoken
+ * data is provided, it is always validated reguardless of any
+ * calltokenoptional or requirecalltoken options */
+ new = NEW_ALLOW_CALLTOKEN_VALIDATED;
+ } else {
+ new = NEW_ALLOW;
+ }
+ }
} else {
/* Don't know anything about it yet */
f.frametype = AST_FRAME_NULL;
@@ -6915,7 +7912,14 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
check_dcallno = f.frametype == AST_FRAME_IAX ? (f.subclass != IAX_COMMAND_PING && f.subclass != IAX_COMMAND_LAGRQ) : 1;
}
- fr->callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd, check_dcallno);
+ if (!(fr->callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd, check_dcallno))) {
+ if (f.frametype == AST_FRAME_IAX && f.subclass == IAX_COMMAND_NEW) {
+ send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_REJECT, ntohl(fh->ts), fh->iseqno + 1, fd, NULL);
+ } else if (f.frametype == AST_FRAME_IAX && (f.subclass == IAX_COMMAND_REGREQ || f.subclass == IAX_COMMAND_REGREL)) {
+ send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_REGREJ, ntohl(fh->ts), fh->iseqno + 1, fd, NULL);
+ }
+ return 1;
+ }
}
if (fr->callno > 0)
@@ -7042,12 +8046,6 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
(f.frametype != AST_FRAME_IAX))
iaxs[fr->callno]->iseqno++;
}
- /* A full frame */
- if (res < sizeof(*fh)) {
- ast_log(LOG_WARNING, "midget packet received (%d of %zd min)\n", res, sizeof(*fh));
- ast_mutex_unlock(&iaxsl[fr->callno]);
- return 1;
- }
/* Ensure text frames are NULL-terminated */
if (f.frametype == AST_FRAME_TEXT && buf[res - 1] != '\0') {
if (res < sizeof(buf))
@@ -7055,7 +8053,6 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
else /* Trims one character from the text message, but that's better than overwriting the end of the buffer. */
buf[res - 1] = '\0';
}
- f.datalen = res - sizeof(*fh);
/* Handle implicit ACKing unless this is an INVAL, and only if this is
from the real peer, not the transfer peer */
@@ -7111,25 +8108,6 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
return 1;
}
- if (f.datalen) {
- if (f.frametype == AST_FRAME_IAX) {
- if (iax_parse_ies(&ies, buf + sizeof(*fh), f.datalen)) {
- ast_log(LOG_WARNING, "Undecodable frame received from '%s'\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr));
- ast_mutex_unlock(&iaxsl[fr->callno]);
- return 1;
- }
- f.data = NULL;
- f.datalen = 0;
- } else
- f.data = buf + sizeof(*fh);
- } else {
- if (f.frametype == AST_FRAME_IAX)
- f.data = NULL;
- else
- f.data = empty;
- memset(&ies, 0, sizeof(ies));
- }
-
/* when we receive the first full frame for a new incoming channel,
it is safe to start the PBX on the channel because we have now
completed a 3-way handshake with the peer */
@@ -7992,6 +8970,28 @@ retryowner2:
else
send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_FWDATA, 0, ied0.buf, ied0.pos, -1);
break;
+ case IAX_COMMAND_CALLTOKEN:
+ {
+ struct iax_frame *cur;
+ int found = 0;
+
+ ast_mutex_lock(&iaxq.lock);
+ for (cur = iaxq.head; cur ; cur = cur->next) {
+ /* find the last sent frame in our frame queue for this callno.
+ * There are many things to take into account before resending this frame.
+ * All of these are taken care of in resend_with_token() */
+ if (cur->callno == iaxs[fr->callno]->callno) {
+ found = 1;
+ break;
+ }
+ }
+ ast_mutex_unlock(&iaxq.lock);
+ /* find last sent frame */
+ if (cur && found && ies.calltoken && ies.calltokendata) {
+ resend_with_token(fr->callno, cur, (char *) ies.calltokendata);
+ }
+ break;
+ }
default:
ast_log(LOG_DEBUG, "Unknown IAX command %d on %d/%d\n", f.subclass, fr->callno, iaxs[fr->callno]->peercallno);
memset(&ied0, 0, sizeof(ied0));
@@ -8144,6 +9144,7 @@ static int iax2_do_register(struct iax2_registry *reg)
memset(&ied, 0, sizeof(ied));
iax_ie_append_str(&ied, IAX_IE_USERNAME, reg->username);
iax_ie_append_short(&ied, IAX_IE_REFRESH, reg->refresh);
+ add_empty_calltoken_ie(iaxs[reg->callno], &ied); /* this _MUST_ be the last ie added */
send_command(iaxs[reg->callno],AST_FRAME_IAX, IAX_COMMAND_REGREQ, 0, ied.buf, ied.pos, -1);
reg->regstate = REG_STATE_REGSENT;
return 0;
@@ -8290,6 +9291,10 @@ static int iax2_poke_noanswer(void *data)
static int iax2_poke_peer(struct iax2_peer *peer, int heldcall)
{
+ struct iax_ie_data ied = {
+ .buf = { 0 },
+ .pos = 0,
+ };
if (!peer->maxms || !peer->addr.sin_addr.s_addr) {
/* IF we have no IP, or this isn't to be monitored, return
imeediately after clearing things out */
@@ -8317,8 +9322,10 @@ static int iax2_poke_peer(struct iax2_peer *peer, int heldcall)
/* Speed up retransmission times */
iaxs[peer->callno]->pingtime = peer->maxms / 4 + 1;
iaxs[peer->callno]->peerpoke = peer;
- send_command(iaxs[peer->callno], AST_FRAME_IAX, IAX_COMMAND_POKE, 0, NULL, 0, -1);
-
+
+ add_empty_calltoken_ie(iaxs[peer->callno], &ied); /* this _MUST_ be the last ie added */
+ send_command(iaxs[peer->callno], AST_FRAME_IAX, IAX_COMMAND_POKE, 0, ied.buf, ied.pos, -1);
+
/* If the host is already unreachable then use the unreachable interval instead */
if (peer->lastms < 0) {
peer->pokeexpire = ast_sched_add(sched, peer->pokefreqnotok, iax2_poke_noanswer, peer);
@@ -8677,6 +9684,9 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, in
peer->smoothing = 0;
peer->pokefreqok = DEFAULT_FREQ_OK;
peer->pokefreqnotok = DEFAULT_FREQ_NOTOK;
+ peer->maxcallno = 0;
+ peercnt_modify(0, 0, &peer->addr);
+ peer->calltoken_required = CALLTOKEN_DEFAULT;
peer->context[0] = '\0';
peer->peercontext[0] = '\0';
ast_clear_flag(peer, IAX_HASCALLERID);
@@ -8803,7 +9813,24 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, in
} else ast_log(LOG_WARNING, "Set peer->pokefreqnotok to %d\n", peer->pokefreqnotok);
} else if (!strcasecmp(v->name, "timezone")) {
ast_copy_string(peer->zonetag, v->value, sizeof(peer->zonetag));
- }/* else if (strcasecmp(v->name,"type")) */
+ } else if (!strcasecmp(v->name, "maxcallnumbers")) {
+ if (sscanf(v->value, "%10hu", &peer->maxcallno) != 1) {
+ ast_log(LOG_WARNING, "maxcallnumbers must be set to a valid number. %s is not valid at line %d.\n", v->value, v->lineno);
+ } else {
+ peercnt_modify(1, peer->maxcallno, &peer->addr);
+ }
+ } else if (!strcasecmp(v->name, "requirecalltoken")) {
+ /* default is required unless in optional ip list */
+ if (ast_false(v->value)) {
+ peer->calltoken_required = CALLTOKEN_NO;
+ } else if (!strcasecmp(v->value, "auto")) {
+ peer->calltoken_required = CALLTOKEN_AUTO;
+ } else if (ast_true(v->value)) {
+ peer->calltoken_required = CALLTOKEN_YES;
+ } else {
+ ast_log(LOG_WARNING, "requirecalltoken must be set to a valid value. at line %d\n", v->lineno);
+ }
+ } /* else if (strcasecmp(v->name,"type")) */
/* ast_log(LOG_WARNING, "Ignoring %s\n", v->name); */
v=v->next;
}
@@ -8871,6 +9898,7 @@ static struct iax2_user *build_user(const char *name, struct ast_variable *v, in
user->prefs = prefs;
user->capability = iax2_capability;
user->encmethods = iax2_encryption;
+ user->calltoken_required = CALLTOKEN_DEFAULT;
ast_copy_string(user->name, name, sizeof(user->name));
ast_copy_string(user->language, language, sizeof(user->language));
ast_copy_flags(user, &globalflags, IAX_USEJITTERBUF | IAX_FORCEJITTERBUF | IAX_CODEC_USER_FIRST | IAX_CODEC_NOPREFS | IAX_CODEC_NOCAP);
@@ -8963,7 +9991,18 @@ static struct iax2_user *build_user(const char *name, struct ast_variable *v, in
user->maxauthreq = atoi(v->value);
if (user->maxauthreq < 0)
user->maxauthreq = 0;
- }/* else if (strcasecmp(v->name,"type")) */
+ } else if (!strcasecmp(v->name, "requirecalltoken")) {
+ /* default is required unless in optional ip list */
+ if (ast_false(v->value)) {
+ user->calltoken_required = CALLTOKEN_NO;
+ } else if (!strcasecmp(v->value, "auto")) {
+ user->calltoken_required = CALLTOKEN_AUTO;
+ } else if (ast_true(v->value)) {
+ user->calltoken_required = CALLTOKEN_YES;
+ } else {
+ ast_log(LOG_WARNING, "requirecalltoken must be set to a valid value. at line %d\n", v->lineno);
+ }
+ } /* else if (strcasecmp(v->name,"type")) */
/* ast_log(LOG_WARNING, "Ignoring %s\n", v->name); */
v = v->next;
}
@@ -9119,7 +10158,7 @@ static void set_timing(void)
/*--- set_config: Load configuration */
-static int set_config(char *config_file, int reload)
+static int set_config(const char *config_file, int reload)
{
struct ast_config *cfg;
int capability=iax2_capability;
@@ -9157,6 +10196,8 @@ static int set_config(char *config_file, int reload)
min_reg_expire = IAX_DEFAULT_REG_EXPIRE;
max_reg_expire = IAX_DEFAULT_REG_EXPIRE;
+ global_maxcallno = DEFAULT_MAXCALLNO_LIMIT;
+ global_maxcallno_nonval = DEFAULT_MAXCALLNO_LIMIT_NONVAL;
maxauthreq = 0;
@@ -9322,7 +10363,19 @@ static int set_config(char *config_file, int reload)
maxauthreq = atoi(v->value);
if (maxauthreq < 0)
maxauthreq = 0;
- } /*else if (strcasecmp(v->name,"type")) */
+ } else if (!strcasecmp(v->name, "maxcallnumbers")) {
+ if (sscanf(v->value, "%10hu", &global_maxcallno) != 1) {
+ ast_log(LOG_WARNING, "maxcallnumbers must be set to a valid number. %s is not valid at line %d\n", v->value, v->lineno);
+ }
+ } else if (!strcasecmp(v->name, "maxcallnumbers_nonvalidated")) {
+ if (sscanf(v->value, "%10hu", &global_maxcallno_nonval) != 1) {
+ ast_log(LOG_WARNING, "maxcallnumbers_nonvalidated must be set to a valid number. %s is not valid at line %d.\n", v->value, v->lineno);
+ }
+ } else if(!strcasecmp(v->name, "calltokenoptional")) {
+ if (add_calltoken_ignore(v->value)) {
+ ast_log(LOG_WARNING, "Invalid calltokenoptional address range - '%s' line %d\n", v->value, v->lineno);
+ }
+ }/*else if (strcasecmp(v->name,"type")) */
/* ast_log(LOG_WARNING, "Ignoring %s\n", v->name); */
v = v->next;
}
@@ -9357,7 +10410,9 @@ static int set_config(char *config_file, int reload)
while(cat) {
if (strcasecmp(cat, "general")) {
utype = ast_variable_retrieve(cfg, cat, "type");
- if (utype) {
+ if (!strcasecmp(cat, "callnumberlimits")) {
+ build_callno_limits(ast_variable_browse(cfg, cat));
+ } else if (utype) {
if (!strcasecmp(utype, "user") || !strcasecmp(utype, "friend")) {
user = build_user(cat, ast_variable_browse(cfg, cat), 0);
if (user) {
@@ -9392,7 +10447,7 @@ static int set_config(char *config_file, int reload)
static int reload_config(void)
{
- char *config = "iax.conf";
+ static const char config[] = "iax.conf";
struct iax2_registry *reg;
struct iax2_peer *peer;
ast_copy_string(accountcode, "", sizeof(accountcode));
@@ -9403,9 +10458,16 @@ static int reload_config(void)
ast_clear_flag((&globalflags), IAX_USEJITTERBUF);
ast_clear_flag((&globalflags), IAX_FORCEJITTERBUF);
delete_users();
+ ao2_callback(callno_limits, OBJ_NODATA, addr_range_delme_cb, NULL);
+ ao2_callback(calltoken_ignores, OBJ_NODATA, addr_range_delme_cb, NULL);
+
set_config(config,1);
prune_peers();
prune_users();
+ ao2_callback(callno_limits, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, prune_addr_range_cb, NULL);
+ ao2_callback(calltoken_ignores, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, prune_addr_range_cb, NULL);
+ ao2_callback(peercnts, OBJ_NODATA, set_peercnt_limit_all_cb, NULL);
+
ast_mutex_lock(&reg_lock);
for (reg = registrations; reg; reg = reg->next)
iax2_do_register(reg);
@@ -9493,6 +10555,7 @@ static int cache_get_callno_locked(const char *data)
if (pds.key)
ast_copy_string(iaxs[callno]->outkey, pds.key, sizeof(iaxs[callno]->outkey));
/* Start the call going */
+ add_empty_calltoken_ie(iaxs[callno], &ied); /* this _MUST_ be the last ie added */
send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_NEW, 0, ied.buf, ied.pos, -1);
return callno;
@@ -9925,6 +10988,10 @@ static char show_peer_usage[] =
"Usage: iax show peer <name>\n"
" Display details on specific IAX peer\n";
+static char show_callnumber_usage[] =
+"Usage: iax2 show callnumber usage <ip optional>\n"
+" Show current entries in the ip Call Number Limit table.\n";
+
static char prune_realtime_usage[] =
"Usage: iax2 prune realtime [<peername>|all]\n"
" Prunes object(s) from the cache\n";
@@ -10034,6 +11101,8 @@ static struct ast_cli_entry iax2_cli[] = {
"Show defined IAX peers", show_peers_usage },
{ { "iax2", "show", "registry", NULL }, iax2_show_registry,
"Show IAX registration status", show_reg_usage },
+ { { "iax2", "show", "callnumber", "usage", NULL }, iax2_show_callnumber_usage,
+ "Show current entries in ip Call number limit table", show_callnumber_usage },
{ { "iax2", "debug", NULL }, iax2_do_debug,
"Enable IAX debugging", debug_usage },
{ { "iax2", "trunk", "debug", NULL }, iax2_do_trunk_debug,
@@ -10092,11 +11161,16 @@ static int __unload_module(void)
ast_mutex_destroy(&iaxsl[x]);
ao2_ref(iax_peercallno_pvts, -1);
+ ao2_ref(peercnts, -1);
+ ao2_ref(callno_limits, -1);
+ ao2_ref(calltoken_ignores, -1);
+ ao2_ref(callno_pool, -1);
+ ao2_ref(callno_pool_trunk, -1);
return 0;
}
-int unload_module()
+int unload_module(void)
{
ast_custom_function_unregister(&iaxpeer_function);
return __unload_module();
@@ -10120,15 +11194,60 @@ static int pvt_cmp_cb(void *obj, void *arg, int flags)
pvt2->frames_received) ? CMP_MATCH : 0;
}
+static int load_objects(void)
+{
+ iax_peercallno_pvts = peercnts = callno_limits = calltoken_ignores = callno_pool = callno_pool_trunk = NULL;
+ if (!(iax_peercallno_pvts = ao2_container_alloc(IAX_MAX_CALLS, pvt_hash_cb, pvt_cmp_cb))) {
+ goto container_fail;
+ } else if (!(peercnts = ao2_container_alloc(MAX_PEER_BUCKETS, peercnt_hash_cb, peercnt_cmp_cb))) {
+ goto container_fail;
+ } else if (!(callno_limits = ao2_container_alloc(MAX_PEER_BUCKETS, addr_range_hash_cb, addr_range_cmp_cb))) {
+ goto container_fail;
+ } else if (!(calltoken_ignores = ao2_container_alloc(MAX_PEER_BUCKETS, addr_range_hash_cb, addr_range_cmp_cb))) {
+ goto container_fail;
+ } else if (create_callno_pools()) {
+ goto container_fail;
+ }
+
+ return 0;
+
+container_fail:
+ if (iax_peercallno_pvts) {
+ ao2_ref(iax_peercallno_pvts, -1);
+ }
+ if (peercnts) {
+ ao2_ref(peercnts, -1);
+ }
+ if (callno_limits) {
+ ao2_ref(callno_limits, -1);
+ }
+ if (calltoken_ignores) {
+ ao2_ref(calltoken_ignores, -1);
+ }
+ if (callno_pool) {
+ ao2_ref(callno_pool, -1);
+ }
+ if (callno_pool_trunk) {
+ ao2_ref(callno_pool_trunk, -1);
+ }
+ return -1;
+}
+
/*--- load_module: Load IAX2 module, load configuraiton ---*/
int load_module(void)
{
- char *config = "iax.conf";
+ static const char config[] = "iax.conf";
int res = 0;
int x;
struct iax2_registry *reg;
struct iax2_peer *peer;
-
+
+ if (load_objects()) {
+ return -1;
+ }
+
+ randomcalltokendata = rand();
+
ast_custom_function_register(&iaxpeer_function);
iax_set_output(iax_debug_output);
@@ -10207,11 +11326,6 @@ int load_module(void)
ast_netsock_release(outsock);
}
- iax_peercallno_pvts = ao2_container_alloc(IAX_MAX_CALLS, pvt_hash_cb, pvt_cmp_cb);
- if (!iax_peercallno_pvts) {
- res = -1;
- }
-
ast_mutex_lock(&reg_lock);
for (reg = registrations; reg; reg = reg->next)
iax2_do_register(reg);
@@ -10228,17 +11342,17 @@ int load_module(void)
return res;
}
-char *description()
+char *description(void)
{
return (char *) desc;
}
-int usecount()
+int usecount(void)
{
return usecnt;
}
-char *key()
+char *key(void)
{
return ASTERISK_GPL_KEY;
}
diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c
index 6db037455..3b7ea54bd 100644
--- a/channels/iax2-parser.c
+++ b/channels/iax2-parser.c
@@ -433,7 +433,10 @@ void iax_showframe(struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, s
"TRANSFR",
"PROVISN",
"FWDWNLD",
- "FWDATA "
+ "FWDATA ",
+ "TXMEDIA",
+ "RTKEY ",
+ "CTOKEN ",
};
const char *cmds[] = {
"(0?)",
@@ -873,6 +876,12 @@ int iax_parse_ies(struct iax_ies *ies, unsigned char *data, int datalen)
ies->rr_ooo = ntohl(get_unaligned_uint32(data + 2));
}
break;
+ case IAX_IE_CALLTOKEN:
+ if (len) {
+ ies->calltokendata = (unsigned char *) data + 2;
+ }
+ ies->calltoken = 1;
+ break;
default:
snprintf(tmp, (int)sizeof(tmp), "Ignoring unknown information element '%s' (%d) of length %d\n", iax_ie2str(ie), ie, len);
outputf(tmp);
diff --git a/channels/iax2-parser.h b/channels/iax2-parser.h
index 50e04538e..e69e7e368 100644
--- a/channels/iax2-parser.h
+++ b/channels/iax2-parser.h
@@ -71,6 +71,8 @@ struct iax_ies {
unsigned short rr_delay;
unsigned int rr_dropped;
unsigned int rr_ooo;
+ unsigned char calltoken;
+ unsigned char *calltokendata;
};
#define DIRECTION_INGRESS 1
diff --git a/channels/iax2.h b/channels/iax2.h
index c6b44628d..05bb799e1 100644
--- a/channels/iax2.h
+++ b/channels/iax2.h
@@ -67,6 +67,7 @@
#define IAX_COMMAND_PROVISION 35 /* Provision device */
#define IAX_COMMAND_FWDOWNL 36 /* Download firmware */
#define IAX_COMMAND_FWDATA 37 /* Firmware Data */
+#define IAX_COMMAND_CALLTOKEN 40 /*! Call number token */
#define IAX_DEFAULT_REG_EXPIRE 60 /* By default require re-registration once per minute */
@@ -127,6 +128,7 @@
#define IAX_IE_RR_DELAY 49 /* Max playout delay for received frames (in ms) u16 */
#define IAX_IE_RR_DROPPED 50 /* Dropped frames (presumably by jitterbuf) u32 */
#define IAX_IE_RR_OOO 51 /* Frames received Out of Order u32 */
+#define IAX_IE_CALLTOKEN 54 /* Call number security token */
#define IAX_AUTH_PLAINTEXT (1 << 0)
diff --git a/configs/iax.conf.sample b/configs/iax.conf.sample
index bcbb58c50..70e62e70e 100644
--- a/configs/iax.conf.sample
+++ b/configs/iax.conf.sample
@@ -286,6 +286,62 @@ autokill=yes
; has expired based on its registration interval, used the stored
; address information regardless. (yes|no)
+;
+; The following two options are used to disable call token validation for the
+; purposes of interoperability with IAX2 endpoints that do not yet support it.
+;
+; Call token validation can be set as optional for a single IP address or IP
+; address range by using the 'calltokenoptional' option. 'calltokenoptional' is
+; only a global option.
+;
+;calltokenoptional=209.16.236.73/255.255.255.0
+;
+; In a peer/user/friend definition, the 'requirecalltoken' option may be used.
+; By setting 'requirecalltoken=no', call token validation becomes optional for
+; that peer/user. By setting 'requirecalltoken=auto', call token validation
+; is optional until a call token supporting peer registers successfully using
+; call token validation. This is used as an indication that from now on, we
+; can require it from this peer. So, requirecalltoken is internally set to yes.
+; By default, 'requirecalltoken=yes'.
+;
+;requirecalltoken=no
+;
+
+;
+; These options are used to limit the amount of call numbers allocated to a
+; single IP address. Before changing any of these values, it is highly encouraged
+; to read the user guide associated with these options first. In most cases, the
+; default values for these options are sufficient.
+;
+; The 'maxcallnumbers' option limits the amount of call numbers allowed for each
+; individual remote IP address. Once an IP address reaches it's call number
+; limit, no more new connections are allowed until the previous ones close. This
+; option can be used in a peer definition as well, but only takes effect for
+; the IP of a dynamic peer after it completes registration.
+;
+;maxcallnumbers=512
+;
+; The 'maxcallnumbers_nonvalidated' is used to set the combined number of call
+; numbers that can be allocated for connections where call token validation
+; has been disabled. Unlike the 'maxcallnumbers' option, this limit is not
+; separate for each individual IP address. Any connection resulting in a
+; non-call token validated call number being allocated contributes to this
+; limit. For use cases, see the call token user guide. This option's
+; default value of 8192 should be sufficient in most cases.
+;
+;maxcallnumbers_nonvalidated=1024
+;
+; The [callnumberlimits] section allows custom call number limits to be set
+; for specific IP addresses and IP address ranges. These limits take precedence
+; over the global 'maxcallnumbers' option, but may still be overridden by a
+; peer defined 'maxcallnumbers' entry. Note that these limits take effect
+; for every individual address within the range, not the range as a whole.
+;
+;[callnumberlimits]
+;10.1.1.0/255.255.255.0 = 24
+;10.1.2.0/255.255.255.0 = 32
+;
+
; Guest sections for unauthenticated connection attempts. Just specify an
; empty secret, or provide no secret section.
;
diff --git a/doc/IAX2-security.pdf b/doc/IAX2-security.pdf
new file mode 100644
index 000000000..f36d1b027
--- /dev/null
+++ b/doc/IAX2-security.pdf
Binary files differ
diff --git a/include/asterisk/acl.h b/include/asterisk/acl.h
index ad946d57e..0bc79b897 100644
--- a/include/asterisk/acl.h
+++ b/include/asterisk/acl.h
@@ -36,10 +36,17 @@ extern "C" {
/* Host based access control */
-struct ast_ha;
-
-extern void ast_free_ha(struct ast_ha *ha);
-extern struct ast_ha *ast_append_ha(char *sense, char *stuff, struct ast_ha *path);
+struct ast_ha {
+ /* Host access rule */
+ struct in_addr netaddr;
+ struct in_addr netmask;
+ int sense;
+ struct ast_ha *next;
+};
+
+void ast_free_ha(struct ast_ha *ha);
+void ast_copy_ha(const struct ast_ha *from, struct ast_ha *to);
+struct ast_ha *ast_append_ha(char *sense, const char *stuff, struct ast_ha *path);
extern int ast_apply_ha(struct ast_ha *ha, struct sockaddr_in *sin);
extern int ast_get_ip(struct sockaddr_in *sin, const char *value);
extern int ast_get_ip_or_srv(struct sockaddr_in *sin, const char *value, const char *service);
diff --git a/include/asterisk/astobj2.h b/include/asterisk/astobj2.h
index 8d83a8d23..96437bfb8 100644
--- a/include/asterisk/astobj2.h
+++ b/include/asterisk/astobj2.h
@@ -273,6 +273,16 @@ enum search_flags {
* This implies that it can be passed to the object's hash function
* for optimized searching. */
OBJ_POINTER = (1 << 3),
+ /*!
+ * \brief Continue if a match is not found in the hashed out bucket
+ *
+ * This flag is to be used in combination with OBJ_POINTER. This tells
+ * the ao2_callback() core to keep searching through the rest of the
+ * buckets if a match is not found in the starting bucket defined by
+ * the hash value on the argument.
+ */
+ OBJ_CONTINUE = (1 << 4),
+
};
/*!
diff --git a/include/asterisk/sha1.h b/include/asterisk/sha1.h
new file mode 100644
index 000000000..fa8e2155b
--- /dev/null
+++ b/include/asterisk/sha1.h
@@ -0,0 +1,81 @@
+/*
+ * sha1.h
+ *
+ * Description:
+ * This is the header file for code which implements the Secure
+ * Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
+ * April 17, 1995.
+ *
+ * Many of the variable names in this code, especially the
+ * single character names, were used because those were the names
+ * used in the publication.
+ *
+ * Please read the file sha1.c for more information.
+ *
+ */
+
+
+#ifndef _SHA1_H_
+#define _SHA1_H_
+
+
+
+#if defined(__OpenBSD__) || defined( __FreeBSD__)
+#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
+
+/*
+ * If you do not have the ISO standard stdint.h header file, then you
+ * must typdef the following:
+ * name meaning
+ * uint32_t unsigned 32 bit integer
+ * uint8_t unsigned 8 bit integer (i.e., unsigned char)
+ *
+ */
+
+#ifndef _SHA_enum_
+#define _SHA_enum_
+enum
+{
+ shaSuccess = 0,
+ shaNull, /* Null pointer parameter */
+ shaInputTooLong, /* input data too long */
+ shaStateError /* called Input after Result */
+};
+#endif
+#define SHA1HashSize 20
+
+/*
+ * This structure will hold context information for the SHA-1
+ * hashing operation
+ */
+typedef struct SHA1Context
+{
+ uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest */
+
+ uint32_t Length_Low; /* Message length in bits */
+ uint32_t Length_High; /* Message length in bits */
+
+ /* Index into message block array */
+ uint32_t Message_Block_Index; /* 8 bits actually suffice */
+ uint8_t Message_Block[64]; /* 512-bit message blocks */
+
+ int Computed; /* Is the digest computed? */
+ int Corrupted; /* Is the message digest corrupted? */
+} SHA1Context;
+
+/*
+ * Function Prototypes
+ */
+
+
+int SHA1Reset( SHA1Context *);
+int SHA1Input( SHA1Context *,
+ const uint8_t *,
+ unsigned int);
+int SHA1Result( SHA1Context *,
+ uint8_t Message_Digest[SHA1HashSize]);
+
+#endif
diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 0f1df4003..dce96f405 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -144,6 +144,10 @@ struct hostent *ast_gethostbyname(const char *host, struct ast_hostent *hp);
\brief Produces MD5 hash based on input string */
void ast_md5_hash(char *output, char *input);
+/* ast_sha1_hash
+ \brief Produces SHA1 hash based on input string */
+void ast_sha1_hash(char *output, char *input);
+
int ast_base64encode(char *dst, const unsigned char *src, int srclen, int max);
int ast_base64decode(unsigned char *dst, const char *src, int max);
diff --git a/sha1.c b/sha1.c
new file mode 100644
index 000000000..16ddd6aa3
--- /dev/null
+++ b/sha1.c
@@ -0,0 +1,385 @@
+/*
+ *
+ * Based on the RFC 3174
+ *
+ * Full Copyright Statement
+ *
+ * Copyright (C) The Internet Society (2001). All Rights Reserved.
+ *
+ * This document and translations of it may be copied and furnished to
+ * others, and derivative works that comment on or otherwise explain it
+ * or assist in its implementation may be prepared, copied, published
+ * and distributed, in whole or in part, without restriction of any
+ * kind, provided that the above copyright notice and this paragraph are
+ * included on all such copies and derivative works. However, this
+ * document itself may not be modified in any way, such as by removing
+ * the copyright notice or references to the Internet Society or other
+ * Internet organizations, except as needed for the purpose of
+ * developing Internet standards in which case the procedures for
+ * copyrights defined in the Internet Standards process must be
+ * followed, or as required to translate it into languages other than
+ * English.
+ *
+ * The limited permissions granted above are perpetual and will not be
+ * revoked by the Internet Society or its successors or assigns.
+
+ * This document and the information contained herein is provided on an
+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *
+ *
+ * Description:
+ * This file implements the Secure Hashing Algorithm 1 as
+ * defined in FIPS PUB 180-1 published April 17, 1995.
+ *
+ * The SHA-1, produces a 160-bit message digest for a given
+ * data stream. It should take about 2**n steps to find a
+ * message with the same digest as a given message and
+ * 2**(n/2) to find any two messages with the same digest,
+ * when n is the digest size in bits. Therefore, this
+ * algorithm can serve as a means of providing a
+ * "fingerprint" for a message.
+ *
+ * Portability Issues:
+ * SHA-1 is defined in terms of 32-bit "words". This code
+ * uses <stdint.h> (included via "sha1.h" to define 32 and 8
+ * bit unsigned integer types. If your C compiler does not
+ * support 32 bit unsigned integers, this code is not
+ * appropriate.
+ *
+ * Caveats:
+ * SHA-1 is designed to work with messages less than 2^64 bits
+ * long. Although SHA-1 allows a message digest to be generated
+ * for messages of any number of bits less than 2^64, this
+ * implementation only works with messages with a length that is
+ * a multiple of the size of an 8-bit character.
+ *
+ */
+
+
+#include "asterisk/sha1.h"
+
+/*
+ * Define the SHA1 circular left shift macro
+ */
+#define SHA1CircularShift(bits,word) \
+ (((word) << (bits)) | ((word) >> (32-(bits))))
+
+/* Local Function Prototyptes */
+void SHA1PadMessage(SHA1Context *);
+void SHA1ProcessMessageBlock(SHA1Context *);
+
+/*
+ * SHA1Reset
+ *
+ * Description:
+ * This function will initialize the SHA1Context in preparation
+ * for computing a new SHA1 message digest.
+ *
+ * Parameters:
+ * context: [in/out]
+ * The context to reset.
+ *
+ * Returns:
+ * sha Error Code.
+ *
+ */
+int SHA1Reset(SHA1Context *context)
+{
+ if (!context) {
+ return shaNull;
+ }
+
+ context->Length_Low = 0;
+ context->Length_High = 0;
+ context->Message_Block_Index = 0;
+
+ context->Intermediate_Hash[0] = 0x67452301;
+ context->Intermediate_Hash[1] = 0xEFCDAB89;
+ context->Intermediate_Hash[2] = 0x98BADCFE;
+ context->Intermediate_Hash[3] = 0x10325476;
+ context->Intermediate_Hash[4] = 0xC3D2E1F0;
+
+ context->Computed = 0;
+ context->Corrupted = 0;
+
+ return shaSuccess;
+}
+
+/*
+ * SHA1Result
+ *
+ * Description:
+ * This function will return the 160-bit message digest into the
+ * Message_Digest array provided by the caller.
+ * NOTE: The first octet of hash is stored in the 0th element,
+ * the last octet of hash in the 19th element.
+ *
+ * Parameters:
+ * context: [in/out]
+ * The context to use to calculate the SHA-1 hash.
+ * Message_Digest: [out]
+ * Where the digest is returned.
+ *
+ * Returns:
+ * sha Error Code.
+ *
+ */
+int SHA1Result( SHA1Context *context,
+ uint8_t Message_Digest[SHA1HashSize])
+{
+ int i;
+
+ if (!context || !Message_Digest) {
+ return shaNull;
+ }
+
+ if (context->Corrupted) {
+ return context->Corrupted;
+ }
+
+ if (!context->Computed) {
+ SHA1PadMessage(context);
+ for (i = 0; i < 64; ++i) {
+ /* message may be sensitive, clear it out */
+ context->Message_Block[i] = 0;
+ }
+ context->Length_Low = 0; /* and clear length */
+ context->Length_High = 0;
+ context->Computed = 1;
+ }
+
+ for (i = 0; i < SHA1HashSize; ++i) {
+ Message_Digest[i] = context->Intermediate_Hash[i >> 2] >> 8 * ( 3 - ( i & 0x03 ) );
+ }
+
+ return shaSuccess;
+}
+
+/*
+ * SHA1Input
+ *
+ * Description:
+ * This function accepts an array of octets as the next portion
+ * of the message.
+ *
+ * Parameters:
+ * context: [in/out]
+ * The SHA context to update
+ * message_array: [in]
+ * An array of characters representing the next portion of
+ * the message.
+ * length: [in]
+ * The length of the message in message_array
+ *
+ * Returns:
+ * sha Error Code.
+ *
+ */
+int SHA1Input(SHA1Context *context, const uint8_t *message_array, unsigned length)
+{
+ if (!length) {
+ return shaSuccess;
+ }
+
+ if (!context || !message_array) {
+ return shaNull;
+ }
+
+ if (context->Computed) {
+ context->Corrupted = shaStateError;
+ return shaStateError;
+ }
+
+ if (context->Corrupted) {
+ return context->Corrupted;
+ }
+
+ while (length-- && !context->Corrupted) {
+ context->Message_Block[context->Message_Block_Index++] = (*message_array & 0xFF);
+
+ context->Length_Low += 8;
+ if (context->Length_Low == 0) {
+ context->Length_High++;
+ if (context->Length_High == 0) {
+ /* Message is too long */
+ context->Corrupted = 1;
+ }
+ }
+
+ if (context->Message_Block_Index == 64) {
+ SHA1ProcessMessageBlock(context);
+ }
+
+ message_array++;
+ }
+
+ return shaSuccess;
+}
+
+/*
+ * SHA1ProcessMessageBlock
+ *
+ * Description:
+ * This function will process the next 512 bits of the message
+ * stored in the Message_Block array.
+ *
+ * Parameters:
+ * None.
+ *
+ * Returns:
+ * Nothing.
+ *
+ * Comments:
+ * Many of the variable names in this code, especially the
+ * single character names, were used because those were the
+ * names used in the publication.
+ *
+ *
+ */
+void SHA1ProcessMessageBlock(SHA1Context *context)
+{
+ const uint32_t K[] = { /* Constants defined in SHA-1 */
+ 0x5A827999,
+ 0x6ED9EBA1,
+ 0x8F1BBCDC,
+ 0xCA62C1D6
+ };
+ int t; /* Loop counter */
+ uint32_t temp; /* Temporary word value */
+ uint32_t W[80]; /* Word sequence */
+ uint32_t A, B, C, D, E; /* Word buffers */
+
+ /*
+ * Initialize the first 16 words in the array W
+ */
+ for (t = 0; t < 16; t++) {
+ W[t] = context->Message_Block[t * 4] << 24;
+ W[t] |= context->Message_Block[t * 4 + 1] << 16;
+ W[t] |= context->Message_Block[t * 4 + 2] << 8;
+ W[t] |= context->Message_Block[t * 4 + 3];
+ }
+
+ for (t = 16; t < 80; t++) {
+ W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
+ }
+
+ A = context->Intermediate_Hash[0];
+ B = context->Intermediate_Hash[1];
+ C = context->Intermediate_Hash[2];
+ D = context->Intermediate_Hash[3];
+ E = context->Intermediate_Hash[4];
+
+ for (t = 0; t < 20; t++) {
+ temp = SHA1CircularShift(5,A) + ((B & C) | ((~B) & D)) + E + W[t] + K[0];
+ E = D;
+ D = C;
+ C = SHA1CircularShift(30,B);
+ B = A;
+ A = temp;
+ }
+
+ for (t = 20; t < 40; t++) {
+ temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
+ E = D;
+ D = C;
+ C = SHA1CircularShift(30,B);
+ B = A;
+ A = temp;
+ }
+
+ for (t = 40; t < 60; t++) {
+ temp = SHA1CircularShift(5,A) + ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
+ E = D;
+ D = C;
+ C = SHA1CircularShift(30,B);
+ B = A;
+ A = temp;
+ }
+
+ for (t = 60; t < 80; t++) {
+ temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
+ E = D;
+ D = C;
+ C = SHA1CircularShift(30,B);
+ B = A;
+ A = temp;
+ }
+
+ context->Intermediate_Hash[0] += A;
+ context->Intermediate_Hash[1] += B;
+ context->Intermediate_Hash[2] += C;
+ context->Intermediate_Hash[3] += D;
+ context->Intermediate_Hash[4] += E;
+
+ context->Message_Block_Index = 0;
+}
+
+
+/*
+ * SHA1PadMessage
+ *
+ * Description:
+ * According to the standard, the message must be padded to an even
+ * 512 bits. The first padding bit must be a '1'. The last 64
+ * bits represent the length of the original message. All bits in
+ * between should be 0. This function will pad the message
+ * according to those rules by filling the Message_Block array
+ * accordingly. It will also call the ProcessMessageBlock function
+ * provided appropriately. When it returns, it can be assumed that
+ * the message digest has been computed.
+ *
+ * Parameters:
+ * context: [in/out]
+ * The context to pad
+ * ProcessMessageBlock: [in]
+ * The appropriate SHA*ProcessMessageBlock function
+ * Returns:
+ * Nothing.
+ *
+ */
+
+void SHA1PadMessage(SHA1Context *context)
+{
+ /*
+ * Check to see if the current message block is too small to hold
+ * the initial padding bits and length. If so, we will pad the
+ * block, process it, and then continue padding into a second
+ * block.
+ */
+ if (context->Message_Block_Index > 55) {
+ context->Message_Block[context->Message_Block_Index++] = 0x80;
+ while (context->Message_Block_Index < 64) {
+ context->Message_Block[context->Message_Block_Index++] = 0;
+ }
+
+ SHA1ProcessMessageBlock(context);
+
+ while (context->Message_Block_Index < 56) {
+ context->Message_Block[context->Message_Block_Index++] = 0;
+ }
+ } else {
+ context->Message_Block[context->Message_Block_Index++] = 0x80;
+ while (context->Message_Block_Index < 56) {
+ context->Message_Block[context->Message_Block_Index++] = 0;
+ }
+ }
+
+ /*
+ * Store the message length as the last 8 octets
+ */
+ context->Message_Block[56] = context->Length_High >> 24;
+ context->Message_Block[57] = context->Length_High >> 16;
+ context->Message_Block[58] = context->Length_High >> 8;
+ context->Message_Block[59] = context->Length_High;
+ context->Message_Block[60] = context->Length_Low >> 24;
+ context->Message_Block[61] = context->Length_Low >> 16;
+ context->Message_Block[62] = context->Length_Low >> 8;
+ context->Message_Block[63] = context->Length_Low;
+
+ SHA1ProcessMessageBlock(context);
+}
diff --git a/utils.c b/utils.c
index 7dc020c83..a284a937d 100644
--- a/utils.c
+++ b/utils.c
@@ -45,6 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/io.h"
#include "asterisk/logger.h"
#include "asterisk/md5.h"
+#include "asterisk/sha1.h"
#include "asterisk/options.h"
#include "asterisk/compat.h"
@@ -297,6 +298,24 @@ void ast_md5_hash(char *output, char *input)
ptr += sprintf(ptr, "%2.2x", digest[x]);
}
+/*! \brief Produce 40 char SHA1 hash of value. */
+void ast_sha1_hash(char *output, char *input)
+{
+ struct SHA1Context sha;
+ char *ptr;
+ int x;
+ uint8_t Message_Digest[20];
+
+ SHA1Reset(&sha);
+
+ SHA1Input(&sha, (const unsigned char *) input, strlen(input));
+
+ SHA1Result(&sha, Message_Digest);
+ ptr = output;
+ for (x = 0; x < 20; x++)
+ ptr += sprintf(ptr, "%2.2x", Message_Digest[x]);
+}
+
int ast_base64decode(unsigned char *dst, const char *src, int max)
{
int cnt = 0;