Lines Matching defs:ic

207   isdn_ctrl ic;
219 ic.driver = cs->ics.driver;
220 ic.arg = cs->ics.arg;
226 ic.command = ISDN_CMD_HANGUP;
227 i = divert_if.ll_cmd(&ic);
239 ic.command = ISDN_CMD_ALERT;
240 if ((i = divert_if.ll_cmd(&ic)))
256 ic.command = ISDN_CMD_REDIR;
257 if ((i = divert_if.ll_cmd(&ic)))
388 static int isdn_divert_icall(isdn_ctrl *ic)
399 if (((dv->rule.callopt == 1) && (ic->command == ISDN_STAT_ICALLW)) ||
400 ((dv->rule.callopt == 2) && (ic->command == ISDN_STAT_ICALL)))
402 if (!(dv->rule.drvid & (1L << ic->driver)))
404 if ((dv->rule.si1) && (dv->rule.si1 != ic->parm.setup.si1))
406 if ((dv->rule.si2) && (dv->rule.si2 != ic->parm.setup.si2))
410 p1 = ic->parm.setup.eazmsn;
425 if ((strcmp(dv->rule.caller,"0")) || (ic->parm.setup.phone[0]))
427 p1 = ic->parm.setup.phone;
462 cs->ics = *ic; /* copy incoming data */
481 { strcpy(ic->parm.setup.eazmsn,"Testtext direct");
482 ic->parm.setup.screen = dv->rule.screen;
483 strlcpy(ic->parm.setup.phone, dv->rule.to_nr, sizeof(ic->parm.setup.phone));
499 (ic->command == ISDN_STAT_ICALLW) ? "1":"0",
600 static int interrogate_success(isdn_ctrl *ic, struct call_struc *cs)
601 { char *src = ic->parm.dss1_io.data;
602 int restlen = ic->parm.dss1_io.datalen;
655 sprintf(stp,"%d 0x%lx %d %s ",DIVERT_REPORT, ic->parm.dss1_io.ll_id,
656 cnt++,divert_if.drv_to_name(ic->driver));
694 static int prot_stat_callback(isdn_ctrl *ic)
702 { if (ic->driver == cs->ics.driver)
705 if ((cs->ics.parm.dss1_io.ll_id == ic->parm.dss1_io.ll_id) &&
706 (cs->ics.parm.dss1_io.hl_id == ic->parm.dss1_io.hl_id))
707 { switch (ic->arg)
710 ic->parm.dss1_io.ll_id,
711 ic->parm.dss1_io.timeout);
723 i = interrogate_success(ic,cs);
726 ic->parm.dss1_io.ll_id,i);
739 printk(KERN_WARNING "dss1_divert unknown invoke answer %lx\n",ic->arg);
786 static int isdn_divert_stat_callback(isdn_ctrl *ic)
794 { if ((ic->driver == cs->ics.driver) && (ic->arg == cs->ics.arg))
795 { switch (ic->command)
803 sprintf(cs->info,"130 0x%lx %s\n",cs->divert_id,ic->parm.num);
813 sprintf(cs->info,"999 0x%lx 0x%x\n",cs->divert_id,(int)(ic->command));
841 int ll_callback(isdn_ctrl *ic)
843 switch (ic->command)
846 return(isdn_divert_icall(ic));
850 if ((ic->arg & 0xFF) == ISDN_PTYPE_EURO)
851 { if (ic->arg != DSS1_STAT_INVOKE_BRD)
852 return(prot_stat_callback(ic));
860 return(isdn_divert_stat_callback(ic));