< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

RE: [reSIProcate] bug in StatelessHandler::process() ?






The stateless proxy has probably undergone some bit rot. Can you run your
test and post the output with the log level set at Log::Stack.

e.g.

./stateless-proxy -l cout -v STACK  ...
<..........>





Ok, you can find the trace below:

INFO | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | udptransport.cxx:31 | Creating udp transport host= port=5060 ipv4=1
DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transport.cxx:100 | Creating fd=744 V4/UDP
DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transport.cxx:108 | Binding to 0.0.0.0
INFO | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transportselector.cxx:142 | Adding transport: [ V4 0.0.0.0:5060 UDP connectionId=0 ]
DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transport.cxx:100 | Creating fd=728 V4/TCP
DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transport.cxx:108 | Binding to 0.0.0.0
INFO | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 | transportselector.cxx:142 | Adding transport: [ V4 0.0.0.0:5060 TCP connectionId=0 ]
DEBUG | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 | transport.cxx:374 | incoming from: [ V4 130.139.45.174:1048 UDP received on: Transport: [ V4 0.0.0.0:5060 UDP connectionId=0 ] connectionId=0 ]
STACK | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 | transport.cxx:375 |
INVITE sip:130.139.44.249 SIP/2.0
To: <sip:130.139.44.249>
From: "MvdBerg" <sip:118484C>;tag=d423cdbd2f47469787566e318858166e
Via: SIP/2.0/UDP 130.139.45.174:11802;received=130.139.45.174
Call-ID: 9180daf3359e4a8ca2dacc0ec4d539db@xxxxxxxxxxxxxx
CSeq: 1 INVITE
Contact: <sip:130.139.45.174:11802>
Max-Forwards: 70
Content-Type: application/sdp
User-Agent: RTC/1.2
Content-Length: 289


v=0
o=- 0 0 IN IP4 130.139.45.174
s=session
c=IN IP4 130.139.45.174
b=CT:1000
t=0 0
m=audio 37462 RTP/AVP 97 0 8 4 101
a=rtpmap:97 red/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=encryption:rejected


DEBUG | 20040802-093254 | proxy | RESIP:TRANSACTION | 920 | statelesshandler.cxx:46 | Processing sip from wire: SipReq:  INVITE 130.139.44.249 tid=afa6dee3e3a796a0fcb8b8dff67f15d4 cseq=INVITE / 1 from(wire)
DEBUG | 20040802-093254 | proxy | RESIP | 920 | sipstack.cxx:278 | RECV: SipReq:  INVITE 130.139.44.249 tid=afa6dee3e3a796a0fcb8b8dff67f15d4 cseq=INVITE / 1 from(wire)
INFO | 20040802-093254 | proxy | RESIP:TEST | 920 | statelessproxy.cxx:69 | stack1 got: SipReq:  INVITE 130.139.44.249 tid=afa6dee3e3a796a0fcb8b8dff67f15d4 cseq=INVITE / 1 from(wire) from user:
DEBUG | 20040802-093254 | proxy | RESIP:TEST | 920 | statelessproxy.cxx:215 | proxy request : 1f2e032b42890145a9c31762263858a2 : SipReq:  INVITE 130.139.44.249 tid=1f2e032b42890145a9c31762263858a2 cseq=INVITE / 1 from(wire)
DEBUG | 20040802-093254 | proxy | RESIP:TRANSACTION | 920 | statelesshandler.cxx:61 | Processing request from TU : SipReq:  INVITE 130.139.44.249 tid=1f2e032b42890145a9c31762263858a2 cseq=INVITE / 1 from(tu)
DEBUG | 20040802-093254 | proxy | RESIP:DNS | 920 | dnsresult.cxx:116 | DnsResult::lookup sip:130.139.45.174:5070;protocol=UDP
DEBUG | 20040802-093254 | proxy | RESIP:DNS | 920 | dnsresult.cxx:166 | Numeric result so return immediately: [ V4 130.139.45.174:5070 UDP connectionId=0 ]
DEBUG | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 | transport.cxx:374 | incoming from: [ V4 130.139.45.174:1048 UDP received on: Transport: [ V4 0.0.0.0:5060 UDP connectionId=0 ] connectionId=0 ]
STACK | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 | transport.cxx:375 |
INVITE sip:130.139.44.249 SIP/2.0
To: <sip:130.139.44.249>
From: "MvdBerg" <sip:118484C>;tag=d423cdbd2f47469787566e318858166e
Via: SIP/2.0/UDP 130.139.45.174:11802;received=130.139.45.174
Call-ID: 9180daf3359e4a8ca2dacc0ec4d539db@xxxxxxxxxxxxxx
CSeq: 1 INVITE
Contact: <sip:130.139.45.174:11802>
Max-Forwards: 70
Content-Type: application/sdp
User-Agent: RTC/1.2
Content-Length: 289

<etc...>


I've made a little change in StatelessHandler.cxx which makes it work. But I don't know if this is 100% correct...

            else  // line 59
            {
               DebugLog (<< "Processing request from TU : " << msg->brief());
               StatelessMessage* stateless = new StatelessMessage(mController.mTransportSelector, sip);
               DnsResult*dnsr = mController.mTransportSelector.dnsResolve(sip, stateless);
                 // Modification MvdB 2004-08-02: Added 5 lines
                   if (dnsr->available() == DnsResult::Available )
                   {
                          mController.mTransportSelector.transmit(sip, dnsr->next() );
                   }
                   delete dnsr;
                // End Mod
            }

Martin.