aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_dial.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-07 16:02:13 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-07 16:02:13 +0000
commit974652e0e725baad2db2bf9e5c0d00d195f38440 (patch)
tree4bc8239e616b4e9961f2fcab1ad96d4e3b77f776 /apps/app_dial.c
parent845a6599de6708212b2bab9db6d37347a498c884 (diff)
Cleanups to the ordering of events in dial, don't freak out on the wrong codec
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3385 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_dial.c')
-rwxr-xr-xapps/app_dial.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 4b05ad478..dfb1a3e8e 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -142,7 +142,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct localu
if (single) {
/* Turn off hold music, etc */
- ast_indicate(in, -1);
+ ast_deactivate_generator(in);
/* If we are calling a single channel, make them compatible for in-band tone purpose */
ast_channel_make_compatible(outgoing->chan, in);
}
@@ -853,13 +853,6 @@ static int dial_exec(struct ast_channel *chan, void *data)
pbx_builtin_setvar_helper(chan, "DIALEDPEERNAME", peer->name);
if (numsubst)
pbx_builtin_setvar_helper(chan, "DIALEDPEERNUMBER", numsubst);
- /* Make sure channels are compatible */
- res = ast_channel_make_compatible(chan, peer);
- if (res < 0) {
- ast_log(LOG_WARNING, "Had to drop call because I couldn't make %s compatible with %s\n", chan->name, peer->name);
- ast_hangup(peer);
- return -1;
- }
/* JDG: sendurl */
if( url && !ast_strlen_zero(url) && ast_channel_supports_html(peer) ) {
ast_log(LOG_DEBUG, "app_dial: sendurl=%s.\n", url);
@@ -913,6 +906,15 @@ static int dial_exec(struct ast_channel *chan, void *data)
sentringing = 0;
ast_indicate(chan, -1);
}
+ /* Be sure no generators are left on it */
+ ast_deactivate_generator(chan);
+ /* Make sure channels are compatible */
+ res = ast_channel_make_compatible(chan, peer);
+ if (res < 0) {
+ ast_log(LOG_WARNING, "Had to drop call because I couldn't make %s compatible with %s\n", chan->name, peer->name);
+ ast_hangup(peer);
+ return -1;
+ }
res = ast_bridge_call(chan,peer,&config);
} else
res = -1;