PERROR("EPOINT(%d) ringing endpoint's join not found.\n", ea_endpoint->ep_serial);
goto reject;
}
- if (joinpbx->j_type != JOIN_TYPE_PBX)
+ if (join->j_type != JOIN_TYPE_PBX)
{
PDEBUG(DEBUG_EPOINT, "EPOINT(%d) ringing endpoint's join is not a PBX join, so we must reject.\n", ea_endpoint->ep_serial);
goto reject;
dialing=1 : extern capability=digital-unrestricted
dialing=200-299 : intern
dialing=3 : pick
-dialing=5 : reply
+dialing=5 enblock : reply
+dialing=5 : reply select
dialing=6 enblock : redial
dialing=6 : redial select
-dialing=7 enblock : abbrev
-dialing=7 : abbrev select
+dialing=7 : abbrev
dialing=80 : vbox-play
dialing=81 : partyline room=42
dialing=90 : powerdial
struct route_param *param;
struct route_param **param_pointer = NULL;
char failure[256];
+ unsigned long long allowed_params;
/* check the integrity of IDs for ACTION_* and PARAM_* */
i = 0;
SPRINT(failure, "Unknown action name '%s'.", key);
goto parse_error;
}
+ allowed_params = action_defs[index].params;
/* alloc memory for action */
action = (struct route_action *)MALLOC(sizeof(struct route_action));
goto parse_error;
}
+ /* check if item is allowed for the action */
+ if (!(param_defs[index].id & allowed_params))
+ {
+ SPRINT(failure, "Param name '%s' exists, but not for this action.", key);
+ goto parse_error;
+ }
+
/* params without values must not have any parameter */
if (param_defs[index].type == PARAM_TYPE_NULL)
{