[asterisk-commits] mmichelson: branch mmichelson/direct_media r382666 - /team/mmichelson/direct_...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Mar 7 17:50:28 CST 2013
Author: mmichelson
Date: Thu Mar 7 17:50:22 2013
New Revision: 382666
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=382666
Log:
Register a new gulp supplement for incoming ACKs.
Now direct media reinvites are working more consistently than they
previously have.
Modified:
team/mmichelson/direct_media/channels/chan_gulp.c
Modified: team/mmichelson/direct_media/channels/chan_gulp.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/direct_media/channels/chan_gulp.c?view=diff&rev=382666&r1=382665&r2=382666
==============================================================================
--- team/mmichelson/direct_media/channels/chan_gulp.c (original)
+++ team/mmichelson/direct_media/channels/chan_gulp.c Thu Mar 7 17:50:22 2013
@@ -106,6 +106,13 @@
.session_end = gulp_session_end,
.incoming_request = gulp_incoming_request,
.incoming_response = gulp_incoming_response,
+};
+
+static int gulp_incoming_ack(struct ast_sip_session *session, struct pjsip_rx_data *rdata);
+
+static struct ast_sip_session_supplement gulp_ack_supplement = {
+ .method = "ACK",
+ .incoming_request = gulp_incoming_ack,
};
/*! \brief Function called by RTP engine to get local audio RTP peer */
@@ -889,11 +896,6 @@
int res = AST_PBX_FAILED;
if (session->channel) {
- if (rdata->msg_info.msg->line.req.method.id == PJSIP_ACK_METHOD) {
- if (session->endpoint->direct_media) {
- ast_queue_control(session->channel, AST_CONTROL_SRCCHANGE);
- }
- }
return 0;
}
@@ -951,6 +953,16 @@
default:
break;
}
+}
+
+static int gulp_incoming_ack(struct ast_sip_session *session, struct pjsip_rx_data *rdata)
+{
+ if (rdata->msg_info.msg->line.req.method.id == PJSIP_ACK_METHOD) {
+ if (session->endpoint->direct_media) {
+ ast_queue_control(session->channel, AST_CONTROL_SRCCHANGE);
+ }
+ }
+ return 0;
}
/*!
@@ -983,6 +995,11 @@
goto end;
}
+ if (ast_sip_session_register_supplement(&gulp_ack_supplement)) {
+ ast_log(LOG_ERROR, "Unable to register Gulp ACK supplement\n");
+ goto end;
+ }
+
return 0;
end:
More information about the asterisk-commits
mailing list