This commit brings in a significant set of changes to the SMDI support in Asterisk.
There were a number of bugs in the current implementation, most notably being that
it was very likely on busy systems to pop off the wrong message from the SMDI message
queue. So, this set of changes fixes the issues discovered as well as introducing
some new ways to use the SMDI support which are required to avoid the bugs with
grabbing the wrong message off of the queue.
This code introduces a new interface to SMDI, with two dialplan functions. First,
you get an SMDI message in the dialplan using SMDI_MSG_RETRIEVE() and then you access
details in the message using the SMDI_MSG() function. A side benefit of this is that
it now supports more than just chan_zap.
For example, with this implementation, you can have some FXO lines being terminated
on a SIP gateway, but the SMDI link in Asterisk.
Another issue with the current implementation is that it is quite common that the
station ID that comes in on the SMDI link is not necessarily the same as the Asterisk
voicemail box. There are now additional directives in the smdi.conf configuration
file which let you map SMDI station IDs to Asterisk voicemail boxes.
Yet another issue with the current SMDI support was related to MWI reporting over
the SMDI link. The current code could only report a MWI change when the change
was made by someone calling into voicemail. If the change was made by some other
entity (such as with IMAP storage, or with a web interface of some kind), then the
MWI change would never be sent. The SMDI module can now poll for MWI changes if
configured to do so.
This work was inspired by and primarily done for the University of Pennsylvania.
(also related to issue #9260)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104119 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2. If ast_monitor_change_fname is called and the new filename is the same as the old, then exit early and don't set the
filename_changed field in the monitor structure. Setting it in this case was causing ast_monitor_stop to erroneously
delete them.
(closes issue #11741)
Reported by: garlew
Tested by: putnopvut
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
which fixes a crash on reconnect with the MyODBC driver.
(closes issue #11798)
Reported by: Corydon76
Patches:
20080119__res_odbc__idlecheck.diff.txt uploaded by Corydon76 (license 14)
Tested by: mvanbaak
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
option is incorrectly passed to the transferee when built-in
attended transfers are used. There is still a problem with 'T',
but better to fix some problems than no problems while we work
on it.
(closes issue #7904)
Reported by: k-egg
Patches:
transfer-fix-b14-r97657.diff uploaded by sergee (license 138)
Tested by: sergee, otherwiseguy
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
needs to use this if the user does not have soxmix.
(closes issue #11589, reported by amessina, patch inspired by amessina but with a flourish from me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@94122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
rizzo brought up some issues related to the way that the metadata required
for menuselect and the rest of the build system is extracted from the source
files. Since I had a few hours to kill on an airplane today, I decided to
improve this situation... so now the system caches the extracted metadata
and uses it to build the menuselect 'tree' as much as it can. The result
of this is that when a single source file is changed, only the metadata for
that file needs to be extracted again, and the rest is used from the cache
files. I also reduced the number of forked processes required to do the
metadata extraction; it was actually possible to do most of what we needed
in the Makefiles themselves without using any shell scripts at all! On my
laptop, these changes resulted in an 80% decrease in the time required
for the 'menuselect.makeopts' automatic check to occur after editing a single
source file.
While doing this work I also cleaned up a few minor things in the Makefiles,
adding a check for 'awk' to the configure script and changed all remaining
places we use 'grep' or 'awk' to use the ones found by the configure script,
and changed the 'prep_tarball' script to build the menuselect metadata so
that tarballs of Asterisk will include it and won't require the user to
wait while it is extracted after unpacking.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
the channel which initiated the bridge was always assumed to have been the one
which activated the dynamic feature. This patch corrects this.
(closes issue #11529, reported and patched by nic_bellamy)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
a backslash. Unfortunately, this does not universally work on all databases,
since on databases which natively use the backslash as a delimiter, the
backslash itself needs to be delimited, but on other databases that have no
delimiter, backslashing the backslash causes an error.
So the only solution that I can come up with is to create an option in res_odbc
that explicitly specifies whether or not backslash is a native delimiter. If
it is, we use it natively; if not, we use the ESCAPE clause to make it one.
Reported by: elguero
Patch by: tilghman
(Closes issue #11364)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
It is documented behavior that if a parking extension already exists while using PARKINGEXTEN,
dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you
must keep this in mind, and handle the failure yourself.
Issue 11237, reported by jon.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
issue a reload, further use of that class could result in a crash due to
dividing by zero. This set of changes fixes up some places to prevent this
from happening.
(closes issue #10948)
Reported by: jcomellas
Patches:
res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282)
Additional changes added by me.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
valid, therefore, those clients must be considered as buddies. The resource
string helps us make the distinction between clients.
Closes issue #10707, reported by yusufmotiwala.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84902 65c4cc65-6c06-0410-ace0-fbb531ad65f3
without resource from a buddy that is known to have a resource list.
Revert a change I previously made, where Asterisk could point to a
freed memory location.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
EAGAIN unless we didn't read an entire line. If there is a newline at the
end if the read buffer, break, because we got the whole thing.
(reported and patched by bmd)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84236 65c4cc65-6c06-0410-ace0-fbb531ad65f3