3 Replies Latest reply: Aug 17, 2009 2:48 AM by 717621 RSS

    UDP messages 1300 K limit

    665200
      What is the expected behavior of Weblogic Sip Server regarding large UDP messages?

      We are running an application on Weblogic Sip Server 2.1. The app sends/receives simple SIP MESSAGE messages using the UDP protocol. The XML Payload is getting large on some of the messages, and we are exceeding the 1300K limit for UDP transport. See example below. My question is this --- 1) What is the expected behavior here? and 2) How can I configure Weblogic to send large UDP messages? We want the container to just fragment the message and send it.

      I would appreciate any insight on this issue.

      Thanks,
      T. Cuprak


      --------------------------------------------------------------------------------
      Request message we are sending , using req.send() ----

      MESSAGE sip:5554414706@127.0.0.1:7001 SIP/2.0
      To: <sip:5554414706@127.0.0.1:7001>;user=phone
      Content-Length: 1000
      CSeq: 1 MESSAGE
      Call-ID: wlssa99eb7ffefdcb8602fbf35b37e936840wl(4dc0eed15129f80d9753bca98f154ab7
      %172.19.132.108)wl@172.19.132.108
      From: <sip:0000000000@domain.com>;tag=f5c6ff46
      Content-Type: application/xml
      Max-Forwards: 70

      < 1000KB content payload …>

      Works fine until the payload is large, at which point the container will not send the message. We are seeing the following error:


      1244760599626 SIP message parser: line = |HTTP/1.1 404 Not Found|
      <Jun 11, 2009 3:49:59 PM MST> <Warning> <WLSS.Transport> <BEA-330618> <Closing T
      CP connection (MuxableSocketSIP[local=0.0.0.0/0.0.0.0:3289,remote=/127.0.0.1:700
      1]exception cause: null) due to error
      javax.servlet.sip.ServletParseException: Invalid SIP message start line: [HTTP/1
      .1 404 Not Found]
      at com.bea.wcp.sip.engine.connector.transport.SipMessageParser.parseMess
      age(SipMessageParser.java:105)
      at com.bea.wcp.sip.engine.connector.transport.SipMessageParser.parse(Sip
      MessageParser.java:63)
      at com.bea.wcp.sip.engine.connector.transport.ConnectionManager$SIPReque
      stWorker.run(ConnectionManager.java:745)
      at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkMan
      agerImpl.java:518)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      Truncated. see log file for complete stacktrace
        • 1. Re: UDP messages 1300 K limit
          708303
          Hi,

          rfc 3261 rule: if request size >= network MTU-200bytes use TCP

          OCCAS rule
          request size >= MTU specified in the network channel in config.xml then go TCP

          So the solution for your problem is to increase the MTU in config.xml (you can do up to 65k if I remember correctly). See below the MTU parameter.
          Note you need to configure in the config.xml.

          <network-access-point>
          <name>sip</name>
          Configuring SIP Channels for Multi-Homed Machines
          Configuring Network Resources 1-9
          <protocol>sip</protocol>
          <listen-port>5060</listen-port>
          <public-port>5060</public-port>
          <http-enabled-for-this-protocol>false</http-enabled-for-this-protocol>
          <tunneling-enabled>false</tunneling-enabled>
          <outbound-enabled>true</outbound-enabled>
          <enabled>true</enabled>
          <two-way-ssl-enabled>false</two-way-ssl-enabled>
          <client-certificate-enforced>false</client-certificate-enforced>
          <custom-properties>EnabledProtocolVersions=ALL;Mtu=32000;SourcePorts=50
          60</custom-properties>
          </network-access-point>
          • 2. Re: UDP messages 1300 K limit
            665200
            This did resolve the problem. Bumping up the MTU allowed the large message to be sent UDP.

            Thanks so much for the post!

            T. Cuprak
            • 3. Re: UDP messages 1300 K limit
              717621
              Hi,

              By the same token, can I set the MTU to a low value to force OCCAS to use TCP?

              Thanks in advance.