Commit Graph

1995 Commits

Author SHA1 Message Date
Joshua Colp
ac71a26c0f Fix a bug where the codecs of the called party leg were not properly sent back to the caller call leg when reinvited.
(closes issue #13569)
Reported by: bkw918


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@195095 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-18 13:53:39 +00:00
Mark Michelson
7aa29c797a Fix a race condition where a reinvite could trigger a 482 response.
The loop detection/spiral detection code in chan_sip used the owner
channel's state as a criterion for determining if the incoming INVITE
is a looped request. The problem with this is that the INVITE-handling
code happens in a different thread than the thread that marks the owner
channel as being up. As a result, if a reinvite were to come in very quickly,
say from another Asterisk on the same LAN, it was possible for the reinvite
to arrive before the owner channel had been set to the up state.

This patch corrects the problem by using the invitestate of the sip_pvt
instead, since that can be guaranteed to be set correctly by the time
the reinvite arrives. Since there is a switch statement further in the
INVITE-handling code, the AST_STATE_RINGING state also checks the invitestate
of the sip_pvt in case we should actually be treating the channel as if it were
up already.

(closes issue #12215)
Reported by: jpyle
Patches:
      12215_confirmed.patch uploaded by mmichelson (license 60)
Tested by: lmadsen



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@194484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-14 22:17:55 +00:00
Mark Michelson
63c0dca7bd Set the invitestate to INV_CANCELLED only if we are actually sending a SIP CANCEL.
The problem was that the hangup code was setting the invitestate too early. The result of
this was that we would always send a CANCEL request, even if it was not an appropriate
time to do so (e.g. we have not yet received a provisional response for our INVITE).

Note that this same fix had been applied to trunk and the 1.6.X branches starting with
revision 155467. This is why you will see this revision being blocked from those places.

AST-216



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@193880 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-12 18:18:44 +00:00
Tilghman Lesher
c57efbe571 Eliminate repetition of fullcontact during reconstruction.
If the fullcontact field appears in both the sippeers and the
sipregs table, then during reconstruction of the field, it will
otherwise be doubled.
(closes issue #14754)
 Reported by: Alexei Gradinari
 Patches: 
       20090506__bug14754.diff.txt uploaded by tilghman (license 14)
 Tested by: lmadsen


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@192932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-07 16:29:08 +00:00
Joshua Colp
202bc9464e Update some old logic to stop both begin and end DTMF frames from reaching the core if rfc2833 is not enabled.
(closes issue #15036)
Reported by: dimas
Patches:
      v1-15036.patch uploaded by dimas (license 88)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@192633 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-06 13:30:51 +00:00
Tilghman Lesher
c2d8897257 SIP Response 410 maps to cause code 22 (or 23), not 1.
(closes issue #14993)
 Reported by: BigJimmy
 Patches: 
       causepatch uploaded by BigJimmy (license 371)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@191559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-01 20:00:23 +00:00
Russell Bryant
03eb22fe76 Remove a bogus ast_channel_unlock().
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@190356 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-23 21:07:07 +00:00
Joshua Colp
df2bc7d715 Fix a bug where a value used to create the channel name was bogus.
This commit fixes the scenario where an incoming call is authenticated
using a peer entry. Previously the channel name was created using either
the username setting from the sip.conf entry or the IP address that the
call came from. Now the channel name will be created using the peer name
itself. This commit will not change the way the channel name is generated
for users or friends.

(closes issue #14256)
Reported by: Nick_Lewis
Patches:
      chan_sip.c-chname.patch uploaded by Nick (license 657)
Tested by: Nick_Lewis, file


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@188946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-17 14:41:25 +00:00
Tilghman Lesher
611cf94f90 Only update realtime, if global option rtupdate != false
(closes issue #14885)
 Reported by: deepesh
 Patches: 
       20090413__bug14885.diff.txt uploaded by tilghman (license 14)
 Tested by: deepesh


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@188835 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-16 21:41:13 +00:00
Mark Michelson
a4e46eb871 Handle a SIP race condition (reinvite before an ACK) properly.
RFC 5047 explains the proper course of action to take if a 
reINVITE is received before the ACK from a previous invite
transaction. What we are to do is to treat the reINVITE as
if it were both an ACK and a reINVITE and process it normally.

Later, when we receive the ACK we had been expecting, we will
ignore it since its CSeq is less than the current iseqno of
the sip_pvt representing this dialog.

(closes issue #13849)
Reported by: klaus3000
Patches:
      13849_v2.patch uploaded by mmichelson (license 60)
Tested by: mmichelson, klaus3000



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@187484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-09 18:51:20 +00:00
Tilghman Lesher
1cb43cfa75 Permit zero-length text messages in SIP.
(Related to an issue posted to the -users list, subject "AEL2, BASE64_DECODE and hexadecimal")


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@187362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-09 16:38:37 +00:00
Tilghman Lesher
24fa699663 Merged revisions 186056 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
  r186056 | tilghman | 2009-04-02 12:02:18 -0500 (Thu, 02 Apr 2009) | 2 lines
  
  Fix for AST-2009-003
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@186059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-02 17:09:13 +00:00
Tilghman Lesher
0487d30a98 Avoid multiple warning messages in SIP, due to this column not existing
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@186057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-02 17:03:59 +00:00
David Vossel
36c92eec0e Fixes issue with dropped calles due to re-Invite glare and re-Invites never executing after a 491
Acknowledgement for 491 responses were never being processed because it didn't match our pending invite's seqno.  Since the ACK was never processed, the 491 frame would continue to be retransmitted until eventually the call was dropped due to max retries.  Now during a pending invite, if we receive another invite, we send an 491 and hold on to that glare invite's seqno in the "glareinvite" variable for that sip_pvt struct.  When ACK's are received, we first check to see if it is in response to our pending invite, if not we check to see if it is in response to a glare invite.  In this case, it is in response to the glare invite and must be dealt with or the call is dropped.  I've changed the wait time for resending the re-Invite after receving a 491 response to comply with RFC 3261.  Before this patch the scheduled re-Invite would only change a flag indicating that the re-Invite should be sent out, now it actually sends it out as well. 

(closes issue #12013)
Reported by: alx

Review: http://reviewboard.digium.com/r/213/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@185845 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 19:02:00 +00:00
Mark Michelson
36a68f792e Use AST_SCHED_DEL_SPINLOCK instead of manually using the logic.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@185531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 20:55:47 +00:00
Joshua Colp
df192b77df Improve our handling of T38 in the initial INVITE from a device.
We now answer with matching media streams to what is requested. If an INVITE
is received with both a T38 and RTP media stream this means we answer with both.
For any outgoing calls created as a result of this inbound one no T38 is requested
in the initial INVITE. Instead if we start receiving udptl packets we trigger a
reinvite on the outbound side.

(closes issue #12437)
Reported by: marsosa
Tested by: pinga-fogo, okrief, file, afu

Review: http://reviewboard.digium.com/r/208/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@184947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 14:35:47 +00:00
Joshua Colp
0f37862a87 Fix an issue where nat=yes would not always take effect for the RTP session on outgoing calls.
If calls were placed using an IP address or hostname the global nat setting was copied over
but was not set on the RTP session itself. This caused the RTP stack to not perform symmetric RTP
actions.

(closes issue #14546)
Reported by: acunningham


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@184565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 13:06:45 +00:00
Mark Michelson
338e48e055 Fix an issue where cancelled outgoing SIP calls would erroneously report the device as "in use."
A user was having an issue where if an outgoing SIP call was canceled, the SIP device
would remain in use if we had not received any response to the initial INVITE we sent out.
The SIP device would remain in use until the autocongestion timer was exhausted.

I tracked down the cause of this to be the section of code I am removing here. I asked several
people what the purpose of this code was meant to be, but no one could give me any sort of
answer as to why this was here. The person who was having this issue has been using this patch
for several months and it has stopped the problems they have had.

AST-196



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@183115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-19 16:04:02 +00:00
Mark Michelson
8dbfea83ce Properly send a 487 on an INVITE we have not responded to if we receive a BYE.
If we receive an INVITE from an endpoint and then later receive a BYE from that
same endpoint before we have sent a final response for the INVITE, then we need
to respond to the INVITE with a 487. 

There was logic in the code prior to this commit which seemed to exist solely to 
handle this situation, but there was one condition in an if statement which 
was incorrect. The only way we would send a 487 was if the sip_pvt had no owner
channel. This made no sense since we created the owner channel when we received
the INVITE, meaning that the majority of the time we would never send the 487.
The 487 being sent should not rely on whether we have created a channel. Its
delivery should be dependent on the current state of the initial INVITE transaction.
With this commit, that logic is now correctly in place.

(closes issue #14149)
Reported by: legranjl
Patches:
      14149.patch uploaded by mmichelson (license 60)
Tested by: legranjl



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181768 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-12 18:29:48 +00:00
Joshua Colp
563c72dc84 Fix issue where an attended transfer could not be completed under a rare scenario.
When completing an attended transfer chan_sip does a check to make sure the extension
in the URI portion of the Refer-To header is a local valid extension. We don't actually
need to check this since we know for sure the other channel is already up and talking to
the extension. Some devices do not put the extension in the Refer-To header either, which
can cause the extension check to fail. We now no longer do this check if it is an attended
transfer.

(closes issue #14628)
Reported by: sverre
Patches:
      14628.diff uploaded by file (license 11)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181328 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 17:22:52 +00:00
Joshua Colp
b15b319bd6 Fix a problem with inband DTMF detection on outgoing SIP calls when dtmfmode=auto.
When dtmfmode was set to auto the inband DTMF detector was not setup
on outgoing SIP calls. This caused inband DTMF detection to fail.
The inband DTMF detector is now setup for both dtmfmode inband and auto.

(closes issue #13713)
Reported by: makoto


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 16:36:50 +00:00
Jeff Peeler
21ca773c28 Fix malloc debug macros to work properly with h323.
The main problem here was that cstdlib was undefining free thereby causing the
proper debug macros to not be used. ast_h323.cxx has been changed to call
ast_free instead to avoid the issue. Because using the ast prefix calls are
a better choice, ast_free_ptr is the new wrapper for free to pass to functions.
Also, a little bit of clean up was done to avoid the debug macros intentionally
being redefined.

(closes issue #13593)
Reported by: pj



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181133 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 03:25:04 +00:00
Mark Michelson
280153085e Remove unused variables.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181031 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 00:32:40 +00:00
Mark Michelson
849820fd54 Fix incorrect tag checking on transfers when pedantic=yes is enabled.
(closes issue #14611)
Reported by: klaus3000
Patches:
      patch_chan_sip_attended_transfer_1.4.23.txt uploaded by klaus3000 (license 65)
Tested by: klaus3000



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@181029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 00:30:26 +00:00
Joshua Colp
aa488ca6b0 Skip check for extension when subscribing for MWI.
Since the remote side is not actually subscribing to a specific extension when
subscribing for MWI just skip the check to see if the extension exists. They can't use it
to specify the mailbox either since we require configuration of that in sip.conf

(closes issue #14531)
Reported by: festr


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@178205 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-24 15:16:07 +00:00
Olle Johansson
25bb888046 Force a MWI notification after subscribe request. Reported by the Resiprocate dev team. Thanks!
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@177450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-19 18:58:57 +00:00
Tilghman Lesher
e891f2a92d After a 'sip reload', qualifies for realtime peers weren't immediately
restarted, instead waiting until the next registration.  We're now
caching the qualify across a reload/restart and starting the qualify
immediately upon loading the peer.
(closes issue #14196)
 Reported by: pdf
 Patches: 
       20090120__bug14196_1.4.diff.txt uploaded by pdf (license 663)
 Tested by: pdf


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@176426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 00:49:22 +00:00
Joshua Colp
22734e39dc Don't have the Via header stored as a stringfield as it can change often during the lifetime of a dialog.
This issue crept up with subscriptions on the AA50. When an outgoing NOTIFY is sent a new branch value
is created and the Via header is changed to reflect it. Since this was a stringfield a new spot in the
pool was used for the value while the old was left untouched/unused. If the current pool was full a new
pool was created. This would cause memory usage to increase steadily.

(issue #AA50-2332)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@176029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-16 15:33:53 +00:00
Michiel van Baak
db4dc67740 fix mis-spelling of the word registered.
Reported by De_Mon on #asterisk-dev.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@175921 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-15 23:37:03 +00:00
Olle Johansson
ada21a8039 Make sure that the debug line is not printed on debug level 0
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@175777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-15 19:48:38 +00:00
Joshua Colp
9fa3324845 Go off hold when we get an empty reinvite telling us to.
(closes issue #14448)
Reported by: frawd
Patches:
      hold_invite_nosdp.patch uploaded by frawd (license 610)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@174644 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-10 18:50:50 +00:00
Mark Michelson
7f20e5ffab Don't do an SRV lookup if a port is specified
RFC 3263 says to do A record lookups on a hostname
if a port has been specified, so that's what we're
going to do. See section 4.2.

(closes issue #14419)
Reported by: klaus3000
Patches:
      patch_chan_sip_nosrvifport_1.4.23.txt uploaded by klaus3000 (license 65)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@174282 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-09 17:11:05 +00:00
Dwayne M. Hubbard
d29a99cb89 check ast_strlen_zero() before calling ast_strdupa() in sip_uri_headers_cmp()
and sip_uri_params_cmp()

The reporter didn't actually upload a properly-formed patch, instead a 
modified chan_sip.c file was uploaded.  I created a patch to determine the
changes, then modified the suggested changes to create a proper fix.  The
summary above is a complete description of the changes.

(closes issue #13547)
Reported by: tecnoxarxa
Patches:
      chan_sip.c.gz uploaded by tecnoxarxa (license 258)
Tested by: tecnoxarxa


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@174082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-06 23:36:03 +00:00
Joshua Colp
c80b2b93b5 Remove a debug message I put in by accident.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@173968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-06 17:15:01 +00:00
Joshua Colp
6cda579f17 Some clients do not put the call-id for replaces at the beginning, so support it being anywhere in the string.
(closes issue #14350)
Reported by: fhackenberger


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@173967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-06 17:14:15 +00:00
Matthew Nicholson
5edf9d8a59 Limit the addition of the Contact header in SIP responses according to various
SIP RFCs.

(closes issue #13602)
Reported by: hjourdain
Tested by: mnicholson


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@173917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-06 16:20:23 +00:00
Mark Michelson
f70845aa24 Fix logic regarding when to perform an SRV lookup for outgoing REGISTER requests
With this fix, we only will perform an SRV lookup at the following times:

* The first time we register with a remote registrar
* If we send a REGISTER but do not receive a response
* If the sendto() function returns an error

While I wrote the patch that fixes this issue, a huge amount of credit is due
to Brett Bryant, who wrote the initial patch on which I based this one.

(closes issue #12312)
Reported by: jrast
Patches:
      12312.patch uploaded by putnopvut (license 60)
Tested by: blitzrage

Review: http://reviewboard.digium.com/r/132/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@173770 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-05 23:19:16 +00:00
Olle Johansson
3209942b7e Make sure that we always add the hangupcause headers. In some cases, the owner was disconnected before we checked for the cause.
This patch implements a temporary storage in the pvt and use that instead.

The code is based on ideas from code from Adomjan in issue #13385 (Add support for Reason: header)
Thanks to Klaus Darillion for testing!

(closes issue #14294)
related to issue #13385

Reported by: klaus3000 and adomjan
Patches: 
      bug14294b.diff uploaded by oej (license 306)
      Based on 20080829_chan_sip.c-q850reason_header.patch uploaded by adomjan (license 487)
Tested by: oej, klaus3000



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@172169 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-29 08:48:18 +00:00
Olle Johansson
bc6f14e8e0 Use the same branch tag in CANCEL as in INVITE
Originally putnopvut implemented some changes in revision 142079 that according to the bug report seemed to have worked then, but somehow fails now.
I guess code, as humans, get old and forget stuff. Anyway, this bug caused CANCEL not to work with picky systems. 

Thanks Fredrik for pointing out where the bug in the SIP messaging was.

(closes issue #14346)
Reported by: oej
Patches: 
      bug14346.diff uploaded by oej (license 306)
Tested by: oej


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@171527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-27 14:33:20 +00:00
Olle Johansson
40a6283695 Don't retransmit 401 on REGISTER requests when alwaysauthreject=yes
(closes issue #14284)
Reported by: klaus3000
Patches: 
      patch_chan_sip_unreliable_1.4.23_14284.txt uploaded by klaus3000 (license 65)
Tested by: klaus3000



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@171264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-26 12:51:53 +00:00
Joshua Colp
5efdade8eb Use the on hold flag to see if the call is on hold or not. It is possible that our address for them will still be valid even though they are on hold.
(closes issue #14295)
Reported by: klaus3000


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@170504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-23 18:04:08 +00:00
Mark Michelson
09b6f02459 Account for possible NULL pointer when we receive a 408 in response to a REGISTER
It may be that by the time we receive a reply to a REGISTER request, the attempt has
timed out and thus the registry structure pointed to by the corresponding sip_pvt has
gone away. This situation was handled properly for a 200 OK response, but the 408
case assumed that the sip_registry struct was non-NULL, thus potentially causing a crash

This commit fixes this assumption and prints out a message to the console if we should
receive a late 408 response to a REGISTER


(closes issue #14211)
Reported by: aborghi
Patches:
      14211.diff uploaded by putnopvut (license 60)
Tested by: aborghi



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@168975 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-16 22:42:13 +00:00
Terry Wilson
1dc0a2d811 Don't pass a value with a side effect to a macro
(closes issue #14176)
Reported by: paraeco
Patches: 
      chan_sip.c.diff uploaded by paraeco (license 658)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@168551 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-13 18:34:14 +00:00
Mark Michelson
2d10fef93e I am reverting the fix made in revision 168128 (and its upward merges)
after being contacted by Olle Johansson and being shown how this fix is
incorrect. Thanks to Olle for clearing this up for me.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@168482 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-12 14:58:25 +00:00
Mark Michelson
2fe132ca35 Add check_via calls to more request handlers
INFO, NOTIFY, OPTIONS, REFER, and MESSAGE requests
were not checking the topmost Via to determine where
to send the response. Adding check_via calls to those
request handlers solves this.

(closes issue #13071)
Reported by: baron
Patches:
      check_via.patch uploaded by baron (license 531)
Tested by: baron


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@168128 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-09 20:08:04 +00:00
Kevin P. Fleming
ead4ba5cd8 remove an unnecessary argument to queue_request()
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@167714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-08 17:24:21 +00:00
Kevin P. Fleming
975a706909 When a SIP request or response arrives for a dialog with an associated Asterisk channel, and the lock on that channel cannot be obtained because it is held by another thread, instead of dropping the request/response, queue it for later processing when the channel lock becomes available.
http://reviewboard.digium.com/r/117/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@167620 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-07 23:32:21 +00:00
Mark Michelson
543dfee83c A couple of changes to T.38 SDP attribute handling
There are some boolean attributes for T.38 such
as T38FaxFillBitRemoval, T38FaxTranscodingMMR, and
T38FaxTranscodingJBIG. By simply being present, we
should treat these as a "true" value. The current
code, however, was requiring a 1 or 0 as the value
of the attribute in order to parse it. This is due
to the fact that there are some T.38 endpoints and
gateways that also transmit this information
incorrectly. This patch follows the "be liberal in
what you accept and strict in what you send"
philosophy by accepting both the correctly- and 
incorrectly-formatted attributes, but only sending
information as it is supposed to be sent.

It was also discovered that a particular type of 
T.38 gateway sends some non-standard T.38 SDP
attributes. Instead of using T38FaxMaxDatagram
and T38MaxBitRate, it used T38MaxDatagram and
T38FaxMaxRate respectively. We now will properly
accept these attributes as well.

Note that there are a lot of patches cited in
the below commit message template. This is
because the person who submitted these patches is
an awesome person and wrote 1.4, 1.6.0, and 1.6.1
variants.

(closes issue #13976)
Reported by: linulin
Patches:
     chan_sip.c.1.4-update1.diff uploaded by arcivanov (license 648)
	 chan_sip.c.1.6.0-update1.diff uploaded by arcivanov (license 648)
	 chan_sip.c.1.6.1-update1.diff uploaded by arcivanov (license 648)
	 chan_sip.c.1.4-relaxedT38_update1.diff uploaded by arcivanov (license 648)
	 chan_sip.c.1.6.0-relaxedT38_update1.diff uploaded by arcivanov (license 648)
	 chan_sip.c.1.6.1-relaxedT38_update1.diff uploaded by arcivanov (license 648)
Tested by: arcivanov



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@167179 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-05 16:51:59 +00:00
Mark Michelson
7fdf99803e Backport of AUDIOHOOK_INHERIT for Asterisk 1.4
(closes issue #13538)
Reported by: mbit
Patches:
      13538.patch uploaded by putnopvut (license 60)
Tested by: putnopvut



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@166157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 23:34:57 +00:00
Mark Michelson
c49c8b9a3a After looking through SIP registration code most of the day, this
is one of the few things I could find that was just plain wrong.
Even though it probably isn't possible for it to happen, it seems weird
to have code that checks if a pointer is NULL and then immediately dereferences
that pointer if it was NULL.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@164977 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-16 23:04:27 +00:00