Merged revisions 203376 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
  r203376 | russell | 2009-06-25 16:04:55 -0500 (Thu, 25 Jun 2009) | 16 lines
  
  Merged revisions 203375 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r203375 | russell | 2009-06-25 16:02:18 -0500 (Thu, 25 Jun 2009) | 9 lines
    
    Fix a case where CDR answer time could be before the start time involving parking.
    
    (closes issue #13794)
    Reported by: davidw
    Patches:
          13794.patch uploaded by murf (license 17)
          13794.patch.160 uploaded by murf (license 17)
    Tested by: murf, dbrooks
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@203377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2009-06-25 21:06:06 +00:00
parent ac944ba945
commit 2c6cf6910f

View File

@@ -2293,7 +2293,16 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast
before the macro started playing. To the phone system,
this is billable time for the call, even tho the caller
hears nothing but ringing while the macro does its thing. */
if (peer_cdr && !ast_tvzero(peer_cdr->answer)) {
/* Another case where the peer cdr's time will be set, is when
A self-parks by pickup up phone and dialing 700, then B
picks up A by dialing its parking slot; there may be more
practical paths that get the same result, tho... in which
case you get the previous answer time from the Park... which
is before the bridge's start time, so I added in the
tvcmp check to the if below */
if (peer_cdr && !ast_tvzero(peer_cdr->answer) && ast_tvcmp(peer->cdr->answer, bridge_cdr->start) >= 0) {
bridge_cdr->answer = peer_cdr->answer;
bridge_cdr->disposition = peer_cdr->disposition;
if (chan_cdr) {