Hello,
it is my pleasure to announce that SEMS 1.2.0 has been released. This
release again brings many improvements to this fine, free SIP Media
and Application server.
Get the source at
http://ftp.iptel.org/pub/sems/sems-1.2.0.tar.gz
Some debian packages at
http://ftp.iptel.org/pub/sems/1.2/1.2.0/packages/
Changelog:
http://ftp.iptel.org/pub/sems/doc/current/changelog.html
Documentation got some new getting started tutorials:
http://ftp.iptel.org/pub/sems/doc/current/index.…
[View More]html
And there is now an experimental lenny32 vmware image available,
configured as webconference server (but usable for all applications
with minimal reconfiguration):
https://developer.berlios.de/project/shownotes.php?release_id=17393
For more information see the home page at http://iptel.org/sems .
Among the most interesting news I would like to emphasize that its
powerful state machine scripting engine DSM has matured a lot between
1.1 and 1.2 versions. Thanks to its growing number of modules
(including MySQL DB, conferencing, Python and AWS), live script
reloading and monitoring, its interfacing to external applications,
and its extended script language it has become a good service
development and deployment platform.
Other interesting additions is a CMake based build system, an
in-memory DB 'monitoring' for administrative and applications use, a
twitter app, and numerous fixes and improvements all around.
Respect and many Thanks go to all contributors and sponsors of the
SEMS project.
With Best Regards
Stefan Sayer
P.S. Apologies if you have received multiple copies of this message.
--
Stefan Sayer
VoIP Services Consulting and Development
Warschauer Str. 24
10243 Berlin
tel:+491621366449
sip:sayer@iptel.org
email/xmpp:stefan.sayer@gmail.com
[View Less]
Hi,
I'm looking for a workarround to avoid a buggy CPE.
The CPE doesn't stop to try to register after he got a 401 Unauthorized.
So this produce a flooding.
That's why I'm looking for something to send a first 401 and then a 403
if the registration keep failing.
Thanks in advance for your idea.
Regards,
Adrien
"users-request(a)lists.kamailio.org" <users-request(a)lists.kamailio.org>
schrieb:
Send Users mailing list submissions to
users(a)lists.kamailio.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
or, via email, send a message with subject or body 'help' to
users-request(a)lists.kamailio.org
You can reach the person managing the list at
users-owner(a)lists.kamailio.org
When replying, please edit your Subject line …
[View More]so it is more specific
than "Re: Contents of Users digest..."
Today's Topics:
1. Re: Odd Behaviour with Kamailio + TLS (Klaus Darilion)
2. Re: Registrar: Save modified contact / set the q value
(Daniel-Constantin Mierla)
3. Re: more type conversion wonders (Daniel-Constantin Mierla)
----------------------------------------------------------------------
Message: 1
Date: Wed, 31 Mar 2010 11:34:45 +0200
From: Klaus Darilion <klaus.mailinglists(a)pernau.at>
Subject: Re: [Kamailio-Users] Odd Behaviour with Kamailio + TLS
To: Hemanshu Patel <hemanshu.patel(a)saicare.com>
Cc: users(a)lists.kamailio.org
Message-ID: <4BB31735.6030500(a)pernau.at>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Am 31.03.2010 08:56, schrieb Hemanshu Patel:
>
> Hi all,
>
> I am not sure it is strange behavior or its the desirable one.
>
> i have got two phones registered via TLS to kamailio-1.5.X version.
>
> phone1: connected via ip1:port1 and having contact value ip1:port2
> phone2: connected via ip2:port3 and having contact value ip2:port4
>
> when i have just this two phones i can see 2 TCP connected to my
kamailio
> from both phones from ip1:port1 and ip2:port3.
>
> now when i call from phone1 to phone2, rather then using the already
> established and TLS authenticated connection kamailio creates two new
> connection from kamailio to ip1:port2 and ip2:port4.
> mean kamailio creates new connection to the contact value stored in
> location table of openser DB.
>
> Is this the desirable behavior? shouldn't kamailio use the alreay
> established connection?
This is the standard Kamailio behavior. Thus, you should apply NAT
traversal techniques to instruct Kamailio to reuse the established
connection.
In short: for each register call fix_nated_register(). For every other
request and response call fix_nated_contact().
Thus, if you use the default configuration and apply NAT traversal it
should work.
regards
klaus
------------------------------
Message: 2
Date: Wed, 31 Mar 2010 11:37:27 +0200
From: Daniel-Constantin Mierla <miconda(a)gmail.com>
Subject: Re: [Kamailio-Users] Registrar: Save modified contact / set
the q value
To: Ovidiu Sas <osas(a)voipembedded.com>
Cc: NeoTel Lists <MailingLists(a)neotel.at>, users(a)lists.kamailio.org
Message-ID: <4BB317D7.4030102(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 3/30/10 8:29 PM, Ovidiu Sas wrote:
> If you need this in 1.5, try to fix the contact header and then
> forward the REGISTER back to yourself.
> The loopback REGISTER should have the fixed Contact header and now you
> can call save().
> You will need to tweak a a little bit the config to get everything
> right into the usrloc (the loopback REGISTER will come from the server
> IP) and it might work.
>
it works for no nat scenario, otherwise make sure you will get the
looped message on the same socket and you add before looping a header
with source ip and port (corresponding nat box pinhole) that you store
in received avp.
Cheers,
Daniel
> Regards,
> Ovidiu Sas
>
> On Tue, Mar 30, 2010 at 11:36 AM, NeoTel Lists<MailingLists(a)neotel.at>
wrote:
>
>> Hello Everybody!
>>
>> Is there any way to save(domain, 0x02) the contact after it has been
changed
>> somehow in Kamailio<= 1.5?
>> Do I have to upgrade to 3.0 and use msg_apply_changes() before save()?
>>
>> Or: Can I set the to be saved q value somehow?
>>
>> br
>> Walter
>>
>> _______________________________________________
>> Kamailio (OpenSER) - Users mailing list
>> Users(a)lists.kamailio.org
>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>>
>>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users(a)lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
--
Daniel-Constantin Mierla * http://www.asipto.com/ *
http://twitter.com/miconda *
http://www.linkedin.com/in/danielconstantinmierla
------------------------------
Message: 3
Date: Wed, 31 Mar 2010 11:41:29 +0200
From: Daniel-Constantin Mierla <miconda(a)gmail.com>
Subject: Re: [Kamailio-Users] more type conversion wonders
To: Juha Heinanen <jh(a)tutpro.com>
Cc: users(a)lists.sip-router.org
Message-ID: <4BB318C9.1080302(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 3/31/10 8:40 AM, Juha Heinanen wrote:
> i played a bit more with selects and found that statement
>
> if ($sht(auth=>foo::count)> @cfg_get.local.gw_timeout) {
> xlog("foo");
> }
>
I guess selects have types, while pseudo-variables are kind of type
agnostic. Any PV has a string representation of the value, comparison is
done as integer if both PVs are integers, otherwise is done as string.
The safe side is to use PV representation of selects when comparing with
another PV.
PV and selects is another point for the future coherence.
Cheers,
Daniel
> produces error
>
> 0(9213) :<core> [cfg.y:3379]: parse error in config file
/etc/sip-proxy/sip-proxy.cfg, line 507, column 28-55: bad expression: type
mismatch: str instead of int at (507,55)
>
> but the error goes away if i either make explicit conversion
>
> if ($sht(auth=>foo::count)> (int)(a)cfg_get.local.gw_timeout) {
> xlog("foo");
> }
>
> or use $sel
>
> if ($sht(auth=>foo::count)> $sel(cfg_get.local.gw_timeout)) {
> xlog("foo");
> }
>
> this is thus exactly opposite than in my t_set_fr ordeal where i got
> conversion error when i used $sel instead of @.
>
> in my opinion, no (int) conversion should be needed in the firs case,
> because the value of the cfg variable is int.
>
> in summary, writing statements that include selects is very difficult
> and error prone.
>
> -- juha
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users(a)lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
--
Daniel-Constantin Mierla * http://www.asipto.com/ *
http://twitter.com/miconda *
http://www.linkedin.com/in/danielconstantinmierla
------------------------------
_______________________________________________
Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
End of Users Digest, Vol 58, Issue 76
*************************************
[View Less]
"users-request(a)lists.kamailio.org" <users-request(a)lists.kamailio.org>
schrieb:
Send Users mailing list submissions to
users(a)lists.kamailio.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
or, via email, send a message with subject or body 'help' to
users-request(a)lists.kamailio.org
You can reach the person managing the list at
users-owner(a)lists.kamailio.org
When replying, please edit your Subject line …
[View More]so it is more specific
than "Re: Contents of Users digest..."
Today's Topics:
1. Re: Odd Behaviour with Kamailio + TLS (Klaus Darilion)
2. Re: Registrar: Save modified contact / set the q value
(Daniel-Constantin Mierla)
3. Re: more type conversion wonders (Daniel-Constantin Mierla)
----------------------------------------------------------------------
Message: 1
Date: Wed, 31 Mar 2010 11:34:45 +0200
From: Klaus Darilion <klaus.mailinglists(a)pernau.at>
Subject: Re: [Kamailio-Users] Odd Behaviour with Kamailio + TLS
To: Hemanshu Patel <hemanshu.patel(a)saicare.com>
Cc: users(a)lists.kamailio.org
Message-ID: <4BB31735.6030500(a)pernau.at>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Am 31.03.2010 08:56, schrieb Hemanshu Patel:
>
> Hi all,
>
> I am not sure it is strange behavior or its the desirable one.
>
> i have got two phones registered via TLS to kamailio-1.5.X version.
>
> phone1: connected via ip1:port1 and having contact value ip1:port2
> phone2: connected via ip2:port3 and having contact value ip2:port4
>
> when i have just this two phones i can see 2 TCP connected to my
kamailio
> from both phones from ip1:port1 and ip2:port3.
>
> now when i call from phone1 to phone2, rather then using the already
> established and TLS authenticated connection kamailio creates two new
> connection from kamailio to ip1:port2 and ip2:port4.
> mean kamailio creates new connection to the contact value stored in
> location table of openser DB.
>
> Is this the desirable behavior? shouldn't kamailio use the alreay
> established connection?
This is the standard Kamailio behavior. Thus, you should apply NAT
traversal techniques to instruct Kamailio to reuse the established
connection.
In short: for each register call fix_nated_register(). For every other
request and response call fix_nated_contact().
Thus, if you use the default configuration and apply NAT traversal it
should work.
regards
klaus
------------------------------
Message: 2
Date: Wed, 31 Mar 2010 11:37:27 +0200
From: Daniel-Constantin Mierla <miconda(a)gmail.com>
Subject: Re: [Kamailio-Users] Registrar: Save modified contact / set
the q value
To: Ovidiu Sas <osas(a)voipembedded.com>
Cc: NeoTel Lists <MailingLists(a)neotel.at>, users(a)lists.kamailio.org
Message-ID: <4BB317D7.4030102(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 3/30/10 8:29 PM, Ovidiu Sas wrote:
> If you need this in 1.5, try to fix the contact header and then
> forward the REGISTER back to yourself.
> The loopback REGISTER should have the fixed Contact header and now you
> can call save().
> You will need to tweak a a little bit the config to get everything
> right into the usrloc (the loopback REGISTER will come from the server
> IP) and it might work.
>
it works for no nat scenario, otherwise make sure you will get the
looped message on the same socket and you add before looping a header
with source ip and port (corresponding nat box pinhole) that you store
in received avp.
Cheers,
Daniel
> Regards,
> Ovidiu Sas
>
> On Tue, Mar 30, 2010 at 11:36 AM, NeoTel Lists<MailingLists(a)neotel.at>
wrote:
>
>> Hello Everybody!
>>
>> Is there any way to save(domain, 0x02) the contact after it has been
changed
>> somehow in Kamailio<= 1.5?
>> Do I have to upgrade to 3.0 and use msg_apply_changes() before save()?
>>
>> Or: Can I set the to be saved q value somehow?
>>
>> br
>> Walter
>>
>> _______________________________________________
>> Kamailio (OpenSER) - Users mailing list
>> Users(a)lists.kamailio.org
>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>>
>>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users(a)lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
--
Daniel-Constantin Mierla * http://www.asipto.com/ *
http://twitter.com/miconda *
http://www.linkedin.com/in/danielconstantinmierla
------------------------------
Message: 3
Date: Wed, 31 Mar 2010 11:41:29 +0200
From: Daniel-Constantin Mierla <miconda(a)gmail.com>
Subject: Re: [Kamailio-Users] more type conversion wonders
To: Juha Heinanen <jh(a)tutpro.com>
Cc: users(a)lists.sip-router.org
Message-ID: <4BB318C9.1080302(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 3/31/10 8:40 AM, Juha Heinanen wrote:
> i played a bit more with selects and found that statement
>
> if ($sht(auth=>foo::count)> @cfg_get.local.gw_timeout) {
> xlog("foo");
> }
>
I guess selects have types, while pseudo-variables are kind of type
agnostic. Any PV has a string representation of the value, comparison is
done as integer if both PVs are integers, otherwise is done as string.
The safe side is to use PV representation of selects when comparing with
another PV.
PV and selects is another point for the future coherence.
Cheers,
Daniel
> produces error
>
> 0(9213) :<core> [cfg.y:3379]: parse error in config file
/etc/sip-proxy/sip-proxy.cfg, line 507, column 28-55: bad expression: type
mismatch: str instead of int at (507,55)
>
> but the error goes away if i either make explicit conversion
>
> if ($sht(auth=>foo::count)> (int)(a)cfg_get.local.gw_timeout) {
> xlog("foo");
> }
>
> or use $sel
>
> if ($sht(auth=>foo::count)> $sel(cfg_get.local.gw_timeout)) {
> xlog("foo");
> }
>
> this is thus exactly opposite than in my t_set_fr ordeal where i got
> conversion error when i used $sel instead of @.
>
> in my opinion, no (int) conversion should be needed in the firs case,
> because the value of the cfg variable is int.
>
> in summary, writing statements that include selects is very difficult
> and error prone.
>
> -- juha
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users(a)lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
--
Daniel-Constantin Mierla * http://www.asipto.com/ *
http://twitter.com/miconda *
http://www.linkedin.com/in/danielconstantinmierla
------------------------------
_______________________________________________
Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
End of Users Digest, Vol 58, Issue 76
*************************************
[View Less]
i played a bit more with selects and found that statement
if ($sht(auth=>foo::count) > @cfg_get.local.gw_timeout) {
xlog("foo");
}
produces error
0(9213) : <core> [cfg.y:3379]: parse error in config file /etc/sip-proxy/sip-proxy.cfg, line 507, column 28-55: bad expression: type mismatch: str instead of int at (507,55)
but the error goes away if i either make explicit conversion
if ($sht(auth=>foo::count) > (int)(a)cfg_get.local.gw_timeout) {
xlog("foo");
}
or use $…
[View More]sel
if ($sht(auth=>foo::count) > $sel(cfg_get.local.gw_timeout)) {
xlog("foo");
}
this is thus exactly opposite than in my t_set_fr ordeal where i got
conversion error when i used $sel instead of @.
in my opinion, no (int) conversion should be needed in the firs case,
because the value of the cfg variable is int.
in summary, writing statements that include selects is very difficult
and error prone.
-- juha
[View Less]
Hello Everybody!
Is there any way to save(domain, 0x02) the contact after it has been
changed somehow in Kamailio <= 1.5?
Do I have to upgrade to 3.0 and use msg_apply_changes() before save()?
Or: Can I set the to be saved q value somehow?
br
Walter
Again sorry, too much trial&error makes a lot of noise ...
if (avp_subst("$(avp(contact))", "/;phone-context=q([01]\.[0-9]+)(.*>)?([^>]*)/\2\3;q=\1/i")) {
# just to have it handy int that var(Q)
$var(Q) = $(avp(contact){s.select,1,>}{param.value,q});
remove_hf("Contact");
append_hf("Contact: $(avp(contact))\r\n"); # must not add q= twice
}
-> Same result: q=-1 in Database.
-----Ursprüngliche Nachricht-----
Von: users-bounces(a)lists.kamailio.org [mailto:…
[View More]users-bounces@lists.kamailio.org] Im Auftrag von NeoTel Lists
Gesendet: Dienstag, 30. März 2010 18:56
An: Alex Balashov; users(a)lists.kamailio.org
Betreff: Re: [Kamailio-Users] Registrar: Save modified contact / set the qvalue
Sorry for being unclear: I meant: Modify the contact in the script, then do save().
E.g.
$(avp(contact)) = $ct;
# Those Patton can't send the q value ... Misuse their ;phone-context param
if (avp_subst("$(avp(contact))", "/;phone-context=q([01]\.[0-9])(.*>)?([^>]*)/\2\3;q=\1/i")) {
# just to have it handy int that var(Q)
$var(Q) = $(avp(contact){s.select,1,>}{param.value,q});
remove_hf("Contact");
append_hf("Contact: $(avp(contact));q=$var(Q)r\n");
# subst() does the same, also not save()ed
}
...
setbflag(1);
fix_nated_register();
save("contactimpl_nat", "0x02");
Br
Walter
-----Ursprüngliche Nachricht-----
Von: users-bounces(a)lists.kamailio.org [mailto:users-bounces@lists.kamailio.org] Im Auftrag von Alex Balashov
Gesendet: Dienstag, 30. März 2010 17:58
An: users(a)lists.kamailio.org
Betreff: Re: [Kamailio-Users] Registrar: Save modified contact / set the q value
On 03/30/2010 11:36 AM, NeoTel Lists wrote:
> Hello Everybody!
> Is there any way to save(domain, 0x02) the contact after it has been
> changed somehow in Kamailio <= 1.5?
If it were not possible, how would nathelper:fix_nated_contact() work?
--
Alex Balashov - Principal
Evariste Systems LLC
Tel : +1 678-954-0670
Direct : +1 678-954-0671
Web : http://www.evaristesys.com/
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/usershttp://lists.openser-project.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/usershttp://lists.openser-project.org/cgi-bin/mailman/listinfo/users
[View Less]
Sorry for being unclear: I meant: Modify the contact in the script, then do save().
E.g.
$(avp(contact)) = $ct;
# Those Patton can't send the q value ... Misuse their ;phone-context param
if (avp_subst("$(avp(contact))", "/;phone-context=q([01]\.[0-9])(.*>)?([^>]*)/\2\3;q=\1/i")) {
# just to have it handy int that var(Q)
$var(Q) = $(avp(contact){s.select,1,>}{param.value,q});
remove_hf("Contact");
append_hf("Contact: $(avp(contact));q=$var(Q)r\n");
# subst() does …
[View More]the same, also not save()ed
}
...
setbflag(1);
fix_nated_register();
save("contactimpl_nat", "0x02");
Br
Walter
-----Ursprüngliche Nachricht-----
Von: users-bounces(a)lists.kamailio.org [mailto:users-bounces@lists.kamailio.org] Im Auftrag von Alex Balashov
Gesendet: Dienstag, 30. März 2010 17:58
An: users(a)lists.kamailio.org
Betreff: Re: [Kamailio-Users] Registrar: Save modified contact / set the q value
On 03/30/2010 11:36 AM, NeoTel Lists wrote:
> Hello Everybody!
> Is there any way to save(domain, 0x02) the contact after it has been
> changed somehow in Kamailio <= 1.5?
If it were not possible, how would nathelper:fix_nated_contact() work?
--
Alex Balashov - Principal
Evariste Systems LLC
Tel : +1 678-954-0670
Direct : +1 678-954-0671
Web : http://www.evaristesys.com/
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/usershttp://lists.openser-project.org/cgi-bin/mailman/listinfo/users
[View Less]
Hi guys,
Does anyone have a REGEX syntax to match a private IP on the 192.168.x.x
range?
I'm trying with:
if($avp(s:ip_origen)=~"192.168(\.([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})){2}"
)
But all IPs pass as private, even public ones.
Thanks!
Uriel
Hi,
I have a big problem with fast lock mutex on arm CPU:
sometimes I find one or more children that go in an infinite loop, in the while loop of get_lock function.
They remain in Run for long time (sometimes hours) and openser keeps 100% CPU.
Now I have changed the functions get_lock and tsl in order to obtain more info and
I observe that (if and) when the process finish the cycle, it have done a big amount of cycles.
This the log with my added info:
Mar 26 20:29:08 SAM-IP openser[1645]…
[View More]: NOTICE:tm:_lock: ret 1 (cycle)
Mar 26 20:29:51 SAM-IP openser[1645]: NOTICE:tm:_lock: ret 1 (cycle)
Mar 26 20:29:55 SAM-IP openser[1645]: NOTICE:tm:_lock: ret 1 (cycle)
Mar 26 20:29:55 SAM-IP openser[1645]: NOTICE:tm:t_retransmit_reply: MYTM lock
[process in loop]
Mar 26 20:33:46 SAM-IP openser[1645]: NOTICE:tm:_lock: ret 59374917 (cycle)
[after 4 minutes and 59374917 cycles, this is an example with a "short" loop]
Mar 26 20:33:46 SAM-IP openser[1645]: NOTICE:tm:t_retransmit_reply: MYTM lock done
I'm not able to recognize the call flow that generates the loop (I know only that it always happens when t_retransmit_reply calls LOCK_REPLIES),
but I urgently need a work around to escape from the loop.
This is the get_lock function with my counter j:
inline static int get_lock(fl_lock_t* lock)
{
#ifdef ADAPTIVE_WAIT
int i=ADAPTIVE_WAIT_LOOPS;
int j=1; /***** my change ****/
#endif
while(tsl(lock)){
#ifdef BUSY_WAIT
#elif defined ADAPTIVE_WAIT
j++; /***** my change ****/
if (i>0) i--;
else sched_yield();
#else
sched_yield();
#endif
}
return(j);
}
Can I break the lock when my counter reaches a big value?
Should I call the unlock function after the break?
which value can be considered too big?
Thanks,
Daniele
**********************************************************************
The information in this message is confidential and may be legally
privileged. It is intended solely for the addressee. Access to this
message
by anyone else is unauthorized. If you are not the intended
recipient, any
disclosure, copying, or distribution of the message, or any action
or
omission taken by you in reliance on it, is prohibited and may be
unlawful.
Please immediately contact the sender if you have received this
message in error.
**********************************************************************
[View Less]