summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2000-12-28 19:15:51 +0000
committerMark Spencer <markster@digium.com>2000-12-28 19:15:51 +0000
commit4ea6a05122d8365615c470a98a879a5cc4d47472 (patch)
treec3117c891950cb12bc885cebf26c88513b8b7aee /apps
parent67826ab9b8113ebfeb877115913d9e2ce28ee894 (diff)
Version 0.1.6 from FTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@226 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rwxr-xr-xapps/app_dial.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 6eef79497..722b0795e 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -514,6 +514,11 @@ static int park_exec(struct ast_channel *chan, void *data)
nchan = chan;
else
nchan = ast_translator_create(chan, peer->format, AST_DIRECTION_BOTH);
+ if (!nchan) {
+ ast_log(LOG_WARNING, "Had to drop call because there was no translator for %s to %s.\n", chan->name, peer->name);
+ ast_hangup(peer);
+ return -1;
+ }
/* This runs sorta backwards, since we give the incoming channel control, as if it
were the person called. */
if (option_verbose > 2)
@@ -649,10 +654,16 @@ static int dial_exec(struct ast_channel *chan, void *data)
npeer = peer;
else
npeer = ast_translator_create(peer, chan->format, AST_DIRECTION_BOTH);
- res = bridge_call(chan, npeer, allowredir);
- if (npeer != peer)
- ast_translator_destroy(npeer);
- ast_hangup(peer);
+ if (!npeer) {
+ ast_log(LOG_WARNING, "Had to drop call because there was no translator for %s to %s.\n", chan->name, peer->name);
+ ast_hangup(peer);
+ res = -1;
+ } else {
+ res = bridge_call(chan, npeer, allowredir);
+ if (npeer != peer)
+ ast_translator_destroy(npeer);
+ ast_hangup(peer);
+ }
}
out:
hanguptree(outgoing, NULL);