I noticed i had a String class where there should have been a Boolean.
Attached is diff and I uploaded a new rpm. File name is same so you
have to force rpm to install it
rpm --force -Uvh filename.rpm
On Thu, Feb 9, 2012 at 1:06 PM, W. E. W. Russell <[email protected]> wrote:
> Douglas,
>
> Thank you! I was able to install it. But the configuration option you gave
> me cause a failure. Here is the error message I got:
> -----------------------------
> Alarm Text: Process 'SipXbridge' failed its configuration test.
> org.xml.sax.SAXParseException; systemId:
> file:///etc/sipxpbx/sipxbridge.xml; lineNumber: 25; columnNumber: 83; Error
> at line 25 char 83: No such accessible method:
> setStrictProtocolEnforcement() on object:
> org.sipfoundry.sipxbridge.BridgeConfiguration
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
> at
> org.apache.commons.digester.Digester.endElement(Digester.java:1225)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:741)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
> at org.apache.commons.digester.Digester.parse(Digester.java:1745)
> at
> org.sipfoundry.sipxbridge.ConfigurationParser.createAccountManager(ConfigurationParser.java:321)
> at
> org.sipfoundry.sipxbridge.Gateway.parseConfigurationFile(Gateway.java:244)
> at org.sipfoundry.sipxbridge.Gateway.main(Gateway.java:1414)
> Caused by: java.lang.NoSuchMethodException: No such accessible
> method: setStrictProtocolEnforcement() on object:
> org.sipfoundry.sipxbridge.BridgeConfiguration
> at
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:278)
> at
> org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:626)
> at org.apache.commons.digester.Rule.end(Rule.java:253)
> at
> org.apache.commons.digester.Digester.endElement(Digester.java:1222)
> ... 14 more
> SipXbridge : Exception caught while running
> log4j:WARN No appenders could be found for logger
> (org.sipfoundry.sipxbridge).
> log4j:WARN Please initialize the log4j system properly.
> org.sipfoundry.sipxbridge.SipXbridgeException: Initialization
> exception
> at
> org.sipfoundry.sipxbridge.ConfigurationParser.createAccountManager(ConfigurationParser.java:338)
> at
> org.sipfoundry.sipxbridge.Gateway.parseConfigurationFile(Gateway.java:244)
> at org.sipfoundry.sipxbridge.Gateway.main(Gateway.java:1414)
> Caused by: org.xml.sax.SAXParseException; systemId:
> file:///etc/sipxpbx/sipxbridge.xml; lineNumber: 25; columnNumber: 83; Error
> at line 25 char 83: No such accessible method:
> setStrictProtocolEnforcement() on object:
> org.sipfoundry.sipxbridge.BridgeConfiguration
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
> at
> org.apache.commons.digester.Digester.endElement(Digester.java:1225)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:741)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
> at org.apache.commons.digester.Digester.parse(Digester.java:1745)
> at
> org.sipfoundry.sipxbridge.ConfigurationParser.createAccountManager(ConfigurationParser.java:321)
> ... 2 more
> Caused by: java.lang.NoSuchMethodException: No such accessible
> method: setStrictProtocolEnforcement() on object:
> org.sipfoundry.sipxbridge.BridgeConfiguration
> at
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:278)
> at
> org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:626)
> at org.apache.commons.digester.Rule.end(Rule.java:253)
> at
> org.apache.commons.digester.Digester.endElement(Digester.java:1222)
> ... 14 more
> Suggested Resolution: Check recent configuration changes. Do not hand-edit
> configuration files. Check logs for more details.
> -----------------------
> Maybe there are other RPMs that need to be installed as well? If so, how can
> I get those?
>
> On Wed, Feb 8, 2012 at 9:08 PM, Douglas Hubler <[email protected]> wrote:
>>
>> On Wed, Feb 8, 2012 at 6:37 PM, W. E. W. Russell <[email protected]>
>> wrote:
>> > Douglas,
>> >
>> > Thank you for the RPM, but you sent the 64 bit version. Could you send
>> > the
>> > 32-bit one? Thank you!
>>
>>
>> http://download.sipfoundry.org/pub/temp/sipxbridge-4.4.0-358.gef825.i386.rpm
>>
>> >
>> >
>> > On Wed, Feb 8, 2012 at 6:32 PM, Douglas Hubler <[email protected]>
>> > wrote:
>> >>
>> >>
>> >>
>> >> http://download.sipfoundry.org/pub/temp/sipxbridge-4.4.0-358.gef825.x86_64.rpm
>> >>
>> >> /etc/sipxpbx/sipxbridge.xml
>> >>
>> >> needs
>> >>
>> >>
>> >>
>> >> <enable-strict-protocol-enforcement>false</enable-strict-protocol-enforcement>
>> >>
>> >>
>> >> On Wed, Feb 8, 2012 at 4:56 PM, Douglas Hubler <[email protected]>
>> >> wrote:
>> >> > SVN is older code than git, so when you see a difference in the form
>> >> > of additional code, then chances are the code was added not removed.
>> >> > Git is the master copy of all code from 4.0 to 4.6, so RPMs from from
>> >> > what is in git if ever there is a doubt.
>> >> >
>> >> >
>> >> > Here's my research
>> >> > Step 1.) use git blame to find when the code was added
>> >> > git blame
>> >> >
>> >> > sipXbridge/src/main/java/org/sipfoundry/sipxbridge/CallControlManager.java
>> >> > ^441acc4 (mardy 2010-04-13 12:17:38 +0000 2287)
>> >> > BackToBackUserAgent b2bua =
>> >> > dialogContext.getBackToBackUserAgent();b1b875e1 (mranga
>> >> > 2010-06-23 20:46:10 +0000 2288) if (
>> >> > Gateway.isStrictProtocolEnforcement() ) {b1b875e1 (mranga
>> >> > 2010-06-23 20:46:10 +0000 2289) if (
>> >> > response.getContentLength().getContentLength() == 0 ) {b1b875e1
>> >> > (mranga 2010-06-23 20:46:10 +0000 2290)
>> >> > logger.error("PROTOCOL ERROR -- Expecting a content length != 0.
>> >> > Tearing down cab1b875e1 (mranga 2010-06-23 20:46:10 +0000
>> >> > 2291)
>> >> > dialogContext.sendAck(response);b1b875e1 (mranga
>> >> > 2010-06-23 20:46:10 +0000 2292)
>> >> > b2bua.tearDown(Gateway.SIPXBRIDGE_USER,
>> >> > ReasonCode.PROTOCOL_ERROR,b1b875e1 (mranga 2010-06-23 20:46:10
>> >> > +0000 2293) "protocol error - SDP solicitation
>> >> > response with 0 length SDP.");b1b875e1 (mranga 2010-06-23
>> >> > 20:46:10 +0000 2294) return;b1b875e1 (mranga
>> >> > 2010-06-23 20:46:10 +0000 2295) }b1b875e1 (mranga
>> >> > 2010-06-23 20:46:10 +0000 2296) }
>> >> >
>> >> > Step 2.) With the git sha1 code, find the commit comment
>> >> > git show b1b875e1
>> >> > commit b1b875e180941e794499b336f2fe31cb23e9ba23Author: mranga
>> >> > <mranga@ab1d8caa-1f67-47f1-9e81-24633a41865c>Date: Wed Jun 23
>> >> > 20:46:10 2010 +0000
>> >> > XX-8599: SipXbridge: load testing and memory profiling fixes.
>> >> > Include Strict protocol compliance flag. The following
>> >> > improvements
>> >> > have been made: - Release memory references early to reduce memory
>> >> > requirements. - Fixed a leak under error conditions. - Load
>> >> > tested and make sure there are no leaks under continous operation.
>> >> > - Add a flag for SIP protocol compliance ( on by default ).
>> >> > git-svn-id:
>> >> > http://sipxecs.sipfoundry.org/rep/sipXecs/branches/4.2@18964
>> >> > ab1d8caa-1f67-47f1-9e81-24633a41865c
>> >> >
>> >> > Step 3.) Check for more description in the tracker (although in this
>> >> > case not much info)
>> >> > http://track.sipfoundry.org/browse/XX-8599
>> >> >
>> >> > Step 4.) Come to the conclusion the check in not nec. wrong, just
>> >> > that
>> >> > you want to disable this check. Turns out there was never a way added
>> >> > to disable in in config parser so I studies the code and made the
>> >> > following change.
>> >> >
>> >> > diff --git a/sipXbridge/schema/sipxbridge.xsd
>> >> > b/sipXbridge/schema/sipxbridge.xsdindex 5649fb8..2e96c09 100644---
>> >> > a/sipXbridge/schema/sipxbridge.xsd+++
>> >> > b/sipXbridge/schema/sipxbridge.xsd@@ -100,6 +100,14 @@
>> >> > </xs:documentation>
>> >> > </xs:annotation> </xs:element>+
>> >> > <xs:element name="enable-strict-protocol-enforcement"
>> >> > type="xs:boolean"+ maxOccurs="1"
>> >> > minOccurs="0" default="true">+
>> >> > <xs:annotation>+
>> >> > <xs:documentation xml:lang="en">+
>> >> > Whether or not bridge is strict about protocol enforcement+
>> >> > </xs:documentation>+
>> >> > </xs:annotation>+ </xs:element>
>> >> > <xs:element name="sipx-proxy-domain"
>> >> > type="xs:string" minOccurs="1"
>> >> > maxOccurs="1"> <xs:annotation>diff
>> >> > --git
>> >> >
>> >> > a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java
>> >> > b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/Configuratindex
>> >> > d73da9f..1ff640b 100644---
>> >> >
>> >> >
>> >> > a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java+++
>> >> >
>> >> >
>> >> > b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java@@
>> >> > -140,6 +140,9 @@ public class ConfigurationParser {
>> >> > digester.addCallMethod(String.format("%s/%s", BRIDGE_CONFIG,
>> >> > "enable-bridge-proxy-relay"),
>> >> > "setEnableBridgeProxyRelay",0, new Class[] { Boolean.class }); +
>> >> > digester.addCallMethod(String.format("%s/%s", BRIDGE_CONFIG,
>> >> > "enable-strict-protocol-enforcement"),+
>> >> > "setStrictProtocolEnforcement",0, new Class[] { Boolean.class });+
>> >> > /* * ITSP configuration support parameters. */
>> >> >
>> >> > Step 5.) Build and test rpms. So yes, you'll need to follow
>> >> > instructions for building rpms on wiki. However, If you tell me
>> >> > your
>> >> > distro, I can email you an rpm and if you acknowledge it's working
>> >> > i'll include fix in next build.
>> >> >
>> >> > On Wed, Feb 8, 2012 at 3:51 PM, W. E. W. Russell
>> >> > <[email protected]>
>> >> > wrote:
>> >> >> I just had a question about getting the latest code complied and
>> >> >> released in
>> >> >> the RPMs.
>> >> >>
>> >> >> I have been having trouble being able to put calls on hold or
>> >> >> transferring
>> >> >> them. I've located the issue in the code. The issue seems to be that
>> >> >> the
>> >> >> latest code isn't being complied into the latest stable RPMs.
>> >> >>
>> >> >> The two versions are below:
>> >> >> The old code is
>> >> >>
>> >> >>
>> >> >> here: https://github.com/dhubler/sipxecs/blob/release-4.4/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/CallControlManager.java
>> >> >>
>> >> >> The new code is
>> >> >>
>> >> >>
>> >> >> here: http://sipxecs.sipfoundry.org/rep/sipXecs/main/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/CallControlManager.java
>> >> >>
>> >> >> The main difference that is causing my issue is in the
>> >> >> method: solicitSdpOfferFromPeerDialogResponse
>> >> >>
>> >> >> It begins on line 2247 on the GIT site version. You'll have to just
>> >> >> do
>> >> >> a
>> >> >> simple search on the other site to find it, but the key issue is
>> >> >> that
>> >> >> the
>> >> >> following check was removed:
>> >> >> ----------------------------------------------------------------
>> >> >>
>> >> >> if ( Gateway.isStrictProtocolEnforcement() ) {
>> >> >>
>> >> >>
>> >> >> if ( response.getContentLength().getContentLength() == 0
>> >> >> )
>> >> >> {
>> >> >>
>> >> >>
>> >> >> logger.error("PROTOCOL ERROR -- Expecting a content
>> >> >> length
>> >> >> != 0. Tearing down call! ");
>> >> >>
>> >> >>
>> >> >> dialogContext.sendAck(response);
>> >> >>
>> >> >>
>> >> >> b2bua.tearDown(Gateway.SIPXBRIDGE_USER,
>> >> >> ReasonCode.PROTOCOL_ERROR,
>> >> >>
>> >> >>
>> >> >> "protocol error - SDP solicitation response with 0
>> >> >> length
>> >> >> SDP.");
>> >> >>
>> >> >>
>> >> >> return;
>> >> >>
>> >> >>
>> >> >> }
>> >> >> ----------------------------------------------------------------
>> >> >>
>> >> >> I can confirm this is the issue because the error I get when the
>> >> >> call
>> >> >> is
>> >> >> dropped is exactly: "protocol error - SDP solicitation response with
>> >> >> 0
>> >> >> length SDP."
>> >> >>
>> >> >>
>> >> >> The question I have is how can I get an RPM built with this code for
>> >> >> 32-bit
>> >> >> CentOS 5. Do I have to create my own build environment or is it
>> >> >> available?
>> >> >>
>> >> >>
>> >> >> Thanks in advance.
>> >> >>
>> >> >>
>> >> >> Best Regards,
>> >> >>
>> >> >> William
>> >> >>
>> >> >> --
>> >> >> W. E. W. Russell
>> >> >> Director, Systems Intergration at incNETWORKS, Inc.
>> >> >> Work Phone # 732-508-2224
>> >> >>
>> >> >> Active Alumni member of Sigma Lambda Beta International Fraternity,
>> >> >> Inc.
>> >> >> Cell Phone # 732-744-6483
>> >> >>
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> sipx-dev mailing list
>> >> >> [email protected]
>> >> >> List Archive: http://list.sipfoundry.org/archive/sipx-dev/
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Join me to talk about sipXecs and the upcoming version 4.6 at
>> >> > CoLab @ CSU March (5th & 6th).
>> >> > http://www.sipfoundry.org/sipx-colab
>> >> > Hack with me on at the CoLab Hackfest.
>> >> > http://wiki.sipfoundry.org/display/sipXecs/2012+sipX-CoLab+Hackfest
>> >>
>> >>
>> >>
>> >> --
>> >> Join me to talk about sipXecs and the upcoming version 4.6 at
>> >> CoLab @ CSU March (5th & 6th).
>> >> http://www.sipfoundry.org/sipx-colab
>> >> Hack with me on at the CoLab Hackfest.
>> >> http://wiki.sipfoundry.org/display/sipXecs/2012+sipX-CoLab+Hackfest
>> >> _______________________________________________
>> >> sipx-dev mailing list
>> >> [email protected]
>> >> List Archive: http://list.sipfoundry.org/archive/sipx-dev/
>> >
>> >
>> >
>> >
>> > --
>> > W. E. W. Russell
>> > Director, Systems Intergration at incNETWORKS, Inc.
>> > Work Phone # 732-508-2224
>> >
>> > Active Alumni member of Sigma Lambda Beta International Fraternity, Inc.
>> > Cell Phone # 732-744-6483
>> >
>> >
>> >
>> > _______________________________________________
>> > sipx-dev mailing list
>> > [email protected]
>> > List Archive: http://list.sipfoundry.org/archive/sipx-dev/
>>
>>
>>
>> --
>> Join me to talk about sipXecs and the upcoming version 4.6 at
>> CoLab @ CSU March (5th & 6th).
>> http://www.sipfoundry.org/sipx-colab
>> Hack with me on at the CoLab Hackfest.
>> http://wiki.sipfoundry.org/display/sipXecs/2012+sipX-CoLab+Hackfest
>> _______________________________________________
>> sipx-dev mailing list
>> [email protected]
>> List Archive: http://list.sipfoundry.org/archive/sipx-dev/
>
>
>
>
> --
> W. E. W. Russell
> Director, Systems Intergration at incNETWORKS, Inc.
> Work Phone # 732-508-2224
>
> Active Alumni member of Sigma Lambda Beta International Fraternity, Inc.
> Cell Phone # 732-744-6483
>
>
>
> _______________________________________________
> sipx-dev mailing list
> [email protected]
> List Archive: http://list.sipfoundry.org/archive/sipx-dev/
--
Join me to talk about sipXecs and the upcoming version 4.6 at
CoLab @ CSU March (5th & 6th).
http://www.sipfoundry.org/sipx-colab
Hack with me on at the CoLab Hackfest.
http://wiki.sipfoundry.org/display/sipXecs/2012+sipX-CoLab+Hackfest
diff --git a/sipXbridge/schema/sipxbridge.xsd b/sipXbridge/schema/sipxbridge.xsd
index 5649fb8..2e96c09 100644
--- a/sipXbridge/schema/sipxbridge.xsd
+++ b/sipXbridge/schema/sipxbridge.xsd
@@ -100,6 +100,14 @@
</xs:documentation>
</xs:annotation>
</xs:element>
+ <xs:element name="enable-strict-protocol-enforcement" type="xs:boolean"
+ maxOccurs="1" minOccurs="0" default="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Whether or not bridge is strict about protocol enforcement
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
<xs:element name="sipx-proxy-domain" type="xs:string"
minOccurs="1" maxOccurs="1">
<xs:annotation>
diff --git a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/BridgeConfiguration.java b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/BridgeConfiguration.java
index 55b0966..7319f2a 100644
--- a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/BridgeConfiguration.java
+++ b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/BridgeConfiguration.java
@@ -550,8 +550,8 @@ public class BridgeConfiguration {
return this.strictProtocolEnforcement ;
}
- public void setStrictProtocolEnforcement(String flagString) {
- this.strictProtocolEnforcement = Boolean.parseBoolean(flagString);
+ public void setStrictProtocolEnforcement(boolean enabled) {
+ this.strictProtocolEnforcement = enabled;
}
public boolean isEnableBridgeProxyRelay() {
diff --git a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java
index d73da9f..1ff640b 100644
--- a/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java
+++ b/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/ConfigurationParser.java
@@ -140,6 +140,9 @@ public class ConfigurationParser {
digester.addCallMethod(String.format("%s/%s", BRIDGE_CONFIG, "enable-bridge-proxy-relay"),
"setEnableBridgeProxyRelay",0, new Class[] { Boolean.class });
+ digester.addCallMethod(String.format("%s/%s", BRIDGE_CONFIG, "enable-strict-protocol-enforcement"),
+ "setStrictProtocolEnforcement",0, new Class[] { Boolean.class });
+
/*
* ITSP configuration support parameters.
*/
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev/