diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-04 18:05:28 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-04 18:05:28 +0000 |
commit | d69fe8861e281c80845406a82b42b44d2db63c9e (patch) | |
tree | 41011ab096bbd398a8fee02ad29c1e9a1dce16e9 /channels | |
parent | f9191c4c9fbc8092532bafe28a2d3db267c550ab (diff) |
When a new source of audio comes in (such as music on hold) make sure the marker bit gets set.
(closes issue #10355)
Reported by: wdecarne
Patches:
10355.diff uploaded by file (license 11)
(closes issue #11491)
Reported by: kanderson
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@105674 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 5873fe07b..994a4c964 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -3661,8 +3661,10 @@ static int sip_answer(struct ast_channel *ast) if (option_debug > 1) ast_log(LOG_DEBUG,"T38State change to %d on channel %s\n", p->t38.state, ast->name); res = transmit_response_with_t38_sdp(p, "200 OK", &p->initreq, XMIT_CRITICAL); - } else + } else { + ast_rtp_new_source(p->rtp); res = transmit_response_with_sdp(p, "200 OK", &p->initreq, XMIT_CRITICAL); + } } ast_mutex_unlock(&p->lock); return res; @@ -3695,6 +3697,7 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame) if ((ast->_state != AST_STATE_UP) && !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) && !ast_test_flag(&p->flags[0], SIP_OUTGOING)) { + ast_rtp_new_source(p->rtp); transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE); ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT); } @@ -3920,9 +3923,11 @@ static int sip_indicate(struct ast_channel *ast, int condition, const void *data res = -1; break; case AST_CONTROL_HOLD: + ast_rtp_new_source(p->rtp); ast_moh_start(ast, data, p->mohinterpret); break; case AST_CONTROL_UNHOLD: + ast_rtp_new_source(p->rtp); ast_moh_stop(ast); break; case AST_CONTROL_VIDUPDATE: /* Request a video frame update */ |