[asterisk-commits] dvossel: branch 1.8 r287929 - /branches/1.8/channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Sep 21 13:32:17 CDT 2010
Author: dvossel
Date: Tue Sep 21 13:32:12 2010
New Revision: 287929
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=287929
Log:
Send a "415 Unsupported Media Type" after failure to process sdp due to unknown Content-Encoding header.
ABE-2258
Modified:
branches/1.8/channels/chan_sip.c
Modified: branches/1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_sip.c?view=diff&rev=287929&r1=287928&r2=287929
==============================================================================
--- branches/1.8/channels/chan_sip.c (original)
+++ branches/1.8/channels/chan_sip.c Tue Sep 21 13:32:12 2010
@@ -21099,7 +21099,14 @@
/* Handle SDP here if we already have an owner */
if (find_sdp(req)) {
if (process_sdp(p, req, SDP_T38_INITIATE)) {
- transmit_response_reliable(p, "488 Not acceptable here", req);
+ if (!ast_strlen_zero(get_header(req, "Content-Encoding"))) {
+ /* Asterisk does not yet support any Content-Encoding methods. Always
+ * attempt to process the sdp, but return a 415 if a Content-Encoding header
+ * was present after processing failed. */
+ transmit_response_reliable(p, "415 Unsupported Media type", req);
+ } else {
+ transmit_response_reliable(p, "488 Not acceptable here", req);
+ }
if (!p->lastinvite)
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
res = -1;
@@ -21164,8 +21171,15 @@
/* We have a successful authentication, process the SDP portion if there is one */
if (find_sdp(req)) {
if (process_sdp(p, req, SDP_T38_INITIATE)) {
- /* Unacceptable codecs */
- transmit_response_reliable(p, "488 Not acceptable here", req);
+ /* Asterisk does not yet support any Content-Encoding methods. Always
+ * attempt to process the sdp, but return a 415 if a Content-Encoding header
+ * was present after processing fails. */
+ if (!ast_strlen_zero(get_header(req, "Content-Encoding"))) {
+ transmit_response_reliable(p, "415 Unsupported Media type", req);
+ } else {
+ /* Unacceptable codecs */
+ transmit_response_reliable(p, "488 Not acceptable here", req);
+ }
p->invitestate = INV_COMPLETED;
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
ast_debug(1, "No compatible codecs for this SIP call.\n");
More information about the asterisk-commits
mailing list