Additional option for videosupport (always) that disables the optimization to
fail to setup video RTP if the two endpoints will not support it. This assists
with call files and certain transfers to ensure that if two video phones are
ever connected, they will always share a video feed.
Override the callerid in all cases when the callerid is set in the user, not
just when a remote callerid is set. Also, if not set in the user, allow the
remote CallerID to pass through.
(closes issue #12875)
Reported by: dimas
Patches:
20080714__bug12875.diff.txt uploaded by Corydon76 (license 14)
Add a check to the CAN_EARLY_BRIDGE macro in app_dial to
be sure there are no audiohooks present on the channels
involved. This fixed a one-way audio situation I had in
my test setup. I couldn't find any open issues that suggested
one-way audio with regards to mixmonitor (or other audiohook)
usage, though.
notify the user that dnsmgr refresh wont work when dnsmgr is not enabled.
Previously this command would automagically appear and disappear.
This was confusing.
Swap "static" and "const", so that "static" appears at the beginning of each
declaration (suppresses a warning).
(closes issue #13070)
Reported by: gknispel_proformatique
Patches:
asterisk_trunk_const_static.patch uploaded by gknispel (license 261)
Make all sed calls Posix sed compatible.
To make sure nobody commits script-modified files we first make a backup
of asterisk.tex, run the script, generate the pdf and / or html,
and put the original asterisk.tex back.
This will guard us for the stuff that happened before that someone committed
a locally modified asterisk.tex, with changes done by this script.
Steve Murphy [Fri, 11 Jul 2008 22:03:19 +0000 (22:03 +0000)]
(closes issue #13041)
Reported by: eliel
OK, now the context registrar slot is strdup'd. It is freed
on destruction. I don't see the need to do this with all
the structs' registrar fields, but if some wild case proves
they should also be handled this way, then we can
put in the extra work at that time.
Ensure that a destination callno of 0 will not match for frames that do not
start a dialog (new, lagrq, and ping).
(closes issue #12963)
Reported by: russellb
Patches:
chan_iax2_dup_new_fix4.patch uploaded by jpgrayson (license 492)
In this 'omnibus' fix, I **think** I solved both
the problem in 13041, where unloading pbx_ael.so
caused crashes, or incomplete removal of previous
registrar'ed entries. And I added code to completely
remove all includes, switches, and ignorepats that
had a matching registrar entry, which should
appease 12960.
I also added a lot of seemingly useless brackets
around single statement if's, which helped debug
so much that I'm leaving them there.
I added a routine to check the correlation between
the extension tree lists and the hashtab
tables. It can be amazingly helpful when you have
lots of dialplan stuff, and need to narrow
down where a problem is occurring. It's ifdef'd
out by default.
I cleaned up the code around the new CIDmatch code.
It was leaving hanging extens with bad ptrs, getting confused
over which objects to remove, etc. I tightened
up the code and changed the call to remove_exten
in the merge_and_delete code.
I added more conditions to check for empty context
worthy of deletion. It's not empty if there are
any includes, switches, or ignorepats present.
If I've missed anything, please re-open this bug,
and be prepared to supply example dialplan code.
Pass the devicestate from an underlying channel up through the Agent channel.
This should make the Agent always report the correct device state, even when
the underlying channel is used for other purposes.
(closes issue #12773)
Reported by: davidw
Patches:
20080710__bug12773.diff.txt uploaded by Corydon76 (license 14)
Tested by: davidw
add support for a configuration parameter for 'inband audio during RELEASE', which is currently mandatory in libpri-1.4.4 but will become configurable in libpri-1.4.5 later today
fix a flaw found while experimenting with structure alignment and padding; low-fence checking would not work properly on 64-bit platforms, because the compiler was putting 4 bytes of padding between the fence field and the allocation memory block
added a very obvious runtime warning if this condition reoccurs, so the developer who broke it can be chastised into fixing it :-)
Correctly deal with duplicate NEW frames (due to retransmission). Also, fixup
the destination call number matching to be more strict and reliable.
(closes issue #12963)
Reported by: jpgrayson
Patches:
chan_iax2_dup_new_fix3.patch uploaded by jpgrayson (license 492)
Tested by: jpgrayson, Corydon76
Mark Michelson [Thu, 10 Jul 2008 20:33:13 +0000 (20:33 +0000)]
Removed the fn2 field from the vm_state structure.
fn2 was used in three functions. In every case, it was initialized
in the function it was used in. This meant there was no need
to have it in a malloc'd structure just taking up space. Furthermore
two of the functions it was used in were completely unnecessary since
fn2 was set to exactly the same value as the vm_state's fn string.
fn2 was a char array sized at PATH_MAX. On my system, PATH_MAX is
4096. This equates to a 4K memory savings per vm_state allocated.
Since there is a vm_state malloc'd for every voicemail user on
the system, this could potentially add up nicely if there are lots
of users. In addition, a vm_state is allocated on the stack each
time a caller calls the VoiceMailMain application, meaning that
there is a significant stack savings with this patch too.
Of course, a single vm_state struct still takes up approximately
20K on my system (when using IMAP storage. Without IMAP storage,
there would be about another 300 bytes fewer usage), even with
this removal. Further optimizations are probably possible,
but most likely not as easy as this one.
Fixes a bug where the interface for a queue member gets reloaded as the state_interface, if a state_interface was set, on reload because the
state_interface isn't stored in the ast_db.
Fix a problem where inbound rfc2833 audio would be sent to the
core instead of being P2P bridged. When the core regenerated
the rfc2833 packet for the outbound leg, the SSRC would be different
than the RTP audio on the call leg causing DTMF detection issues on
the far end.
Backport TCP-related timeouts to IMAP voicemail in 1.4
since it should solve bugs people are experiencing. Specifically,
there are times where communication with the IMAP server causes
system calls to block forever. If this should happen when querying
the mailbox so that chan_sip's do_monitor thread can send MWI to
a phone, it means that SIP calls cannot be processed any more.
The timeout options are outlined in doc/imapstorage.txt. Defaults
for the timeouts are sixty seconds.
Fix a bug in SRV lookups where dnsmgr would discard everything but the
first SRV result from DNS before processing weights and priorities and
dns_parse_answer wouldn't report that there were no records in DNS
unless a failure occured. Also fixed a bug where dnsmgr_refresh would
report that a entry was being changed when ast_gethostbyname had failed.
Cause SIP to return a 480 instead of a 404 when a sip peer exists, but is not
registered.
(closes issue #12885)
Reported by: ibc
Patches:
20080701__bug12885__2.diff.txt uploaded by Corydon76 (license 14)
Tested by: ibc
Timestamp decoding for video mini-frames is bogus, because the timestamp only
includes 15 bits, unlike voice frames, which contain a 16-bit timestamp.
(closes issue #13013)
Reported by: jpgrayson
Patches:
chan_iax2_unwrap_ts.patch uploaded by jpgrayson (license 492)
Russell Bryant [Tue, 8 Jul 2008 14:17:37 +0000 (14:17 +0000)]
Update app_fax for better compatibility with spandsp 0.0.5. Add a call to
t38_terminal_release, and make sure that the phase E handler gets called
with proper status.
Don't hangup the call if we can't resolve the Contact if there's a proxy
route set for the call.
----
This comment was added a while ago and today it hit me badly.
/* OEJ: Possible issue that may need a check:
If we have a proxy route between us and the device,
should we care about resolving the contact
or should we just send it?
*/
Fix issues where repeated messages where ignored, but retransmitted reliably instead of unreliably.
Reported by: johan
Patches:
12746.txt uploaded by oej (license 306)
Tested by: johan
(issue #12746)
Mark Michelson [Mon, 7 Jul 2008 20:28:33 +0000 (20:28 +0000)]
If imapfolder=foo were set in voicemail.conf, then when calling VoiceMailMain,
app_voicemail would attempt to play a file called vm-foo instead of playing
vm-INBOX to play the "new" sound file. This commit fixes that issue.
This may fix one of the problems reported in issue #12987
By using the iaxdynamicthreadcount to identify a thread, it was possible
for thread identifiers to be duplicated. By using a globally-unique monotonically-
increasing integer, this is now avoided.
Olle Johansson [Sun, 6 Jul 2008 20:19:04 +0000 (20:19 +0000)]
- Adding alias "udpbindaddr" for the UDP port to comply with "tcpbindaddr" and "tlsbindaddr".
Note: I don't think we can start properly without UDP port open, that needs to be tested.
- Removing "bindport" from configuration example, not needed to mention this any more
I suggest we deprecate "bindaddr" and "bindport" in trunk (for 1.6.1)
Olle Johansson [Sun, 6 Jul 2008 20:11:37 +0000 (20:11 +0000)]
- Fixing issues with "sip show settings"
- Adding IP address for TCP and/or TLS too if auto-domain is enabled and
binding to a different IP address
- Fixing documentation in sip.conf.sample
Olle Johansson [Sat, 5 Jul 2008 20:59:49 +0000 (20:59 +0000)]
KILL THE USER!
Actually, kill the in-memory structure for type=user and start using the sip_peer
structure for every object. Have only one in-memory list and use them different
ways depending on type=user, type=peer and type=friend - like always.
The idea with this first patch is that configurations should work as before.
Some additional features for realtime peers. By adding a type= field, you
can now have multiple functions.
Let's test this for a while. Won't be integrated in 1.6.0, only in trunk,
for testing.
There's propably more to clean up and simplify here. Help is welcome
and encouraged!