jstring digits = NULL;
jint res;
jstring callbackResult = NULL;
- switch_status_t status;
+ switch_status_t status = SWITCH_STATUS_FALSE;
if (cb_state.function == NULL)
{
onDTMF = env->GetMethodID(klass, "onDTMF", "(Ljava/lang/Object;ILjava/lang/String;)Ljava/lang/String;");
if (onDTMF == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto done;
}
digits = env->NewStringUTF((char*)input);
if (digits == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto done;
}
callbackResult = (jstring) env->CallObjectMethod((jobject)cb_state.function, onDTMF, digits, itype, (jstring)cb_state.funcargs);
status = process_callback_result((char*) callbackResultUTF);
env->ReleaseStringUTFChars(callbackResult, callbackResultUTF);
}
- else
- status = SWITCH_STATUS_FALSE;
}
else if (itype == SWITCH_INPUT_TYPE_EVENT)
{
env->FindClass("org/freeswitch/Event");
if (Event == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
constructor = env->GetMethodID(Event, "<init>", "()V");
if (constructor == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
event = env->CallStaticObjectMethod(Event, constructor);
if (event == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
setBody = env->GetMethodID(Event, "setBody", "(Ljava/lang/String;)V");
if (setBody == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
body = env->NewStringUTF(switch_event->body);
if (body == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
env->CallVoidMethod(event, setBody, body);
addHeader = env->GetMethodID(Event, "addHeader", "(Ljava/lang/String;Ljava/lang/String;)V");
if (addHeader == NULL)
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
for (header = switch_event->headers; header; header = header->next)
env->DeleteLocalRef(value);
if (env->ExceptionOccurred())
{
- status = SWITCH_STATUS_FALSE;
goto cleanup;
}
}
status = process_callback_result((char*) callbackResultUTF);
env->ReleaseStringUTFChars(callbackResult, callbackResultUTF);
}
- else
- status = SWITCH_STATUS_FALSE;
cleanup:
if (Event != NULL)