List Info

Thread: Need some help




Need some help
user name
2007-05-10 08:08:36
Hi all,

Trying to make call function work, I found this error in the log messages (in the callee side):

FIN: impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequest() Found one processor for method INVITE, processor is=OperationSetBasicTelephonySipImpl-[dn=1561 addr=";1561" < sip:1561192.168.27.33">sip:1561192.168.27.33>]

GRAVE: impl.protocol.sip.OperationSetBasicTelephonySipImpl.processRequest() Failed to create a new servertransaction for an incoming request (Next message contains the request) :

javax.sip.TransactionUnavailableException: Missing a required header : Max-Forwards


So I looked in the source code and I found that it's an error generated from the processRequest method in the OperationSetBasicTelephonySipImpl.java

Now it's clear that the problem came from the servertransaction wich doesn't correctly occure,
" ServerTransaction serverTransaction = requestEvent.getServerTransaction();" returns null.


The problem is that I wasn't able to go far with this debugging as it seems to me that this function is included in the jain-sip stack...?? Someone can tell me how should I resolve this problem? Have I to look upon the jain-sip stack??

Thanks to all.
Re: Need some help
user name
2007-05-10 08:51:26
Hello asmouta,

 From the way you describe your problem I'd say that there
is a problem 
with the incoming request.

> Missing a required header : Max-Forwards

Make sure the request is properly sent to SIP Communicator,
that is make 
sure it contains a Max-Forwards header.

Cheers
Emil


asmouta wrote:
> Hi all,
> 
> Trying to make call function work, I found this error
in the log 
> messages (in the callee side):
> 
> FIN:
impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequ
est() 
> Found one processor for method INVITE, processor 
> is=OperationSetBasicTelephonySipImpl-[dn=1561
addr="1561" 
> <sip:1561192.168.27.33 <mailto:sip:1561192.168.27.33>>]
> 
> GRAVE: 
>
impl.protocol.sip.OperationSetBasicTelephonySipImpl.processR
equest() 
> Failed to create a new servertransaction for an
incoming request (Next 
> message contains the request) :
> javax.sip.TransactionUnavailableException: Missing a
required header : 
> Max-Forwards
> 
> So I looked in the source code and I found that it's an
error generated 
> from the processRequest method in the
OperationSetBasicTelephonySipImpl.java
> 
> Now it's clear that the problem came from the
servertransaction wich 
> doesn't correctly occure,
> " ServerTransaction serverTransaction = 
> requestEvent.getServerTransaction();" returns
null.
> 
> The problem is that I wasn't able to go far with this
debugging as it 
> seems to me that this function is included in the
jain-sip stack...?? 
> Someone can tell me how should I resolve this problem?
Have I to look 
> upon the jain-sip stack??
> 
> Thanks to all.

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribesip-communicator.dev.java.net
For additional commands, e-mail: dev-helpsip-communicator.dev.java.net


Re: Need some help
user name
2007-05-11 08:52:03
Hi Emil,

I made different scenario&nbsp; and  each time I analysed the trafic between the two clients and the asterisk, here are my conclusions :
- the sip-communicator client (in the caller side) successfully generate an invite request (all headers are there, even the max-forwards headers).
- the sip-communicator client (in the callee side) cannot see the max-forward header and I dont know why...
- I've also noticed this thanks to ethereal : lets say that we have two sip-communicator client s ; A (caller), B (callee) and (C) the asterisk sip-proxy and let focus on this scenario (I'm only interested in the max-forward header) :

A ----(MaxF-header)----> C ----(No Max-F header)------>B

So I thought that was the problem, I mean that it came from the asterisk configuration! But when I repeated the same scenario with a sip-communicator A (caller) and an sjphone B (callee), I was disappointed since it was the same thing but this time, the callee was able to receive the call and the communication took place.

All that to say that maybe my first thought was right and the problem is located on the procedure of call reception and that the sip-communicator is not able to extract the MaxF header from the invite it receives...??

Thanks for reading and it'll be helpful if you give me back your point of view.



On 5/10/07, Emil Ivov < emchoemcho.com">emchoemcho.com> wrote:
Hello asmouta,

From the way you describe your problem I'd say that there is a problem
with the incoming request.

> Missing a required header : Max-Forwards

Make sure the request is properly sent to SIP Communicator, that is make
sure it contains a Max-Forwards header.

Cheers
Emil


asmouta wrote:
>; Hi all,
>
> Trying to make call function work, I found this error in the log
> messages (in the callee side):
&gt;
> FIN: impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequest()
> Found one processor for method INVITE, processor
> is=OperationSetBasicTelephonySipImpl-[dn=1561 addr=";1561"
> < sip:1561192.168.27.33">sip:1561192.168.27.33 <mailto: sip">sip: 1561192.168.27.33">1561192.168.27.33>>;]
>
>; GRAVE:
>; impl.protocol.sip.OperationSetBasicTelephonySipImpl.processRequest ()
> Failed to create a new servertransaction for an incoming request (Next
> message contains the request) :
> javax.sip.TransactionUnavailableException: Missing a required header :
> Max-Forwards
>
&gt; So I looked in the source code and I found that it's an error generated
> from the processRequest method in the OperationSetBasicTelephonySipImpl.java
>
> Now it's clear that the problem came from the servertransaction wich
>; doesn't correctly occure,
&gt; " ServerTransaction serverTransaction =
> requestEvent.getServerTransaction();" returns null.
>
> The problem is that I wasn't able to go far with this debugging as it
> seems to me that this function is included in the jain-sip stack...??
> Someone can tell me how should I resolve this problem? Have I to look
> upon the jain-sip stack??
&gt;
> Thanks to all.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribesip-communicator.dev.java.net">dev-unsubscribesip-communicator.dev.java.net
For additional commands, e-mail: dev-helpsip-communicator.dev.java.net">dev-helpsip-communicator.dev.java.net


Re: Need some help
user name
2007-05-11 09:12:39
Hello asmouta,

asmouta wrote:
> - I've also noticed this thanks to ethereal : lets say
that we have two 
> sip-communicator client s ; A (caller), B (callee) and
(C) the asterisk 
> sip-proxy and let focus on this scenario (I'm only
interested in the 
> max-forward header) :
> 
> A ----(MaxF-header)----> C ----(No Max-F
header)------>B

OK this explains the exception, as the jain-sip stack would
consider the 
request invalid if it doesn't contain the Max-Forwards
header and would 
not create a server transaction for it. It's quite strange
that asterisk 
would remove it though. We also have an asterisk
installation here and 
we don't have the situation you describe.

> So I thought that was the problem, I mean that it came
from the asterisk 
> configuration! But when I repeated the same scenario
with a 
> sip-communicator A (caller) and an sjphone B (callee),
I was 
> disappointed since it was the same thing but this time,
the callee was 
> able to receive the call and the communication took
place.

Well, apparently sjphone accepts requests that are missing a

Max-Forwards header. I suspect there is a reason why
jain-sip would 
refuse them. Maybe Ranga could shed some light on the
matter?

In the meantime you could check whether the lack of a
Max-Forwards 
header affects the rest of the application by temporarily
commenting the 
following check in gov.nist.javax.sip.message.SIPRequest

  if (getMaxForwards() == null) {
	throw new ParseException(prefix + MaxForwardsHeader.NAME,
0);
  }

(line 234 in my sandbox)

Cheers
Emil

> 
> All that to say that maybe my first thought was right
and the problem is 
> located on the procedure of call reception and that the
sip-communicator 
> is not able to extract the MaxF header from the invite
it receives...??
> 
> Thanks for reading and it'll be helpful if you give me
back your point 
> of view.
> 
> 
> 
> On 5/10/07, *Emil Ivov* <emchoemcho.com
<mailto:emchoemcho.com>> wrote:
> 
>     Hello asmouta,
> 
>      From the way you describe your problem I'd say
that there is a problem
>     with the incoming request.
> 
>      > Missing a required header : Max-Forwards
> 
>     Make sure the request is properly sent to SIP
Communicator, that is
>     make
>     sure it contains a Max-Forwards header.
> 
>     Cheers
>     Emil
> 
> 
>     asmouta wrote:
>      > Hi all,
>      >
>      > Trying to make call function work, I found
this error in the log
>      > messages (in the callee side):
>      >
>      > FIN:
>    
impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequ
est()
>      > Found one processor for method INVITE,
processor
>      > is=OperationSetBasicTelephonySipImpl-[dn=1561
addr="1561"
>      > <sip:1561192.168.27.33
<mailto:sip:1561192.168.27.33>
>     <mailto:sip <mailto:sip>:1561192.168.27.33
>     <mailto:1561192.168.27.33>>>]
>      >
>      > GRAVE:
>      >
impl.protocol.sip.OperationSetBasicTelephonySipImpl.processR
equest ()
>      > Failed to create a new servertransaction for
an incoming request
>     (Next
>      > message contains the request) :
>      > javax.sip.TransactionUnavailableException:
Missing a required
>     header :
>      > Max-Forwards
>      >
>      > So I looked in the source code and I found
that it's an error
>     generated
>      > from the processRequest method in the
>     OperationSetBasicTelephonySipImpl.java
>      >
>      > Now it's clear that the problem came from the
servertransaction wich
>      > doesn't correctly occure,
>      > " ServerTransaction serverTransaction =
>      > requestEvent.getServerTransaction();"
returns null.
>      >
>      > The problem is that I wasn't able to go far
with this debugging
>     as it
>      > seems to me that this function is included in
the jain-sip stack...??
>      > Someone can tell me how should I resolve this
problem? Have I to look
>      > upon the jain-sip stack??
>      >
>      > Thanks to all.
> 
>    
------------------------------------------------------------
---------
>     To unsubscribe, e-mail:
>     dev-unsubscribesip-communicator.dev.java.net
>     <mailto:dev-unsubscribesip-communicator.dev.java.net>
>     For additional commands, e-mail:
>     dev-helpsip-communicator.dev.java.net
>     <mailto:dev-helpsip-communicator.dev.java.net>
> 
> 

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribesip-communicator.dev.java.net
For additional commands, e-mail: dev-helpsip-communicator.dev.java.net


Re: Need some help
user name
2007-05-11 10:04:16
Thanks a lot Emil,

have a little question, where can I find the JainSipRi1.2.jar source? Because it doesn't come with the sip-communicator... I found on the internet the source of the SIPRequest.java but the eclipse need the whole jar file JainSipRi1.2.jar to let me change the SIPRequest.java. All I've found in the sip-communicator source is the JainSipRi1.2.jar with classes.

Best regards.

On 5/11/07, Emil Ivov < emchoemcho.com">emchoemcho.com> wrote:
Hello asmouta,

asmouta wrote:
>; - I've also noticed this thanks to ethereal : lets say that we have two
> sip-communicator client s ; A (caller), B (callee) and (C) the asterisk
&gt; sip-proxy and let focus on this scenario (I'm only interested in the
> max-forward header) :
>
>; A ----(MaxF-header)----> C ----(No Max-F header)------>B

OK this explains the exception, as the jain-sip stack would consider the
request invalid if it doesn't contain the Max-Forwards header and would
not create a server transaction for it. It's quite strange that asterisk
would remove it though. We also have an asterisk installation here and
we don't have the situation you describe.

> So I thought that was the problem, I mean that it came from the asterisk
> configuration! But when I repeated the same scenario with a
> sip-communicator A (caller) and an sjphone B (callee), I was
> disappointed since it was the same thing but this time, the callee was
> able to receive the call and the communication took place.

Well, apparently sjphone accepts requests that are missing a
Max-Forwards header. I suspect there is a reason why jain-sip would
refuse them. Maybe Ranga could shed some light on the matter?

In the meantime you could check whether the lack of a Max-Forwards
header affects the rest of the application by temporarily commenting the
following check in gov.nist.javax.sip.message.SIPRequest

&nbsp; if (getMaxForwards() == null) {
 &nbsp; &nbsp;   ; throw new ParseException(prefix + MaxForwardsHeader.NAME, 0);
  }

(line 234 in my sandbox)

Cheers
Emil

>
> All that to say that maybe my first thought was right and the problem is
> located on the procedure of call reception and that the sip-communicator
&gt; is not able to extract the MaxF header from the invite it receives...??
>
&gt; Thanks for reading and it'll be helpful if you give me back your point
> of view.
>
>
>
> On 5/10/07, *Emil Ivov* < emchoemcho.com">emchoemcho.com <mailto: emchoemcho.com">emchoemcho.com>> wrote:
>;
; &nbsp;  Hello asmouta,
&gt;
>&nbsp; &nbsp; &nbsp; From the way you describe your problem I'd say that there is a problem
> &nbsp;   with the incoming request.
&gt;
>&nbsp; &nbsp; &nbsp; > Missing a required header : Max-Forwards
>
>; &nbsp; &nbsp; Make sure the request is properly sent to SIP Communicator, that is
>&nbsp; &nbsp;  make
>&nbsp;   ; sure it contains a Max-Forwards header.
>
>&nbsp; &nbsp;  Cheers
>; &nbsp; &nbsp; Emil
>
>
>&nbsp; &nbsp;  asmouta wrote:
>; &nbsp; &nbsp; &nbsp;> Hi all,
>&nbsp;   ; &nbsp;>
>  ; &nbsp; &nbsp;> Trying to make call function work, I found this error in the log
>&nbsp; &nbsp;   ;> messages (in the callee side):
&gt; &nbsp; &nbsp;  >
> &nbsp;   ; > FIN:
>&nbsp;   ; impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequest()
  ; &nbsp; >; Found one processor for method INVITE, processor
> &nbsp;   ; > is=OperationSetBasicTelephonySipImpl-[dn=1561 addr=";1561"
>&nbsp; &nbsp; &nbsp; &gt; < sip:1561192.168.27.33">sip:1561192.168.27.33 <mailto: sip">sip: 1561192.168.27.33">1561192.168.27.33>
&gt; &nbsp; &nbsp; <mailto: sip"> sip <mailto: sip">sip&gt;: 1561192.168.27.33">1561192.168.27.33
>&nbsp; &nbsp;  <mailto: 1561192.168.27.33">1561192.168.27.33>>;>]
>  ; &nbsp; &nbsp;>
&gt; &nbsp; &nbsp;  > GRAVE:
>; &nbsp; &nbsp; &nbsp;> impl.protocol.sip.OperationSetBasicTelephonySipImpl.processRequest ()
>&nbsp; &nbsp; &nbsp; > Failed to create a new servertransaction for an incoming request
&gt; &nbsp; &nbsp; (Next
>  ; &nbsp; &nbsp;> message contains the request) :
>&nbsp; &nbsp;   ;> javax.sip.TransactionUnavailableException: Missing a required
&gt; &nbsp; &nbsp; header :
>&nbsp; &nbsp; &nbsp; &gt; Max-Forwards
>&nbsp; &nbsp; &nbsp; &gt;
>&nbsp; &nbsp; &nbsp; > So I looked in the source code and I found that it's an error
&gt; &nbsp; &nbsp; generated
> &nbsp;   ; > from the processRequest method in the
>&nbsp; &nbsp;  OperationSetBasicTelephonySipImpl.java
>  ; &nbsp; &nbsp;>
>; &nbsp; &nbsp; &nbsp;> Now it's clear that the problem came from the servertransaction wich
>; &nbsp; &nbsp; &nbsp;> doesn't correctly occure,
&gt; &nbsp; &nbsp; &nbsp;> " ServerTransaction serverTransaction =
>&nbsp; &nbsp; &nbsp; &gt; requestEvent.getServerTransaction();" returns null.
>  ; &nbsp; &nbsp;>
>; &nbsp; &nbsp; &nbsp;> The problem is that I wasn't able to go far with this debugging
; &nbsp;  as it
>&nbsp; &nbsp; &nbsp; > seems to me that this function is included in the jain-sip stack...??
  ; &nbsp; >; Someone can tell me how should I resolve this problem? Have I to look
>&nbsp;   ; &nbsp;> upon the jain-sip stack??
> &nbsp;   ; >
  ; &nbsp; >; Thanks to all.
>
> &nbsp;   ---------------------------------------------------------------------
>&nbsp; &nbsp;  To unsubscribe, e-mail:
&gt; &nbsp; &nbsp; dev-unsubscribesip-communicator.dev.java.net"> dev-unsubscribesip-communicator.dev.java.net
&gt; &nbsp; &nbsp; <mailto: dev-unsubscribesip-communicator.dev.java.net">dev-unsubscribesip-communicator.dev.java.net&gt;
>&nbsp; &nbsp;  For additional commands, e-mail:
> &nbsp;   dev-helpsip-communicator.dev.java.net">dev-helpsip-communicator.dev.java.net
&gt; &nbsp; &nbsp; <mailto: dev-helpsip-communicator.dev.java.net">dev-helpsip-communicator.dev.java.net >
>
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribesip-communicator.dev.java.net">dev-unsubscribesip-communicator.dev.java.net
For additional commands, e-mail: dev-helpsip-communicator.dev.java.net">dev-helpsip-communicator.dev.java.net


Re: Need some help
user name
2007-05-11 10:59:52
Here u go,

http://jain-sip.dev.java
.net

Cheers
Emil

asmouta wrote:
> Thanks a lot Emil,
> 
> have a little question, where can I find the
JainSipRi1.2.jar source? 
> Because it doesn't come with the sip-communicator... I
found on the 
> internet the source of the SIPRequest.java but the
eclipse need the 
> whole jar file JainSipRi1.2.jar to let me change the
SIPRequest.java. 
> All I've found in the sip-communicator source is the
JainSipRi1.2.jar 
> with classes.
> 
> Best regards.
> 
> On 5/11/07, *Emil Ivov* <emchoemcho.com
<mailto:emchoemcho.com>> wrote:
> 
>     Hello asmouta,
> 
>     asmouta wrote:
>      > - I've also noticed this thanks to ethereal :
lets say that we
>     have two
>      > sip-communicator client s ; A (caller), B
(callee) and (C) the
>     asterisk
>      > sip-proxy and let focus on this scenario (I'm
only interested in the
>      > max-forward header) :
>      >
>      > A ----(MaxF-header)----> C ----(No Max-F
header)------>B
> 
>     OK this explains the exception, as the jain-sip
stack would consider the
>     request invalid if it doesn't contain the
Max-Forwards header and would
>     not create a server transaction for it. It's quite
strange that asterisk
>     would remove it though. We also have an asterisk
installation here and
>     we don't have the situation you describe.
> 
>      > So I thought that was the problem, I mean
that it came from the
>     asterisk
>      > configuration! But when I repeated the same
scenario with a
>      > sip-communicator A (caller) and an sjphone B
(callee), I was
>      > disappointed since it was the same thing but
this time, the
>     callee was
>      > able to receive the call and the
communication took place.
> 
>     Well, apparently sjphone accepts requests that are
missing a
>     Max-Forwards header. I suspect there is a reason
why jain-sip would
>     refuse them. Maybe Ranga could shed some light on
the matter?
> 
>     In the meantime you could check whether the lack of
a Max-Forwards
>     header affects the rest of the application by
temporarily commenting the
>     following check in
gov.nist.javax.sip.message.SIPRequest
> 
>       if (getMaxForwards() == null) {
>             throw new ParseException(prefix +
MaxForwardsHeader.NAME, 0);
>       }
> 
>     (line 234 in my sandbox)
> 
>     Cheers
>     Emil
> 
>      >
>      > All that to say that maybe my first thought
was right and the
>     problem is
>      > located on the procedure of call reception
and that the
>     sip-communicator
>      > is not able to extract the MaxF header from
the invite it
>     receives...??
>      >
>      > Thanks for reading and it'll be helpful if
you give me back your
>     point
>      > of view.
>      >
>      >
>      >
>      > On 5/10/07, *Emil Ivov* < emchoemcho.com
>     <mailto:emchoemcho.com>
<mailto:emchoemcho.com
>     <mailto:emchoemcho.com>>>
wrote:
>      >
>      >     Hello asmouta,
>      >
>      >      From the way you describe your problem
I'd say that there is
>     a problem
>      >     with the incoming request.
>      >
>      >      > Missing a required header :
Max-Forwards
>      >
>      >     Make sure the request is properly sent to
SIP Communicator,
>     that is
>      >     make
>      >     sure it contains a Max-Forwards header.
>      >
>      >     Cheers
>      >     Emil
>      >
>      >
>      >     asmouta wrote:
>      >      > Hi all,
>      >      >
>      >      > Trying to make call function work,
I found this error in
>     the log
>      >      > messages (in the callee side):
>      >      >
>      >      > FIN:
>      >    
impl.protocol.sip.ProtocolProviderServiceSipImpl.processRequ
est()
>      >      > Found one processor for method
INVITE, processor
>      >      >
is=OperationSetBasicTelephonySipImpl-[dn=1561
addr="1561"
>      >      > <sip:1561192.168.27.33
<mailto:sip:1561192.168.27.33>
>     <mailto:sip <mailto:sip>:1561192.168.27.33 <mailto:1561192.168.27.33>>
>      >     <mailto: sip <mailto:sip>
<mailto:sip
>     <mailto:sip>>:1561192.168.27.33
<mailto:1561192.168.27.33>
>      >     <mailto:1561192.168.27.33
<mailto:1561192.168.27.33>>>>]
>      >      >
>      >      > GRAVE:
>      >      >
>    
impl.protocol.sip.OperationSetBasicTelephonySipImpl.processR
equest ()
>      >      > Failed to create a new
servertransaction for an incoming
>     request
>      >     (Next
>      >      > message contains the request) :
>      >      >
javax.sip.TransactionUnavailableException: Missing a
required
>      >     header :
>      >      > Max-Forwards
>      >      >
>      >      > So I looked in the source code and
I found that it's an error
>      >     generated
>      >      > from the processRequest method in
the
>      >     OperationSetBasicTelephonySipImpl.java
>      >      >
>      >      > Now it's clear that the problem
came from the
>     servertransaction wich
>      >      > doesn't correctly occure,
>      >      > " ServerTransaction
serverTransaction =
>      >      >
requestEvent.getServerTransaction();" returns null.
>      >      >
>      >      > The problem is that I wasn't able
to go far with this
>     debugging
>      >     as it
>      >      > seems to me that this function is
included in the jain-sip
>     stack...??
>      >      > Someone can tell me how should I
resolve this problem?
>     Have I to look
>      >      > upon the jain-sip stack??
>      >      >
>      >      > Thanks to all.
>      >
>      >    
>    
------------------------------------------------------------
---------
>      >     To unsubscribe, e-mail:
>      >     dev-unsubscribesip-communicator.dev.java.net
>     <mailto:dev-unsubscribesip-communicator.dev.java.net>
>      >     <mailto:dev-unsubscribesip-communicator.dev.java.net
>     <mailto:dev-unsubscribesip-communicator.dev.java.net>>
>      >     For additional commands, e-mail:
>      >     dev-helpsip-communicator.dev.java.net
>     <mailto:dev-helpsip-communicator.dev.java.net>
>      >     <mailto:dev-helpsip-communicator.dev.java.net
>     <mailto:dev-helpsip-communicator.dev.java.net>>
>      >
>      >
> 
>    
------------------------------------------------------------
---------
>     To unsubscribe, e-mail:
>     dev-unsubscribesip-communicator.dev.java.net
>     <mailto:dev-unsubscribesip-communicator.dev.java.net>
>     For additional commands, e-mail:
>     dev-helpsip-communicator.dev.java.net
>     <mailto:dev-helpsip-communicator.dev.java.net>
> 
> 

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribesip-communicator.dev.java.net
For additional commands, e-mail: dev-helpsip-communicator.dev.java.net


Re: Need some help
user name
2007-05-11 11:15:20
Ok, thanks, I'll do and give you feed back.

On 5/11/07, Emil Ivov < emchoemcho.com">emchoemcho.com> wrote:
Here u go,

http://jain-sip.dev.java.net

Cheers
Emil

asmouta wrote:
>; Thanks a lot Emil,
>
> have a little question, where can I find the JainSipRi1.2.jar source?
&gt; Because it doesn't come with the sip-communicator... I found on the
> internet the source of the SIPRequest.java but the eclipse need the
> whole jar file JainSipRi1.2.jar to let me change the SIPRequest.java.
&gt; All I've found in the sip-communicator source is the JainSipRi1.2.jar
> with classes.
&gt;
> Best regards.
&gt;

[1-7]

about | contact  Other archives ( Real Estate discussion Medical topics )