[Asterisk-code-review] pbx_builtins: Allow Answer to return immediately. (asterisk[18])

Friendly Automation asteriskteam at digium.com
Tue Nov 29 09:30:05 CST 2022


Friendly Automation has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/19583 )

Change subject: pbx_builtins: Allow Answer to return immediately.
......................................................................

pbx_builtins: Allow Answer to return immediately.

The Answer application currently waits for up to 500ms
for media, even if users specify a different timeout.

This adds an option to not wait for media on the channel
by doing a raw answer instead. The default 500ms threshold
is also documented.

ASTERISK-30308 #close

Change-Id: Id59cd340c44b8b8b2384c479e17e5123e917cba4
---
A doc/CHANGES-staging/answer.txt
M main/pbx_builtins.c
2 files changed, 40 insertions(+), 0 deletions(-)

Approvals:
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit




diff --git a/doc/CHANGES-staging/answer.txt b/doc/CHANGES-staging/answer.txt
new file mode 100644
index 0000000..7e04701
--- /dev/null
+++ b/doc/CHANGES-staging/answer.txt
@@ -0,0 +1,5 @@
+Subject: pbx_builtins
+
+It is now possible to not wait for media on
+a channel when answering it using Answer,
+by specifying the i option.
diff --git a/main/pbx_builtins.c b/main/pbx_builtins.c
index 7ef4d03..fa6e63d 100644
--- a/main/pbx_builtins.c
+++ b/main/pbx_builtins.c
@@ -49,11 +49,23 @@
 			<parameter name="delay">
 				<para>Asterisk will wait this number of milliseconds before returning to
 				the dialplan after answering the call.</para>
+				<para>The minimum is 500 ms. To answer immediately without waiting for media,
+				use the i option.</para>
+			</parameter>
+			<parameter name="options">
+				<optionlist>
+					<option name="i">
+						<para>Answer the channel immediately without waiting for media.</para>
+					</option>
+				</optionlist>
 			</parameter>
 		</syntax>
 		<description>
 			<para>If the call has not been answered, this application will
 			answer it. Otherwise, it has no effect on the call.</para>
+			<para>By default, Asterisk will wait for media for up to 500 ms, or
+			the user specified delay, whichever is longer. If you do not want
+			to wait for media at all, use the i option.</para>
 		</description>
 		<see-also>
 			<ref type="application">Hangup</ref>
@@ -836,6 +848,11 @@
 		delay = 0;
 	}
 
+	if (!ast_strlen_zero(args.answer_cdr) && !strcmp(args.answer_cdr, "i")) {
+		/*! \todo We will remove the nocdr stuff for 21 entirely, as part of another review. */
+		return ast_raw_answer(chan);
+	}
+
 	if (!ast_strlen_zero(args.answer_cdr) && !strcasecmp(args.answer_cdr, "nocdr")) {
 		ast_log(AST_LOG_WARNING, "The nocdr option for the Answer application has been removed and is no longer supported.\n");
 	}

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/19583
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 18
Gerrit-Change-Id: Id59cd340c44b8b8b2384c479e17e5123e917cba4
Gerrit-Change-Number: 19583
Gerrit-PatchSet: 2
Gerrit-Owner: N A <asterisk at phreaknet.org>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20221129/310a1a9b/attachment.html>


More information about the asterisk-code-review mailing list