Commit Graph

6291 Commits

Author SHA1 Message Date
Olle Johansson
ede3699c6e Merged revisions 227088 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r227088 | oej | 2009-11-03 11:29:59 +0100 (Tis, 03 Nov 2009) | 7 lines

Use proper response code when violating Contact ACL's.

https://reviewboard.asterisk.org/r/415/

Thanks kpfleming for a quick review.
(EDVX-003)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-03 11:11:15 +00:00
Tilghman Lesher
66579d9d49 Add PacketCable NCS 1.0 support for Docsis/Eurodocsis networks
(closes issue #12950)
 Reported by: alea-soluciones
 Patches: 
       ncs-pktccops-12950-r206803.patch uploaded by alea-soluciones (license 514)
 Tested by: alea-soluciones, adomjan, urtho, nahuelgreco


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-02 22:29:19 +00:00
David Brooks
2c4d3b3168 SIP channel name uniqueness
SIP channel names were supposed to be unique by way of a name suffix derived from the
pointer to the channel's private data. Uniqueness was preserved on 32-bit systems, but
not on 64-bit systems. This patch, as suggested by kpfleming, replaces this suffix with
a simple incremented unsigned int.

(closes issue #15152)
Reported by: palbrecht

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-02 20:59:37 +00:00
Richard Mudgett
6406f39594 DAHDI ISDN channel names will not allow device state to work. (Interim solution.)
Since ISDN works like SIP and not analog ports in regard to devices, the
device state based on the ISDN channel number could not work.  This has
not been an issue until the advent of PTMP NT mode.  Previously, ISDN
lines were used as trunks and did not have to keep track of specific
devices.

As an interim solution until device states are properly implemented, the
channel name is being changed to the following format to use the generic
device state support:
DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>

Dialplan hints would thus be:
exten => xxx,hint,DAHDI/i2/5551212

This will work with the following restrictions:
*  The number of devices/phones cannot exceed the number of B channels.
(i.e., BRI has 2)
*  Each device/phone can only have one number.  No shared MSN's.
*  The phones/devices probably should not use subaddressing.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226882 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-02 17:34:22 +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
Richard Mudgett
7fbd314a88 Cleanup some flags on DAHDI PRI channel hangup.
*  Cleanup some flags on DAHDI PRI channel hangup. (sig_pri split)
*  Make sure the outgoing flag is cleared if a new channel fails to get
created for outgoing calls.
*  Remove some unused flags since sig_pri was split.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-30 23:26:41 +00:00
Joshua Colp
b9c370da86 Merged revisions 226531 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r226531 | file | 2009-10-29 15:11:26 -0300 (Thu, 29 Oct 2009) | 6 lines
  
  Add an option to enabling passing music on hold start and stop requests through instead of
  acting on them in chan_local.
  
  (closes issue #14709)
  Reported by: dimas
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226532 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-29 18:13:42 +00:00
Olle Johansson
64e8fb465b Doxygen documentation update
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-29 12:20:16 +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
Kevin P. Fleming
ea8b54fb9d Fix building in REF_DEBUG mode.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225956 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 22:04:04 +00:00
Jeff Peeler
ec0a1882c9 ACL check not present for verifying SIP INVITEs
The ACL check in check_peer_ok was missing and has now been restored. The
missing check allowed for calls to be made on prohibited networks where an ACL
was defined in sip.conf and the allowguest option was set to off. See the AST
security advisory below for more information.

Merge code associated with AST-2009-007.

(closes issue #16091)
Reported by: thom4fun


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225912 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 19:40:26 +00:00
Richard Mudgett
71452322a2 Make conditionals create previous code when libpri/ss7 are present.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225872 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 16:07:09 +00:00
Tzafrir Cohen
2736168a6b span numbers in pri debug / error messages
Prefix PRI trace messages with the span number. This makes the trace
readable even when you have a multi-port device.

(closes issue #15054)
Reported by: tzafrir
Patches:
      dahdi_pri_debug_spannum.diff uploaded by tzafrir (license 46)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225836 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 13:29:54 +00:00
Tzafrir Cohen
e5a57959eb Re-arange code a bit to build in dev-mode without ss7
No change of functionality here. Just localized a variable and indented
code into blocks.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 11:34:06 +00:00
Tzafrir Cohen
d36cecd578 Make chan_dahdi build even without PRI / SS7
(Note: still some strange build warnings without SS7 in dev-mode)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225767 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-26 09:40:49 +00:00
Kevin P. Fleming
fb0196fce6 Improve performance of pedantic mode dialog searching in chan_sip.
This patch changes chan_sip to use the new astobj2 OBJ_MULTIPLE iterator support
to make pedantic mode dialog searching in find_call() not require a linear search
of all dialogs in the list of dialogs. This patch does *not* change the dialog
matching logic (more on that later), just improves the searching performance.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-24 14:40:37 +00:00
Richard Mudgett
cff6d02b53 Add to chan_dahdi ISDN HOLD, Call deflection, and keypad facility support.
* Added handling of received HOLD/RETRIEVE messages and the optional ability
  to transfer a held call on disconnect similar to an analog phone.
* Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
  Will reroute/deflect an outgoing call when receive the message.
  Can use the DAHDISendCallreroutingFacility to send the message for the
  supported switches.
* Added ability to send/receive keypad digits in the SETUP message.
  Send keypad digits in SETUP message: Dial(DAHDI/g1[/K<keypad_digits>][/extension])
  Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
* Added support for BRI PTMP NT mode.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-23 16:57:33 +00:00
David Vossel
2208fb171b Fixes an iterator memory leak and uninitialized memory
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225650 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-23 14:41:50 +00:00
Richard Mudgett
63473616da Search for the subaddress only within the extension section of the dial string.
Dial(DAHDI/(g|G|r|R)<group#(0-63)>[c|r<cadance#>|d][/extension])


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 20:07:55 +00:00
David Vossel
776a14386a SIP TCP/TLS: move client connection setup/write into tcp helper thread, various related locking/memory fixes.
What this patch fixes
1.Moves sip TCP/TLS connection setup into the TCP helper thread:
  Connection setup takes awhile and before this it was being
  done while holding the monitor lock.
2.Moves TCP/TLS writing to the TCP helper thread:  Through the
  use of a packet queue and an alert pipe, the TCP helper thread
  can now be woken up to write data as well as read data.
3.Locking error: sip_xmit returned an XMIT_ERROR without giving
  up the tcptls_session lock.  This lock has been completely removed
  from sip_xmit and placed in the new sip_tcptls_write() function.
4.Memory leak:  When creating a tcptls_client the tls_cfg was alloced
  but never freed unless the tcptls_session failed to start.  Now the
  session_args for a sip client are an ao2 object which frees the
  tls_cfg on destruction.
5.Pointer to stack variable: During sip_prepare_socket the creation
  of a client's ast_tcptls_session_args was done on the stack and
  stored as a pointer in the newly created tcptls_session.  Depending
  on the events that followed, there was a slight possibility that
  pointer could have been accessed after the stack returned.  Given
  the new changes, it is always accessed after the stack returns
  which is why I found it.

Notable code changes
1.I broke tcptls.c's ast_tcptls_client_start() function into two
  functions.  One for creating and allocating the new tcptls_session,
  and a separate one for starting and handling the new connection.
  This allowed me to create the tcptls_session, launch the helper
  thread, and then establish the connection within the helper thread.
2.Writes to a tcptls_session are now done within the helper thread.
  This is done by using an alert pipe to wake up the thread if new
  data needs to be sent.  The thread's sip_threadinfo object contains
  the alert pipe as well as the packet queue.
3.Since the threadinfo object contains the alert pipe, it must now be
  accessed outside of the helper thread for every write (queuing of a
  packet).  For easy lookup, I moved the threadinfo objects from a
  linked list to an ao2_container.

(closes issue #13136)
Reported by: pabelanger
Tested by: dvossel, whys

(closes issue #15894)
Reported by: dvossel
Tested by: dvossel

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225445 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 19:55:51 +00:00
Richard Mudgett
1174a61612 Add support for calling and called subaddress. Partial support for COLP subaddress.
The Telecom Specs in NZ suggests that SUB ADDRESS is always on, so doing
"desk to desk" between offices each with an asterisk box over the ISDN
should then be possible, without a whole load of DDI numbers required.

(closes issue #15604)
Reported by: alecdavis
Patches:
      asterisk_subaddr_trunk.diff11.txt uploaded by alecdavis (license 585)
      Some minor modificatons were made.
Tested by: alecdavis, rmudgett

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 16:33:22 +00:00
David Vossel
3acfd4933c Merged revisions 225243 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r225243 | dvossel | 2009-10-21 15:58:08 -0500 (Wed, 21 Oct 2009) | 13 lines
  
  IAX2: VNAK loop caused by signaling frames with no destination call number
  
  It is possible for the PBX thread to queue up signaling frames before
  a destination call number is received.  This can result in signaling
  frames being sent out with no destination call number. Since recent
  versions of Asterisk require accurate destination callnumbers for all
  Full Frames, this can cause a VNAK loop to occur.  To resolve this
  no signaling frames are sent until a destination callnumber is received,
  and destination call numbers are now only required for iax_pvt matching
  when the frame is an ACK.
  
  Review: https://reviewboard.asterisk.org/r/413/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225307 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 21:58:46 +00:00
Kevin P. Fleming
87ff40d3f3 Add 'mohsuggest' configuration option to 'sip show peer' CLI command and
SIPShowPeer AMI action.

(closes issue #15990)
Reported by: _brent_
Patches:
      sip_peer_info_mohsuggest-r3.patch uploaded by brent (license 388)

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225245 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 21:15:40 +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
Richard Mudgett
c5b8e9af7c Make PRI_SUBCMD_xxx handling subaddress friendly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224930 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-21 02:43:36 +00:00
Matthew Nicholson
26638d3a55 Add dynamic range compression support for analog channels.
(closes issue AST-29)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-19 22:02:41 +00:00
Joshua Colp
fd9f9ab01e Add a callback to sig_pri which is called when sig_pri is going to queue a control frame on a channel.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-19 14:32:08 +00:00
Jeff Peeler
03db5ef0e5 fix typo, sorry
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-17 02:01:36 +00:00
Jeff Peeler
53a95d9c84 Merged revisions 224330 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r224330 | jpeeler | 2009-10-16 20:32:47 -0500 (Fri, 16 Oct 2009) | 13 lines
  
  Fix stale caller id data from being reported in AMI NewChannel event
  
  The problem here is that chan_dahdi is designed in such a way to set
  certain values in the dahdi_pvt only once. One of those such values
  is the configured caller id data in chan_dahdi.conf. For PRI, the
  configured caller id data could be overwritten during a call. Instead
  of saving the data and restoring, it was decided that for all non-analog
  channels it was simply best to not set the configured caller id in the
  first place and also clear it at the end of the call.
  
  (closes issue #15883)
  Reported by: jsmith
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224331 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-17 01:36:08 +00:00
Richard Mudgett
64a32b3ad0 Merged revisions 224260 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r224260 | rmudgett | 2009-10-16 15:25:23 -0500 (Fri, 16 Oct 2009) | 18 lines
  
  Never released PRI channels when using Busy() or Congestion() dialplan apps.
  
  When the Busy() or Congestion() application is used towards ISDN (an ISDN
  progress is sent), the responding ISDN Disconnect or Release may contain
  the ISDN cause user busy or one of the congestion causes.  In chan_dahdi.c
  these causes will only set the needbusy or needcongestion flags and not
  activate the softhangup procedure.  Unfortunately only the latter can
  interrupt the endless wait loop of Busy()/Congestion().
  
  Result: PRI channels staying in state busy for the rest of asterisk life
  or until the other end times out and forces the call to clear.
  
  (issue #14292)
  Reported by: tomaso
  Patches:
        disc_rel_userbusy.patch uploaded by tomaso (license 564)
        (This patch is unrelated to the issue.)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-16 20:40:57 +00:00
Jeff Peeler
e3f473f4f3 Allow for adding message body to the SIP NOTIFY message
Ability has been added to both manager command SIPnotify as well as console
command sip notify. Message body is stored in the "Content" variable. An 
example is present in sip_notify.conf.

(closes issue #13926)
Reported by: jthurman
Patches:
      sip-notify-svn189463.diff uploaded by gareth (license 208)
Tested by: gareth


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-14 17:48:57 +00:00
Kevin P. Fleming
e197f85b8c Remove automatic switching from T.38 to voice mode in chan_sip.
chan_sip has some code to automatically switch from T.38 mode to voice mode when
a voice frame is written to the channel while it is in T.38 mode; this was
intended to handle the situation when a FAX transmission has ended and the channel
is not yet hung up, but is causing problems at the beginning of FAX sessions as
well when there are still voice frames 'in flight' at the time the T.38 negotiation
completes. This patch removes the automatic switchover, and changes app_fax to
explicitly switch off T.38 mode when the FAX transmission process ends.

(closes issue #16025)
Reported by: jamicque


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-12 14:25:29 +00:00
Mark Michelson
9e1598b762 Check the proper page for the SENDRPID flag.
If a pending reinvite were sent, we might not properly
send connected party info since we were checking the wrong
flag. This was a rare occurrence, but could still happen
nevertheless.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-11 22:19:22 +00:00
David Vossel
fc27da108d Merged revisions 223205 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r223205 | dvossel | 2009-10-09 12:52:35 -0500 (Fri, 09 Oct 2009) | 10 lines
  
  fixes sip registration using authuser in user.conf
  
  (closes issue #14954)
  Reported by: tornblad
  Tested by: mmichelson, tornblad, dvossel
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-09 17:53:37 +00:00
David Vossel
0a50c512da 'auth=' did not parse md5 secret correctly
(closes issue #15949)
Reported by: ebroad
Patches:
      authparsefix.patch uploaded by ebroad (license 878)
      15949_trunk.diff uploaded by dvossel (license 671)
Tested by: ebroad


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-09 16:54:02 +00:00
David Vossel
b2a7eecd6e p->peerauth is always empty in transmit_register()
When using callbackextension or specifing the peer name
in a registration string, the peer's specific auth settings
set by the "auth=" strings within the peer definition are not
used by the registration.  Thanks to ebroad for reporting the
issue and providing the patch.

(closes issue #15955)
Reported by: ebroad
Patches:
      regauthfix.patch uploaded by ebroad (license 878)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-09 15:49:30 +00:00
David Vossel
799e9962b6 fixed comment line for do_magic_pickup
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@223015 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-08 22:57:53 +00:00
David Vossel
c0ee60419d Deadlock between ast_cel_report_event and ast_do_masquerade
chan_sip calls pbx_exec on a pvt's owner channel while only the
pvt lock is held.  Since pbx_exec calls ast_cel_report_event which
attempts to lock the channel, invalid locking order occurs.  Channels
should be locked before pvt's.

(closes issue #15512)
Reported by: lmsteffan
Patches:
      ast_cel_deadlock_15512.diff uploaded by dvossel (license 671)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222981 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-08 22:04:41 +00:00
David Vossel
b764544641 makes externtcpport and externtlsport static variables
externtcpport and externtlsport need to be declared as static
variables.  Thanks to russell for finding and pointing this out.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-08 20:53:14 +00:00
Richard Mudgett
890d500287 Merged revisions 222797 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r222797 | rmudgett | 2009-10-08 11:33:06 -0500 (Thu, 08 Oct 2009) | 12 lines
  
  Fix memory leak if chan_misdn config parameter is repeated.
  
  Memory leak when the same config option is set more than once in an
  misdn.conf section.  Why must this be considered?  Templates!  Defining a
  template with default port options and later adding to or overriding some
  of them.
  
  Patches:
        memleak-misdn.patch
  
  JIRA ABE-1998
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-08 16:44:33 +00:00
David Vossel
9456ab2724 Deadlock in channel masquerade handling
Channels are stored in an ao2_container.  When accessing an item within
an ao2_container the proper locking order is to first lock the container,
and then the items within it.

In ast_do_masquerade both the clone and original channel must be locked
for the entire duration of the function.  The problem with this is that
it attemptes to unlink and link these channels back into the ao2_container
when one of the channel's name changes.  This is invalid locking order as
the process of unlinking and linking will lock the ao2_container while
the channels are locked!!! Now, both the channels in do_masquerade are
unlinked from the ao2_container and then locked for the entire function.
At the end of the function both channels are unlocked and linked back
into the container with their new names as hash values.

This new method of requiring all channels and tech pvts to be unlocked
before ast_do_masquerade() or ast_change_name() required several
changes throughout the code base.

(closes issue #15911)
Reported by: russell
Patches:
      masq_deadlock_trunk.diff uploaded by dvossel (license 671)
Tested by: dvossel, atis

(closes issue #15618)
Reported by: lmsteffan
Patches:
      deadlock_local_attended_transfers_trunk.diff uploaded by dvossel (license 671)
Tested by: lmsteffan, dvossel

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222761 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-07 22:58:38 +00:00
Richard Mudgett
49b90d5e61 Merged revisions 222691 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r222691 | rmudgett | 2009-10-07 16:51:24 -0500 (Wed, 07 Oct 2009) | 14 lines
  
  chan_misdn.c:process_ast_dsp() memory leak
  
  misdn.conf: astdtmf must be set to "yes".  With "no", buffer loss does not
  occur.
  
  The translated frame "f2" when passing through ast_dsp_process() is not
  freed whenever it is not used further in process_ast_dsp().  Then in the
  end it is never ever freed.
  
  Patches:
        translate.patch
  
  JIRA ABE-1993
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-07 21:56:36 +00:00
Jeff Peeler
4ae6bee6da Change ringt (ring timeout) styles to be consistent across chan_dahdi.
(closes issue #15684)
Reported by: alecdavis
Patches: 
      chan_dahdi.bug15684.diff2.txt uploaded by alecdavis (license 585)
Tested by: alecdavis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-07 20:08:14 +00:00
David Vossel
f819ce5b20 Merged revisions 222542 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r222542 | dvossel | 2009-10-07 12:41:21 -0500 (Wed, 07 Oct 2009) | 8 lines
  
  crash on transfer
  
  handle_invite_replaces() attempts to uplock a pvt's
  owner channel without first verifing that it exists.
  
  (issue #16027)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222543 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-07 17:44:52 +00:00
Jeff Peeler
b5eb0449c0 Merged revisions 222462 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r222462 | jpeeler | 2009-10-06 18:51:19 -0500 (Tue, 06 Oct 2009) | 8 lines
  
  Add missing unlock(s) in dahdi_read
  
  (two cases in trunk)
  
  (closes issue #15683)
  Reported by: alecdavis
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222463 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-06 23:56:01 +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
Jeff Peeler
f7fa417130 Fix 222298 (crash during destruction of second channel when variable set with
setvar).

I mistakenly reasoned that setvar would be used on all channels. Since it can
be set per channel, give each dahdi channel a copy of the variable.

(related to #15899)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-06 20:35:19 +00:00