SWITCH_DECLARE(switch_status_t) switch_ivr_set_user(switch_core_session_t *session, const char *data);
SWITCH_DECLARE(switch_status_t) switch_ivr_sound_test(switch_core_session_t *session);
SWITCH_DECLARE(void) switch_process_import(switch_core_session_t *session, switch_channel_t *peer_channel, const char *varname);
+SWITCH_DECLARE(switch_bool_t) switch_ivr_uuid_exists(const char *uuid);
+
/** @} */
SWITCH_END_EXTERN_C
return SWITCH_STATUS_SUCCESS;
}
-#define EXISTS_SYNTAX "<uuid> <var>"
+#define EXISTS_SYNTAX "<uuid>"
SWITCH_STANDARD_API(uuid_exists_function)
{
- int exists = 0;
-
- if (cmd) {
- switch_core_session_t *psession = NULL;
- if ((psession = switch_core_session_locate(cmd))) {
- switch_core_session_rwunlock(psession);
- exists = 1;
- }
- }
+ switch_bool_t exists = SWITCH_FALSE;
+
+ if (cmd) {
+ exists = switch_ivr_uuid_exists(cmd);
+ }
stream->write_function(stream, "%s", exists ? "true" : "false");
br_a = switch_channel_get_variable(channel_a, SWITCH_SIGNAL_BOND_VARIABLE);
br_b = switch_channel_get_variable(channel_b, SWITCH_SIGNAL_BOND_VARIABLE);
+ if (!switch_ivr_uuid_exists(br_a)) {
+ br_a = NULL;
+ }
+
+ if (!switch_ivr_uuid_exists(br_b)) {
+ br_b = NULL;
+ }
+
if (switch_channel_test_flag(channel_b, CF_ORIGINATOR)) {
switch_core_session_t *a_session;
return status;
}
+SWITCH_DECLARE(switch_bool_t) switch_ivr_uuid_exists(const char *uuid)
+{
+ switch_bool_t exists = SWITCH_FALSE;
+ switch_core_session_t *psession = NULL;
+
+ if ((psession = switch_core_session_locate(uuid))) {
+ switch_core_session_rwunlock(psession);
+ exists = 1;
+ }
+
+ return exists;
+}
+
+
/* For Emacs:
* Local Variables:
* mode:c