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/

Reply via email to