update diversion features

This commit is contained in:
Werner Cornelius 2001-06-10 22:17:30 +00:00
parent 9917c4eab9
commit d5d7b96910
2 changed files with 14 additions and 4 deletions

View File

@ -100,6 +100,9 @@ static void deflect_timer_expire(ulong arg)
restore_flags(flags);
break;
case NETWORK_DIAL:
divert_if.dial_net_name(cs->deflect_dest);
case DEFLECT_AUTODEL:
default:
save_flags(flags);
@ -467,6 +470,7 @@ int isdn_divert_icall(isdn_ctrl *ic)
case DEFLECT_PROCEED:
case DEFLECT_REPORT:
case DEFLECT_REJECT:
case NETWORK_DIAL:
if (dv->rule.action == DEFLECT_PROCEED)
if ((!if_used) || ((!extern_wait_max) && (!dv->rule.waittime)))
return(0); /* no external deflection needed */
@ -510,6 +514,11 @@ int isdn_divert_icall(isdn_ctrl *ic)
else
{ cs->deflect_dest[0] = '\0';
retval = 4; /* only proceed */
if (cs->akt_state == NETWORK_DIAL) {
strcpy(cs->deflect_dest,dv->rule.to_nr);
cs->timer.expires = jiffies + 10;
retval = 0;
}
}
sprintf(cs->info,"%d 0x%lx %s %s %s %s 0x%x 0x%x %d %d %s\n",
cs->akt_state,
@ -530,7 +539,6 @@ int isdn_divert_icall(isdn_ctrl *ic)
return((dv->rule.action == DEFLECT_REPORT) ? 0:2); /* nothing to do */
}
break;
default:
return(0); /* ignore call */
break;

View File

@ -49,9 +49,10 @@
#define DEFLECT_PROCEED 2 /* deflect when externally triggered */
#define DEFLECT_ALERT 3 /* alert and deflect after delay */
#define DEFLECT_REJECT 4 /* reject immediately */
#define DIVERT_ACTIVATE 5 /* diversion activate */
#define DIVERT_DEACTIVATE 6 /* diversion deactivate */
#define DIVERT_REPORT 7 /* interrogation result */
#define NETWORK_DIAL 5 /* dial a network interface */
#define DIVERT_ACTIVATE 16 /* diversion activate */
#define DIVERT_DEACTIVATE 17 /* diversion deactivate */
#define DIVERT_REPORT 18 /* interrogation result */
#define DEFLECT_AUTODEL 255 /* only for internal use */
#define DEFLECT_ALL_IDS 0xFFFFFFFF /* all drivers selected */
@ -73,6 +74,7 @@ typedef struct
2 = report call, send proceed, wait max waittime secs
3 = report call, alert and deflect after waittime
4 = report call, reject immediately
5 = dial net interface specified in to_nr
actions 1-2 only take place if interface is opened
*/
u_char waittime; /* maximum wait time for proceeding */