aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-06 00:22:20 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-06 00:22:20 +0000
commit75d8cbb5511c40341ac442a3a8e57f6d811c7ab8 (patch)
tree2bc9241e535f22e7c7ae3deb2fddd2f0b1c30d83 /channels
parent302e0dc67407eb3e2dc0c8e4f95544a4dba32137 (diff)
Merged revisions 106239 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r106239 | file | 2008-03-05 16:43:22 -0600 (Wed, 05 Mar 2008) | 12 lines 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/branches/1.6.0@106318 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_alsa.c1
-rw-r--r--channels/chan_console.c1
-rw-r--r--channels/chan_h323.c4
-rw-r--r--channels/chan_mgcp.c3
-rw-r--r--channels/chan_oss.c1
-rw-r--r--channels/chan_phone.c27
-rw-r--r--channels/chan_sip.c3
-rw-r--r--channels/chan_skinny.c3
-rw-r--r--channels/chan_unistim.c1
-rw-r--r--channels/chan_zap.c3
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;