Fix Suspend/Resume

This commit is contained in:
Karsten Keil 1999-07-25 16:18:32 +00:00
parent e818667ebb
commit 8fb3b41b82
4 changed files with 34 additions and 17 deletions

View File

@ -149,6 +149,8 @@ README for the ISDN-subsystem
AT&X0 BTX-mode and T.70-mode off (default)
AT&X1 BTX-mode on. (S13.1=1, S13.5=0 S14=0, S16=7, S18=7, S19=0)
AT&X2 T.70-mode on. (S13.1=1, S13.5=1, S14=0, S16=7, S18=7, S19=0)
AT+Rx Resume a suspended call with CallID x (x = 1,2,3...)
AT+Sx Suspend a call with CallID x (x = 1,2,3...)
For voice-mode commands refer to README.audio

View File

@ -1,6 +1,9 @@
/* $Id$
* $Log$
* Revision 2.4 1999/07/01 08:11:54 keil
* Common HiSax version for 2.0, 2.1, 2.2 and 2.3 kernel
*
* Revision 2.3 1998/11/15 23:55:06 keil
* changes from 2.0
*
@ -31,7 +34,7 @@
*/
#define SBIT(state) (1<<state)
#define ALL_STATES 0x00ffffff
#define ALL_STATES 0x03ffffff
#define PROTO_DIS_EURO 0x08

View File

@ -13,6 +13,9 @@
* Fritz Elfert
*
* $Log$
* Revision 2.16 1999/07/21 14:46:23 keil
* changes from EICON certification
*
* Revision 2.14 1999/07/09 08:30:08 keil
* cosmetics
*
@ -2628,7 +2631,7 @@ l3dss1_resume_req(struct l3_process *pc, u_char pr, void *arg)
memcpy(skb_put(skb, l), tmp, l);
l3_msg(pc->st, DL_DATA | REQUEST, skb);
newl3state(pc, 17);
L3AddTimer(&pc->timer, T319, CC_T319);
L3AddTimer(&pc->timer, T318, CC_T318);
}
static void
@ -2863,17 +2866,17 @@ static struct stateentry datastatelist[] =
{SBIT(2) | SBIT(3),
MT_PROGRESS, l3dss1_progress},
{SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(10) |
SBIT(11) | SBIT(12) | SBIT(15) | SBIT(17) | SBIT(19),
SBIT(11) | SBIT(12) | SBIT(15) | SBIT(17) | SBIT(19) | SBIT(25),
MT_INFORMATION, l3dss1_information},
{SBIT(10) | SBIT(11) | SBIT(15),
MT_NOTIFY, l3dss1_notify},
{SBIT(0) | SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(10) |
SBIT(11) | SBIT(12) | SBIT(15) | SBIT(17) | SBIT(19),
SBIT(11) | SBIT(12) | SBIT(15) | SBIT(17) | SBIT(19) | SBIT(25),
MT_RELEASE_COMPLETE, l3dss1_release_cmpl},
{SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(10) | SBIT(11) | SBIT(12) | SBIT(15) /* | SBIT(17) | SBIT(19)*/,
{SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(10) | SBIT(11) | SBIT(12) | SBIT(15) | SBIT(17) | SBIT(25),
MT_RELEASE, l3dss1_release},
{SBIT(19), MT_RELEASE, l3dss1_release_ind},
{SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(10) | SBIT(11) | SBIT(15),
{SBIT(1) | SBIT(2) | SBIT(3) | SBIT(4) | SBIT(7) | SBIT(8) | SBIT(9) | SBIT(10) | SBIT(11) | SBIT(15) | SBIT(17) | SBIT(25),
MT_DISCONNECT, l3dss1_disconnect},
// {SBIT(11),
// MT_DISCONNECT, l3dss1_release_req},
@ -3253,8 +3256,3 @@ setstack_dss1(struct PStack *st)
strcpy(tmp, dss1_revision);
printk(KERN_INFO "HiSax: DSS1 Rev. %s\n", HiSax_getrev(tmp));
}

View File

@ -20,6 +20,11 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.69 1999/07/25 12:56:15 armin
* isdn_tty_at_cout() now queues the message if online and
* data is in queue or flip buffer is full.
* needed for fax connections.
*
* Revision 1.68 1999/07/11 17:51:51 armin
* Bugfix, "-" was missing for AT&L settings.
*
@ -1140,11 +1145,11 @@ isdn_tty_resume(char *id, modem_info * info, atemu * m)
cmd.parm.cmsg.para[5] = l;
strncpy(&cmd.parm.cmsg.para[6], id, l);
cmd.command =CAPI_PUT_MESSAGE;
/* info->dialing = 1;
strcpy(dev->num[i], n);
info->dialing = 1;
// strcpy(dev->num[i], n);
isdn_info_update();
*/
isdn_command(&cmd);
isdn_timer_ctrl(ISDN_TIMER_CARRIER, 1);
}
}
@ -2330,8 +2335,15 @@ isdn_tty_match_icall(char *cid, atemu *emu, int di)
break;
}
return ret;
} else
return isdn_wildmat(cid, isdn_map_eaz2msn(emu->msn, di));
} else {
int tmp;
tmp = isdn_wildmat(cid, isdn_map_eaz2msn(emu->msn, di));
#ifdef ISDN_DEBUG_MODEM_ICALL
printk(KERN_DEBUG "m_fi: mmsn=%s -> tmp=%d\n",
isdn_map_eaz2msn(emu->msn, di), tmp);
#endif
return tmp;
}
}
/*
@ -2383,7 +2395,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm setup)
(info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
idx = isdn_dc2minor(di, ch);
#ifdef ISDN_DEBUG_MODEM_ICALL
printk(KERN_DEBUG "m_fi: match1\n");
printk(KERN_DEBUG "m_fi: match1 wret=%d\n", wret);
printk(KERN_DEBUG "m_fi: idx=%d flags=%08lx drv=%d ch=%d usg=%d\n", idx,
info->flags, info->isdn_driver, info->isdn_channel,
dev->usage[idx]);
@ -3993,8 +4005,10 @@ isdn_tty_parse_at(modem_info * info)
isdn_tty_suspend(ds, info, m);
break;
case 'R': /* RESUME */
p++;
isdn_tty_get_msnstr(ds, &p);
isdn_tty_resume(ds, info, m);
break;
case 'M': /* MESSAGE */
p++;
isdn_tty_send_msg(info, m, p);