This is what i did to solve the issue from java side. Create a class which implements the AIMLProcessorExtension. The class will look something like below,
public class TestAIMLExtenstion implements AIMLProcessorExtension
{
public Set<String> extensionTagNames = Utilities.stringSet("contactid","multipleids","displayname","dialnumber","emailaddress","contactbirthday","addinfo");
public Set <String> extensionTagSet() {
return extensionTagNames;
}
public String recursEval(Node node, ParseState ps) {
try {
String nodeName = node.getNodeName();
if (nodeName.equals("contactid"))
return contactId(node, ps);
else if (nodeName.equals("multipleids"))
return multipleIds(node, ps);
else if (nodeName.equals("dialnumber"))
return dialNumber(node, ps);
else if (nodeName.equals("addinfo"))
return newContact(node, ps);
else if (nodeName.equals("displayname"))
return displayName(node, ps);
else if (nodeName.equals("emailaddress"))
return emailAddress(node, ps);
else if (nodeName.equals("contactbirthday"))
return contactBirthday(node, ps) ;
else return (AIMLProcessor.genericXML(node, ps));
} catch (Exception ex) {
ex.printStackTrace();
return "";
}
}
}
And in my main class i have added something like,
AIMLProcessor.extension = new TestAIMLExtenstion();
I have done m implementation using the above approach.