Make sure you have the latest FW in ELU32
and in the ip-phones and SP13 .
ELU32:VOIPFR2D
D3 IP-phone:
Boot R4A
config R6J
Appl R6J
D4 IP-phone
Boot R2A
Appl R2B
config R2C
lang R2A
And patch for using VOIPFR2D in BC11 .
[tt]
/*======================================================================*/
/* ASSEMBLY SOLUTION : */
PCPAS:UNIT=IPLP,CI=S99247A;
Y;
PCASE:UNIT=IPLP,CI=S99247A;
Y;
PCPAS:UNIT=IPLP,CI=S95910A;
Y;
PCASE:UNIT=IPLP,CI=S95910A;
Y;
PCPAS:UNIT=IPLP,CI=S98895A;
Y;
PCASE:UNIT=IPLP,CI=S98895A;
Y;
PCPAS:UNIT=IPLP,CI=S99229A;
Y;
PCASE:UNIT=IPLP,CI=S99229A;
Y;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=30AAE,RA=30B08;
MOVE.B ($763,A6),(A5)+; ! SEND ACTVTELUIP TO SPU3 !
MOVE.B ($764,A6),(A5)+;
MOVE.B ($765,A6),(A5)+;
MOVE.B ($766,A6),(A5)+;
MOVE.B ($767,A6),(A5)+;
MOVE.B ($768,A6),(A5)+;
MOVE.B ($769,A6),(A5)+;
MOVE.B ($76A,A6),(A5)+;
CLR.B (A5)+; ! Ethernet negotiation !
TRAPT.W #$0409;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=31FC4,RA=31FCA,BYTE=6;
MOVE.B #40,($763,A6); ! BEGIN PREPARE_DATA_ACTVTELUIP !
MOVE.B #10,($764,A6);
MOVE.B #80,($765,A6);
MOVE.B #20,($766,A6);
MOVE.B #30,($767,A6);
MOVE.B #10,($768,A6);
MOVE.B #80,($769,A6);
MOVE.B #20,($76A,A6);
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=2D6F4,RA=2D6FE;
MOVEA.L (($4A+2),A6),A2; ! ENTER IDENTY !
MOVE.L A2,D6;
TRAPEQ.W #QFP;
MOVE.B ($32,A2),($5FA,A6);
JSR PROGSTART+$30A22; ! DO SEND_ACTIVATEANS !
MOVEQ #0,D2;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D6;
TRAPEQ.W #QFP;
MOVE.B D2,($46,A5); ! INF1P:congestion_flag = NOTCONGESTED !
MOVE.B D2,($45,A5); ! INF1P:running_autorestart = NO !
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,SIGNO=17,RA=2ACDC;
TRAPT.W #$0613; ! ENTER CNGVOIPINF WITH !
MOVE.W (A5)+,($338,A6); ! T_Inf1p !
MOVE.B (A5)+,($147,A6); ! T_DataArray(0) !
MOVE.B (A5)+,(($147+1),A6); ! T_DataArray(1) !
MOVE.B (A5)+,(($147+2),A6); ! T_DataArray(2) !
MOVE.B (A5)+,(($147+3),A6); ! T_DataArray(3) !
MOVE.B (A5)+,(($147+4),A6); ! T_DataArray(4) !
MOVE.B (A5)+,(($147+5),A6); ! T_DataArray(5) !
MOVE.B (A5)+,(($147+6),A6); ! T_DataArray(6) !
MOVE.W ($338,A6),D5;
MOVE.W D5,($4A,A6);
SUBA.L A3,A3;
SUBA.L A4,A4;
CMP.W ($88,A1),D5;
BCC L7338;
MOVE.W D5,D7;
MULU.W #$56,D5;
MOVEA.L A0,A3;
ADDA.L ($90,A1),A3;
LEA.L (0,A3,D5.L),A3;
MULU.W #$23,D7;
MOVEA.L A1,A4;
ADDA.L ($8A,A1),A4;
LEA.L (0,A4,D7.L),A4;
L7338:;
MOVEM.L A3/A4,(($4A+2),A6);
MOVE.B ($147,A6),D6;
CMP.B #$00,D6; ! GREEN_CONGESTION_LEVEL ? !
BNE CHECKLEVELS;
TRAPT.W #QEXIT;
CHECKLEVELS:;
CMP.B #$01,D6; ! YELLOW_CONGESTION_LEVEL ? !
BEQ CASE7340;
CMP.B #$02,D6; ! RED_CONGESTION_LEVEL ? !
BEQ CASE7341;
MOVE.B #4,($724,A6);
MOVE.B #98,($660,A6);
MOVE.B #34,($2D9,A6);
MOVE.B ($147,A6),D0;
ANDI.W #$FF,D0;
MOVE.W D0,($34B,A6);
JSR PROGSTART+$2F368; ! DO DEBUG_ILLEGALSTATEB !
TRAPT.W #QEXIT;
BRA ESAC7342;
CASE7340:; ! WHEN YELLOW_CONGESTION_LEVEL DO !
MOVEA.L (($4A+2),A6),A2;
MOVE.L A2,D2;
TRAPEQ.W #QFP;
CMPI.B #1,($46,A2); ! IF INF1P:congestion_flag == CONGESTED THEN !
BNE ELSIF7344;
TRAPT.W #QEXIT; ! EXIT !
ELSIF7344:;
FI7343:;
MOVEQ #1,D6;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D4;
TRAPEQ.W #QFP;
MOVE.B D6,($46,A5); ! INF1P:congestion_flag = CONGESTED !
MOVE.B ($47,A5),D3; ! CASE INF1P:congestion_history_index IS!
CMP.B #$FF,D3; ! WHEN NOTVALID_8 !
BEQ CASE7346;
CMP.B #$01,D3; ! WHEN MAX_CONGESTION_HISTORY_INDEX!
BEQ CASE7346;
ADD.B D6,D3; ! OTHERWISE !
MOVE.B D3,($47,A5); ! INF1P:congestion_history_index++!
BRA ESAC7347;
CASE7346:;
MOVEQ #0,D1;
MOVEA.L (($4A+2),A6),A3;
MOVE.L A3,D0;
TRAPEQ.W #QFP;
MOVE.B D1,($47,A3);
ESAC7347:;
CLR.W ($12E,A6);
BRA L27350;
LOOPBODY7349:;
MOVEQ #6,D5;
MOVE.W ($12E,A6),D7;
CMP.W D7,D5;
BLS NO7348;
ADD.W #1,D7;
MOVE.W D7,($12E,A6);
L27350:;
CLR.L D6;
MOVE.W ($12E,A6),D6;
CMP.L #255,D6;
TRAPHI.W #QFI;
MOVE.B ($147,A6,D6.L),D3;
MOVEA.L (($4A+2),A6),A4;
MOVE.L A4,D0;
TRAPEQ.W #QFP;
MOVEA.L (($4A+2),A6),A2;
MOVE.L A2,D1;
TRAPEQ.W #QFP;
CLR.L D2;
MOVE.B ($47,A2),D2;
CMP.L #1,D2;
TRAPHI.W #QFI;
MULU.L #7,D2;
LEA ($48,A4,D2.L),A5;
CMP.L #6,D6;
TRAPHI.W #QFI;
MOVE.B D3,(0,A5,D6.L);
BRA LOOPBODY7349;
NO7348:;
MOVEQ #0,D5;
MOVEA.L (($4A+2),A6),A3;
MOVE.L A3,D4;
TRAPEQ.W #QFP;
CMP.W ($3C,A3),D5; ! INF1P:num_of_active_EPs /= 0 ? !
BEQ ESAC7342;
TRAPT.W #QEXIT;
ELSIF7353:;
FI7352:;
CASE7341:;
MOVEQ #1,D0;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D1;
TRAPEQ.W #QFP;
MOVE.B D0,($46,A5);
MOVE.B ($47,A5),D3;
CMP.B #$FF,D3;
BEQ CASE7355;
CMP.B #$01,D3;
BEQ CASE7355;
ADD.B D0,D3;
MOVE.B D3,($47,A5);
BRA ESAC7356;
CASE7355:;
MOVEQ #0,D2;
MOVEA.L (($4A+2),A6),A4;
MOVE.L A4,D6;
TRAPEQ.W #QFP;
MOVE.B D2,($47,A4);
ESAC7356:;
CLR.W ($12E,A6);
BRA L27359;
LOOPBODY7358:;
MOVEQ #6,D5;
MOVE.W ($12E,A6),D7;
CMP.W D7,D5;
BLS NO7357;
ADD.W #1,D7;
MOVE.W D7,($12E,A6);
L27359:;
CLR.L D0;
MOVE.W ($12E,A6),D0;
CMP.L #255,D0;
TRAPHI.W #QFI;
MOVE.B ($147,A6,D0.L),D3;
MOVEA.L (($4A+2),A6),A2;
MOVE.L A2,D6;
TRAPEQ.W #QFP;
MOVEA.L (($4A+2),A6),A3;
MOVE.L A3,D2;
TRAPEQ.W #QFP;
CLR.L D4;
MOVE.B ($47,A3),D4;
CMP.L #1,D4;
TRAPHI.W #QFI;
MULU.L #7,D4;
LEA ($48,A2,D4.L),A5;
CMP.L #6,D0;
TRAPHI.W #QFI;
MOVE.B D3,(0,A5,D0.L);
BRA LOOPBODY7358;
NO7357:;
ESAC7342:;
MOVEQ #1,D5;
MOVEA.L (($4A+2),A6),A4;
MOVE.L A4,D1;
TRAPEQ.W #QFP;
MOVE.W ($25,A4),D7;
BFINS D5,D7{25:1};
MOVE.W D7,($25,A4); ! INF1P:blocked_ds.StartRestart = YES !
CNGVOIPINF_100:;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D6;
TRAPEQ.W #QFP;
CMPI.B #1,($45,A5); ! INF1P:running_autorestart == YES ? !
BNE ELSIF7362;
TRAPT.W #QEXIT;
ELSIF7362:;
FI7361:;
MOVE.B #1,($45,A5); ! INF1P:running_autorestart = YES !
JSR PROGSTART+$309EE; ! DO SEND_ACTBOARDREQ !
TRAPT.W #QEXIT;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=1A582,RA=1A5A2,BYTE=6;
CMP.B D1,D3; ! OLD CODE: INF1P:blocked_ds.ManIndivReq == YES ? !
BNE CHECKCONGESTIONFLAG; ! SUBROUTINE DEC_INTERF_TRAFFIC_INFO !
JMP PROGSTART+$1A58C;
CHECKCONGESTIONFLAG:;
MOVEA.L ($004C,A6),A4;
MOVE.L A4,D7;
TRAPEQ.W #QFP;
CMPI.B #1,($46,A4); ! congestion_flag == CONGESTED ? !
BNE OUT;
TRAPT.W #QSSBEGIN;
MOVE.W ($4A,A6),(A5)+; ! INF1P -> (A5) !
MOVE.W #$1B,D0; ! SIGNALNUMBER -> D0 !
MOVE.W ($354,A0),D1; ! C_OWNUNIT -> D1 !
MOVE.B ($353,A0),D2; ! C_OWNLIMNO -> D2 !
TRAPT.W #$0201; ! SEND CNGBRDREL !
MOVEQ #1,D2;
MOVEA.L ($4C,A6),A3;
MOVE.L A3,D4;
TRAPEQ.W #QFP;
MOVE.W ($25,A3),D1; ! blocked_ds -> D1 !
BFINS D2,D1{25:1}; ! blocked_ds.StartRestart = YES !
MOVE.W D1,($25,A3); ! D1 ->blocked_ds !
OUT:;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,SIGNO=1B,RA=2ACDC;
TRAPT.W #$0213; ! ENTER CNGBRDREL WITH !
MOVE.W (A5)+,($338,A6); ! T_Inf1p !
MOVE.W ($338,A6),D3;
MOVE.W D3,($4A,A6);
SUBA.L A3,A3;
SUBA.L A4,A4;
CMP.W ($88,A1),D3;
BCC L7364;
MOVE.W D3,D2;
MULU.W #$56,D3;
MOVEA.L A0,A3;
ADDA.L ($90,A1),A3;
LEA.L (0,A3,D3.L),A3;
MULU.W #$23,D2;
MOVEA.L A1,A4;
ADDA.L ($8A,A1),A4;
LEA.L (0,A4,D2.L),A4;
L7364:;
MOVEM.L A3/A4,(($4A+2),A6);
CNGVOIPINF_100:;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D6;
TRAPEQ.W #QFP;
CMPI.B #1,($45,A5); ! INF1P:running_autorestart == YES ? !
BNE ELSIF7362;
TRAPT.W #QEXIT;
ELSIF7362:;
MOVE.B #1,($45,A5); ! INF1P:running_autorestart = YES !
JSR PROGSTART+$309EE; ! DO SEND_ACTBOARDREQ !
TRAPT.W #QEXIT;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=228AE,RA=228B6,BYTE=8;
MOVEQ #0,D1; ! SUBROUTINE RELEASE_MULTNO !
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D2;
TRAPEQ.W #QFP;
CMP.W ($3C,A5),D1;
BNE ELSIF6250;
MOVE.W ($25,A5),D4;
BFEXTU D4{22:1},D3;
MOVEQ #1,D7;
CMP.B D7,D3;
BNE ELSIF6252;
MOVE.W ($25,A5),D0;
BFINS D7,D0{24:1};
MOVE.W D0,($25,A5);
MOVEQ #0,D5;
BFINS D5,D0{22:1};
MOVE.W D0,($25,A5);
ELSIF6252:;
FI6251:;
MOVEA.L (($4A+2),A6),A2;
MOVE.L A2,D2;
TRAPEQ.W #QFP;
MOVE.W ($25,A2),D1;
BFEXTU D1{23:1},D4;
MOVEQ #1,D5;
CMP.B D5,D4;
BNE ELSIF6254;
MOVE.W ($25,A2),D7;
BFINS D5,D7{31:1};
MOVE.W D7,($25,A2);
MOVEQ #0,D6;
BFINS D6,D7{23:1};
MOVE.W D7,($25,A2);
ELSIF6254:;
FI6253:;
MOVEA.L (($4A+2),A6),A4;
MOVE.L A4,D3;
TRAPEQ.W #QFP;
CMPI.B #1,($46,A4);
BNE ELSIF6256;
TRAPT.W #QSSBEGIN;
MOVE.W ($4A,A6),(A5)+; ! INF1P -> (A5) !
MOVE.W #$1B,D0; ! SIGNALNUMBER -> D0 !
MOVE.W ($354,A0),D1; ! C_OWNUNIT -> D1 !
MOVE.B ($353,A0),D2; ! C_OWNLIMNO -> D2 !
TRAPT.W #$0201; ! SEND CNGBRDREL !
MOVEQ #1,D1;
MOVEA.L (($4A+2),A6),A3;
MOVE.L A3,D6;
TRAPEQ.W #QFP;
MOVE.W ($25,A3),D5;
BFINS D1,D5{25:1}; ! blocked_ds.StartRestart = YES !
MOVE.W D5,($25,A3);
ELSIF6256:;
FI6255:;
ELSIF6250:;
FI6249:;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=3065C,RA=3066C,BYTE=16;
CLR.B ($45,A4); ! RESET_INTERFACE_DATA_DS:INF1P:running_autorestart = NO !
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=306CA,RA=306D2,BYTE=8;
CLR.B ($46,A5); ! RESET_INTERFACE_DATA_DS : LOOP !
MOVE.B #$FF,($47,A5);
CLR.B ($331,A6);
BRA L28122;
LOOPBODY8121:;
MOVE.B ($331,A6),D6;
MOVEQ #1,D2;
CMP.B D2,D6;
BCC NO8120;
ADD.B D2,D6;
MOVE.B D6,($331,A6);
L28122:;
CLR.W ($12E,A6);
BRA L28126;
LOOPBODY8125:;
MOVEQ #6,D3;
MOVE.W ($12E,A6),D1;
CMP.W D1,D3;
BLS NO8124;
ADD.W #1,D1;
MOVE.W D1,($12E,A6);
L28126:;
MOVE.W #255,D0;
MOVEA.L (($4A+2),A6),A3;
MOVE.L A3,D5;
TRAPEQ.W #QFP;
CLR.L D2;
MOVE.B ($331,A6),D2;
CLR.L D6;
MOVE.W ($12E,A6),D6;
CMP.L #1,D2;
TRAPHI.W #QFI;
MULU.L #7,D2;
LEA ($48,A3,D2.L),A4;
CMP.L #6,D6;
TRAPHI.W #QFI;
MOVE.B D0,(0,A4,D6.L);
BRA LOOPBODY8125;
NO8124:;
BRA LOOPBODY8121;
NO8120:;
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=30758,RA=30780;
END; ! RESET_INTERFACE_DATA_DS !
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=2D876,RA=2D886;
MOVE.B #1,($626,A6); ! ENTER TESTFUNCRES!
MOVE.B ($32,A2),($5FA,A6);
JSR PROGSTART+$30A22; ! DO SEND_ACTIVATEANS !
MOVEQ #0,D2;
MOVEA.L (($4A+2),A6),A5;
MOVE.L A5,D6;
TRAPEQ.W #QFP;
MOVE.B D2,($46,A5); ! INF1P:congestion_flag = NOTCONGESTED !
END;
!A;
PCASI:UNIT=IPLP,REV=1-R17A,CI=S101173A,IA=2E678,RA=2E688;
MOVE.B #2,($626,A6); ! ENTER CTMOUTB !
MOVE.B ($32,A3),($5FA,A6);
CLR.B ($46,A3); ! INF1P:congestion_flag = NOTCONGESTED !
JSR PROGSTART+$30A22; ! DO SEND_ACTIVATEANS !
END;
!A;
PCACS:UNIT=IPLP,CI=S101173A;
Y;
PCCOS:UNIT=IPLP,CI=S101173A;
Y; /*======================================================================*/
[/tt]