memcpy(&redirinfo, &e_redirinfo, sizeof(redirinfo));
memset(&dialinginfo, 0, sizeof(dialinginfo));
dialinginfo.itype = INFO_ITYPE_ISDN;
- dialinginfo.sending_complete = 0;
+// dialinginfo.sending_complete = 0;
SCPY(dialinginfo.id, e_extdialing);
/* process prefix */
/* process number complete */
if ((rparam = routeparam(e_action, PARAM_COMPLETE)))
- if ((rparam = routeparam(e_action, PARAM_PREFIX)))
- SCPY(dialinginfo.id, rparam->string_value);
dialinginfo.sending_complete = 1;
/* process number type */
/* add or update outgoing call */
trace_header("ACTION extern (calling)", DIRECTION_NONE);
add_trace("number", NULL, dialinginfo.id);
+ if (dialinginfo.sending_complete)
+ add_trace("number", "complete", "yes");
if (dialinginfo.interfaces[0])
add_trace("interfaces", NULL, dialinginfo.interfaces);
end_trace();
int iWaitStatus;
char *command = (char *)"";
char isdn_port[10];
- char *argv[11]; /* check also number of args below */
+ char *argv[12]; /* check also number of args below */
int i = 0;
/* get script / command */
end_trace();
return;
}
+#if 0
argv[i++] = (char *)"/bin/sh";
argv[i++] = (char *)"-c";
argv[i++] = command;
+#endif
argv[i++] = command;
if ((rparam = routeparam(e_action, PARAM_PARAM))) {
argv[i++] = rparam->string_value;
argv[i++] = e_callerinfo.name;
SPRINT(isdn_port, "%d", e_callerinfo.isdn_port);
argv[i++] = isdn_port;
+ argv[i++] = e_callerinfo.imsi;
argv[i++] = NULL; /* check also number of args above */
switch (pid = fork ()) {
case -1:
case 0:
/* To be shure there are no zombies created double fork */
if ((pid2 = fork()) == 0) {
- execve("/bin/sh", argv, environ);
+ execve(command, argv, environ);
}
else {
/* Exit immediately and release the waiting parent. The subprocess falls to init because the parent died */