The functionality of inband DTMF in chan_sip relied upon
ast_rtp_instance_dtmf_mode_get/set not working properly to avoid calling
ast_rtp_instance_dtmf_begin/end on RTP streams with inband DTMF. According to
documentation, ast_rtp_instance_dtmf_begin/end is meant only for RFC2833 DTMF,
never inband. This fixes the regression introduced in revision 328823.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@328935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When deciding whether Asterisk was allowed to bridge the call away from the
core, chan_sip did not take into account the usage of features on dialed
channels that require monitoring of DTMF on channels utilizing inband DTMF.
This would cause Asterisk to allow the call to be locally or remotely bridged,
preventing access to the data required to detect activations of such features.
(closes 17237)
Review: https://reviewboard.asterisk.org/r/1302/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@328823 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Ideally, sip_setoption shouldn't be called if there is a lack of a sip private structure. But this will fix a crash.
(closes issue ASTERISK-17909)
Reported by: Mark Murawski
Tested by: Mark Murawski
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@328608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Asterisk sends a 403 Forbidden response if authentication fails for an
INVITE as required. However, it ignores the ACK and keeps retransmitting
the response.
* Made not delete the to-tag in the dialog so the expected ACK can be
matched with the dialog and stop the retransmissions.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@327211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This matters only when autoconf fails to detect that weak linking is supported.
External optional dependencies will become optional in both cases, as they are
removed at compile time when not detected. However, runtime-optional modules
are made mandatory when weak linking is not found. This change affects only
the external optional dependencies; previously, they were incorrectly required
when weak linking support was not detected.
Patches:
20110702__issue18062__asterisk_trunk.diff.txt by tilghman (License #5003)
Tested by: iasgoscouk
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326411 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If you use the auth= parameter and do a "sip reload" while there is an
ongoing call. The peer->auth data points to free'd memory.
The patch does several things:
1) Puts the authentication list into an ao2 object for reference counting
to fix the reported crash during a SIP reload.
2) Converts the authentication list from open coding to AST list macros.
3) Adds display of the global authentication list in "sip show settings".
(closes issue ASTERISK-17939)
Reported by: wdoekes
Patches:
jira_asterisk_17939_v1.8.patch (license #5621) patch uploaded by rmudgett
Review: https://reviewboard.asterisk.org/r/1303/
JIRA SWP-3526
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326291 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Redoes -r308945 for issue ASTERISK-17431 deadlock fix for
sip_set_udptl_peer() and sip_set_rtp_peer().
* Lock the channels in the defined order and avoid the need for a deadlock
avoidance loop.
* Lock the channel before getting the pointer to the private structure to
be sure that the pointer will not change due to a masquerade or channel
hangup.
* To preserve sanity, check that chan and p->owner are the same. (Pointer
rearangements should not happen without the protection of locks because
bad things tend to happen otherwise.)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* Add load failure exit if primary SIP container(s) could not get created
in chan_sip.c:load_module().
* Removed a redundant static prototype.
* Some typos.
* Some whitespace.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@325935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
A remote peer subscribed to MWI with the unsolicited option and a local
phone subscribed to the remote mailbox. The notify message-summary events
are sent correctly except for the first one when subscribing, which will
always be 0. This means the phone MWI indicator will be wrong until the
mailbox read/unread count changes and the event is fired.
Looks like this is a regression from ASTERISK-16149.
* Fix the logic to check the cache and if allowed then fallback to
manually counting mailbox messages.
(closes issue ASTERISK-17997)
Reported by: rsw686
Patches:
jira_asterisk_17997_v1.8.patch (license #5621) uploaded by rmudgett
Tested by: rsw686
JIRA SWP-3551
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324914 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The idea behind the patch listed below was used, but in a more targeted manner.
There are now address stringification functions for addresses that are meant to
be sent to a remote party. Link-local scope-ids only make sense on the machine
from which they originate and so are stripped in the new functions.
There is also a host sanitization function added to chan_sip which is used
for when peer and dialog tohost fields or sip_registry hostnames are used to
craft a SIP message.
Also added are some basic unit tests for netsock2 address parsing.
(closes issue ASTERISK-17711)
Reported by: ch_djalel
Patches:
asterisk-1.8.3.2-ipv6_ll_scope.patch uploaded by ch_djalel (license 1251)
Review: https://reviewboard.asterisk.org/r/1278/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When exchanging INFO messages within a call, 4xx error causes the call to
be disconnected although RFC 2976 explicitly states that such transactions
do not modify the state of the dialog.
When exchanging MESSAGE messages within a call, 4xx error causes the call
to be disconnected. To provide least surprise, we should not disconnect
the call since a MESSAGE is like INFO in this case. (Implied by RFC 3428
Section 2)
(closes issue ASTERISK-17901)
Reported by: neutrino88
Review: https://reviewboard.asterisk.org/r/1257/
Review: https://reviewboard.asterisk.org/r/1258/
JIRA SWP-3486
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324481 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Section 5.1 of RFC3264 states:
A port number of zero in the offer indicates that the stream is offered
but MUST NOT be used.
(closes issue ASTERISK-17845)
Reported by: jacco
Patches:
issue19281_2.patch uploaded by jacco (license 1277)
Tested by: jacco, twilson
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
It turned out that this was causing NAT=Yes to always use rport when present which was
against 1.6.2 behavior and the check itself was redundant since the only way this
segment of code could be reached was if RPORT_PRESENT was already evaluated as true
earlier.
(closes issue ASTERISK-17789)
Reported by: byronclark
Patches:
use_sip_nat_force_rport.patch uploaded by byronclark (license 1200)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit backports a feature in trunk affecting initreqprep so that display name won't
be encoded improperly. Also includes unit tests for the ast_escape_quoted function.
This patch gives 1.8 a much improved outlook in countries which don't use standard
ASCII characters.
(closes issue ASTERISK-16949)
Reported by: Örn Arnarson
Review: https://reviewboard.asterisk.org/r/1235/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322585 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch fixes handle_request_publish so that it does dialog expiration and destruction.
Without this patch the incoming PUBLISH requests will get stuck in the dialog list.
Restarting asterisk is the only way to remove them.
Personal observation on one system the server hung up while looping through the channels
rendering asterisk unusable and all sip phones unregisterd when they try reregister
more requests are added.
(closes issue #18898)
Reported by: gareth
Tested by: loloski, Chainsaw, wimpy, se, kuj, irroot
Jira: https://issues.asterisk.org/jira/browse/ASTERISK-17915
Review: https://reviewboard.asterisk.org/r/1253
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322322 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Moved the sip uri parse variable initalization to parse_uri_full in reqresp_parser.c. This will ensure that any use of parse uri will have null output variables if the parse fails.
(closes issue #19346)
Reported by: kobaz
Tested by: kobaz,JonathanRose
Review: [full review board URL with trailing slash]
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321155 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Added a null check in netsock2 ast_sockaddr_resolve() as well as added default initalizers in chan_sip parse_uri_legacy_check() to make sure that invalid uris will make null (and not undefined) user,pass,domain,transport variables
(closes issue #19346)
Reported by: kobaz
Patches:
netsock2.patch uploaded by kobaz (license 834)
Tested by: kobaz, Marquis
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321100 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The SUBSCRIBE message used to cancel a CC request has incorrect To/From
SIP headers. They are reversed and the dialog tags are the same when they
should not be. If pedantic mode was disabled, then the cancel would have
succeeded despite the incorrect message.
* The SIP_OUTGOING flag was not set correctly for the dialog and I had to
move some CC subscribe handling code as a result.
* Initialized the dialog subscribed type to CALL_COMPLETION earlier. If a
CC request SUBSCRIBE message comes in and the CC instance is not found,
the 404 response was duplicated.
JIRA AST-568
JIRA SWP-3493
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Because of the buffering the TLS layer does, polling is unreliable. If poll is
called while there is data waiting to be read in the TLS layer but not at the
network layer, the messaging processing engine will not proceed until something
else writes data to the socket, which may not occur. This change modifies the
logic around TLS sockets to only poll after a failed read on a non-blocking
socket. This way we know that there is no data waiting to be read from the
buffering layer.
(closes issue #19182)
Reported by: st
Patches:
ssl-poll-fix3.diff uploaded by mnicholson (license 96)
Tested by: mnicholson
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
With the new option engaged, Asterisk should interpret user fields with useroptions
contained within the userfield of the uri by stripping them out of the original message
whenever a semicolon is encountered in the userfield string.
(closes issue #18344)
Reported by: danimal
Tested by: jrose
Review: https://reviewboard.asterisk.org/r/1223/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319938 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r319653 | twilson | 2011-05-18 16:11:57 -0700 (Wed, 18 May 2011) | 15 lines
Merged revisions 319652 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r319652 | twilson | 2011-05-18 16:04:35 -0700 (Wed, 18 May 2011) | 8 lines
Make sure everyone gets an unhold when a transfer succeeds
Some phones, like the Snom phones, send a hold to the transfer target after
before sending the REFER. We need to make sure that we unhold the parties
that are being connected after the masquerade. If Local channels with the /nm
option are used when dialing the parties, hold music would still be playing on
the transfer target, even after being connected with the transferee.
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The fix for issue 18882 broke retrieving non-realtime peers from the ast_db
on restart/reload. This patch tries to unbreak things while leaving the intent
of the original fix intact.
(closes issue #19318)
Reported by: remiq
Patches:
diff.txt uploaded by twilson (license 396)
Tested by: lmadsen, remiq
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Since 1.6.2, the new pickupsound and pickupfailsound in features.conf cause many issues.
1). chan_sip:handle_request_invite() shouldn't be playing out the fail/success audio, as it has 'netlock' locked.
2). dialplan applications for directed_pickups shouldn't beep.
3). feature code for directed pickup should beep on success/failure if configured.
Created a sip_pickup() thread to handle the pickup and playout the audio, spawned from handle_request_invite.
Moved app_directed:pickup_do() to features:ast_do_pickup().
Functions below, all now use the new ast_do_pickup()
app_directed_pickup.c:
pickup_by_channel()
pickup_by_exten()
pickup_by_mark()
pickup_by_part()
features.c:
ast_pickup_call()
(closes issue #18654)
Reported by: Docent
Patches:
ast_do_pickup_1.8_trunk.diff.txt uploaded by alecdavis (license 585)
Tested by: lmadsen, francesco_r, amilcar, isis242, alecdavis, irroot, rymkus, loloski, rmudgett
Review: https://reviewboard.asterisk.org/r/1185/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r318548 | twilson | 2011-05-11 12:15:39 -0500 (Wed, 11 May 2011) | 19 lines
Clean up several chan_sip reference leaks
Several situations in the code could lead to peers or sip_pvt references
being leaked. This would cause RTP ports to never be destroyed (leading
to exhaustion of all available RTP ports) and memory leaks.
The original patch for this issue from rgagnon was the result of an
obscene amount of testing and hard work, for which I am very grateful. I
did some cleanup and added a few additional refcount fixes that I found.
(closes issue #17255)
Reported by: kvveltho
Patches:
tag-1.6.2.17-r309252-sip-dos-mem-leak-fix.diff uploaded by rgagnon (license 1202)
Tested by: rgagnon, twilson, wdoekes, loloski
Review: https://reviewboard.asterisk.org/r/1101/
Review: https://reviewboard.asterisk.org/r/1207/
Review: https://reviewboard.asterisk.org/r/1210/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318549 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r318331 | twilson | 2011-05-09 15:04:41 -0500 (Mon, 09 May 2011) | 12 lines
Don't offer video to directmedia callee unless caller offered it as well
Make sure that when directmedia is enabled, that video is not offered to the
callee even if it supports it. p->vrtp will not exist since the caller didn't
offer video.
(closes issue #19195)
Reported by: one47
Patches:
sip_cant_add_video_rtp uploaded by one47 (license 23)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318337 65c4cc65-6c06-0410-ace0-fbb531ad65f3