Index: apps/app_page.c =================================================================== --- apps/app_page.c (revision 24379) +++ apps/app_page.c (working copy) @@ -60,18 +60,21 @@ "caller is dumped into the conference as a speaker and the room is\n" "destroyed when the original caller leaves. Valid options are:\n" " d - full duplex audio\n" -" q - quiet, do not play beep to caller\n"; +" q - quiet, do not play beep to caller\n" +" r - record the page into a file -- you may want to first Set(MEETME_RECORDINGFILE=ReplayLastPage)\n"; LOCAL_USER_DECL; enum { PAGE_DUPLEX = (1 << 0), PAGE_QUIET = (1 << 1), + PAGE_RECORD = (1 << 2), } page_opt_flags; AST_APP_OPTIONS(page_opts, { AST_APP_OPTION('d', PAGE_DUPLEX), AST_APP_OPTION('q', PAGE_QUIET), + AST_APP_OPTION('r', PAGE_RECORD), }); struct calloutdata { @@ -177,7 +180,8 @@ if (options) ast_app_parse_options(page_opts, &flags, NULL, options); - snprintf(meetmeopts, sizeof(meetmeopts), "%ud|%sqxdw", confid, ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "m"); + snprintf(meetmeopts, sizeof(meetmeopts), "%ud|%s%sqxdw", confid, (ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "m"), + (ast_test_flag(&flags, PAGE_RECORD) ? "r" : "") ); while ((tech = strsep(&tmp, "&"))) { /* don't call the originating device */ @@ -198,7 +202,8 @@ res = ast_waitstream(chan, ""); } if (!res) { - snprintf(meetmeopts, sizeof(meetmeopts), "%ud|A%sqxd", confid, ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "t"); + snprintf(meetmeopts, sizeof(meetmeopts), "%ud|A%s%sqxd", confid, (ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "t"), + (ast_test_flag(&flags, PAGE_RECORD) ? "r" : "") ); pbx_exec(chan, app, meetmeopts); }