Jump to content

Victor Saldarriaga

Members
  • Posts

    10
  • Joined

  • Last visited

Everything posted by Victor Saldarriaga

  1. I've had the same problem when upgrading a cs410 to 3.3.1.3377. Lost the license (pbx.xml was replaced with one that had no license_code value) and now the ip address changes on the web interface seem to be broken. In other words, it is not possible to change any of the two interface's IP addresses using the web interface. (this worked ok on the 2.2 version shipped originally with the device)
  2. I am running a test environment with FreeBSD 7.1 on vmware with kern.hertz=1000 and don't get into timing problems except when the processor clock changes. BTW, Anybody getting this log: UDP: TOS could not be set on FreeBSD?
  3. I have the exact same problem with my ITSP. 2.1.11 works, stopped working since 3.0.0
  4. We finally decided to code a plain servlet that parses the SOAP and generates the response, sometimes simpler is better. If anybody is interested, here is the code: ====== package co.com.vertical.concursive.ivr; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.util.HashMap; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jdom.Document; import org.jdom.Element; import org.jdom.Namespace; import org.jdom.input.SAXBuilder; import org.jdom.output.DOMOutputter; import org.jdom.output.XMLOutputter; import org.w3c.dom.NodeList; /** * Servlet implementation class SOAPServlet */ public class SOAPServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public SOAPServlet() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setStatus(500); out.write("HTTP GET - No es soportado."); out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); SAXBuilder builder = new SAXBuilder(); int contentLength = request.getContentLength(); if (contentLength <= 0) { response.setStatus(500);out.close();return; } try { // Read SOAP Request Document doc = builder.build(request.getInputStream()); DOMOutputter converter = new DOMOutputter(); org.w3c.dom.Document domDocument = converter.output(doc); String CallID = ""; String Output = ""; String From = ""; String To = ""; NodeList nodeList = domDocument.getDocumentElement().getElementsByTagName("CallID"); if ( nodeList.getLength() > 0 ) { CallID = nodeList.item(0).getTextContent(); } nodeList = domDocument.getDocumentElement().getElementsByTagName("Output"); if ( nodeList.getLength() > 0 ) { Output = nodeList.item(0).getTextContent(); } nodeList = domDocument.getDocumentElement().getElementsByTagName("From"); if ( nodeList.getLength() > 0 ) { From = nodeList.item(0).getTextContent(); } nodeList = domDocument.getDocumentElement().getElementsByTagName("To"); if ( nodeList.getLength() > 0 ) { To = nodeList.item(0).getTextContent(); } //Buscar Contacto. /* ServletContext app = this.getServletContext(); HashMap<String, IncomingCall> incoming = null; incoming = (HashMap<String, IncomingCall>)app.getAttribute("INCOMING_CALLS"); if ( incoming == null ) { incoming = new HashMap<String, IncomingCall>(); } */ createIncommingCall(Output); System.out.println("====\n"+CallID+"\n"+Output+"\n"+From+"\n"+To+"\n====\n"); //DEBUG// // Send SOAP Response response.setContentType("application/xml"); Namespace nsp1 = Namespace.getNamespace("env", "http://schemas.xmlsoap.org/soap/envelope/"); Namespace nsp2 = Namespace.getNamespace("sns", "http://www.pbxnsip.com/soap/pbx"); Element envelope = new Element("Envelope", nsp1); envelope.addNamespaceDeclaration(nsp2); Element body = new Element("Body", nsp1); Element ivrOutput = new Element("IVROutput", nsp2); Element callID = new Element("CallID").addContent(CallID); Element dest = new Element("Destination").addContent("71"); ivrOutput.addContent(callID); ivrOutput.addContent(dest); body.addContent(ivrOutput); envelope.addContent(body); XMLOutputter outputter = new XMLOutputter(); outputter.output(envelope, System.out); //DEBUG// outputter.output(envelope, out); } catch (Exception e) { e.printStackTrace(); response.setStatus(500); } out.close(); } private void createIncommingCall(String output) { } }
  5. We are having some problems integrating the IVR SOAP interface to an external java app (Concourse Suite CRM). The SOAP marshallers and binding classes are created by a wsdl file we deviced --since it doesn't exist-- but the response we send back with the destination and CallID is not parsed by pbxnsip Soap consumer correctly. Unfortunately, we cannot create a soap endpoint by hand (we have done it in other standalone apps by parsing and generating the soap body like the wiki suggests) in this occasion. Any help would be appreciated. this is the wsdl: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://soap.com/pbx" xmlns:sns="http://www.pbxnsip.com/soap/pbx" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://soap.com/pbx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <!--wsdl:import namespace="http://www.pbxnsip.com/soap/pbx" location="IVROutput.xsd"/--> <wsdl:types> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sns="http://soap.com/pbx" targetNamespace="http://soap.com/pbx"> <xsd:complexType name="IVRInput"> <xsd:sequence> <xsd:element name="CallID" type="xsd:string"/> <xsd:element name="Output" type="xsd:string"/> <xsd:element name="From" type="xsd:string"/> <xsd:element name="To" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:element name="IVRInput" type="tns:IVRInput"/> </xsd:schema> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.pbxnsip.com/soap/pbx" xmlns="http://www.pbxnsip.com/soap/pbx" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:complexType name="IVROutput"> <xsd:sequence> <xsd:element name="CallID" nillable="true" type="xsd:string"/> <xsd:element name="Destination" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:element name="IVROutput" type="IVROutput"/> </xsd:schema> </wsdl:types> <wsdl:message name="IVRInputRequest"> <wsdl:part name="parameters" element="tns:IVRInput"> </wsdl:part> </wsdl:message> <wsdl:message name="IVRInputResponse"> <wsdl:part name="parameters" type="sns:IVROutput"> </wsdl:part> </wsdl:message> <wsdl:portType name="PBXServicePortType"> <wsdl:operation name="IVRInput"> <wsdl:input name="IVRInputRequest" message="tns:IVRInputRequest"> </wsdl:input> <wsdl:output name="IVRInputResponse" message="tns:IVRInputResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="PBXServiceHttpBinding" type="tns:PBXServicePortType"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="IVRInput"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="IVRInputRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="IVRInputResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="PBXService"> <wsdl:port name="PBXServiceHttpPort" binding="tns:PBXServiceHttpBinding"> <wsdlsoap:address location="http://192.168.252.62:8084/xfire/services/PBXService"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
  6. Anybody getting UDP: TOS could not be set on Freebsd7.1 ?
  7. Just tried to parse the SOAP CDR from ver.3.2 and you are right, that will be most useful. Thanx
  8. Don't know if this is the right place to start a thread on the FreeBSD port... I couldn't find any started already. It seems that the freebsd version can't set the diffserv bits on the udp packets. I keep getting: UDP: TOS could not be set I have already loaded the ipfw modules.
  9. I'm getting the exact ssame behaviour
×
×
  • Create New...