Revision
15688
Author
mrene
Date
2009-11-26 15:28:28 -0600 (Thu, 26 Nov 2009)

Log Message

add switch_caller_extension_add_application_printf()

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_caller.h (15687 => 15688)


--- freeswitch/trunk/src/include/switch_caller.h	2009-11-26 20:59:31 UTC (rev 15687)
+++ freeswitch/trunk/src/include/switch_caller.h	2009-11-26 21:28:28 UTC (rev 15688)
@@ -161,7 +161,18 @@
 															 _In_ switch_caller_extension_t *caller_extension,
 															 _In_z_ const char *application_name, _In_z_ const char *extra_data);
 
+/*!
+  \brief Add an application (instruction) to the given extension
+  \param session session associated with the extension (bound by scope)
+  \param caller_extension extension to add the application to
+  \param application_name the name of the application
+  \param fmt optional argument to the application (printf format string)
+*/
+SWITCH_DECLARE(void) switch_caller_extension_add_application_printf(_In_ switch_core_session_t *session,
+															 _In_ switch_caller_extension_t *caller_extension,
+															 _In_z_ const char *application_name, _In_z_ const char *fmt, ...);
 
+
 /*!
   \brief Get the value of a field in a caller profile based on it's name
   \param caller_profile The caller profile

Modified: freeswitch/trunk/src/switch_caller.c (15687 => 15688)


--- freeswitch/trunk/src/switch_caller.c	2009-11-26 20:59:31 UTC (rev 15687)
+++ freeswitch/trunk/src/switch_caller.c	2009-11-26 21:28:28 UTC (rev 15688)
@@ -394,6 +394,25 @@
 	return caller_extension;
 }
 
+
+SWITCH_DECLARE(void) switch_caller_extension_add_application_printf(switch_core_session_t *session,
+															 switch_caller_extension_t *caller_extension, const char *application_name,
+															 const char *fmt, ...)
+{
+	va_list ap;
+	char *data = NULL;
+	
+	va_start(ap, fmt);
+	switch_vasprintf(&data, fmt, ap);
+	va_end(ap);
+	
+	if (data) {
+		switch_caller_extension_add_application(session, caller_extension, application_name, data);	
+		free(data);
+	}
+}
+
+
 SWITCH_DECLARE(void) switch_caller_extension_add_application(switch_core_session_t *session,
 															 switch_caller_extension_t *caller_extension, const char *application_name,
 															 const char *application_data)