--- pbx.c.orig 2007-03-23 17:54:21.231321320 +0100 +++ pbx.c 2007-03-23 17:54:48.975103624 +0100 @@ -5580,7 +5580,9 @@ static int pbx_builtin_setamaflags(struc static int pbx_builtin_hangup(struct ast_channel *chan, void *data) { /* Just return non-zero and it will hang up */ - if (!chan->hangupcause) + if (data) + chan->hangupcause = atoi(data); + else if (!chan->hangupcause) chan->hangupcause = AST_CAUSE_NORMAL_CLEARING; return -1; }