if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_LOGIN) == SWITCH_STATUS_SUCCESS) {
switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_profile_name", jsock->profile->name);
switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_client_address", jsock->name);
- switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_login", cJSON_GetObjectCstr(params, "login"));
- if (success) {
- switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_sessid", cJSON_GetObjectCstr(params, "sessid"));
+ if (params) {
+ switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_login", cJSON_GetObjectCstr(params, "login"));
+ if (success) {
+ switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_sessid", cJSON_GetObjectCstr(params, "sessid"));
+ }
}
switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "verto_success", "%d", success);
switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "verto_result_txt", result_txt);
*response = obj;
+ if (!params) {
+ cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Params data missing"));
+ err = 1; goto cleanup;
+ }
+
if (!(dialog = cJSON_GetObjectItem(params, "dialogParams"))) {
cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Dialog data missing"));
err = 1; goto cleanup;
*response = obj;
+ if (!params) {
+ cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Params data missing"));
+ err = 1; goto cleanup;
+ }
+
if (!(dialog = cJSON_GetObjectItem(params, "dialogParams"))) {
cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Dialog data missing"));
err = 1; goto cleanup;
*response = obj;
+ if (!params) {
+ cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Params data missing"));
+ err = 1; goto cleanup;
+ }
+
if (!(dialog = cJSON_GetObjectItem(params, "dialogParams"))) {
cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Dialog data missing"));
err = 1; goto cleanup;
switch_bool_t r = SWITCH_TRUE;
char *proto = VERTO_CHAT_PROTO;
char *pproto = NULL;
+ int err = 0;
*response = cJSON_CreateObject();
+ if (!params) {
+ cJSON_AddItemToObject(*response, "message", cJSON_CreateString("Params data missing"));
+ err = 1; goto cleanup;
+ }
+
if ((dialog = cJSON_GetObjectItem(params, "dialogParams")) && (call_id = cJSON_GetObjectCstr(dialog, "callID"))) {
switch_core_session_t *session = NULL;
switch_safe_free(pproto);
}
+ cleanup:
- return r;
+ if (!err) return r;
+
+ cJSON_AddItemToObject(*response, "code", cJSON_CreateNumber(CODE_SESSION_ERROR));
+
+ return SWITCH_FALSE;
}
*response = obj;
+ if (!params) {
+ cJSON_AddItemToObject(obj, "message", cJSON_CreateString("Params data missing"));
+ err = 1; goto cleanup;
+ }
+
if (switch_event_create_plain(&var_event, SWITCH_EVENT_CHANNEL_DATA) != SWITCH_STATUS_SUCCESS) {
err=1; goto cleanup;
}
static switch_bool_t echo_func(const char *method, cJSON *params, jsock_t *jsock, cJSON **response)
{
- *response = cJSON_Duplicate(params, 1);
- return SWITCH_TRUE;
+ if (params) {
+ *response = cJSON_Duplicate(params, 1);
+ return SWITCH_TRUE;
+ }
+
+ *response = cJSON_CreateObject();
+
+ cJSON_AddItemToObject(*response, "message", cJSON_CreateString("Params data missing"));
+ cJSON_AddItemToObject(*response, "code", cJSON_CreateNumber(CODE_SESSION_ERROR));
+
+ return SWITCH_FALSE;
}
static switch_bool_t jsapi_func(const char *method, cJSON *params, jsock_t *jsock, cJSON **response)
static switch_bool_t fsapi_func(const char *method, cJSON *params, jsock_t *jsock, cJSON **response)
{
- cJSON *cmd, *arg, *reply;
+ cJSON *cmd = NULL, *arg = NULL, *reply;
switch_stream_handle_t stream = { 0 };
switch_status_t status = SWITCH_STATUS_SUCCESS;
- cmd = cJSON_GetObjectItem(params, "cmd");
- arg = cJSON_GetObjectItem(params, "arg");
-
+ if (params) {
+ cmd = cJSON_GetObjectItem(params, "cmd");
+ arg = cJSON_GetObjectItem(params, "arg");
+ }
if (cmd && jsock->allowed_fsapi) {
if (cmd->type == cJSON_String && cmd->valuestring && !auth_api_command(jsock, cmd->valuestring, arg ? arg->valuestring : NULL)) {