Hi,
I seem to have a problem with simple proxying support. I'm using Twinkle as a SIP softphone, registered with
iptel.org, and I'm using my server as a simple proxy. However, no matter what SIP URL I place a call to, I get a java.net.SocketException: Invalid argument when I call Proxy.proxyTo().
To demonstrate the problem, I'm using the simple ProxyServlet code from
https://code.google.com/p/cipango/source/browse/trunk/extras/test-cipango-websocket/src/main/java/org/cipango/websocket/ProxyServlet.java?r=775
Here is the debug output that shows the offending SIP message and the stack trace when the exception occurs.
Any ideas?
Many thanks,
Chris
-------------
DEBUG qtp22218065-20 org.cipango.server.processor.TransportProcessor - handling message INVITE
sip:ch...@iptel.org SIP/2.0
Call-ID: rpyvaduovjveiht@ubuntu
DEBUG qtp22218065-20 org.cipango.server.transaction.TransactionManager - handling server transaction message with tx null
INVITE
sip:ch...@iptel.org SIP/2.0
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, REFER, NOTIFY, SUBSCRIBE, INFO, MESSAGE
Call-ID: rpyvaduovjveiht@ubuntu
Contact: <sip:lau...@127.0.0.1:5080;transport=udp>
Content-Length: 302
Content-Type: application/sdp
CSeq: 511 INVITE
From: "Chris Lauwers" <
sip:lau...@iptel.org>;tag=lubkf
Max-Forwards: 70
Supported: replaces,norefersub,100rel
To: <
sip:ch...@iptel.org>
User-Agent: Twinkle/1.4.2
Via: SIP/2.0/UDP 127.0.0.1:5080;branch=z9hG4bKfjhasbvz;rport=5080
v=0
o=twinkle
2144333461 809606111 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=audio 8000 RTP/AVP 98 97 8 0 3 101
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
DEBUG qtp22218065-20 org.cipango.server.SipProxy - Created proxy for tx ServerTransaction {branch=z9hG4bKfjhasbvz, method=INVITE, state=PROCEEDING}
DEBUG qtp22218065-20 org.cipango.server.SipProxy - adding target
sip:ch...@iptel.org to target set
DEBUG qtp22218065-20 org.cipango.server.SipProxy - Proxying to
sip:ch...@iptel.org
WARN qtp22218065-20 org.cipango.server.nio.UdpConnector -
java.net.SocketException: Invalid argument
at sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:514)
at sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:491)
at sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:455)
at org.cipango.server.nio.UdpConnector$UdpConnection.send(UdpConnector.java:197)
at org.cipango.server.nio.UdpConnector$UdpConnection.send(UdpConnector.java:179)
at org.cipango.server.SipServer.sendRequest(SipServer.java:355)
at org.cipango.server.transaction.ClientTransaction.doSend(ClientTransaction.java:158)
at org.cipango.server.transaction.ClientTransaction.start(ClientTransaction.java:174)
at org.cipango.server.transaction.TransactionManager.sendRequest(TransactionManager.java:219)
at org.cipango.server.session.Session.sendRequest(Session.java:308)
at org.cipango.server.SipProxy$Branch.start(SipProxy.java:903)
at org.cipango.server.SipProxy.startProxy(SipProxy.java:433)
at org.cipango.server.SipProxy.proxyTo(SipProxy.java:296)
at com.ubicity.sip.CipangoProxyServlet.doRequest(CipangoProxyServlet.java:37)
at javax.servlet.sip.SipServlet.service(Unknown Source)
at org.cipango.server.servlet.SipServletHolder.handle(SipServletHolder.java:145)
at org.cipango.server.servlet.SipServletHandler.handle(SipServletHandler.java:180)
at org.cipango.server.security.SipSecurityHandler.handle(SipSecurityHandler.java:323)
at org.cipango.server.session.SessionHandler.handleRequest(SessionHandler.java:178)
at org.cipango.server.session.SessionHandler.handle(SessionHandler.java:67)
at org.cipango.server.handler.SipHandlerWrapper.handle(SipHandlerWrapper.java:56)
at org.cipango.server.SipServer.handle(SipServer.java:238)
at org.cipango.server.processor.SipProcessorWrapper.doProcess(SipProcessorWrapper.java:53)
at org.cipango.server.transaction.TransactionManager.doProcessRequest(TransactionManager.java:121)
at org.cipango.server.transaction.TransactionManager.doProcess(TransactionManager.java:50)
at org.cipango.server.processor.SipProcessorWrapper.doProcess(SipProcessorWrapper.java:51)
at org.cipango.server.processor.TransportProcessor.doProcess(TransportProcessor.java:95)
at org.cipango.server.SipServer$1.run(SipServer.java:223)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:589)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:520)
at java.lang.Thread.run(Thread.java:722)