[asterisk-bugs] [Asterisk 0013123]: segmentation fault with chan_h323 ast_rtp_new_source (rtp=0x0)

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Jul 21 10:04:16 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13123 
====================================================================== 
Reported By:                nik600
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13123
Category:                   Channels/chan_h323
Reproducibility:            always
Severity:                   crash
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.21 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             07-21-2008 09:56 CDT
Last Modified:              07-21-2008 10:04 CDT
====================================================================== 
Summary:                    segmentation fault with chan_h323 ast_rtp_new_source
(rtp=0x0)
Description: 
i've installed asterisk 1.4.21.1
and configured with Open H.323 version v1.18.0, PWLib v1.10.0.

I've installed them but i'm experiencing this problem:

i've configured in h323.conf 2 peers:
one to an 3.3 CCM Cisco
one to an 4.2 CCM Cisco

each CCM has the preferred codec set up as G711 ulaw.

I can forward calls from a SIP account on asterisk (using Xten-xlite
as softphone) to both the peers and talk with their extensions without
any problem.

I can forward calls from both the peers to Asterisk (and for example
place the call in queue or background some sound files)

BUT

when i try to call from the CCM 3.3 to Asterisk, and then dial from
the dialplan a SIP account, when the SIP user accept the call (using
Xten-xlite as softphone) asterisk dies with a segmentation fault
error.

This happend only with CCM 3.3, with 4.2 there is no problem.

I've temporarly patched it editing chan_h323.c in the function
oh323_indicate at line 919 replacing 
// ********* OLD CODE
	case AST_CONTROL_SRCUPDATE:
		ast_rtp_new_source(pvt->rtp);
		res = 0;
		break;

// ***********
with
// ********* NEW CODE
	case AST_CONTROL_SRCUPDATE:
if(pvt->rtp!=NULL){
		ast_rtp_new_source(pvt->rtp);
}
		res = 0;
		break;

// ***********

with these "patch" asterisk doesn't crash.
====================================================================== 

---------------------------------------------------------------------- 
 nik600 - 07-21-08 10:04  
---------------------------------------------------------------------- 
Output of h323 set trace:

Here there is the output of h323 debug

tstask01*CLI>
 1:54.003LI>     H323 Listener:81af928   transports.cxx(1559)  H323TCP
Started connection:  host=192.168.55.10:56896, if=192.168.55.18:1720,
handle=35
 1:54.003LI>       H225 Answer:81f6d00   transports.cxx(595)   H225
Started incoming call thread
 1:54.003          H225 Answer:81f6d00   transports.cxx(1161)  H225
Awaiting first PDU
 1:54.004        H323 Listener:81af928   transports.cxx(1356)  TCP
Waiting on socket accept on ip$192.168.55.18:1720
 1:54.005LI>       H225 Answer:81f6d00      h323pdu.cxx(553)   H225
Receiving PDU [ip$192.168.55.18:1720/ip$192.168.55.10:56896] :
 {
  q931pdu = {
    protocolDiscriminator = 8
    callReference = 14
    from = originator
    messageType = Setup
    IE: Bearer-Capability = {
      80 90 a2                                           ...
    }
    IE: Display = {
      4d 61 73 73 69 6d 6f 20  50 6f 6e 74 61 72 61      Caller name
    }
    IE: Calling-Party-Number = {
      00 81 36 35 34                                     ..654
    }
    IE: Called-Party-Number = {
      80 35 34                                           .54
    }
    IE: User-User = {
      20 b0 06 00 08 91 4a 00  02 01 40 0e 00 4d 00 61    .....J... at ..M.a
      00 73 00 73 00 69 00 6d  00 6f 00 20 00 50 00 6f   .s.s.i.m.o. .P.o
      ...
    }
  }
  h225pdu = {
    h323_uu_pdu = {
      h323_message_body = setup {
        protocolIdentifier = 0.0.8.2250.0.2
        sourceAddress = 1 entries {
          [0]=h323_ID  15 characters {
            004d 0061 0073 0073 0069 006d 006f 0020   Caller
            0050 006f 006e 0074 0061 0072 0061        Name
          }
        }
        sourceInfo = {
          terminal = {
          }
          mc = FALSE
          undefinedNode = FALSE
        }
        destinationAddress = 1 entries {
          [0]=dialedDigits "54"
        }
        activeMC = FALSE
        conferenceID =  16 octets {
          80 fc c8 bd e0 72 e1 1d  0e 00 00 00 c0 a8 01 a2  
.....r..........
        }
        conferenceGoal = create <<null>>
        callType = pointToPoint <<null>>
        sourceCallSignalAddress = ipAddress {
          ip =  4 octets {
            c0 a8 37 0a                                        ..7.
          }
          port = 1720
        }
        callIdentifier = {
          guid =  16 octets {
            80 fc c8 bd e0 72 e1 1d  0e 00 00 00 c0 a8 01 a2  
.....r..........
          }
        }
        mediaWaitForConnect = FALSE
        canOverlapSend = FALSE
      }
      h245Tunneling = FALSE
      nonStandardControl = 1 entries {
        [0]={
          nonStandardIdentifier = h221NonStandard {
            t35CountryCode = 181
            t35Extension = 0
            manufacturerCode = 18
          }
          data =  7 octets {
            80 44 04 00 01 01 00                               .D.....
          }
        }
      }
    }
  }
 }
 1:54.008          H225 Answer:81f6d00   transports.cxx(1170)  H225
Incoming call, first PDU: callReference=14
 1:54.008          H225 Answer:81f6d00      rfc2833.cxx(81)    RFC2833
Handler created
      == New H.323 Connection created.
 1:54.008          H225 Answer:81f6d00       h323ep.cxx(2456)  H323
Created new connection: ip$192.168.55.10:56896/14
Received non-standard Cisco extension data  7 octets {
 80 44 04 00 01 01 00                               .D.....
}
H323_UU_NonStdInfo = {
 callMgrParam = {
  interclusterVersion = 1
  enterpriseID =  0 octets {

  }
 }
}
 1:54.009          H225 Answer:81f6d00         h323.cxx(1876)  H225
Handling PDU: Setup callRef=14
 1:54.009          H225 Answer:81f6d00         h323.cxx(1918)  H225
Set remote application name: "Cisco IOS 12.x    181/18"
      --Received SETUP message
[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:2056 setup_incoming_call:
Setting up incoming call for ip$192.168.55.10:56896/14
  -- Setting up Call
  --          Call token:  [ip$192.168.55.10:56896/14]
  --          Calling party name:  [Caller Name]
  --          Calling party number:  [654]
  --          Called party name:  [54]
  --          Called party number:  [54]
  --          Calling party IP:  [192.168.55.10]
[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:1560 find_user: Could not
find user by name Caller or address 192.168.55.10
[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:2121 setup_incoming_call:
Sending Caller at 192.168.55.10 to context [from-h323] extension 54
 1:54.010          H225 Answer:81f6d00      h323neg.cxx(340)   H245
Stopping MasterSlaveDetermination: state=Idle
 1:54.010          H225 Answer:81f6d00      h323neg.cxx(572)   H245
Stopping TerminalCapabilitySet: state=Idle
 1:54.010          H225 Answer:81f6d00     ast_h323.cxx(1215)  H225
Fast Start DISABLED!
 1:54.010          H225 Answer:81f6d00         h323.cxx(2142)  H225
Set protocol version to 2 and implying H.245 version 3
[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:2421
set_local_capabilities: Setting capabilities for connection
ip$192.168.55.10:56896/14
Setting capabilities to 0xc (ulaw|alaw)
Capabilities in preference order is (alaw|ulaw)
 1:54.010          H225 Answer:81f6d00     h323caps.cxx(2143)  H323
Added capability: G.711-ALaw-64k <1>
 1:54.010          H225 Answer:81f6d00     h323caps.cxx(2143)  H323
Added capability: G.711-uLaw-64k <2>
 1:54.010          H225 Answer:81f6d00     h323caps.cxx(2143)  H323
Added capability: UserInput/hookflash <3>
 1:54.010          H225 Answer:81f6d00     h323caps.cxx(2143)  H323
Added capability: UserInput/RFC2833 <4>
 1:54.011          H225 Answer:81f6d00     h323caps.cxx(2143)  H323
Added capability: UserInput/dtmf <5>
Allowed Codecs:
       Table:
 G.711-ALaw-64k <1>
 G.711-uLaw-64k <2>
 UserInput/hookflash <3>
 UserInput/RFC2833 <4>
 UserInput/dtmf <5>
Set:
 0:
   0:
     G.711-ALaw-64k <1>
     G.711-uLaw-64k <2>
   1:
     UserInput/hookflash <3>
   2:
     UserInput/RFC2833 <4>
     UserInput/dtmf <5>

[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:2434
set_local_capabilities: Capabilities for connection
ip$192.168.55.10:56896/14 is set
 1:54.011          H225 Answer:81f6d00         h323.cxx(2249)  H225
Sending call proceeding PDU
 1:54.012          H225 Answer:81f6d00      h323pdu.cxx(553)   H225
Sending PDU [ip$192.168.55.18:1720/ip$192.168.55.10:56896] :
 {
  q931pdu = {
    protocolDiscriminator = 8
    callReference = 14
    from = destination
    messageType = CallProceeding
    IE: Display = {
      35 34 00                                           54.
    }
    IE: User-User = {
      21 80 06 00 08 91 4a 00  02 22 c0 09 00 00 3d 36   !.....J.."....=6
      54 68 65 20 4e 75 46 6f  6e 65 20 4e 65 74 77 6f   The NuFone Netwo
      ...
    }
  }
  h225pdu = {
    h323_uu_pdu = {
      h323_message_body = callProceeding {
        protocolIdentifier = 0.0.8.2250.0.2
        destinationInfo = {
          vendor = {
            vendor = {
              t35CountryCode = 9
              t35Extension = 0
              manufacturerCode = 61
            }
            productId =  55 octets {
              54 68 65 20 4e 75 46 6f  6e 65 20 4e 65 74 77 6f   The
NuFone Netwo
              72 6b 73 20 48 2e 33 32  33 20 43 68 61 6e 6e 65   rks
H.323 Channe
              ...
            }
            versionId =  26 octets {
              31 2e 30 2e 30 20 28 4f  70 65 6e 48 33 32 33 20
1.0.0 (OpenH323
              76 31 2e 31 38 2e 30 29  00 00                    
v1.18.0)..
            }
          }
          terminal = {
          }
          mc = FALSE
          undefinedNode = FALSE
        }
        callIdentifier = {
          guid =  16 octets {
            80 fc c8 bd e0 72 e1 1d  0e 00 00 00 c0 a8 01 a2  
.....r..........
          }
        }
      }
      h245Tunneling = FALSE
    }
  }
 }
 1:54.014          H225 Answer:81f6d00         h323.cxx(2288)  H225
Incoming call accepted
      =-= In OnAnswerCall for call 14
              - Progress Indicator: 0
              - Inserting PI of 0 into ALERTING message
[Jul 18 17:27:52] DEBUG[6986]: chan_h323.c:2177 answer_call: Preparing
Asterisk to answer for ip$192.168.55.10:56896/14
  -- Executing [54 at from-h323:1]
Dial("H323/ip$192.168.55.10:56896/14", "SIP/maspo") in new stack
  -- Called maspo
 1:54.017LI>       H225 Answer:81f6d00         h323.cxx(2792)  H323
Answering call: AnswerCallDeferredWithMedia
 1:54.018LI>       H225 Answer:81f6d00   transports.cxx(1505)  H225
TCP Listen for H245 on 192.168.55.18:34810
 1:54.018LI>              H245:82169a8   transports.cxx(620)   H245
Started thread
 1:54.018LI>              H245:82169a8   transports.cxx(1712)  H245
TCP Accept wait
 1:54.019LI>       H225 Answer:81f6d00      h323pdu.cxx(553)   H225
Sending PDU [ip$192.168.55.18:1720/ip$192.168.55.10:56896] :
 {ask01*CLI>
  q931pdu = {
    protocolDiscriminator = 8
    callReference = 14
    from = destination
    messageType = Facility
    IE: Facility = {
tstask01*CLI>
    }1*CLI>
    IE: User-User = {
      26 80 06 00 08 91 4a 00  02 81 01 00 13 05 80 11   &.....J.........
      00 80 fc c8 bd e0 72 e1  1d 0e 00 00 00 c0 a8 01   ......r.........
      ...I>
    }1*CLI>
  }k01*CLI>
  h225pdu = {
    h323_uu_pdu = {
      h323_message_body = facility {
        protocolIdentifier = 0.0.8.2250.0.2
        reason = startH245 <<null>>
        callIdentifier = {
          guid =  16 octets {
            80 fc c8 bd e0 72 e1 1d  0e 00 00 00 c0 a8 01 a2  
.....r..........
          }
        }I>
        h245Address = ipAddress {
          ip =  4 octets {
            c0 a8 37 12                                        ..7.
          }
          port = 34810
        }I>
        multipleCalls = FALSE
        maintainConnection = FALSE
      }CLI>
      h245Tunneling = FALSE
    }1*CLI>
  }k01*CLI>
 }ask01*CLI>
 1:54.030LI>       H225 Answer:81f6d00         h323.cxx(4374)  H323
InternalEstablishedConnectionCheck:
connectionState=AwaitingLocalAnswer fastStartState=FastStartDisabled
 1:54.030LI>       H225 Answer:81f6d00         h323.cxx(4374)  H323
InternalEstablishedConnectionCheck:
connectionState=AwaitingLocalAnswer fastStartState=FastStartDisabled
 1:54.031LI>       H225 Answer:81f6d00         h323.cxx(1816)  H225
Reading PDUs: callRef=14
  -- SIP/maspo-08208dd0 is ringing
[Jul 18 17:27:52] DEBUG[6987]: chan_h323.c:879 oh323_indicate: OH323:
Indicating 3 on ip$192.168.55.10:56896/14
      Sending alerting
 1:54.123      ThreadID=0xb603eb90             h323.cxx(2792)  H323
Answering call: AnswerCallPending
 1:54.123      ThreadID=0xb603eb90             h323.cxx(2881)  H225
Sending Alerting PDU
 1:54.123      ThreadID=0xb603eb90          h323pdu.cxx(553)   H225
Sending PDU [ip$192.168.55.18:1720/ip$192.168.55.10:56896] :
 {
  q931pdu = {
    protocolDiscriminator = 8
    callReference = 14
    from = destination
    messageType = Alerting
    IE: Display = {
      35 34 00                                           54.
    }
    IE: User-User = {
      23 80 06 00 08 91 4a 00  02 22 c0 09 00 00 3d 36   #.....J.."....=6
      54 68 65 20 4e 75 46 6f  6e 65 20 4e 65 74 77 6f   The NuFone Netwo
      ...
    }
  }
  h225pdu = {
    h323_uu_pdu = {
      h323_message_body = alerting {
        protocolIdentifier = 0.0.8.2250.0.2
        destinationInfo = {
          vendor = {
            vendor = {
              t35CountryCode = 9
              t35Extension = 0
              manufacturerCode = 61
            }
            productId =  55 octets {
              54 68 65 20 4e 75 46 6f  6e 65 20 4e 65 74 77 6f   The
NuFone Netwo
              72 6b 73 20 48 2e 33 32  33 20 43 68 61 6e 6e 65   rks
H.323 Channe
              ...
            }
            versionId =  26 octets {
              31 2e 30 2e 30 20 28 4f  70 65 6e 48 33 32 33 20
1.0.0 (OpenH323
              76 31 2e 31 38 2e 30 29  00 00                    
v1.18.0)..
            }
          }
          terminal = {
          }
          mc = FALSE
          undefinedNode = FALSE
        }
        callIdentifier = {
          guid =  16 octets {
            80 fc c8 bd e0 72 e1 1d  0e 00 00 00 c0 a8 01 a2  
.....r..........
          }
        }
      }
      h245Tunneling = FALSE
    }
  }
 }
 1:54.125      ThreadID=0xb603eb90             h323.cxx(4374)  H323
InternalEstablishedConnectionCheck:
connectionState=AwaitingLocalAnswer fastStartState=FastStartDisabled
[Jul 18 17:27:52] DEBUG[6987]: chan_h323.c:931 oh323_indicate: OH323:
Indicated 3 on ip$192.168.55.10:56896/14, res=-1 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-21-08 10:04  nik600         Note Added: 0090522                          
======================================================================




More information about the asterisk-bugs mailing list