This is the Servlet for reading email attachment that is an audio file. The Servlet first saves the audio attachment to a local directory, then simply includes the saved audio file in the generated VXML file.
File savedFile = new File(workdir, fname); EmailMessageReader.readWaveFile(include, savedFile); ... pw.println("<audio src=\"" + userFname + "\"/>");
Source Code
package vx.apps.email; import java.io.PrintWriter; import java.io.File; import java.io.IOException; import javax.servlet.http.*; import javax.mail.*; public class ReadEmailWaveServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session = request.getSession(true); EmailMessageReader emailReader = (EmailMessageReader) session.getAttribute("emailReader"); if (emailReader == null) { emailReader = new EmailMessageReader(); session.setAttribute("emailReader", emailReader); } PrintWriter pw = response.getWriter(); pw.println("<?xml version=\"1.0\"?>"); pw.println("<vxml version=\"1.0\">"); EmailManager email_agent = EmailManager.getInstance(request); if (email_agent == null) { pw.println("</vxml>"); return; } String indexstr = request.getParameter("index"); String includeIndexStr = request.getParameter("includeidx"); if (includeIndexStr == null) includeIndexStr = "0"; int includeIndex = Integer.parseInt(includeIndexStr); Part include = emailReader.getIncludeFile(includeIndex); String fname = null; String userFname = null; if (include != null) { try { fname = include.getFileName(); userFname = "../work/" + fname; String dir = getServletContext().getRealPath(""); File workdir = new File(dir, "work"); workdir.mkdirs(); File savedFile = new File(workdir, fname); EmailMessageReader.readWaveFile(include, savedFile); } catch (MessagingException e) { include = null; } } pw.println("<var name=\"index\" expr=\"" + indexstr + "\"/>"); pw.println("<var name=\"includeidx\" expr=\"" + includeIndexStr + "+1\"/>"); pw.println(" <block>"); if (include == null) { pw.println("Sorry, there is trouble getting the audio file"); } else { pw.println("<audio src=\"" + userFname + "\"/>"); } pw.println(" <submit next=\"email_inc\" namelist=\"index includeidx\"/>"); pw.println(" </block>"); pw.println("</form>"); pw.println("</vxml>"); } }+-