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

Re: [reSIProcate] repro TLS : sending responses


Hi Byron,

I've repeated the test with updated version from SVN
but result looks the same. Here is a trace:

DEBUG | 20070425-170251.881 | repro | RESIP:TRANSPORT
| 1460 | tcpbasetransport.cxx:143 |
TcpBaseTransport::processSomeReads() CONN: 01767A00
1460 [ V4 169.254.2.1:1122 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ]
DEBUG | 20070425-170251.881 | repro | RESIP:TRANSPORT
| 1460 | connectionbase.cxx:472 | Creating buffer for
CONN_BASE: 01767A00 [ V4 169.254.2.1:1122 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ]
STACK | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | tlsconnection.cxx:348 | SSL_read returned 579
bytes [INVITE sips:200@example;user=phone SIP/2.0

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

To: <sips:200@example;user=phone>

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

]
STACK | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | tlsconnection.cxx:392 | SSL bytesRead=579
DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | connectionbase.cxx:118 | In State: NewMessage
DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | connectionbase.cxx:146 |
ConnectionBase::process setting source [ V4
169.254.2.1:1122 TLS target domain=unspecified
received on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]
DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | transport.cxx:287 | incoming from: [ V4
169.254.2.1:1122 TLS target domain=unspecified
received on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]
STACK | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | transport.cxx:288 | 

INVITE sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | connectionbase.cxx:258 | ##Connection:
CONN_BASE: 01767A00 [ V4 169.254.2.1:1122 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ] received: INVITE
sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | tcpbasetransport.cxx:147 |
TcpBaseTransport::processSomeReads()  read=579
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:277 |
No matching transaction for SipReq:  INVITE
200@example tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:66 |
Checking if SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
is for me
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:71 |
Checking rule...
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | messagefilterrule.cxx:42 |
Matching rule for: 

INVITE sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | messagefilterrule.cxx:64 |
Method is not in list. Rule does not match.
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:71 |
Checking rule...
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | messagefilterrule.cxx:42 |
Matching rule for: 

INVITE sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | messagefilterrule.cxx:64 |
Method is not in list. Rule does not match.
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:78 | No
matching rule found
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:66 |
Checking if SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
is for me
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:71 |
Checking rule...
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | messagefilterrule.cxx:42 |
Matching rule for: 

INVITE sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionuser.cxx:74 |
Match!
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:52 |
Creating new TransactionState:
tid=-24da-8ff50e-5b8b280b [ ServerInvite/Trying
reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
target domain=unspecified connectionId=0 ]]
DEBUG | 20070425-170251.897 | repro | RESIP | 1460 |
helper.cxx:302 | Helper::makeResponse(SipReq:  INVITE
200@example tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
code=100 reason=
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | timerqueue.cxx:85 | Adding
timer: Timer Trying tid=-24da-8ff50e-5b8b280b ms=80
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:1763 |
Send to TU: TU: Proxy size=0 

INVITE sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| proxy.cxx:85 | Got: INVITE
sips:200@example;user=phone SIP/2.0

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

Max-Forwards: 70

Contact: <sips:169.254.2.1:5061>

To: <sips:200@example;user=phone>

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Type: application/sdp

Content-Length: 178



v=0

o=newstep_client 4962136 12810 IN IP4 169.254.2.1

s=rtp

c=IN IP4 169.254.2.1

t=0 0

m=audio 30002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000


INFO | 20070425-170251.897 | repro | REPRO:APP | 260 |
proxy.cxx:229 | New RequestContext
tid=-24da-8ff50e-5b8b280b : SipReq:  INVITE
200@example tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
INFO | 20070425-170251.897 | repro | REPRO:APP | 260 |
proxy.cxx:238 | Inserting new RequestContext
tid=-24da-8ff50e-5b8b280b -> RequestContext: 
identity= count=1 final=0
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| proxy.cxx:240 | RequestContexts:
[-24da-8ff50e-5b8b280b -> 0176C340]
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| requestcontext.cxx:84 | process(SipMessage)
RequestContext:  identity= count=1 final=0
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| requestcontext.cxx:126 | Got a request.
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
Monkey Chain![01759880, 01760448, 017604F8, 01760580,
01760608, 017606A0]
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
StrictRouteFixup monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| strictroutefixup.cxx:35 | Monkey handling request:
StrictRouteFixup monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey: Set
Target Connection Monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| settargetconnection.cxx:29 | Monkey handling
request: Set Target Connection Monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
IsTrustedNode monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| istrustednode.cxx:32 | Monkey handling request:
IsTrustedNode monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
INFO | 20070425-170251.897 | repro | REPRO:APP | 260 |
aclstore.cxx:504 | AclStore - source address NOT
trusted: 169.254.2.1:1122 TLS
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
AmIResponsible monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| amiresponsible.cxx:29 | Monkey handling request:
AmIResponsible monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| proxy.cxx:419 | Proxy::isMyUri
sips:200@example;user=phone 1
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
Static Route Monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| staticroute.cxx:36 | Monkey handling request: Static
Route Monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| processorchain.cxx:74 | Chain invoking monkey:
LocationServer monkey

DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| locationserver.cxx:25 | Monkey handling request:
LocationServer monkey
; reqcontext = RequestContext:  identity= count=1
final=0 orig requri=SipReq:  INVITE 200@example
tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
INFO | 20070425-170251.897 | repro | REPRO:APP | 260 |
requestcontext.cxx:251 | RequestContext:  identity=
count=1 final=0 orig requri=SipReq:  INVITE
200@example tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example:
no targets for sips:200@example;user=phone send 480
DEBUG | 20070425-170251.897 | repro | RESIP | 260 |
helper.cxx:302 | Helper::makeResponse(SipReq:  INVITE
200@example tid=-24da-8ff50e-5b8b280b cseq=INVITE
contact=169.254.2.1:5061 / 1 from(wire) tlsd=example
code=480 reason=
DEBUG | 20070425-170251.897 | repro | REPRO:APP | 260
| requestcontext.cxx:633 | Sending final response.
DEBUG | 20070425-170251.897 | repro | RESIP | 260 |
sipstack.cxx:283 | SEND: SipResp: 480
tid=-24da-8ff50e-5b8b280b cseq=INVITE / 1 from(tu)
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:242 |
Found matching transaction for SipResp: 480
tid=-24da-8ff50e-5b8b280b cseq=INVITE / 1 from(tu) ->
tid=-24da-8ff50e-5b8b280b [ ServerInvite/Trying
reliable target=[ V4 169.254.2.1:5061 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ]]
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:1035 |
TransactionState::processServerInvite: SipResp: 480
tid=-24da-8ff50e-5b8b280b cseq=INVITE / 1 from(tu)
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:1181 |
Received failed response in Trying or Proceeding.
Start Timer H, move to
completed.tid=-24da-8ff50e-5b8b280b [
ServerInvite/Trying reliable target=[ V4
169.254.2.1:5061 TLS target domain=unspecified
received on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]]
DEBUG | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | timerqueue.cxx:85 | Adding
timer: Timer H tid=-24da-8ff50e-5b8b280b ms=32000
STACK | 20070425-170251.897 | repro |
RESIP:TRANSACTION | 1460 | transactionstate.cxx:1650 |
tid=-24da-8ff50e-5b8b280b sending to : [ V4
169.254.2.1:5061 TLS target domain=unspecified
received on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]
DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | transportselector.cxx:520 | Looked up source
for destination: [ V4 169.254.2.1:5061 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ] -> [ V4
169.254.2.2:0 TLS target domain=unspecified received
on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]
sent-by=169.254.2.1 sent-port=5061
DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | transportselector.cxx:868 | Transmitting to [
V4 169.254.2.1:5061 TLS target domain=unspecified
received on: Transport: [ V4 0.0.0.0:5061 TLS target
domain=unspecified connectionId=0 ] connectionId=2 ]
tlsDomain= via [ V4 169.254.2.2:5061 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ]

SIP/2.0 480 Temporarily Unavailable

Via: SIP/2.0/TLS
169.254.2.1:5061;branch=z9hG4bK-24da-8ff50e-5b8b280b

To: <sips:200@example;user=phone>;tag=f7577737

From:
<sips:100@example;user=phone>;tag=41d5c8-0-13c4-45018-24da-7b34ae4a-24da

Call-ID: 4bb758-0-13c4-45018-24d9-7ed716e4-24d9

CSeq: 1 INVITE

Content-Length: 0




DEBUG | 20070425-170251.897 | repro | RESIP:TRANSPORT
| 1460 | transport.cxx:213 | Adding message to tx
buffer to: [ V4 169.254.2.1:5061 TLS target
domain=unspecified received on: Transport: [ V4
0.0.0.0:5061 TLS target domain=unspecified
connectionId=0 ] connectionId=2 ]


--- Byron Campen <bcampen@xxxxxxxxxxxx> wrote:

>       I am not seeing any code that would cause what
> you're describing.  
> For responses, the port in the sent-by portion of
> the Via is ignored  
> entirely. rport can override the port we send back
> to, but that  
> should never be set by anything other then the
> receiver of the  
> request, and it will be set to the same port as the
> source anyway.  
> Could you provide a message trace?
> 
> Best regards,
> Byron Campen
> 
> > RFC 3261 defines at "18.2.2 Sending Responses"
> >
> > "If the "sent-protocol" is a reliable transport
> > protocol such as
> >          TCP or SCTP, or TLS over those, the
> response
> > MUST be sent using
> >          the existing connection to the source of
> the
> > original request
> >          that created the transaction, if that
> > connection is still open.
> >          This requires the server transport to
> > maintain an association
> >          between server transactions and transport
> > connections."
> >
> > I noticed that repro is trying to locate
> connection
> > for sending response based on data retrieved from
> Via
> > header of request (REGISTER in my case). Since Via
> > header has 5061 port and REGISTER was sent from
> > different port it failed to locate already
> established
> > connection for sending response. Should it be
> fixed?
> >
> > Thanks,
> > Boris
> >
> >
> >
> >
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
> >
>
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
> 
> 



      Be smarter than spam. See how smart SpamGuard is at giving junk email the 
boot with the All-new Yahoo! Mail at http://mrd.mail.yahoo.com/try_beta?.intl=ca