https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r236509 | seanbright | 2009-12-28 07:43:36 -0500 (Mon, 28 Dec 2009) | 12 lines
Avoid a crash with large numbers of MeetMe conferences.
Similar to changes made to Queue(), when we have large numbers of conferences in
meetme.conf (1000s) and we use alloca()/strdupa(), we can blow out the stack and
crash, so instead just use a single fixed buffer.
(closes issue #16509)
Reported by: Kashif Raza
Patches:
20091223_16509.patch uploaded by seanbright (license 71)
Tested by: seanbright
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The QUEUE_MEMBER dialplan function can return total members,
logged-in members and "free" members count. A member is counted
as "free" immediately after his call ends, even though its wrap-up
time, if specified in queues.conf, has not yet expired, and the
queue will not actually route a call to it.
This Patch introduces a new "ready" option that only counts
free agents no longer in the wrap up time period.
(closes issue #16240)
Reported by: kkm
Patches:
appqueue-memberfun-readyoption-trunk.diff uploaded by kkm (license 888)
Tested by: kkm, dvossel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The 'R' argument stops moh and indicates ringing once the agent is
ringing. This allows the person in the queue to know their call
is potentially about to be answered.
(closes issue #16384)
Reported by: haakon
Patches:
new_app_queue.c.patch uploaded by haakon (license 880)
Tested by: haakon, loloski, dvossel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
so we should generate T38MaxBitRate of 14400 (even though that doesn't really
affect the FAX transmission much at all)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@235010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
ReadExten already supported playing a tonezone from indications.conf.
It now has the ability to use a tonelist like 440+480/2000|0/4000
(closes issue #15185)
Reported by: jcovert
Patches:
app_readexten.c.patch uploaded by jcovert (license 551)
Tested by: qwell
Patch modified by me, to maintain backwards compatibility.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r234379 | jpeeler | 2009-12-11 16:37:21 -0600 (Fri, 11 Dec 2009) | 11 lines
Fix talking detection status after conference user is muted.
This patch ensures that when a conference user is muted that the accompanying
AMI Meetme talking off event is sent. Also, the meetme list output is updated
to show the muted user as unmonitored.
(closes issue #16247)
Reported by: dimas
Patches:
v3-16247.patch uploaded by dimas (license 88)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234380 65c4cc65-6c06-0410-ace0-fbb531ad65f3
As described in the CHANGES file:
* MeetMe has a new option 'G' to play an announcement before joining a
conference.
* Page has a new option 'A(x)' which will playback an announcement
simultaneously to all paged phones (and optionally excluding the caller's one
using the new option 'n') before the call is bridged.
To add the new option to meetme, the conference flag options had to be extended
to 64 bits.
(closes issue #14365)
Reported by: dferrer
Patches:
page_announce.patch uploaded by dferrer (license 525)
modified by me
Review: https://reviewboard.asterisk.org/r/188/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fix a couple of very minor bugs that prevent the socket client from working. The wrong set of properties were used in one place and the size of the address variable isn't set if the host name is an ip address. Also includes a fix for a bug that was introduced previously.
(closes issue #16121)
Reported by: thedavidfactor
Tested by: thedavidfactor
Review: https://reviewboard.asterisk.org/r/439/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
(closes issue #16263)
Reported by: andrew
Patches:
pagerdate.patch uploaded by andrew (license 240)
(with a slight modification by me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232916 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r232820 | tilghman | 2009-12-03 14:10:19 -0600 (Thu, 03 Dec 2009) | 8 lines
Deprecate "cz" in favor of "cs".
Also, change the use of language codes so that language registers as a prefix,
rather than an exact match.
(closes issue #16272)
Reported by: patrol-cz
Patches:
20091203__issue16272.diff.txt uploaded by tilghman (license 14)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232854 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Previously only possible per context, new option called imapfolder.
(closes issue #14298)
Reported by: jablko
Patches:
patch-200906202 uploaded by jablko (license 675)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232700 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This caused a problem when asterisk was under heavy load and running both AGI and EIVR applications.
EIVR would close an FD at which point it would be considered freed and be used by a new AGI instance
the second close would then close the FD now in use by AGI.
(closes issue #16305)
Reported by: diLLec
Tested by: thedavidfactor, diLLec
Review: https://reviewboard.asterisk.org/r/436/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232587 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch adds a ref to the queue_ent object's parent call_queue
in queue_exec() so the call_queue won't be destroyed
while the the queue_ent still holds a pointer to it.
(closes issue 0015686)
Tested by: dvossel, aragon
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@231556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In 224178, I assumed the uploaded patch was correct as it had received positive
feedback. The flags were being checked in the incorrect location. Upon testing
the fix this time it was also found that the flags from the dialplan weren't
being copied to the chanspy_translation_helper.
(closes issue #16167)
Reported by: marhbere
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This change causes answertime to be correct even if the called channel hangs up during an announcement triggered by the A() option.
(closes issue #15936)
Reported by: falves11
Patches:
dial-macro-billsec-fix1.diff uploaded by mnicholson (license 96)
dial-caller-answer1.diff uploaded by mnicholson (license 96)
Tested by: falves11, mnicholson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
app_controlplayback outputs a warning, when in fact it is normal.
(closes issue #16071)
Reported by: atis
Patches:
controlplayback_warning.patch uploaded by atis (license 242)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r226889 | file | 2009-11-02 14:08:11 -0400 (Mon, 02 Nov 2009) | 11 lines
Fix a bug where the recorded privacy introduction file would not get removed if the caller hung up
while the called party had not yet answered.
This was fixed by introducing an argument to the 'n' option which, when enabled, removes the introduction
file under all scenarios. This was done to preserve the behavior that has existed for quite some time.
(closes issue #14674)
Reported by: ulogic
Patches:
bug14674.patch uploaded by jpeeler (license 325)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
What this patch fixes
1.Moves sip TCP/TLS connection setup into the TCP helper thread:
Connection setup takes awhile and before this it was being
done while holding the monitor lock.
2.Moves TCP/TLS writing to the TCP helper thread: Through the
use of a packet queue and an alert pipe, the TCP helper thread
can now be woken up to write data as well as read data.
3.Locking error: sip_xmit returned an XMIT_ERROR without giving
up the tcptls_session lock. This lock has been completely removed
from sip_xmit and placed in the new sip_tcptls_write() function.
4.Memory leak: When creating a tcptls_client the tls_cfg was alloced
but never freed unless the tcptls_session failed to start. Now the
session_args for a sip client are an ao2 object which frees the
tls_cfg on destruction.
5.Pointer to stack variable: During sip_prepare_socket the creation
of a client's ast_tcptls_session_args was done on the stack and
stored as a pointer in the newly created tcptls_session. Depending
on the events that followed, there was a slight possibility that
pointer could have been accessed after the stack returned. Given
the new changes, it is always accessed after the stack returns
which is why I found it.
Notable code changes
1.I broke tcptls.c's ast_tcptls_client_start() function into two
functions. One for creating and allocating the new tcptls_session,
and a separate one for starting and handling the new connection.
This allowed me to create the tcptls_session, launch the helper
thread, and then establish the connection within the helper thread.
2.Writes to a tcptls_session are now done within the helper thread.
This is done by using an alert pipe to wake up the thread if new
data needs to be sent. The thread's sip_threadinfo object contains
the alert pipe as well as the packet queue.
3.Since the threadinfo object contains the alert pipe, it must now be
accessed outside of the helper thread for every write (queuing of a
packet). For easy lookup, I moved the threadinfo objects from a
linked list to an ao2_container.
(closes issue #13136)
Reported by: pabelanger
Tested by: dvossel, whys
(closes issue #15894)
Reported by: dvossel
Tested by: dvossel
Review: https://reviewboard.asterisk.org/r/380/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225445 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch finishes the implementation of OBJ_MULTIPLE in astobj2 (the
case where multiple results need to be returned; OBJ_NODATA mode
already was supported). In addition, it converts ast_channel_iterators
(only the targeted versions, not the ones that iterate over all
channels) to use this method.
During this work, I removed the 'ao2_flags' arguments to the
ast_channel_iterator constructor functions; there were no uses of that
argument yet, there is only one possible flag to pass, and it made the
iterators less 'opaque'. If at some point in the future someone really
needs an ast_channel_iterator that does not lock the container, we can
provide constructor(s) for that purpose.
Review: https://reviewboard.asterisk.org/r/379/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r223804 | jpeeler | 2009-10-12 18:12:50 -0500 (Mon, 12 Oct 2009) | 8 lines
Ensure ringing continues for branched calls after progress is received
While waiting for an answer, don't send progress for branched calls
for which ringing was sent.
(closes issue #15028)
Reported by: fnordian
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
chan_sip has some code to automatically switch from T.38 mode to voice mode when
a voice frame is written to the channel while it is in T.38 mode; this was
intended to handle the situation when a FAX transmission has ended and the channel
is not yet hung up, but is causing problems at the beginning of FAX sessions as
well when there are still voice frames 'in flight' at the time the T.38 negotiation
completes. This patch removes the automatic switchover, and changes app_fax to
explicitly switch off T.38 mode when the FAX transmission process ends.
(closes issue #16025)
Reported by: jamicque
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
SendFAX() and ReceiveFAX() can be given options to indicate whether they should
act as the calling or called party; this mode should be used to decide whether
to initiate a switchover to T.38, not the direction that the FAX transfer will
take place.
(closes issue #16039)
Reported by: jamicque
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r222152 | kpfleming | 2009-10-05 20:16:36 -0500 (Mon, 05 Oct 2009) | 20 lines
Fix ao2_iterator API to hold references to containers being iterated.
See Mantis issue for details of what prompted this change.
Additional notes:
This patch changes the ao2_iterator API in two ways: F_AO2I_DONTLOCK
has become an enum instead of a macro, with a name that fits our
naming policy; also, it is now necessary to call
ao2_iterator_destroy() on any iterator that has been
created. Currently this only releases the reference to the container
being iterated, but in the future this could also release other
resources used by the iterator, if the iterator implementation changes
to use additional resources.
(closes issue #15987)
Reported by: kpfleming
Review: https://reviewboard.asterisk.org/r/383/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222176 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When imapgreetings was set to yes, the message was being deleted but wasn't
actually being expunged. When imapgreetings was set to no, the file based
message was not being deleted at all. All good now!
(closes issue #14949)
Reported by: noahisaac
Patches:
vm_tempgreeting_removal.patch uploaded by noahisaac (license 748),
modified by me
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@220833 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Most of the functionality here is gained simply by setting the feature flag
on the bridge config. However, the dial limit functionality has been moved from
app_dial to the features code and has been made public so both app_dial and
the bridge app can use it.
(closes issue #13165)
Reported by: tim_ringenbach
Patches:
app_bridge_options_r138998.diff uploaded by tim ringenbach (license 540),
modified by me
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@220344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r219816 | tilghman | 2009-09-22 16:37:03 -0500 (Tue, 22 Sep 2009) | 10 lines
When IMAP variables were changed during a reload, Voicemail did not use the new values.
This change introduces a configuration version variable, which ensures that
connections with the old values are not reused but are allowed to expire
normally.
(closes issue #15934)
Reported by: viniciusfontes
Patches:
20090922__issue15934.diff.txt uploaded by tilghman (license 14)
Tested by: viniciusfontes
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@219818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In addition, there's a bit of cleanup to the arguments and documentation, in which
I discovered that the last feature added to this application duplicated an option
(oops!) and changed that option so that it now works.
(closes issue #14909)
Reported by: junky
Patches:
__20090901-spy_hangup_trunk.diff uploaded by lmadsen (license 10)
Tested by: amilcar, junky, flujan, lmadsen
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@219105 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r218730 | tilghman | 2009-09-15 17:27:41 -0500 (Tue, 15 Sep 2009) | 6 lines
If the user enters the same password as before, don't signal an error when the change does nothing.
(closes issue #15492)
Reported by: cbbs70a
Patches:
20090713__issue15492.diff.txt uploaded by tilghman (license 14)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@218731 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r218577 | tilghman | 2009-09-15 11:01:17 -0500 (Tue, 15 Sep 2009) | 9 lines
Ensure FollowMe sets language in channels it creates.
Also, not in the original bug report, but related fields are accountcode and
musicclass, and the inheritance of datastores.
(closes issue #15372)
Reported by: Romik
Patches:
20090828__issue15372.diff.txt uploaded by tilghman (license 14)
Tested by: cervajs
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@218579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r217156 | tilghman | 2009-09-08 15:01:45 -0500 (Tue, 08 Sep 2009) | 7 lines
When MOH is playing on the channel, announcements sent through the conference are not heard.
(closes issue #14588)
Reported by: voipas
Patches:
20090716__issue14588__2.diff.txt uploaded by tilghman (license 14)
Tested by: lmadsen, twisted, tilghman
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@217199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r216430 | oej | 2009-09-04 15:45:48 +0200 (Fre, 04 Sep 2009) | 27 lines
Make apps send PROGRESS control frame for early media and fix too early media issue in SIP
The issue at hand is that some legacy (dying) PBX systems send empty media frames on PRI
links *before* any call progress. The SIP channel receives these frames and by default
signals 183 Session progress and starts sending media. This will cause phones to
play silence and ignore the later 180 ringing message. A bad user experience.
The fix is twofold:
- We discovered that asterisk apps that support early media ("noanswer") did not send
any PROGRESS frame to indicate early media. Fixed.
- We introduce a setting in chan_sip so that users can disable any relay of media frames
before the outbound channel actually indicates any sort of call progress.
In 1.4, 1.6.0 and 1.6.1, this will be disabled for backward compatibility. In later versions
of Asterisk, this will be enabled. We don't assume that it will change your Asterisk
phone experience - only for the better.
We encourage third-party application developers to make sure that if they have applications
that wants to send early media, add a PROGRESS control frame transmission to make sure that
all channel drivers actually will start sending early media. This has not been the default
in Asterisk previous to this patch, so if you got inspiration from our code, you need to
update accordingly. Sorry for the trouble and thanks for your support.
This code has been running for a few months in a large scale installation (over 250
servers with PRI and/or BRI links to old PBX systems).
That's no proof that this is an excellent patch, but, well, it's tested :-)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@216438 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r215270 | dhubbard | 2009-09-01 18:04:52 -0500 (Tue, 01 Sep 2009) | 12 lines
Use strrchr() so SoftHangup will correctly truncate multi-hyphen channel names
In general channel names are in the form Foo/Bar-Z, but the channel name
could have multiple hyphens and look like Foo/B-a-r-Z. Use strrchr to
truncate the channel name at the last hyphen.
(closes issue #15810)
Reported by: dhubbard
Patches:
dw-softhangup-1.4.patch uploaded by dhubbard (license 733)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@215338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The store macro was not getting called preventing storage of IMAP greetings
at all. This has been corrected along with fixing checking if the
imapgreetings option is turned on to store the greeting in IMAP. Lastly,
the attachment filename was incorrectly using the full path instead of just
the basename, which was causing problems with retrieval of the greeting.
(closes issue #14950)
Reported by: noahisaac
(closes issue #15729)
Reported by: lmadsen
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213833 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch modifies app_voicemail's response to mailbox status subscriptions
(via the internal event system) to ensure that a subscription triggers an
explicit poll of the mailbox, so the subscriber can get an immediate cached
event with that status. Previously, the cache was only populated with the
status of non-realtime mailboxes.
(closes issue #15717)
Reported by: natmlt
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213697 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Properly check for the current voicemail state and if it doesn't exist,
create it.
(closes issue #14597)
Reported by: wtca
Patches:
14597_v2.patch uploaded by mmichelson (license 60)
Tested by: jpeeler
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213404 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r211038 | tilghman | 2009-08-07 13:16:28 -0500 (Fri, 07 Aug 2009) | 14 lines
QUEUE_MEMBER_LIST _really_ wants the interface name, not the membername.
This is a partial revert of revision 82590, which was an attempted cleanup,
but in reality, it broke QUEUE_MEMBER_LIST, which has always been intended
as a method by which component interfaces could be queried from the queue.
Membername isn't useful here, because that field cannot be used to obtain
further information about the member. See the documentation on
QUEUE_MEMBER_LIST, RemoveQueueMember, QUEUE_MEMBER_PENALTY, and the various
AMI commands which take a member argument for further justification.
(closes issue #15664)
Reported by: rain
Patches:
app_queue-queue_member_list.diff uploaded by rain (license 327)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211040 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch makes some small changes to handle watchdog timeouts in a better way,
and also uses a 'cleaner' method of including the spandsp header files.
(closes issue #14769)
Reported by: andrew
Patches:
app_fax-20090406.diff uploaded by andrew (license 240)
v1-14769.patch uploaded by dimas (license 88)
Tested by: freh, deti, caspy, dimas, sgimeno, Dovid
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@210777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r209838 | russell | 2009-08-01 05:59:05 -0500 (Sat, 01 Aug 2009) | 13 lines
Modify how Playtones() is used in Milliwatt() to resolve gain issue.
When Milliwatt() was changed internally to use Playtones() so that the proper
tone was used, it introduced a drop in gain in the output signal. So, use
the playtones API directly and specify a volume argument such that the output
matches the gain of the original Milliwatt() code.
(closes issue #15386)
Reported by: rue_mohr
Patches:
issue_15386.rev2.diff uploaded by russell (license 2)
Tested by: rue_mohr
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Convert LOG_NOTICE messages about T.38 negotiation in debug level 1 messages,
clean up some looping logic, and correct an improper use of ast_free() for
freeing an ast_frame.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In receive mode, if the channel that ReceiveFAX is running on supports T.38,
we should *always* attempt to switch T.38, rather than listening for an incoming
CNG tone and only triggering on that. The channel may be using a low-bitrate
codec that distorts the CNG tone, the sending FAX endpoint may not send CNG
at all, or there could be a variety of other reasons that we don't detect it,
but in all those cases if T.38 is available we certainly want to use it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r208592 | russell | 2009-07-24 13:38:24 -0500 (Fri, 24 Jul 2009) | 7 lines
Do not log an ERROR if autoservice_stop() returns -1.
This does not indicate an error. A return of -1 just means that the channel
has been hung up.
(reported in #asterisk-dev)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@208593 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Over the past couple of months, a number of issues with Asterisk
negotiating (and successfully completing) T.38 sessions with various
endpoints have been found. This patch attempts to address many of
them, primarily focused around ensuring that the endpoints'
MaxDatagram size is honored, and in addition by ensuring that T.38
session parameter negotiation is performed correctly according to the
ITU T.38 Recommendation.
The major changes here are:
1) T.38 applications in Asterisk (app_fax) only generate/receive IFP
packets, they do not ever work with UDPTL packets. As a result of
this, they cannot be allowed to generate packets that would overflow
the other endpoints' MaxDatagram size after the UDPTL stack adds any
error correction information. With this patch, the application is told
the maximum *IFP* size it can generate, based on a calculation using
the far end MaxDatagram size and the active error correction mode on
the T.38 session. The same is true for sending *our* MaxDatagram size
to the remote endpoint; it is computed from the value that the
application says it can accept (for a single IFP packet) combined with
the active error correction mode.
2) All treatment of T.38 session parameters as 'capabilities' in
chan_sip has been removed; these parameters are not at all like
audio/video stream capabilities. There are strict rules to follow for
computing an answer to a T.38 offer, and chan_sip now follows those
rules, using the desired parameters from the application (or channel)
that wants to accept the T.38 negotiation.
3) chan_sip now stores and forwards ast_control_t38_parameters
structures for tracking 'our' and 'their' T.38 session parameters;
this greatly simplifies negotiation, especially for pass-through
calls.
4) Since T.38 negotiation without specifying parameters or receiving
the final negotiated parameters is not very worthwhile, the
AST_CONTROL_T38 control frame has been removed. A note has been added
to UPGRADE.txt about this removal, since any out-of-tree applications
that use it will no longer function properly until they are upgraded
to use AST_CONTROL_T38_PARAMETERS.
Review: https://reviewboard.asterisk.org/r/310/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@208464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This x is one crafty little bugger...
It was used for 2 different things (one of which was only done on PPC) in 1.4.
One of the uses were removed in trunk, and with it went the declaration.
(closes issue #14038)
Reported by: ffloimair
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@208113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This helps to prevent a crash which may occur due to our freeing
garbage due to a struct being uninitialized.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@207522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If a redirecting control frame is processed or a call forward occurs,
we need to reset the sentringing flag so that we can send another ringing
indication to the phone that may contain a connected line update.
AST-164
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@206455 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The transmit_audio() and transmit_t38() functions in app_fax have processing
loops that are supposed to wait for frames to arrive on the channel and then
handle them, but they also have short timeouts so that the loops can have
watchdog timers and do other required processing. This commit changes the loops
to not actually call ast_read() and attempt to process the returned frame
unless a frame actually arrived, eliminating hundreds of LOG_DEBUG messages
and slightly improving performance.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Revision 205696 did not quite fix all the issues with the T.38 negotiation
changes and app_fax; this patch corrects them, along with a couple of other
minor issues.
(closes issue #15480)
Reported by: dimas
Patches:
test2-15480.patch uploaded by dimas (license 88)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205770 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Recent changes in T.38 negotiation in Asterisk caused these applications to
not respond when the other endpoint initiated a switchover to T.38; this
resulted in the T.38 switchover failing, and the FAX attempt to be made
using an audio connection, instead of T.38 (which would usually cause the
FAX to fail completely).
This patch corrects this problem, and the applications will now correctly
respond to the T.38 switchover request. In addition, the response will include
the appopriate T.38 session parameters based on what the other end offered
and what our end is capable of.
(closes issue #14849)
Reported by: afosorio
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r205349 | mmichelson | 2009-07-08 14:26:13 -0500 (Wed, 08 Jul 2009) | 14 lines
Prevent phantom calls to queue members.
If a caller were to hang up while a periodic announcement or position
were being said, the return value for those functions would incorrectly
indicate that the caller was still in the queue. With these changes,
the problem does not occur.
(closes issue #14631)
Reported by: latinsud
Patches:
queue_announce_ghost_call2.diff uploaded by latinsud (license 745)
(with small modification from me)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Also, the code in this module is horrendous and we should remove it from the
tree. I'm not sure who is supposed to be maintaning this thing, but they
clearly are not. I don't see the sense of leaving it in the main tree. If it
lives *anywhere* it should be in addons.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@204143 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Max silence was represented in milliseconds, yet vmminsecs (minmessage) was represented
as seconds.
Also, the inequality was reversed. The warning, if triggered, was "Max silence should
be less than minmessage or you may get empty messages", which should have been logged
if max silence was greater than minmessage, but the check was for less than.
Also, conforming if statement to coding guidelines.
closes issue #15331)
Reported by: markd
Review: https://reviewboard.asterisk.org/r/293/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
CEL is the new system for logging channel events. This was inspired after
facing many problems trying to represent what is possible to happen to a call
in Asterisk using CDR records. For more information on CEL, see the built in
HTML or PDF documentation generated from the files in doc/tex/.
Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard
work developing this code. Also, thanks to Matt Nicholson (mnicholson) and
Sean Bright (seanbright) for their assistance in the final push to get this
code ready for Asterisk trunk.
Review: https://reviewboard.asterisk.org/r/239/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
within app_voicemail for directory functions. It is therefore no longer
necessary for app_directory to be linked against the ODBC libraries (and it
never was necessary for app_directory to be linked against IMAP, though it
was).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@201783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r201423 | dvossel | 2009-06-17 14:28:12 -0500 (Wed, 17 Jun 2009) | 19 lines
StopMixMonitor race condition (not giving up file immediately)
StopMixMonitor only indicates to the MixMonitor thread to stop
writing to the file. It does not guarantee that the recording's
file handle is available to the dialplan immediately after execution.
This results in a race condition. To resolve this, the filestream
pointer is placed in a datastore on the channel. When StopMixMonitor
is called, the datastore is retrieved from the channel and the
filestream is closed immediately before returning to the dialplan.
Documentation indicating the use of StopMixMonitor to free files
has been updated as well.
(closes issue #15259)
Reported by: travisghansen
Tested by: dvossel
Review: https://reviewboard.asterisk.org/r/283/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@201445 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Some applications (notably app_fax) do not need digit detection nor FAX tone
detection while they are running, and if Asterisk is using software DSPs to provide
the detection, this consumes extra CPU cycles that could be better spent on the
actual application. This patch allows applications to query and control the state
of digit and tone detection on a channel, and modifies app_fax to disable them
while the FAX operations are occurring (and re-enable digit detection afterwards).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@201139 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r200991 | kpfleming | 2009-06-16 12:05:38 -0500 (Tue, 16 Jun 2009) | 11 lines
Improve support for media paths that can generate multiple frames at once.
There are various media paths in Asterisk (codec translators and UDPTL, primarily)
that can generate more than one frame to be generated when the application calling
them expects only a single frame. This patch addresses a number of those cases,
at least the primary ones to solve the known problems. In addition it removes the
broken TRACE_FRAMES support, fixes a number of bugs in various frame-related API
functions, and cleans up various code paths affected by these changes.
https://reviewboard.asterisk.org/r/175/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@201056 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Voicemail can only use one storage module at the moment.
Because it's unclear that selecting one of the storage modules
in menuselect will disable filesystem storage we now have
a FILE_STORAGE option that conflicts with the other modules.
(closes issue #15333)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200943 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fix up modules in the 'apps' directory, and also correct the bad example of
enum definitions in include/asterisk/app.h, which many developers followed
(thanks for reading the documentation!). In addition, add some basic usage
examples of the 'pahole' and 'pglobal' tools to the coding guidelines.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch provides a new implementation of the optional API support defined
in asterisk/optional_api.h; this new version provides solves compatibility
issues with the use of linker version scripts for suppressing global symbols.
In addition, there is now a functional (and tested!) implementation for Mac OS/X,
so module writers no longer need to use special tests before calling optional
API functions. All future implementations must provide these same semantics,
so that module writers can rely on them.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Move function MEETME_INFO static documentation to the new AstXML form.
(issue #15245)
Reported by: eliel
Patches:
app_meetme_static_conversion.txt uploaded by lmadsen (license 10)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Move function MINIVMACCOUNT and MINIVMCOUNTER statis documentation to the new
AstXML form.
(issue #15245)
Reported by: eliel
Patches:
app_minivm_static_conversion.txt uploaded by lmadsen (license 10)
(with minor changes by me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199376 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When connected line updates are received or generated in the middle
of an application call, it is now possible to execute a macro to
manipulate the connected line data. This way, phone numbers may be
manipulated to be more presentable to users, names may be changed
for...whatever reason, or whatever else needs to be done may be.
Review: https://reviewboard.asterisk.org/r/256
AST-165
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Updated the MixMonitor documentation for the 'b' option so that
it is more obvious that you must not optimize away the Local
channel when using this option.
(closes issue #14829)
Reported by: licedey
Tested by: mmichelson, licedey, lmadsen
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@197828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r197537 | mmichelson | 2009-05-28 09:49:13 -0500 (Thu, 28 May 2009) | 21 lines
Add flags to chanspy audiohook so that audio stays in sync.
There are two flags being added to the chanspy audiohook here. One
is the pre-existing AST_AUDIOHOOK_TRIGGER_SYNC flag. With this set,
we ensure that the read and write slinfactories on the audiohook do
not skew beyond a certain tolerance.
In addition, there is a new audiohook flag added here,
AST_AUDIOHOOK_SMALL_QUEUE. With this flag set, we do not allow for
a slinfactory to build up a substantial amount of audio before
flushing it. For this particular issue, this means that the person
spying on the call will hear the conversations in real time with very
little delay in the audio.
(closes issue #13745)
Reported by: geoffs
Patches:
13745.patch uploaded by mmichelson (license 60)
Tested by: snblitz
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@197543 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The MinivmMWI application was not being unregistered on unload and we were not
able to load again the module or reload it.
(closes issue #15174)
Reported by: junky
Patches:
unregister_minivm_mwi.diff uploaded by junky (license 177)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
A new xml element was created to manage the AMI actions documentation,
using AstXML.
To register a manager action using XML documentation it is now possible
using ast_manager_register_xml().
The CLI command 'manager show command' can be used to show the parsed
documentation.
Example manager xml documentation:
<manager name="ami action name" language="en_US">
<synopsis>
AMI action synopsis.
</synopsis>
<syntax>
<xi:include xpointer="xpointer(...)" /> <-- for ActionID
<parameter name="header1" required="true">
<para>Description</para>
</parameter>
...
</syntax>
<description>
<para>AMI action description</para>
</description>
<see-also>
...
</see-also>
</manager>
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:
- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments
In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.
Review: https://reviewboard.asterisk.org/r/251/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Since we may have copied connected line info into the chanlist struct prior
to placing an outbound call, we need to be sure to free the allocated data
when we hang the call up.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195763 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The command had a for loop that was guaranteed to only execute once since
the continuation operation of the loop would set the input buffer NULL. I rewrote
the loop so that its operation was more obvious, and it would set multiple variables
correctly.
I also reduced stack space required for the function, constified the input string,
and modified the function so that it would not modify the input string while I was
at it.
(closes issue #15114)
Reported by: chris-mac
Patches:
15114.patch uploaded by mmichelson (license 60)
Tested by: chris-mac
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Update applications documentation to warn the user about the use of the
WaitExten() application within a Macro(). Recommend the use of Read()
instead.
(closes issue #14444)
Reported by: ewieling
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195162 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r194028 | mnicholson | 2009-05-12 17:15:45 -0500 (Tue, 12 May 2009) | 16 lines
This change modifies app_queue to properly generate CDR records in failure
situations.
This involves setting a proper cdr disposition coresponding to the given
failure condition and ensuring the proper information is stored in the cdr
record.
(closes issue #13691)
Reported by: dferrer
Tested by: mnicholson
(closes issue #13637)
Reported by: atis
Tested by: atis
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@194057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This helps to prevent odd scenarios where a queue will claim to have
taken 0 calls, but the members appear to have taken a non-zero amount.
(closes issue #15068)
Reported by: sum
Patches:
patchreset.patch uploaded by sum (license 766)
Tested by: sum
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The local struct ast_party_connected_line connected_caller variable
was uninitialized when the copy function was called.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@192590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In discussions today at the Europe Asterisk Developer Meet-Up, we determined that
the event_log was used in only 9 places in the entire tree, and really was not needed
at all. The users have been converted to use LOG_NOTICE, or the messages have been
removed since other messages were already in place that provided the same information.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@191785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This branch adds additional methods to dialplan functions, whereby the result
buffers are now dynamic buffers, which can be expanded to the size of any
result. No longer are variable substitutions limited to 4095 bytes of data.
In addition, the common case of needing buffers much smaller than that will
enable substitution to only take up the amount of memory actually needed.
The existing variable substitution routines are still available, but users
of those API calls should transition to using the dynamic-buffer APIs.
Reviewboard: http://reviewboard.digium.com/r/174/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@191140 65c4cc65-6c06-0410-ace0-fbb531ad65f3
I think it would behoove us to force "make validate-docs" to be run after the
XML documentation has been generated if dev-mode is enabled.
(closes issue #14989)
Reported by: tzafrir
Patches:
app_queue_xml.diff uploaded by tzafrir (license 46)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This would allow for one to add a caller to a specific place in the
queue instead of just placing the caller in the back every time. To help
facilitate some interesting manipulations, a new channel variable called
QUEUEPOSITION has been added. When a caller is removed from a queue, his
position in that queue is stored in the QUEUEPOSITION variable. One such
strategy an administrator can employ is to allow for the removal of a caller
from one queue followed by the insertion of the same caller into a separate
queue in the same position.
Review: http://reviewboard.digium.com/r/189
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190626 65c4cc65-6c06-0410-ace0-fbb531ad65f3