diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-05 22:43:22 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-05 22:43:22 +0000 |
commit | f6b76699b7ba5d7c9d259a918c6e0f14aa4ec00c (patch) | |
tree | a996e649bf519c5eb10d31e1e353e551a9fca363 /channels | |
parent | 24c93cfe5699ead70df4459e18cae25636245f0b (diff) |
Merged revisions 106235 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r106235 | file | 2008-03-05 18:32:10 -0400 (Wed, 05 Mar 2008) | 4 lines
Add a control frame to indicate the source of media has changed. Depending on the underlying technology it may need to change some things.
(closes issue #12148)
Reported by: jcomellas
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@106239 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_alsa.c | 1 | ||||
-rw-r--r-- | channels/chan_console.c | 1 | ||||
-rw-r--r-- | channels/chan_h323.c | 4 | ||||
-rw-r--r-- | channels/chan_mgcp.c | 3 | ||||
-rw-r--r-- | channels/chan_oss.c | 1 | ||||
-rw-r--r-- | channels/chan_phone.c | 27 | ||||
-rw-r--r-- | channels/chan_sip.c | 3 | ||||
-rw-r--r-- | channels/chan_skinny.c | 3 | ||||
-rw-r--r-- | channels/chan_unistim.c | 1 | ||||
-rw-r--r-- | channels/chan_zap.c | 3 |
10 files changed, 35 insertions, 12 deletions
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c index ec1107695..3e9199fce 100644 --- a/channels/chan_alsa.c +++ b/channels/chan_alsa.c @@ -510,6 +510,7 @@ static int alsa_indicate(struct ast_channel *chan, int cond, const void *data, s case AST_CONTROL_PROGRESS: case AST_CONTROL_PROCEEDING: case AST_CONTROL_VIDUPDATE: + case AST_CONTROL_SRCUPDATE: break; case AST_CONTROL_HOLD: ast_verbose(" << Console Has Been Placed on Hold >> \n"); diff --git a/channels/chan_console.c b/channels/chan_console.c index c558f5b1d..7d62e6235 100644 --- a/channels/chan_console.c +++ b/channels/chan_console.c @@ -610,6 +610,7 @@ static int console_indicate(struct ast_channel *chan, int cond, const void *data case AST_CONTROL_PROGRESS: case AST_CONTROL_PROCEEDING: case AST_CONTROL_VIDUPDATE: + case AST_CONTROL_SRCUPDATE: break; case AST_CONTROL_HOLD: ast_verb(1, V_BEGIN "Console Has Been Placed on Hold" V_END); diff --git a/channels/chan_h323.c b/channels/chan_h323.c index e61fa101a..2b1ef51e7 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -914,6 +914,10 @@ static int oh323_indicate(struct ast_channel *c, int condition, const void *data ast_moh_stop(c); res = 0; break; + case AST_CONTROL_SRCUPDATE: + ast_rtp_new_source(pvt->rtp); + res = 0; + break; case AST_CONTROL_PROCEEDING: case -1: break; diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index f4ce2ce6a..9f334298e 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -1479,6 +1479,9 @@ static int mgcp_indicate(struct ast_channel *ast, int ind, const void *data, siz case AST_CONTROL_UNHOLD: ast_moh_stop(ast); break; + case AST_CONTROL_SRCUPDATE: + ast_rtp_new_source(sub->rtp); + break; case -1: transmit_notify_request(sub, ""); break; diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 4f40085fa..626951208 100644 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -764,6 +764,7 @@ static int oss_indicate(struct ast_channel *c, int cond, const void *data, size_ case AST_CONTROL_PROGRESS: case AST_CONTROL_PROCEEDING: case AST_CONTROL_VIDUPDATE: + case AST_CONTROL_SRCUPDATE: break; case AST_CONTROL_HOLD: ast_verbose(" << Console Has Been Placed on Hold >> \n"); diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 233e5e829..48b26c160 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -206,21 +206,24 @@ static int phone_indicate(struct ast_channel *chan, int condition, const void *d int res=-1; ast_debug(1, "Requested indication %d on channel %s\n", condition, chan->name); switch(condition) { - case AST_CONTROL_FLASH: - ioctl(p->fd, IXJCTL_PSTN_SET_STATE, PSTN_ON_HOOK); - usleep(320000); - ioctl(p->fd, IXJCTL_PSTN_SET_STATE, PSTN_OFF_HOOK); + case AST_CONTROL_FLASH: + ioctl(p->fd, IXJCTL_PSTN_SET_STATE, PSTN_ON_HOOK); + usleep(320000); + ioctl(p->fd, IXJCTL_PSTN_SET_STATE, PSTN_OFF_HOOK); p->lastformat = -1; res = 0; break; - case AST_CONTROL_HOLD: - ast_moh_start(chan, data, NULL); - break; - case AST_CONTROL_UNHOLD: - ast_moh_stop(chan); - break; - default: - ast_log(LOG_WARNING, "Condition %d is not supported on channel %s\n", condition, chan->name); + case AST_CONTROL_HOLD: + ast_moh_start(chan, data, NULL); + break; + case AST_CONTROL_UNHOLD: + ast_moh_stop(chan); + break; + case AST_CONTROL_SRCUPDATE: + res = 0; + break; + default: + ast_log(LOG_WARNING, "Condition %d is not supported on channel %s\n", condition, chan->name); } return res; } diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 4343583b2..fa9052dfa 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5140,6 +5140,9 @@ static int sip_indicate(struct ast_channel *ast, int condition, const void *data } } break; + case AST_CONTROL_SRCUPDATE: + ast_rtp_new_source(p->rtp); + break; case -1: res = -1; break; diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 90a611bed..44d88ae1f 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -3650,6 +3650,9 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s break; case AST_CONTROL_PROCEEDING: break; + case AST_CONTROL_SRCUPDATE: + ast_rtp_new_source(sub->rtp); + break; default: ast_log(LOG_WARNING, "Don't know how to indicate condition %d\n", ind); return -1; diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c index 923d5d494..8adb3497b 100644 --- a/channels/chan_unistim.c +++ b/channels/chan_unistim.c @@ -4117,6 +4117,7 @@ static int unistim_indicate(struct ast_channel *ast, int ind, const void *data, ast_moh_stop(ast); break; case AST_CONTROL_PROGRESS: + case AST_CONTROL_SRCUPDATE: break; case -1: ast_playtones_stop(ast); diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 9e73eeffd..ea19e9f56 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -5813,6 +5813,9 @@ static int zt_indicate(struct ast_channel *chan, int condition, const void *data } else res = 0; break; + case AST_CONTROL_SRCUPDATE: + res = 0; + break; case -1: res = tone_zone_play_tone(p->subs[index].zfd, -1); break; |