Commit Graph

1505 Commits

Author SHA1 Message Date
Russell Bryant
294c78a27e Resolve some errors that occur on a graceful shutdown.
Don't Finalize() if Initialize() did not succeed.  This resulted in an error
about trying to Finalize() an invalid handle.

Also trim some trailing whitespace while in the area.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271867 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-22 16:28:03 +00:00
Russell Bryant
9cc7c55578 Change the method of retrieving the Asterisk version string.
Using this method makes it so res_fax doesn't have to be rebuilt on every
svn update.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271833 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-22 16:17:14 +00:00
Tilghman Lesher
e3873889b8 Conflict kqueue on OS X, since it doesn't work there yet, anyway.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271657 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-21 22:41:00 +00:00
Jeff Peeler
b3281ac725 Merged revisions 271552 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r271552 | jpeeler | 2010-06-21 15:37:47 -0500 (Mon, 21 Jun 2010) | 7 lines
  
  Do not use sizeof to calculate size of a heap allocated character array.
  
  Change left out from 271399.
  
  (closes issue #16053)
  Reported by: diLLec
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-21 20:46:53 +00:00
David Vossel
1a7e1aee5e fixes logic error introduced by slin16 sip support
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271551 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-21 20:33:41 +00:00
Jeff Peeler
54f2dfc91c Merged revisions 271399 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r271399 | jpeeler | 2010-06-18 14:28:24 -0500 (Fri, 18 Jun 2010) | 11 lines
  
  Fix crash when parsing some heavily nested statements in AEL on reload.
  
  Due to the recursion used when compiling AEL in gen_prios, all the stack space 
  was being consumed when parsing some AEL that contained nesting 13 levels deep.
  Changing a few large buffers to be heap allocated fixed the crash, although I
  did not test how many more levels can now be safely used.
  
  (closes issue #16053)
  Reported by: diLLec
  Tested by: jpeeler
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-18 21:32:09 +00:00
David Vossel
ba3d1ad680 adds support for slin16 in sip
(closes issue #16153)
Reported by: kfister
Patches:
      16153-1.6.2.0-rc5.patch uploaded by kfister (license 912)
      slin16.sip.patch.1 uploaded by malcolmd (license 924)
Tested by: kfister, malcolmd


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-17 18:36:06 +00:00
David Vossel
b00f58da25 adds speex 16khz audio support
(closes issue #17501)
Reported by: fabled
Patches:
      asterisk-trunk-speex-wideband-v2.patch uploaded by fabled (license 448)
Tested by: malcolmd, fabled, dvossel



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@271231 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-17 17:23:43 +00:00
David Vossel
fcb055fb4e addition of G.719 pass-through support
(closes issue #16293)
Reported by: malcolmd
Patches:
      g719.passthrough.patch.7 uploaded by malcolmd (license 924)
      format_g719.c uploaded by malcolmd (license 924)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-16 19:03:24 +00:00
Paul Belanger
0bf94685fd MSG_OOB flag on HANGUP packet removed.
Per Tilghman's request on IRC (#asterisk-bugs).

(closes issue #17506)
Reported by: brycebaril
Tested by: pabelanger, tilghman


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-16 18:43:22 +00:00
Terry Wilson
fb71a38a41 Don't send files twice and remove extra \r\n from header
After the manager http auth changes, we forgot to remove the manual
sending of the file. Also, ast_http_send adds two \r\n to the header that
is passed to it, so a trailing \r\n is removed from the Content-type
header. It might be better to change ast_http_send, but I don't like changing
the behavior of an API function.

(closes issue #17239)
Reported by: cjacobsen
Patches: 
      patch2.diff uploaded by cjacobsen (license 1029)
Tested by: lathama, cjacobsen



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270660 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 21:10:15 +00:00
Tilghman Lesher
a0d8a35659 Argh, mixed declarations and code.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 18:16:04 +00:00
Tilghman Lesher
81c15adfa2 Add distributed devicestate via the XMPP protocol.
(closes issue #15757)
 Reported by: Marquis
 Patches: 
       distributed_devstate-XMPP.txt uploaded by lmadsen (license 10)
 Tested by: Marquis, lmadsen, marcelloceschia
 
Review: https://reviewboard.asterisk.org/r/351/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 17:06:23 +00:00
Paul Belanger
41d7b51bf7 Merged revisions 270331 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r270331 | pabelanger | 2010-06-14 17:31:59 -0400 (Mon, 14 Jun 2010) | 14 lines
  
  Properly play first file in sort list.
  
  When using sort=alpha we would always skip the first file
  in the list first time through.  We now check for that
  properly. 
  
  (closes issue #17470)
  Reported by: pabelanger
  Patches:
        sort.aplha.patch uploaded by pabelanger (license 224)
  Tested by: lmadsen
  
  Review: https://reviewboard.asterisk.org/r/703/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-14 21:33:55 +00:00
David Vossel
e98835e437 fixes crash in moh when cachertclasses flag is used
The result for moh_register was not verified to guarantee
the mohclass as added to the container.


(closes issue #16993)
Reported by: dmitri
Patches:
      res_musiconhold_rtclass2.patch uploaded by dmitri (license 1001)
      moh_crash2.diff uploaded by dvossel (license 671)
Tested by: dmitri




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@269271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-09 15:09:25 +00:00
Leif Madsen
c672763af8 Fix some doxygen warnings.
(closes issue #17336)
Reported by: snuffy
Patches:
      doxygen-fixes1.diff uploaded by snuffy (license 35)
Tested by: russell

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268969 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 14:38:18 +00:00
Tilghman Lesher
523e4e50bf Release list lock before returning on error.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268933 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 06:57:24 +00:00
Terry Wilson
857814f435 Add SRTP support for Asterisk
After 5 years in mantis and over a year on reviewboard, SRTP support is finally
being comitted. This includes generic CHANNEL dialplan functions that work for
getting the status of whether a call has secure media or signaling as defined
by the underlying channel technology and for setting whether or not a new
channel being bridged to a calling channel should have secure signaling or
media. See doc/tex/secure-calls.tex for examples.

Original patch by mikma, updated for trunk and revised by me.

(closes issue #5413)
Reported by: mikma
Tested by: twilson, notthematrix, hemanshurpatel

Review: https://reviewboard.asterisk.org/r/191/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 05:29:08 +00:00
Tilghman Lesher
6279bf10c4 Avoid unloading res_smdi twice.
(closes issue #17237)
Reported by: pabelanger


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268653 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-07 17:14:40 +00:00
Terry Wilson
a55820a26d Use the correct ical.h file
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-01 22:14:44 +00:00
Tilghman Lesher
464e44e325 Don't register functions until the last possible point, so they're not unloaded unnecessarily.
(closes issue #15996)
 Reported by: junky
 Patches: 
       sdmi_wait.diff uploaded by junky (license 177)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-01 18:02:24 +00:00
Terry Wilson
9a2f04ce26 Fix ical library handling (again)
Newer versions of libical (which we require) store the header file in a
libical/ subfolder and include an ical.h file that does a #warning for
deprecation and then #includes <libical/ical.h>. Since we now test for
libical/ical.h, we can change the #includes back to <libical/ical.h> and
remove the test which specifically adds /usr/include/libical as an include
directory.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266386 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-28 22:54:03 +00:00
Mark Michelson
529a87ce7d Remove unrelated MOH change from previous commit.
Thanks Kevin!



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 20:15:47 +00:00
Mark Michelson
8999372c33 Fix misspelling of macro args.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 20:04:51 +00:00
Tilghman Lesher
35025c16d0 Merged revisions 265910 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r265910 | tilghman | 2010-05-26 11:21:00 -0500 (Wed, 26 May 2010) | 7 lines
  
  Not finding rows in the DB does not rise to the level of a warning.
  
  (closes issue #17062)
   Reported by: drookie
   Patches: 
         20100525__issue17062.diff.txt uploaded by tilghman (license 14)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 16:23:28 +00:00
Tilghman Lesher
5c9fdd8666 Construct socket name, according to the Postgres docs, and document as such.
(closes issue #17392)
 Reported by: dps
 Patches: 
       20100525__issue17392.diff.txt uploaded by tilghman (license 14)
 Tested by: dps


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 16:14:48 +00:00
Terry Wilson
f1503b9e1d Ensure that libneon > 0.29.0 is installed for res_calendar_ews
This uses a modified version of pabelanger's patch that checks for NTLM support
instead, which was added in 0.29.0 which is what is required for
res_calendar_ews.

(closes issue #17391)
Reported by: loloski
Patches: 
      issue17391.patch.v2 uploaded by pabelanger (license 224)
Tested by: twilson


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265793 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 05:33:11 +00:00
Tilghman Lesher
a7498ae02e Use configure to determine the prefixes and include directories properly.
This ensures cross-platform compatibility, even among Linux distributions,
which don't always put headers in the same place.

(closes issue #17391)
 Reported by: loloski


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-26 00:29:40 +00:00
Terry Wilson
880cde12ac Calendaring support for Exchange Server 2007+ via EWS
This commit adds support for calendaring with Exchange Server 2007+ via
Exchange Web Services. Full write support and for querying attendees. Many
thanks to Jan Kaláb for the feature.

(closes issue #17022)
Reported by: pitel
Patches: 
      res_calendar_ews.c uploaded by pitel (license 1008)
Tested by: pitel, twilson

Review: https://reviewboard.asterisk.org/r/557/
Review: https://reviewboard.asterisk.org/r/668/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-24 18:21:20 +00:00
Mark Michelson
0a63e3fa10 Log spandsp's fax debug output to the FAX logger level.
Review: https://reviewboard.asterisk.org/r/658



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-21 15:15:58 +00:00
David Vossel
51e7ee235b fixes crash during dtmf
During the processing of Cisco dtmf the dtmf samples were
not being calculated correctly.  In an attempt to determine
what sample rate was being used, a NULL frame was processed
which caused a crash.  This patch resolves this.

(closes issue #17248)
Reported by: falves11
Patches:
      issue_17248.diff uploaded by dvossel (license 671)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-19 14:38:02 +00:00
Tilghman Lesher
a21192f4a7 Make happy green color come back
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-18 20:49:00 +00:00
Tilghman Lesher
113c677257 For FreeBSD
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-13 17:49:51 +00:00
Tilghman Lesher
88a8703c37 Hmmm, probably should have read the manpage more thoroughly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-13 16:46:18 +00:00
Tilghman Lesher
8d6ee962c7 Add kqueue(2) implementation to Asterisk in various places.
This will save a considerable amount of CPU on the BSDs, including Mac OS X,
as it eliminates several places in the code that we previously used a busy
loop.  Additionally, this adds a res_timing interface, using kqueue timers.

Review: https://reviewboard.asterisk.org/r/543/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262852 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-13 05:37:31 +00:00
Leif Madsen
c17cda109a Revert previous WARNING message removal.
Marquis42 suggested a better method of doing what I wanted because I ended up
removing the WARNING message for all instances when really I just wanted to
remove it for the 'return' keyword, not everything.

(issue #17145)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-12 19:53:10 +00:00
Leif Madsen
881450ec82 Remove unnecessary WARNING message in ael/pval.c
(closes issue #17145)
Reported by: okrief

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262796 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-12 19:31:42 +00:00
Jason Parker
d8dea9e76a Merged revisions 262421 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r262421 | qwell | 2010-05-11 14:55:42 -0500 (Tue, 11 May 2010) | 11 lines
  
  Use a less silly method for modifying a flex-generated file.
  
  The sed syntax that was used wasn't actually valid, causing some versions to
  choke.  This is the method that is used in 1.6.x+ for similar changes.
  
  (closes issue #16696)
  Reported by: bklang
  Patches: 
        16696-sedfix.diff uploaded by qwell (license 4)
  Tested by: qwell
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@262422 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-11 19:57:24 +00:00
Mark Michelson
a554e00fed Merged revisions 260345 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r260345 | mmichelson | 2010-04-30 15:08:15 -0500 (Fri, 30 Apr 2010) | 18 lines
  
  Fix potential crash from race condition due to accessing channel data without the channel locked.
  
  In res_musiconhold.c, there are several places where a channel's
  stream's existence is checked prior to calling ast_closestream on it. The issue
  here is that in several cases, the channel was not locked while checking the
  stream. The result was that if two threads checked the state of the channel's
  stream at approximately the same time, then there could be a situation where
  both threads attempt to call ast_closestream on the channel's stream. The result
  here is that the refcount for the stream would go below 0, resulting in a crash.
  
  I have added proper channel locking to res_musiconhold.c to ensure that
  we do not try to check chan->stream without the channel locked. A Digium customer
  has been using this patch for several weeks and has not had any crashes since
  applying the patch.
  
  ABE-2147
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@260346 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-30 20:11:02 +00:00
Jason Parker
7f5a3370ad Fix compile on systems without HAVE_NULLSAFE_PRINTF defined.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@259617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-27 22:47:36 +00:00
Matthew Nicholson
13f523731a Update res_fax and res_fax_spandsp to be compatible with Fax For Asterisk 1.2.
The fax session initilization code for T.38 faxes has been rewritten. T.38 session initialization was removed from generic_fax_exec, and split into two different code paths for receive and send.  Also the 'z' option (to send a T.38 reinvite if we do not receive one) was added to sendfax.

In the output of 'fax show sessions', the 'Type' column has been renamed to 'Tech' and replaced with a new 'Tech' column that will report 'G.711' or 'T.38'.

Control of ECM defaults has been added to res_fax

A 'fax show settings' CLI command has been added.

Support of the new AST_T38_REQUEST_PARMS control method request to handle channels that have already received a T.38 reinvite before the FAX application is start has been added.

Support for the 'fax show settings' command has been added to res_fax_spandsp and handling of the ECM flag has been slightly altered.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-26 14:18:15 +00:00
Tilghman Lesher
56a6994310 Merged revisions 258775 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r258775 | tilghman | 2010-04-25 13:09:05 -0500 (Sun, 25 Apr 2010) | 6 lines
  
  When StopMonitor is called, ensure that it will not be restarted by a channel event.
  (closes issue #16590)
   Reported by: kkm
   Patches: 
         resmonitor-16590-trunk.239289.diff uploaded by kkm (license 888)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-25 18:12:14 +00:00
Jason Parker
9e3f5fa6fb Remove ABI differences that occured when compiling with DEBUG_THREADS.
"Bad Things" would happen if Asterisk was compiled with DEBUG_THREADS, but a
loaded module was not (or vice versa).  This also immensely simplifies the
lock code, since there are no longer 2 separate versions of them.

Review: https://reviewboard.asterisk.org/r/508/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-22 19:08:01 +00:00
Leif Madsen
f905bb1c0f Fix the \brief description in the res_calendar_*.c files.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-21 13:26:28 +00:00
Julian Lyndon-Smith
d85650e4aa Added MixMonitorMute manager command
Added a new manager command to mute/unmute MixMonitor audio on a channel. 
Added a new feature to audiohooks so that you can mute either read / write
(or both) types of frames - this allows for MixMonitor to mute either side
of the conversation without affecting the conversation itself.

(closes issue #16740)
Reported by: jmls

Review: https://reviewboard.asterisk.org/r/487/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258190 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-21 11:27:27 +00:00
Richard Mudgett
a5a0a5f867 Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number.
SWP-1229
ABE-2161

* Ensure chan_local.c:local_call() will not leak cid.cid_dnid when
copying.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256104 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-03 02:12:33 +00:00
Kevin P. Fleming
2be88e05c0 Allow symbol export filtering to work properly on platforms that have symbol prefixes.
Some platforms prefix externally-visible symbols in object files generated
from C sources (most commonly, '_' is the prefix). On these platforms,
the existing symbol export filtering process ends up suppressing all the symbols
that are supposed to be left visible. This patch allows the prefix string
to be supplied to the top-level Makefile in the LINKER_SYMBOL_PREFIX variable,
and then generates the linker scripts as required to include the prefix
supplied.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-02 18:57:58 +00:00
Mark Michelson
bd716c50fd Recorded merge of revisions 254452 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r254452 | mmichelson | 2010-03-25 10:59:56 -0500 (Thu, 25 Mar 2010) | 44 lines
  
  Several fixes regarding RFC2833 DTMF detection.
  
  Here is a copy and paste of the details from my request on
  reviewboard that dealt with these changes:
  
  Fix 1. The first change in place is to fix Mantis issue 15811, which deals with a situation where Asterisk will incorrectly interpret out of order RFC2833 frames as duplicate DTMF digits. For instance, we would receive a sequence like:
  
  seqno 1: DTMF 1
  seqno 2: DTMF 1
  seqno 3: DTMF 1
  seqno 4: DTMF 1
  seqno 6: DTMF 1 (end)
  seqno 5: DTMF 1
  seqno 7: DTMF 1 (end)
  seqno 8: DTMF 1 (end)
  
  Prior to this patch when we received the frame with seqno 5, we would interpret this as a new DTMF 1. With this patch, we will check the seqno of the incoming digit and not process the frame if the seqno is lower than the last recorded seqno. Note that we do not record the seqno of the dropped DTMF frame for future processing. While the above situation is what was designed to be fixed, the patch is written in such a way that the following would also be fixed too:
  
  seqno  9: DTMF 1
  seqno 10: DTMF 1 (end)
  seqno 11: DTMF 1 (end)
  seqno 13: DTMF 2
  seqno 12: DTMF 1 (end)
  seqno 14: DTMF 2
  seqno 15: DTMF 2 (end)
  seqno 16: DTMF 2 (end)
  seqno 17: DTMF 2 (end)
  
  In this second situation, the beginning of the DTMF 2 arrives before the final end frame of the DTMF 1. With the patch, seqno 12 is no processed and thus we properly interpret the DTMF.
  
  Fix 2. The second change in place is to fix an issue like the following:
  
  seqno 1: DTMF 1
  seqno 2: DTMF 1
  seqno 3: DTMF 1 (end) *packet lost*
  seqno 4: DTMF 1 (end) *packet lost*
  seqno 5: DTMF 1 (end) *packet lost*
  seqno 6: DTMF 2
  
  When we receive seqno 6, we had code in place that was supposed to properly end the previously unended DTMF 1. The problem was that the code was essentially a no-op. The code would set up an end frame for the DTMF 1 but would immediately overwrite the frame with the begin for DTMF 2. I changed process_dtmf_rfc2833() so that instead of returning a single frame, it is given as an output parameter a list of frames. Each frame that needs to be returned is appended to this list.
  
  Fix 3. The final change is a minor one where an AST_CONTROL_SRCCHANGE frame could get lost. If we process a cisco DTMF or an RFC 3389 frame and no frame was returned, then we would return &ast_null_frame. The problem is that earlier in the function, we may have generated an AST_CONTROL_SRCCHANGE frame and put it in the list of frames we wish to return. This frame would be lost in such a case. The patch fixes this problem
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-25 16:04:48 +00:00
Kevin P. Fleming
42577406fd Improve handling of T.38 re-INVITEs that arrive before a T.38-capable
application is executing on a channel.

This patch addresses an issue found during working with end-users
using res_fax. If an incoming call is answered in the dialplan, or
jumps to the 'fax' extension due to reception of a CNG tone (with
faxdetect enabled), and then the remote endpoint sends a T.38
re-INVITE, it is possible for the channel's T.38 state to be
'T38_STATE_NEGOTIATING' when the application starts up. Unfortunately,
even if the application wants to use T.38, it can't respond to the
peer's negotiation request, because the AST_CONTROL_T38_PARAMETERS
control frame that chan_sip sent originally has been lost, and the
application needs the content of that frame to be able to formulate a
reply.

This patch adds a new 'request' type to AST_CONTROL_T38_PARAMETERS,
AST_T38_REQUEST_PARMS. If the application sends this request, chan_sip
will re-send the original control frame (with
AST_T38_REQUEST_NEGOTIATE as the request type), and the application
can respond as normal. If this occurs within the five second timeout
in chan_sip, the automatic cancellation of the peer reinvite will be
stopped, and the application will 'own' the negotiation process from
that point onwards.

This also improves the code path in chan_sip to allow sip_indicate(),
when called for AST_CONTROL_T38_PARAMETERS, to be able to return a
non-zero response, which should have been in place before since the
control frame *can* fail to be processed properly. It also modifies
ast_indicate() to return whatever result the channel driver returned
for this control frame, rather than converting all non-zero results
into '-1'. Finally, the new request type intentionally returns a
positive value, so that an application that sends
AST_T38_REQUEST_PARMS can know for certain whether the channel driver
accepted it and will be replying with a control frame of its own, or
whether it was ignored (if the sip_indicate()/ast_indicate() path had
properly supported failure responses before, this would not be
necessary).

This patch also modifies res_fax to take advantage of the new request.

In addition, this patch makes sip_t38_abort() actually lock the
private structure before doing its work... bad programmer, no donut.

This patch also enhances chan_sip's 'faxdetect' support to allow
triggering on T.38 re-INVITEs received as well as CNG tone detection.

Review: https://reviewboard.asterisk.org/r/556/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-25 15:27:31 +00:00
Leif Madsen
0eb71bccf1 handle_speechset has 4 arguments.
Update code to reflect that handle_speechset has 4 arguments.

(closes issue #17093)
Reported by: gpatri
Patches: 
      res_agi.patch uploaded by gpatri (license 1014)
Tested by: pabelanger, mmichelson

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-25 15:21:26 +00:00