diff --git a/channels/chan_jingle.c b/channels/chan_jingle.c index b296334ed9..b3d7ea68a1 100644 --- a/channels/chan_jingle.c +++ b/channels/chan_jingle.c @@ -185,7 +185,7 @@ static struct jingle_pvt *jingle_alloc(struct jingle *client, const char *from, /*----- RTP interface functions */ static int jingle_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, int codecs, int nat_active); -static struct ast_rtp *jingle_get_rtp_peer(struct ast_channel *chan); +static enum ast_rtp_get_result jingle_get_rtp_peer(struct ast_channel *chan, struct ast_rtp **rtp); static int jingle_get_codec(struct ast_channel *chan); /*! \brief PBX interface structure for channel registration */ @@ -405,18 +405,22 @@ static int jingle_answer(struct ast_channel *ast) return res; } -static struct ast_rtp *jingle_get_rtp_peer(struct ast_channel *chan) +static enum ast_rtp_get_result jingle_get_rtp_peer(struct ast_channel *chan, struct ast_rtp **rtp) { struct jingle_pvt *p = chan->tech_pvt; - struct ast_rtp *rtp = NULL; + enum ast_rtp_get_result res = AST_RTP_GET_FAILED; if (!p) - return NULL; + return res; + ast_mutex_lock(&p->lock); - if (p->rtp) - rtp = p->rtp; + if (p->rtp) { + *rtp = p->rtp; + res = AST_RTP_TRY_NATIVE; + } ast_mutex_unlock(&p->lock); - return rtp; + + return res; } static int jingle_get_codec(struct ast_channel *chan)