[asterisk-commits] file: trunk r400257 - in /trunk: ./ res/res_pjsip_session.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Oct 2 10:33:59 CDT 2013


Author: file
Date: Wed Oct  2 10:33:56 2013
New Revision: 400257

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=400257
Log:
Fix a random one way audio issue in PJSIP.

Due to the asynchronous design of the PJMEDIA SDP negotiator it was possible for
the SDP to be negotiated *after* a channel was created and after it was being wait
on by an application. It is only after negotiation occurs that the file descriptors
for RTP are placed on the channel. Since the channel was already being waited on
these file descriptors were not monitored, causing incoming media to never be read.

This change wakes up any application waiting on the channel so that added file
descriptors end up being monitored.

(closes issue AST-1227)
Reported by: John Bigelow
........

Merged revisions 400256 from http://svn.asterisk.org/svn/asterisk/branches/12

Modified:
    trunk/   (props changed)
    trunk/res/res_pjsip_session.c

Propchange: trunk/
------------------------------------------------------------------------------
--- branch-12-merged (original)
+++ branch-12-merged Wed Oct  2 10:33:56 2013
@@ -1,1 +1,1 @@
-/branches/12:1-398558,398560-398577,398579-399305,399307-400181,400194,400196,400205,400217,400227,400236,400245,400254
+/branches/12:1-398558,398560-398577,398579-399305,399307-400181,400194,400196,400205,400217,400227,400236,400245,400254,400256

Modified: trunk/res/res_pjsip_session.c
URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_session.c?view=diff&rev=400257&r1=400256&r2=400257
==============================================================================
--- trunk/res/res_pjsip_session.c (original)
+++ trunk/res/res_pjsip_session.c Wed Oct  2 10:33:56 2013
@@ -472,6 +472,7 @@
 	successful = ao2_callback(session->media, OBJ_MULTIPLE, handle_negotiated_sdp_session_media, &callback_data);
 	if (successful && ao2_container_count(successful->c) == ao2_container_count(session->media)) {
 		/* Nothing experienced a catastrophic failure */
+		ast_queue_frame(session->channel, &ast_null_frame);
 		return 0;
 	}
 	return -1;




More information about the asterisk-commits mailing list