*/
public SIPHeader parse() throws ParseException {
if (debug)
dbg_enter("AlertInfoParser.parse");
AlertInfoList list = new AlertInfoList();
try {
headerName(TokenTypes.ALERT_INFO);
int lineCount = 0;
//Allow only 20 lines in alert-info.
while ( (lexer.lookAhead(0) != '\n') && (lineCount < 20) ) {
do {
AlertInfo alertInfo = new AlertInfo();
alertInfo.setHeaderName(SIPHeaderNames.ALERT_INFO);
URLParser urlParser;
GenericURI uri;
this.lexer.SPorHT();
if (this.lexer.lookAhead(0) == '<') {
this.lexer.match('<');
urlParser = new URLParser((Lexer) this.lexer);
uri = urlParser.uriReference( true );
alertInfo.setAlertInfo(uri);
this.lexer.match('>');
} else {
/* This is non standard for Polycom support.
* I know it is bad grammar but please do not remove. mranga
*/
String alertInfoStr = this.lexer.byteStringNoSemicolon();
alertInfo.setAlertInfo(alertInfoStr);
}
this.lexer.SPorHT();
super.parse(alertInfo);
list.add(alertInfo);
if ( lexer.lookAhead(0) == ',' ) {
this.lexer.match(',');
} else break;
} while (true);