diff --git a/pbx.c b/pbx.c index d88c265c58dc1ffcc9e489dcfc13e56cf23b47f3..05f3dd20c3918404d857802a10fdfa5c453455d2 100755 --- a/pbx.c +++ b/pbx.c @@ -167,6 +167,7 @@ static int pbx_builtin_setlanguage(struct ast_channel *, void *); static int pbx_builtin_resetcdr(struct ast_channel *, void *); static int pbx_builtin_setaccount(struct ast_channel *, void *); static int pbx_builtin_ringing(struct ast_channel *, void *); +static int pbx_builtin_progress(struct ast_channel *, void *); static int pbx_builtin_congestion(struct ast_channel *, void *); static int pbx_builtin_busy(struct ast_channel *, void *); static int pbx_builtin_setglobalvar(struct ast_channel *, void *); @@ -274,6 +275,11 @@ static struct pbx_builtin { "which has no first step, the PBX will treat it as though the user dialed an\n" "invalid extension.\n" }, + { "Progress", pbx_builtin_progress, +"Indicate progress", +" Progress(): Request that the channel indicate in-band progress is available to the user.\n" +"Always returns 0.\n" }, + { "ResetCDR", pbx_builtin_resetcdr, "Resets the Call Data Record", " ResetCDR([options]): Causes the Call Data Record to be reset, optionally\n" @@ -4203,6 +4209,12 @@ static void wait_for_hangup(struct ast_channel *chan) } while(f); } +static int pbx_builtin_progress(struct ast_channel *chan, void *data) +{ + ast_indicate(chan, AST_CONTROL_PROGRESS); + return 0; +} + static int pbx_builtin_ringing(struct ast_channel *chan, void *data) { ast_indicate(chan, AST_CONTROL_RINGING);