=================================================================== --- channels/chan_sip.c (revision 318832) +++ channels/chan_sip.c (working copy) @@ -8306,6 +8306,7 @@ /* SRTP */ int secure_audio = FALSE; + int no_secure_audio = FALSE; int secure_video = FALSE; /* Others */ @@ -8425,10 +8426,13 @@ ast_log(LOG_WARNING, "unknown SDP media protocol in offer: %s\n", protocol); continue; } + no_secure_audio = 1; audio = TRUE; p->offered_media[SDP_AUDIO].offered = TRUE; numberofmediastreams++; - portno = x; + if (x) { + portno = x; + } /* Scan through the RTP payload types specified in a "m=" line: */ codecs = m + len; @@ -8607,8 +8611,14 @@ } if (secure_audio && !(p->srtp && (ast_test_flag(p->srtp, SRTP_CRYPTO_OFFER_OK)))) { - ast_log(LOG_WARNING, "Can't provide secure audio requested in SDP offer\n"); - return -4; + if (no_secure_audio) { + ast_log(LOG_WARNING, "Can't provide secure audio but peer offers also unsecure audio. Fall back to unsecure mode.\n"); + secure_audio=0; + } else { + ast_log(LOG_WARNING, "Can't provide secure audio requested in SDP offer\n"); + return -4; + } } if (!secure_audio && p->srtp) {