diff -Naur libiax2.old/src/iax2-parser.c libiax2/src/iax2-parser.c --- libiax2.old/src/iax2-parser.c 2006-02-28 22:29:05.000000000 -0800 +++ libiax2/src/iax2-parser.c 2006-02-28 22:31:59.000000000 -0800 @@ -361,7 +361,12 @@ "ANSWER ", "BUSY ", "TKOFFHK ", - "OFFHOOK" }; + "OFFHOOK ", + "CONGESTION ", + "FLASH ", + "WINK ", + "OPTION " + }; struct ast_iax2_full_hdr *fh; char retries[20]; char class2[20]; @@ -384,7 +389,7 @@ /* Don't mess with mini-frames */ return; } - if (fh->type > (int)sizeof(frames)/(int)sizeof(char *)) { + if (fh->type >= (int)sizeof(frames)/(int)sizeof(char *)) { snprintf(class2, (int)sizeof(class2), "(%d?)", fh->type); class = class2; } else { @@ -401,7 +406,7 @@ subclass = iaxs[(int)fh->csub]; } } else if (fh->type == AST_FRAME_CONTROL) { - if (fh->csub > (int)sizeof(cmds)/(int)sizeof(char *)) { + if (fh->csub >= (int)sizeof(cmds)/(int)sizeof(char *)) { snprintf(subclass2, (int)sizeof(subclass2), "(%d?)", fh->csub); subclass = subclass2; } else {