Victor Saldarriaga
-
Posts
10 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Posts posted by Victor Saldarriaga
-
-
I am doing an initial test using FreeBSD 7.1-STABLE and 8.0-RELEASE-200902 kernels. I was looking to see if anyone
has implemented PBXnSIP/FreeBSD on a virtualization platform like XenServer? Now that the enterprise edition of
XenServer is free I was looking to do baremetal with Xen & BSD. I seem to recall durring training a provider using
PBXnSIP/FreeBSD kernel parameter kern.hz=1000 (under VMware?).
Currently I am using HP ML350 G5 w/E5300 series Quad core Xeon, Local SAS Storage, and GigE i/o with XenServer 5
The VM slice is configured with 1 cpu core no CPU cap,256mb ram. The kernel parameter is set kern.hz=100 and have
not noticed any side effects with initial basic testing.
Thanks,
Isaac
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?
-
I have the exact same problem with my ITSP.
2.1.11 works, stopped working since 3.0.0
-
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) {
}
}
-
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>
-
Anybody getting UDP: TOS could not be set on Freebsd7.1 ?
-
The latest CDR (3.1) also include the filename of the recording ("rec").
Just tried to parse the SOAP CDR from ver.3.2 and you are right, that will be most useful. Thanx
-
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.
-
I'm getting the exact ssame behaviour
-
Anyone else had problems with Snom TLS and SRTP?
Lost Configuration and License
in Embedded
Posted
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)