Don't allow reinvite if both parties talk diffrent codec (part 2)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1753 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Martin Pycko 22 years ago
parent e3b0a66805
commit dae1a4e6df

10
rtp.c

@ -1144,7 +1144,6 @@ int ast_rtp_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, st
void *pvt0, *pvt1; void *pvt0, *pvt1;
int to; int to;
memset(&vt0, 0, sizeof(vt0)); memset(&vt0, 0, sizeof(vt0));
memset(&vt1, 0, sizeof(vt1)); memset(&vt1, 0, sizeof(vt1));
memset(&vac0, 0, sizeof(vac0)); memset(&vac0, 0, sizeof(vac0));
@ -1195,6 +1194,15 @@ int ast_rtp_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, st
ast_mutex_unlock(&c1->lock); ast_mutex_unlock(&c1->lock);
return -2; return -2;
} }
if (pr0->get_codec && pr1->get_codec) {
int codec0,codec1;
codec0 = pr0->get_codec(c0);
codec1 = pr1->get_codec(c1);
ast_log(LOG_WARNING, "codec0 = %d is not codec1 = %d, can't do reinvite\n",codec0,codec1);
/* Hey, we can't do reinvite if both parties speak diffrent codecs */
if (codec0 != codec1)
return -2;
}
if (pr0->set_rtp_peer(c0, p1, vp1)) if (pr0->set_rtp_peer(c0, p1, vp1))
ast_log(LOG_WARNING, "Channel '%s' failed to talk to '%s'\n", c0->name, c1->name); ast_log(LOG_WARNING, "Channel '%s' failed to talk to '%s'\n", c0->name, c1->name);
else { else {

Loading…
Cancel
Save