Commit Graph

335 Commits

Author SHA1 Message Date
Olle Johansson
a3dd1d2188 Clarify syntax changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@277028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 12:13:45 +00:00
Olle Johansson
e129b31fc6 Add ability to configure the Max-Forwards header in the dialplan, as well as in
sip.conf configuration for the channel and for devices.

The Max-Forwards header is used to prevent loops in a SIP network. Each intermediary,
like SIP proxys and SBCs, decrement this counter and detects when it reaches zero,
at which point the SIP request is nicely killed in a SIP-friendly way.

Review: https://reviewboard.asterisk.org/r/778/

Thanks to dvossel for the review and good advice.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 10:00:58 +00:00
Mark Michelson
cd4ebd336f Add IPv6 to Asterisk.
This adds a generic API for accommodating IPv6 and IPv4 addresses
within Asterisk. While many files have been updated to make use of the
API, chan_sip and the RTP code are the files which actually support
IPv6 addresses at the time of this commit. The way has been paved for
easier upgrading for other files in the near future, though.

Big thanks go to Simon Perrault, Marc Blanchet, and Jean-Philippe Dionne
for their hard work on this.

(closes issue #17565)
Reported by: russell
Patches: 
      asteriskv6-test-report.pdf uploaded by russell (license 2)

Review: https://reviewboard.asterisk.org/r/743



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-08 22:08:07 +00:00
Jeff Peeler
6652749c39 Merged revisions 274283 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r274283 | jpeeler | 2010-07-06 17:15:21 -0500 (Tue, 06 Jul 2010) | 7 lines
  
  Correct sip.conf.sample comments for prematuremedia option.
  
  (closes issue #17513)
  Reported by: festr
  Patches: 
        patch uploaded by festr (license 443)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-06 22:23:35 +00:00
Leif Madsen
dbd3233445 Update note in sip.conf.sample.
Update note in sip.conf.sample about externip and externhost with STUN.

(closes issue #16323)
Reported by: klaus3000
Patches:
      sip.conf.sample-patch.txt uploaded by klaus3000 (license 65)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268988 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 15:23:20 +00:00
Richard Mudgett
afd4454c44 Generic Advice of Charge.
Asterisk Generic AOC Representation
- Generic AOC encode/decode routines.
  (Generic AOC must be encoded to be passed on the wire in the AST_CONTROL_AOC frame)
- AST_CONTROL_AOC frame type to represent generic encoded AOC data
- Manager events for AOC-S, AOC-D, and AOC-E messages

Asterisk App Support
- app_dial AOC-S pass-through support on call setup
- app_queue AOC-S pass-through support on call setup

AOC Unit Tests
- AOC Unit Tests for encode/decode routines
- AOC Unit Test for manager event representation.

SIP AOC Support
- Pass-through of generic AOC-D and AOC-E messages to snom phones via the
  snom AOC specification.
- Creation of chan_sip page3 flags for the addition of the new
  'snom_aoc_enabled' sip.conf option.

IAX AOC Support
- Natively supports AOC pass-through through the use of the new
  AST_CONTROL_AOC frame type

DAHDI AOC Support
- ETSI PRI full AOC Pass-through support
- 'aoc_enable' chan_dahdi.conf option for independently enabling
  pass-through of AOC-S, AOC-D, AOC-E.
- 'aoce_delayhangup' option for retrieving AOC-E on disconnect.
- DAHDI A() dial string option for requesting AOC services.
  example usage:
  ;requests AOC-S, AOC-D, and AOC-E on call setup
  exten=>1111,1,Dial(DAHDI/g1/1112/A(s,d,e))

Review:	https://reviewboard.asterisk.org/r/552/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@267096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-02 18:10:15 +00:00
Terry Wilson
c7303d840e Add support for direct media ACLs
directmediapermit/directmediadeny support to restrict which peers can do
directmedia based on ip address. In some networks not all phones are fully
routed, i.e. not all phones can ping each other. This patch adds a way to
restrict directmedia for certain peers between certain networks.

(closes issue #16645)
Reported by: raarts
Patches: 
      directmediapermit.patch uploaded by raarts (license 937)
Tested by: raarts

Review: https://reviewboard.asterisk.org/r/467/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264626 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-20 17:54:02 +00:00
Mark Michelson
b1abf9234f Update sample dialstrings in sip.conf.sample file.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@257032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-13 16:18:16 +00:00
Matthew Nicholson
ad3af59345 Removed documentation of the non existent 'both' option to 'faxdetect' in sip.conf
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255751 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-01 16:09:26 +00:00
Leif Madsen
2de9cd0d38 Add documentation clarifying when 't' and 'T' can be used.
(closes issue #17021)
Reported by: kovzol
Tested by: lmadsen, kovzol, davidw, ebroad

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-31 17:48:09 +00:00
Leif Madsen
8a3576d16c Replace some documentation from 1.6.x back into trunk.
This documentation associated wth tlsbindaddr is still useful so lets
synchronize it between trunk and 1.6.x branches.

(issue #17054)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255066 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-26 19:27:56 +00:00
Leif Madsen
aae9d51510 Update confusing documentation for tlsbindaddr.
Update some confusing documentation for the tlsbindaddr
option in sip.conf.sample. Point at a link instead which
has better documentation.

(closes issue #17054)
Reported by: klaus3000

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255021 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-26 19:07:38 +00:00
Kevin P. Fleming
42577406fd Improve handling of T.38 re-INVITEs that arrive before a T.38-capable
application is executing on a channel.

This patch addresses an issue found during working with end-users
using res_fax. If an incoming call is answered in the dialplan, or
jumps to the 'fax' extension due to reception of a CNG tone (with
faxdetect enabled), and then the remote endpoint sends a T.38
re-INVITE, it is possible for the channel's T.38 state to be
'T38_STATE_NEGOTIATING' when the application starts up. Unfortunately,
even if the application wants to use T.38, it can't respond to the
peer's negotiation request, because the AST_CONTROL_T38_PARAMETERS
control frame that chan_sip sent originally has been lost, and the
application needs the content of that frame to be able to formulate a
reply.

This patch adds a new 'request' type to AST_CONTROL_T38_PARAMETERS,
AST_T38_REQUEST_PARMS. If the application sends this request, chan_sip
will re-send the original control frame (with
AST_T38_REQUEST_NEGOTIATE as the request type), and the application
can respond as normal. If this occurs within the five second timeout
in chan_sip, the automatic cancellation of the peer reinvite will be
stopped, and the application will 'own' the negotiation process from
that point onwards.

This also improves the code path in chan_sip to allow sip_indicate(),
when called for AST_CONTROL_T38_PARAMETERS, to be able to return a
non-zero response, which should have been in place before since the
control frame *can* fail to be processed properly. It also modifies
ast_indicate() to return whatever result the channel driver returned
for this control frame, rather than converting all non-zero results
into '-1'. Finally, the new request type intentionally returns a
positive value, so that an application that sends
AST_T38_REQUEST_PARMS can know for certain whether the channel driver
accepted it and will be replying with a control frame of its own, or
whether it was ignored (if the sip_indicate()/ast_indicate() path had
properly supported failure responses before, this would not be
necessary).

This patch also modifies res_fax to take advantage of the new request.

In addition, this patch makes sip_t38_abort() actually lock the
private structure before doing its work... bad programmer, no donut.

This patch also enhances chan_sip's 'faxdetect' support to allow
triggering on T.38 re-INVITEs received as well as CNG tone detection.

Review: https://reviewboard.asterisk.org/r/556/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-25 15:27:31 +00:00
Terry Wilson
68d1ded8dd Only change the RTP ssrc when we see that it has changed
This change basically reverts the change reviewed in
https://reviewboard.asterisk.org/r/374/ and instead limits the
updating of the RTP synchronization source to only those times when we
detect that the other side of the conversation has changed the ssrc.

The problem is that SRCUPDATE control frames are sent many times where
we don't want a new ssrc, including whenever Asterisk has to send DTMF
in a normal bridge. This is also not the first time that this mistake
has been made. The initial implementation of the ast_rtp_new_source
function also changed the ssrc--and then it was removed because of
this same issue. Then, we put it back in again to fix a different
issue. This patch attempts to only change the ssrc when we see that
the other side of the conversation has changed the ssrc.

It also renames some functions to make their purpose more clear.

Review: https://reviewboard.asterisk.org/r/540/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@252089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-12 22:04:51 +00:00
David Vossel
862ebf4d00 fixes adaptive jitterbuffer configuration
When configuring the adaptive jitterbuffer, the target_extra
value not only could not be set from the configuration, but was
not even being set to its proper default.  This value is required
in order for the adaptive jitterbuffer to work correctly.  To resolve
this a config option has been added to expose this value to the conf
files, and a default value is provided when no config specific value
is present.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-02 19:08:38 +00:00
Mark Michelson
38cb3e2ac9 Remove useless sip options related to hash table size.
First off, these options weren't actually doing anything.
By the time the options were parsed, the peer and dialog
containers had already been allocated with their default
values.

Second, hash table size is something that doesn't really
make sense to change in a config file. If a user is that
interested in changing the hashtable size, he can modify
the source itself.

I have removed the parsing of the hash_peer, hash_user,
and hash_dialog options. I have removed the hash_user_size
variable altogether since it is not used at all. I also
changed hash_peer_size and hash_dialog_size to be constant,
and have changed the symbols to be in all caps as constants
typically are. I have also removed the entire section in
sip.conf.sample regarding configurable hashtable sizes.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245192 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-06 14:43:03 +00:00
Kevin P. Fleming
1ef8082cd3 Clarify RTP NAT handling a bit.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@240328 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-15 16:28:38 +00:00
Leif Madsen
c2f486e118 Note that direct T.38 is not supported.
(closes issue #16411)
Reported by: stanusr
Patches:
      __20091210-sip.conf.sample-documentation.txt uploaded by lmadsen (license 10)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@239520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-12 18:22:45 +00:00
Tzafrir Cohen
2aceadfa82 Document the usefulness of explicit udp:// in the register string
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@238313 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-07 09:14:57 +00:00
Jared Smith
fb931dac4f Merged revisions 235181 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r235181 | jsmith | 2009-12-15 15:07:55 -0600 (Tue, 15 Dec 2009) | 4 lines
  
  Add a line showing that we can use CIDR notation.
  
  patch by jsmith, after discussion with jtodd
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@235298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-16 05:24:58 +00:00
Joshua Colp
60e10aba46 Change fax detection in chan_sip so it behaves as one would expect.
Internally the way T.38 is negotiated has changed and the option no longer
reflects a behavior that is valid. It will now look for a CNG tone on
received calls and if present send the call to the 'fax' extension. It is
then up to the application or channel to request the switch over to T.38.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230881 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-23 15:45:45 +00:00
Leif Madsen
e7c7dac8a9 Update sip.conf.sample.
Just updating a spelling error and some capitalization in a
documentation update that Olle added. May the Swenglish be
with you.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@229639 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-12 13:54:45 +00:00
Olle Johansson
8e583db28f Clarification
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@229607 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-12 10:24:20 +00:00
Olle Johansson
cca751350a Clarify some security issues early in the sample configuration
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@229606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-12 10:22:30 +00:00
Matthew Nicholson
93e43578ec This patch adds support for a draft proposal for adding Q.850 reason headers to sip messages.
(closes issue #13385)
Reported by: adomjan
Patches:
      sip.conf.sample-trunk20090929-reason_q850.patch uploaded by adomjan (license 487)
      CHANGES-trunk20090929-reason_q850.patch uploaded by adomjan (license 487)
      chan_sip.c-trunk20090929-reason_q850_atoi_fix.patch uploaded by adomjan (license 487)
      sip-q850-hangupcause1.diff uploaded by mnicholson (license 96)
Tested by: adomjan



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226687 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-02 14:57:11 +00:00
Leif Madsen
5524f0ab11 Merged revisions 226382 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r226382 | lmadsen | 2009-10-28 15:06:13 -0500 (Wed, 28 Oct 2009) | 9 lines
  
  Update documentation in sip.conf.sample.
  
  Update the documentation in sip.conf.sample in order to make it more clear
  that directmedia/canreinvite do not cause Asterisk to ignore reINVITEs. It
  is only used to stop Asterisk from generating a reINVITE, but does not stop
  it from accepting them if necessary.
  
  (closes issue #15644)
  Reported by: lmadsen
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226384 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-28 20:11:07 +00:00
Joshua Colp
5825f68e8b Add support for receiving unsolicited MWI NOTIFY messages.
This change adds a configuration option to SIP peers, unsolicited_mailbox, which
configures a virtual mailbox to use for received new/old MWI information. This
virtual mailbox can then be used by any device supporting MWI.

(closes issue #13028)
Reported by: AsteriskRocks
Patches:
      bug_13028_chan_sip_external_mwi_20090707.patch uploaded by cmaj (license 830)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226060 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-27 13:30:27 +00:00
Joshua Colp
01ab66275a Add support for specifying the IP address to use for media streams in sip.conf
This is the second commit for this and documents the text stream using the configured
IP address and fixes a bug in the original patch where the UDPTL stream would also
use the different IP address.

(closes issue #14729)
Reported by: _brent_
Patches:
      media_address.patch uploaded by brent (license 388)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 15:35:09 +00:00
Joshua Colp
a31eb5bb35 Revert media_address commit, I'm going to roll a fix to the SDP generation in the next version.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 15:04:33 +00:00
David Vossel
984d6500ce Merged revisions 225032 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r225032 | dvossel | 2009-10-21 09:37:04 -0500 (Wed, 21 Oct 2009) | 20 lines
  
  IAX/SIP shrinkcallerid option
  
  The shrinking of caller id removes '(', ' ', ')', non-trailing '.',
  and '-' from the string.  This means values such as 555.5555 and
  test-test result in 555555 and testtest.  There are instances,
  such as Skype integration, where a specific value is passed via
  caller id that must be preserved unmodified.  This patch makes
  the shrinking of caller id optional in chan_sip and chan_iax in
  order to support such cases.  By default this option is on to
  preserve previous expected behavior.
  
  (closes issue #15940)
  Reported by: dimas
  Patches:
        v2-15940.patch uploaded by dimas (license 88)
        15940_shrinkcallerid_trunk.c uploaded by dvossel (license 671)
  Tested by: dvossel
  
  Review: https://reviewboard.asterisk.org/r/408/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 14:39:10 +00:00
Joshua Colp
28d0ec5421 Add support for specifying the IP address to use for media streams in sip.conf
(closes issue #14729)
Reported by: _brent_
Patches:
      media_address.patch uploaded by brent (license 388)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225003 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 13:34:49 +00:00
David Vossel
1d40faebac contact header port ignored transport when using externip
This patch adds support for TCP/TLS in the Contact header when using
NAT, specifically externip or externhost. The original issue was that
Asterisk sent 5060 as the port in the contact header whether TLS was
used or not. Additionally, this patch adds 2 config options to sip.conf,
specifically externtcpport and externtlsport. This allows a user to
specify different external ports for TCP and TLS other than those used
internally, this is especially useful in in a PAT/port redirection setup.
Thanks to ebroad for reporting the issue and providing the patch!

(closes issue #15880)
Reported by: ebroad
Patches:
      portmap.patch uploaded by ebroad (license 878)
      externtXXport_v2.patch uploaded by ebroad (license 878)
Tested by: ebroad

Review: https://reviewboard.asterisk.org/r/392/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222398 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-06 22:39:56 +00:00
Kevin P. Fleming
20743ec07d Allow non-compliant T.38 endpoints to be supportable via configuration option.
Many T.38 endpoints incorrectly send the maximum IFP frame size they can accept
as the T38FaxMaxDatagram value in their SDP, when in fact this value is
supposed to be the maximum UDPTL payload size (datagram size) they can accept.
If the value they supply is small enough (a commonly supplied value is '72'),
T.38 UDPTL transmissions will likely fail completely because the UDPTL packets
will not have enough room for a primary IFP frame and the redundancy used for
error correction. If this occurs, the Asterisk UDPTL stack will emit log messages
warning that data loss may occur, and that the value may need to be overridden.

This patch extends the 't38pt_udptl' configuration option in sip.conf to allow
the administrator to override the value supplied by the remote endpoint and
supply a value that allows T.38 FAX transmissions to be successful with that
endpoint. In addition, in any SIP call where the override takes effect, a debug
message will be printed to that effect. This patch also removes the
T38FaxMaxDatagram configuration option from udptl.conf.sample, since it has not
actually had any effect for a number of releases.

In addition, this patch cleans up the T.38 documentation in sip.conf.sample
(which incorrectly documented that T.38 support was passthrough only).

(issue #15586)
Reported by: globalnetinc


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222110 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-05 19:45:00 +00:00
Matthew Nicholson
a5eee590f4 Merged revisions 221360 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r221360 | mnicholson | 2009-09-30 14:36:06 -0500 (Wed, 30 Sep 2009) | 10 lines
  
  Fix SRV lookup and Request-URI generation in chan_sip.
  
  This patch adds a new field "portinuri" to the sip dialog struct and the sip peer struct.  That field is used during RURI generation to determine if the port should be included in the RURI.  It is also used in some places to determine if an SRV lookup should occur.
  
  (closes issue #14418)
  Reported by: klaus3000
  Tested by: klaus3000, mnicholson
  
  Review: https://reviewboard.asterisk.org/r/369/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-30 20:40:20 +00:00
Terry Wilson
865daf4858 Merged revisions 221086 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r221086 | twilson | 2009-09-30 09:49:11 -0500 (Wed, 30 Sep 2009) | 25 lines
  
  Change the SSRC by default when our media stream changes
  
  Be default, change SSRC when doing an audio stream changes Asterisk doesn't
  honor marker bit when reinvited to already-bridged RTP streams,resulting in
  far-end stack discarding packets with "old" timestamps that areactually part of
  a new stream.  This patch sends AST_CONTROL_SRCUPDATE whenever there is a
  reinvite, unless the 'constantssrc' is set to true in sip.conf.
  
  The original issue reported to Digium support detailed the following situation:
  ITSP <-> Asterisk 1.4.26.2 <-> SIP-based Application Server Call comes in
  fromITSP, Asterisk dials the app server which sends a re-invite back
  toAsterisk--not to negotiate to send media directly to the ITSP, but to
  indicatethat it's changing the stream it's sending to Asterisk.  The app
  servergenerates a new SSRC, sequence numbers, timestamps, and sets the marker
  bit on the new stream.  Asterisk passes through the teimstamp of the new stream,
  butdoes not reset the SSRC, sequence numbers, or set the marker bit.
  
  When the timestamp on the new stream is older than the timestamp on the
  originalstream, the ITSP (which doesn't know there has been any change) discards
  the newframes because it thinks they are too old.  This patch addresses this by
  changing the SSRC on a stream update unless constantssrc=true is set in
  sip.conf.
  
  Review: https://reviewboard.asterisk.org/r/374/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-30 17:52:30 +00:00
Olle Johansson
79b9b75eab Documentation in the commit messages is soon forgotten, please add it to the docs in the product.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@220295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-24 19:57:23 +00:00
Olle Johansson
8af3a908a9 Update sip.conf.sample documentation, reorganize a bit
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@216694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-07 12:41:08 +00:00
Olle Johansson
98f18d56b8 Merged revisions 216430 via svnmerge from
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
2009-09-04 14:02:34 +00:00
Tilghman Lesher
3028e257bb Better parsing for the "register" line
Allows characters that are otherwise used as delimiters to be used within
certain fields (like the secret).
(closes issue #15008, closes issue #15672)
 Reported by: tilghman
 Patches: 
       20090818__issue15008.diff.txt uploaded by tilghman (license 14)
 Tested by: lmadsen, tilghman


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-19 21:05:17 +00:00
Matthew Nicholson
5583a4e955 This patch adds support for choosing a realm based on the domain in the From or To header in the incoming request. Eligible domains are taken from the domains list in the config file. This functionality is enabled when domainsasrealm is enabled in the config file.
(closes issue #11361)
Reported by: arkadia
Patches:
      sip_realm_mnich_to_added_2.patch uploaded by arkadia (license 233)
Tested by: arkadia


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-12 22:18:09 +00:00
Kevin P. Fleming
e9d22f802e Rename 'canreinvite' option to 'directmedia', with backwards compatibility.
It is clear from multiple mailing list, forum, wiki and other sorts of posts
that users don't really understand the effects that the 'canreinvite' config
option actually has, and that in some cases they think that setting it to 'no'
will actually cause various other features (T.38, MOH, etc.) to not work properly,
when in fact this is not the case. This patch changes the proper name of the
option to what it should have been from the beginning ('directmedia'), but
preserves backwards compatibility for existing configurations.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@210190 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-03 20:48:48 +00:00
Mark Michelson
c058252718 Add configuration sample code for previous commit.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-07-31 17:57:00 +00:00
Joshua Colp
48f7381af0 Fix the 'nat' option to actually do RFC3581 as expected and extend the configurable values for finer control.
(closes issue #8855)
Reported by: mikma
Tested by: klaus3000, file


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-26 20:19:49 +00:00
Joshua Colp
59c1998d67 Improve T.38 negotiation by exchanging session parameters between application and channel.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203699 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-26 19:27:24 +00:00
Joshua Colp
5fcf193d7b Correct documentation for the register line, specifically where the domain should be specified.
(closes issue #14367)
Reported by: Nick_Lewis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198791 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-02 13:48:06 +00:00
Sean Bright
f22962a0c1 Remove a bunch of trailing whitespace in preparation for reformatting/cleanup.
Let's try that again, this time removing trailing whitespace and not leading
whitespace.  I can't believe no one noticed.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@197535 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-28 14:39:21 +00:00
Sean Bright
a7d813cae7 Remove a bunch of trailing whitespace in preparation for reformatting/cleanup.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@197528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-28 14:32:03 +00:00
David Vossel
f50bb3bfa4 SIP set outbound transport type from Registration
In sip.conf the transport option allows for the configuration of what transport types (udp, tcp, and tls) a peer will accept, but only the first type listed was used for outbound connections.  This patch changes this.  Now the default transport type is only used until the peer registers.  When registration takes place the transport type is parsed out of the Contact header.  If the Contact header's transport type is equal to one that the peer supports, the peer's default transport type for outbound connections is set to match the Contact header's type.  If the Contact header's transport type is not present, then the peer's default transport type is set to match the one the peer registered with.  When a peer unregisters or the registration expires, the default transport type for that peer is reset.

(closes issue #12282)
Reported by: rjain
Patches:
      reg_patch_1.diff uploaded by dvossel (license 671)
Tested by: dvossel

(closes issue #14727)
Reported by: pj
Patches:
      reg_patch_3.diff uploaded by dvossel (license 671)
Tested by: pj, dvossel

Review: https://reviewboard.asterisk.org/r/249/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196416 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-22 21:09:45 +00:00
Mark Michelson
7b4eeed257 Add basic support for handling connected line-related UPDATE requests.
SIP purists may want to look the other way...

When COLP/CONP support for SIP was committed, there was a condition under 
which Asterisk may transmit a SIP UPDATE in order to communicate the change 
in connected line information. The issue here is that while we could send a 
SIP UPDATE message, we were not prepared to receive such an UPDATE and would 
always responde with a 501 when we received an UPDATE.

The situation was a bit rough. We really want to be able to receive UPDATEs 
having to do with connected line changes, but the amount of effort involved 
in properly supporting RFC 3311 was staggering. This commit represents a 
compromise.

First, it was decided that it is important to only send a SIP UPDATE to 
an endpoint that is able to handle one. So, now we have added parsing of 
the Allow header into SIP. We store the allowed methods on SIP peers so 
that when we communicate with them, we already will know what we can and 
cannot send to them. We will parse the peer's allowed methods when he registers
with us. If the peer is not the type to register with us, but the qualify option 
is enabled, then we will use the response to the OPTIONS request we send 
the peer to determine the peer's allowed methods. When the peer's registration 
expires, or when qualify deems the peer to be unreachable, we clear the allowed 
methods from the peer.

For an actual call, we will copy the peer's allowed methods to the sip_pvt 
representing the call leg. If we are communicating with an endpoint which is 
not a peer, then we will just parse the Allow header from the first message 
we receive during the call and store the information in the sip_pvt.

If, during communication with a peer, we receive a 501 response, then we will 
make sure to save the fact that we cannot use that method when communicating 
with that peer.

Now, with all that infrastructure in place, the only actual place we use this 
information currently is when attempting to send a connected line change using 
an UPDATE request. If we cannot send the change immediately using an UPDATE, 
we will set the SIP_NEEDREINVITE flag so that we can send a REINVITE as soon 
as it is allowed.

The second part of the changes here is for Asterisk to accept UPDATE requests 
that have connected line changes. Since we are not fully supporting RFC 3311, 
Asterisk will NOT place the UPDATE method in Allow headers it sends. Instead, 
if you are communicating with what you know to be another Asterisk box, you may 
set the rpid_update parameter in sip.conf so that we will send UPDATEs to that 
Asterisk box. When we send a connected line update, we set a custom header 
called "X-Asterisk-rpid-update."

On the receiving end, if Asterisk receives an UPDATE that does not have the 
"X-Asterisk-rpid-update" header present, then Asterisk will respond with a 501 
since media-changing UPDATEs are not supported. We should never get such 
UPDATEs, since as was stated earlier, Asterisk does not put UPDATE in its Allow
header. If the custom header is present in the received UPDATE, though, then we 
will check the incoming request for connected line updates and queue the update
on the channel where the change occurred.

ABE-1840
ABE-1822



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195589 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-19 20:59:38 +00:00
David Vossel
a6adc84e69 SIP option to specify outbound TLS/SSL client protocol.
chan_sip allows for outbound TLS connections, but does not allow the user to specify what protocol to use (default was SSLv2, and still is if this new option is not specified).  This patch lets the user pick the SSL/TLS client method for outbound connections in sip.

(closes issue #14770)
Reported by: TheOldSaint

(closes issue #14768)
Reported by: TheOldSaint

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@191177 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-29 21:13:43 +00:00