update diversion features
This commit is contained in:
parent
9917c4eab9
commit
d5d7b96910
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue