"notbusy=<extension>[,...]","Matches if any of the given extension is not busy."},
{ "remote", MATCH_REMOTE, COND_TYPE_STRING,
"remote=<application name>","Matches if remote application is running."},
- { "notremote", MATCH_NOTREMOTE,COND_TYPE_NULL,
+ { "notremote", MATCH_NOTREMOTE,COND_TYPE_STRING,
"notremote=<application name>","Matches if remote application is not running."},
{ NULL, 0, 0, NULL}
};
{ PARAM_APPLICATION,
"application",PARAM_TYPE_STRING,
"application=<name>", "Name of remote application to make call to."},
+ { PARAM_CONTEXT,
+ "context", PARAM_TYPE_STRING,
+ "context=<context>", "Give context parameter to the remote application."},
{ PARAM_EXTEN,
"exten", PARAM_TYPE_STRING,
- "exten=<extension>", "Give exten parameter to the remote application."},
+ "exten=<extension>", "Give exten parameter to the remote application. (overrides dialed number)"},
{ 0, NULL, 0, NULL, NULL}
};
"Same as 'extern'"},
{ ACTION_REMOTE,
"remote", &EndpointAppPBX::action_init_remote, &EndpointAppPBX::action_dialing_remote, &EndpointAppPBX::action_hangup_call,
- PARAM_CONNECT | PARAM_APPLICATION | PARAM_EXTEN | PARAM_TIMEOUT,
+ PARAM_CONNECT | PARAM_APPLICATION | PARAM_CONTEXT | PARAM_EXTEN | PARAM_TIMEOUT,
"Call is routed to Remote application, like Asterisk."},
{ ACTION_VBOX_RECORD,
"vbox-record",&EndpointAppPBX::action_init_call, &EndpointAppPBX::action_dialing_vbox_record, &EndpointAppPBX::action_hangup_call,
/*
* parse ruleset
*/
-static char *read_string(char *p, char *key, int key_size, char *special)
+static char *read_string(char *p, char *key, int key_size, const char *special)
{
key[0] = 0;
/*
* return ruleset by name
*/
-struct route_ruleset *getrulesetbyname(char *name)
+struct route_ruleset *getrulesetbyname(const char *name)
{
struct route_ruleset *ruleset = ruleset_first;
if (mISDNport->ifport)
if (strlen(mISDNport->ifport->interface->name) == comp_len)
if (!strncasecmp(mISDNport->ifport->interface->name, cond->string_value, comp_len))
- if (!mISDNport->l2hold || mISDNport->l2link)
+ if (!mISDNport->l2hold || mISDNport->l2link>0)
{
j = 0;
jj = mISDNport->b_num;
{
if (mISDNport->ifport)
if (!strcasecmp(mISDNport->ifport->interface->name, cond->string_value))
- if (!mISDNport->l2hold || mISDNport->l2link)
+ if (!mISDNport->l2hold || mISDNport->l2link>0)
break;
mISDNport = mISDNport->next;
}
{
if (mISDNport->ifport)
if (!strcasecmp(mISDNport->ifport->interface->name, cond->string_value))
- if (!mISDNport->l2hold || mISDNport->l2link)
+ if (!mISDNport->l2hold || mISDNport->l2link>0)
break;
mISDNport = mISDNport->next;