Added redirecting number.

NOTE:  mISDNuser  and all applications must be recompiled!!!

Modified Files:
	mISDN/drivers/isdn/hardware/mISDN/dss1.h
	mISDN/drivers/isdn/hardware/mISDN/l3_udss1.c
	mISDN/drivers/isdn/hardware/mISDN/l3helper.c
	mISDN/include/linux/mISDNif.h
This commit is contained in:
Andreas Eversberg 2006-12-27 18:50:50 +00:00
parent d300bb238d
commit 19a3869229
4 changed files with 13 additions and 9 deletions

View File

@ -109,6 +109,7 @@
#define IE_CALLED_PN 0x70
#define IE_CALLED_SUB 0x71
#define IE_REDIR_NR 0x74
#define IE_REDIR_DN 0x76
#define IE_TRANS_SEL 0x78
#define IE_RESTART_IND 0x79
#define IE_LLC 0x7c

View File

@ -245,7 +245,7 @@ compose_msg(struct sk_buff *skb, Q931_info_t *qi)
*p = buf[qi->congestion_level.off];
}
ie = &qi->bearer_capability;
for (i=0; i<32; i++) {
for (i=0; i<33; i++) {
if (ie[i].off) {
l = buf[ie[i].off + 1] +1;
p = skb_put(skb, l + 1);
@ -414,10 +414,10 @@ l3dss1_msg_without_setup(l3_process_t *pc, u_char cause)
}
static int ie_ALERTING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_HLC,
IE_USER_USER, -1};
IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_SIGNAL, IE_REDIR_DN,
IE_HLC, IE_USER_USER, -1};
static int ie_CALL_PROCEEDING[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_HLC, -1};
IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_REDIR_DN, IE_HLC, -1};
static int ie_CONNECT[] = {IE_BEARER, IE_CHANNEL_ID | IE_MANDATORY_1,
IE_FACILITY, IE_PROGRESS, IE_DISPLAY, IE_DATE, IE_SIGNAL,
IE_CONNECT_PN, IE_CONNECT_SUB, IE_LLC, IE_HLC, IE_USER_USER, -1};
@ -501,6 +501,7 @@ struct ie_len max_ie_len[] = {
{IE_CALLED_PN, 24},
{IE_CALLED_SUB, 23},
{IE_REDIR_NR, 255},
{IE_REDIR_DN, 255},
{IE_TRANS_SEL, 255},
{IE_RESTART_IND, 3},
{IE_LLC, 18},
@ -552,7 +553,7 @@ check_infoelements(l3_process_t *pc, struct sk_buff *skb, int *checklist)
iep = &qi->bearer_capability;
oldpos = -1;
for (i=0; i<32; i++) {
for (i=0; i<33; i++) {
if (iep[i].off) {
ie = mISDN_l3_pos2ie(i);
if ((newpos = ie_in_set(pc, ie, cl))) {

View File

@ -22,14 +22,15 @@ static signed char _mISDN_l3_ie2pos[128] = {
13,-1,14,15,16,17,18,19,-1,-1,-1,-1,20,21,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,23,-1,-1,
24,25,-1,-1,26,-1,-1,-1,27,28,-1,-1,29,30,31,-1
24,25,-1,-1,26,-1,27,-1,28,29,-1,-1,30,31,32,-1
};
static unsigned char _mISDN_l3_pos2ie[32] = {
static unsigned char _mISDN_l3_pos2ie[33] = {
0x04, 0x08, 0x10, 0x14, 0x18, 0x1c, 0x1e, 0x20,
0x27, 0x28, 0x29, 0x2c, 0x34, 0x40, 0x42, 0x43,
0x44, 0x45, 0x46, 0x47, 0x4c, 0x4d, 0x6c, 0x6d,
0x70, 0x71, 0x74, 0x78, 0x79, 0x7c, 0x7d, 0x7e
0x70, 0x71, 0x74, 0x76, 0x78, 0x79, 0x7c, 0x7d,
0x7e
};
signed int
@ -224,7 +225,7 @@ void mISDN_LogL3Msg(struct sk_buff *skb)
ps += L3_EXTRA_SIZE;
printk(KERN_DEBUG "L3Msg type(%02x) qi(%p) ies(%p) ps(%p)\n",
qi->type, qi, ies, ps);
for (i=0;i<32;i++) {
for (i=0;i<33;i++) {
if (ies[i].off) {
p = ps + ies[i].off;
t = tmp;

View File

@ -728,6 +728,7 @@ typedef struct _Q931_info {
ie_info_t called_nr;
ie_info_t called_sub;
ie_info_t redirect_nr;
ie_info_t redirect_dn;
ie_info_t transit_net_sel;
ie_info_t restart_ind;
ie_info_t llc;