Hi,

 

we have a problem with a device trying to send T.38 fax. During the T.38 ReInvite Kamailio fails to parse the SDP (via rtpengine_manage), and subsequently rtpengine is failing to do it’s job.

The problem seems to be that Kamailio is trying to find a media address, since there is no session-wide c= line present it goes to the media c= lines, but since the first media stream which was an audio stream is being removed (port 0) and can therefore omit all attributes (as per RFC 3264 8.2, or am i understanding this wrong?), the Kamailio SDP parser is failing, even if there is another c= line in the T.38 media stream.

 

Here is the offending SDP from the ReInvite (IP changed):

 

v=0

o=xmserver 1726638425 1726638427 IN IP4 169.254.1.1

s=xmserver

t=0 0

m=audio 0 RTP/AVP 8

m=image 56002 udptl t38

c=IN IP4 169.254.1.1

a=sendrecv

a=T38FaxVersion:0

a=T38MaxBitRate:14400

a=T38FaxFillBitRemoval:0

a=T38FaxTranscodingMMR:0

a=T38FaxTranscodingJBIG:0

a=T38FaxRateManagement:transferredTCF

a=T38FaxMaxBuffer:200

a=T38FaxMaxDatagram:72

a=T38FaxUdpEC:t38UDPRedundancy

 

And here is the corresponding log entry:

<core> [core/parser/sdp/sdp.c:523]: parse_sdp_session(): can't find media IP in the message

 

Can anyone confirm my findings? Is it possible to adjust the SDP parser for these kind of scenarios?

 

Mit kommunikativen Grüßen I Best regards

 

Thomas