** **
\*****************************************************************************/
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
#include "main.h"
{ 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. (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_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,
struct route_rule *rule = ruleset->rule_first;
struct route_cond *cond;
struct route_action *action = NULL;
- unsigned long comp_len;
+ unsigned int comp_len;
int j, jj;
char callerid[64], redirid[64];
int integer;
e_match_timeout = 0; /* no timeout */
e_match_to_action = NULL;
- SCPY(callerid, numberrize_callerinfo(e_callerinfo.id, e_callerinfo.ntype));
- SCPY(redirid, numberrize_callerinfo(e_redirinfo.id, e_redirinfo.ntype));
+ SCPY(callerid, numberrize_callerinfo(e_callerinfo.id, e_callerinfo.ntype, options.national, options.international));
+ SCPY(redirid, numberrize_callerinfo(e_redirinfo.id, e_redirinfo.ntype, options.national, options.international));
PDEBUG(DEBUG_ROUTE, "parsing ruleset '%s'\n", ruleset->name);
while(rule)
case MATCH_FREE:
case MATCH_NOTFREE:
- if (!(comp_len = (unsigned long)strchr(cond->string_value, ':')))
+ if (!(comp_len = (unsigned int)strchr(cond->string_value, ':')))
break;
- comp_len = comp_len-(unsigned long)cond->string_value;
+ comp_len = comp_len-(unsigned int)cond->string_value;
avail = 0;
mISDNport = mISDNport_first;
while(mISDNport)
if (mISDNport->ifport)
if (strlen(mISDNport->ifport->interface->name) == comp_len)
if (!strncasecmp(mISDNport->ifport->interface->name, cond->string_value, comp_len))
- if (!mISDNport->ptp || mISDNport->l2link)
+ if (!mISDNport->l2hold || mISDNport->l2link)
{
j = 0;
jj = mISDNport->b_num;
{
if (mISDNport->ifport)
if (!strcasecmp(mISDNport->ifport->interface->name, cond->string_value))
- if (!mISDNport->ptp || mISDNport->l2link) /* break if one is up */
+ if (!mISDNport->l2hold || mISDNport->l2link)
break;
mISDNport = mISDNport->next;
}
{
if (mISDNport->ifport)
if (!strcasecmp(mISDNport->ifport->interface->name, cond->string_value))
- if (!mISDNport->ptp || mISDNport->l2link) /* break if one is up */
+ if (!mISDNport->l2hold || mISDNport->l2link)
break;
mISDNport = mISDNport->next;
match_string_prefix:
comp_len = strlen(cond->string_value); /* because we must reach value's length */
/* we must have greater or equal length to values */
- if ((unsigned long)strlen(string) < comp_len)
+ if ((unsigned int)strlen(string) < comp_len)
{
/* special case for unfinished dialing */
if (cond->match == MATCH_DIALING)