>Yes, define a peer in sip.conf:
>
>[openser]
>host=XX.XX.XX.XX
>insecure=invite
>
>In this way Asterisk allow calls from OpenSer without forcing them to
>authenticate. Authenticacion had already place in OpenSer.So I guess this would function for calls coming from the PSTN gateway, what about for callsoriginating from SIP devices connected to Asterisk? Can I do some similar config on OpenSERso that calls authenticated on Asterisk dont require authentication for an INVITE on OpenSER?
Dear Greger V. Teigre,
Did you find another solution for this issue instead of generate the new
attribute in the LDAP DB? Some kind of workaround will be great!..
Thanks in advance.
Regards,
Daniel Serrano.
Hi All ,
I am trying to do parallel forking from SER.But when I call then one user
gets 2 calls and rest of the users get one call .
Please any one explain why it is happening.
Here I attach my openser.cfg file...
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
if (!method=="REGISTER")
record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest
authentication
#if (!www_authorize("192.168.3.15", "subscriber")) {
# www_challenge("192.168.3.15", "0");
# exit;
#};
save("location");
exit;
};
lookup("aliases");
log("I M IN lookup");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
}
else {
append_branch();
append_hf("P-hint: usrloc applied\r\n");
t_relay();
}
};
route(1);
}
route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
#if (!t_relay()) {
if (!forward()) {
sl_reply_error();
};
exit;
}
Gomtesh
All,
Can SER be used as a SIP A/S for example to write a carrier grade Ringback Tone application on top of SER.
Does anybody know which media server (preferably OpenSource) to use?
Is SEMS the only way to write an application on top of SER or there are other ways?
Also, does anybody know how the applications in SEMS perform can they be deployed as a carrier grade solution?
Regards
--Srinivas Kotamarti
>Register is used JUST to **RECEIVE** calls, not to send calls.
>
>SIP uses http-digest autentication. This means: in **EVERY** INVITE a proxy
>wnat to authenticate the client (Asterisk) receives a challenge from the
>proxy and the client must generate a hash (a response) with its credentials
>and the nonce received.Ok, thanks for the reply Iñaki. So in the case of a configuration like mine what are other people doing to negate theneed to define all the users in both Asterisk and OpenSER? Are you authenticating the users on OpenSER basedon source IP? Or allowing all connections without authentication? And in general any pointers on the best way for me to achieve a simple accountig solution that is easy to maintain as more asterisk boxes and users are added?
At 19:54 13/12/2007, Srinivas Kotamarti wrote:
>Content-Language: en-US
>Content-Type: multipart/alternative;
> boundary="_000_95BADEF3CDEB8441838C6AD39FA619A31343E206C0NAMAEMAILnmss_"
>
>All,
>Can SER be used as a SIP A/S for example to write a carrier grade Ringback Tone application on top of SER.
>
>Does anybody know which media server (preferably OpenSource) to use?
>
>Is SEMS the only way to write an application on top of SER or there are other ways?
Use SEMS.
>
>Also, does anybody know how the applications in SEMS perform can they be deployed as a carrier grade solution?
Very well.
-jiri
>
>
>Regards
>
>--Srinivas Kotamarti
>
>_______________________________________________
>Serusers mailing list
>Serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
--
Jiri Kuthan http://iptel.org/~jiri/
Hi group,
Im new in the mailing list, and starting again with Openser, last time
I used was first release like an alternative to SER. Later dont run
any SIP service. Actually Im testing OpenSer for a new service, voice
service with PSTN, etc, and Im testing accounting via radius.
I use this help to work basic things.
www.openser.org/docs/openser-radius-1.0.x.html thanks for this
documentation very helpful for me.
But I dont get same result.
My version Openser 1.2.2.
I get this fields in start and stop, very less than example.
Wed Dec 12 17:33:12 2007
Acct-Status-Type = Start
Service-Type = SIP
Sip-Response-Code = 200
Sip-Method = 1
Event-Timestamp = "Dec 12 2007 17:33:05 ART"
Sip-From-Tag = "94ab8960-c82d7718-13c4-7db17-4cc178eb-7db17"
Sip-To-Tag = "94b908a0-c82d7717-13c4-3815-ecb28f3-3815"
Acct-Session-Id =
"94ab6a20-c82d7718-13c4-7db17-7fcaa8b-7db17(a)elmejorcable.com.ar"
NAS-Port = 5060
Acct-Delay-Time = 0
NAS-IP-Address = xxx.xxx.xxx.3
Client-IP-Address = xxx.xxx.xxx.3
Acct-Unique-Session-Id = "49ff3575432365d6"
Timestamp = 1197491592
Wed Dec 12 17:33:19 2007
Acct-Status-Type = Stop
Service-Type = SIP
Sip-Response-Code = 200
Sip-Method = Bye
Event-Timestamp = "Dec 12 2007 17:33:11 ART"
Sip-From-Tag = "94b908a0-c82d7717-13c4-3815-ecb28f3-3815"
Sip-To-Tag = "94ab8960-c82d7718-13c4-7db17-4cc178eb-7db17"
Acct-Session-Id =
"94ab6a20-c82d7718-13c4-7db17-7fcaa8b-7db17(a)elmejorcable.com.ar"
NAS-Port = 5060
Acct-Delay-Time = 0
NAS-IP-Address = xxx.xxx.xxx.3
Client-IP-Address = xxx.xxx.xxx.3
Acct-Unique-Session-Id = "49ff3575432365d6"
Timestamp = 1197491599
I think is about default fields to send for accounting via radius, How
to get full info??? With radius_extra modparam???
Thanks in advanced.
Fernando Yubero
Communication Partner
Hi,
As scheduled, tomorrow will be the official release of OpenSER version 1.3.
NAME
=====
Following the proposal and the feedback from the lists, we will start to
label each major version number with a name - it is more friendly . Note
that the version numbering will still be the primary ID.
OpenSER 1.3 will be named "BlackCat".
CODE
=====
As far as I checked the lists and tracker, all the critical and
important bugs were fixed. No pending issues, as far as I know.
Tomorrow I will run some compiling tests on several arch and OS to see
if any warning is reported.
PS: does anybody offer some access on SUN+SOLARIS ?
As there are only a small number of pending changes on SVN (warnings and
docs), probably in the afternoon, the 1.3 branch will be created.
DOCS
=====
The module documentation is up to date, thanks to the policy of
synchronization between the code and doc updates. Just in case, I will
re-generate all the text READMEs from the SGML files.
Thanks to Henning, the changelog and Credits files were updated on SVN.
Thanks to Daniel, we have a start for the the "New Features" document
(see http://www.openser.org/dokuwiki/doku.php/sandbox:new-in-1.3.x). The
idea will be to have it finalized y tomorrow and imported in the web
pages (openser.org and SF).
There will be a need for a overview of the "INSTALL" helper in order to
be updated for 1.3 (maybe the DB part only).
I suggest to put together all the docs from openser and upload them also
on SF - of course this is not a priority, it can be done later, in the
following days.
TARBALLS
========
Tarballs with sources and binaries (linux i386) will be uploaded on
openser.org and SF sites. Of course after the creation of the new 1.3
branch on SVN. Any other contributions (binaries of other OSs or archs)
are welcomed - just send an email to team(a)openser.org .
PACKAGES
========
After the official release, specs will be updated (if not yet) and
packages will be generated. Please help with this process and let us
know if you can generate any packages. Again use the lists or
team(a)openser.org emails.
I will generate the debian packages (unstable, stable, testing). The
stable package will be also pushed on the openser.org APT repo.
SITES UPDATES
===========
Both openser.org and SF sites need to be updated for with news, docs,
downloads, etc. This probably will take couple of days.
Please let me know if there is something missing in the above list.
Otherwise, if people are able and willing with some of the tasks, again,
just let me know.
Otherwise, have the champaign on cold for tomorrow ;)...
Regards,
Bogdan
Hi Elias,
This is the WeSIP log's file, when I run startup.sh:
2007-12-12 10:02:57 HttpConnector Opening server socket on host IP
address PROXY_IP
2007-12-12 10:02:57 Starting service Tomcat-Standalone
2007-12-12 10:02:57 HttpConnector[8080] Starting background thread
2007-12-12 10:02:57 HttpProcessor[8080][0] Starting background thread
2007-12-12 10:02:57 HttpProcessor[8080][1] Starting background thread
2007-12-12 10:02:57 HttpProcessor[8080][2] Starting background thread
2007-12-12 10:02:57 HttpProcessor[8080][3] Starting background thread
2007-12-12 10:02:57 HttpProcessor[8080][4] Starting background thread
2007-12-12 10:02:57 ConvergedEngine[Standalone]: Converged Application
Server SIP&HTTP-0.1
2007-12-12 10:02:57 HostConfig[PROXY_IP]: Deploying configuration
descriptor manager.xml
2007-12-12 10:02:57 WebappLoader[/manager]: Deploying class repositories
to work directory /usr/src/wesip/work/Standalone/PROXY_IP/manager
2007-12-12 10:02:57 WebappLoader[/manager]: Deploy JAR
/WEB-INF/lib/dwr.jar to
/usr/src/wesip/wesipapps/../server/webapps/manager/WEB-INF/lib/dwr.jar
2007-12-12 10:02:57 WebappLoader[/manager]: Deploy JAR
/WEB-INF/lib/jrobin-1.4.0.jar to
/usr/src/wesip/wesipapps/../server/webapps/manager/WEB-INF/lib/jrobin-1.4.0.jar
2007-12-12 10:02:57 WebappLoader[/manager]: Deploy JAR
/WEB-INF/lib/statistics.jar to
/usr/src/wesip/wesipapps/../server/webapps/manager/WEB-INF/lib/statistics.jar
2007-12-12 10:02:58 ContextConfig[/manager]: Missing application
sip.xml, using defaults only
2007-12-12 10:02:58 ContextConfig[/manager]: Configured an authenticator
for method BASIC
2007-12-12 10:02:58 StandardManager[/manager]: Seeding random number
generator class java.security.SecureRandom
2007-12-12 10:02:58 StandardManager[/manager]: Seeding of random number
generator has been completed
2007-12-12 10:02:58 StandardHttpWrapper[/manager:default]: Loading
container servlet default
2007-12-12 10:02:58 default: init
2007-12-12 10:02:58 dwr-invoker: init
2007-12-12 10:02:58 StandardHttpWrapper[/manager:invoker]: Loading
container servlet invoker
2007-12-12 10:02:58 invoker: init
2007-12-12 10:02:58 jsp: init
2007-12-12 10:02:58 statistics: init
2007-12-12 10:02:58 StandardHttpContext[/manager]: StandardHttpContext
[WeSIP Manager Application] has been started
2007-12-12 10:02:58 HostConfig[PROXY_IP]: Expanding web application
archive click2call.sar
2007-12-12 10:02:59 ManagerBase[/click2call]: Seeding random number
generator class java.security.SecureRandom
2007-12-12 10:02:59 ManagerBase[/click2call]: Seeding of random number
generator has been completed
2007-12-12 10:02:59 ManagerBase[/click2call]: Seeding random number
generator class java.security.SecureRandom
2007-12-12 10:02:59 ManagerBase[/click2call]: Seeding of random number
generator has been completed
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploying class
repositories to work directory
/usr/src/wesip/work/Standalone/PROXY_IP/click2call
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy class files
/WEB-INF/classes to /usr/src/wesip/wesipapps/click2call/WEB-INF/classes
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/activation.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/activation.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/axis-ant.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/axis-ant.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/axis.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/axis.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/commons-discovery-0.2.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/commons-discovery-0.2.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/commons-logging.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/commons-logging.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/dwr.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/dwr.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/jaxrpc.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/jaxrpc.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/log4j-1.2.8.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/log4j-1.2.8.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/mail.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/mail.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/saaj.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/saaj.jar
2007-12-12 10:02:59 WebappLoader[/click2call]: Deploy JAR
/WEB-INF/lib/wsdl4j-1.5.1.jar to
/usr/src/wesip/wesipapps/click2call/WEB-INF/lib/wsdl4j-1.5.1.jar
2007-12-12 10:02:59 StandardManager[/click2call]: Seeding random number
generator class java.security.SecureRandom
2007-12-12 10:02:59 StandardManager[/click2call]: Seeding of random
number generator has been completed
2007-12-12 10:02:59 StandardHttpWrapper[/click2call:default]: Loading
container servlet default
2007-12-12 10:02:59 default: init
2007-12-12 10:02:59 init
2007-12-12 10:02:59 dwr-invoker: init
2007-12-12 10:02:59 init
2007-12-12 10:02:59 AxisServlet: init
2007-12-12 10:03:00 StandardHttpWrapper[/click2call:invoker]: Loading
container servlet invoker
2007-12-12 10:03:00 invoker: init
2007-12-12 10:03:00 jsp: init
2007-12-12 10:03:00 AdminServlet: init
2007-12-12 10:03:00 SOAPMonitorService: init
2007-12-12 10:03:00 ConvergedContext[/click2call]: ConvergedContext
[Click2Call SipServlet] has been started
2007-12-12 10:03:00 HostConfig[PROXY_IP]: Deploying web application
directory click2call-08_11_06
2007-12-12 10:03:00 ManagerBase[/click2call-08_11_06]: Seeding random
number generator class java.security.SecureRandom
2007-12-12 10:03:00 ManagerBase[/click2call-08_11_06]: Seeding of random
number generator has been completed
2007-12-12 10:03:00 ManagerBase[/click2call-08_11_06]: Seeding random
number generator class java.security.SecureRandom
2007-12-12 10:03:00 ManagerBase[/click2call-08_11_06]: Seeding of random
number generator has been completed
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploying class
repositories to work directory
/usr/src/wesip/work/Standalone/PROXY_IP/click2call-08_11_06
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy class
files /WEB-INF/classes to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/classes
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/activation.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/activation.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/axis-ant.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/axis-ant.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/axis.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/axis.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/commons-discovery-0.2.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/commons-discovery-0.2.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/commons-logging.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/commons-logging.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/dwr.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/dwr.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/jaxrpc.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/jaxrpc.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/log4j-1.2.8.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/log4j-1.2.8.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/mail.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/mail.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/saaj.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/saaj.jar
2007-12-12 10:03:00 WebappLoader[/click2call-08_11_06]: Deploy JAR
/WEB-INF/lib/wsdl4j-1.5.1.jar to
/usr/src/wesip/wesipapps/click2call-08_11_06/WEB-INF/lib/wsdl4j-1.5.1.jar
2007-12-12 10:03:01 StandardManager[/click2call-08_11_06]: Seeding
random number generator class java.security.SecureRandom
2007-12-12 10:03:01 StandardManager[/click2call-08_11_06]: Seeding of
random number generator has been completed
2007-12-12 10:03:01 StandardHttpWrapper[/click2call-08_11_06:default]:
Loading container servlet default
2007-12-12 10:03:01 default: init
2007-12-12 10:03:01 init
2007-12-12 10:03:01 dwr-invoker: init
2007-12-12 10:03:01 init
2007-12-12 10:03:01 AxisServlet: init
2007-12-12 10:03:01 StandardHttpWrapper[/click2call-08_11_06:invoker]:
Loading container servlet invoker
2007-12-12 10:03:01 invoker: init
2007-12-12 10:03:01 jsp: init
2007-12-12 10:03:01 AdminServlet: init
2007-12-12 10:03:02 SOAPMonitorService: init
2007-12-12 10:03:02 ConvergedContext[/click2call-08_11_06]:
ConvergedContext [Click2Call SipServlet] has been started
2007-12-12 10:03:02 HostConfig[PROXY_IP]: Deploying web application
directory ROOT
2007-12-12 10:03:02 ManagerBase[]: Seeding random number generator class
java.security.SecureRandom
2007-12-12 10:03:02 ManagerBase[]: Seeding of random number generator
has been completed
2007-12-12 10:03:02 ManagerBase[]: Seeding random number generator class
java.security.SecureRandom
2007-12-12 10:03:02 ManagerBase[]: Seeding of random number generator
has been completed
2007-12-12 10:03:02 WebappLoader[]: Deploying class repositories to work
directory /usr/src/wesip/work/Standalone/PROXY_IP/_
2007-12-12 10:03:02 ContextConfig[]: Missing application sip.xml, using
defaults only
2007-12-12 10:03:02 StandardManager[]: Seeding random number generator
class java.security.SecureRandom
2007-12-12 10:03:02 StandardManager[]: Seeding of random number
generator has been completed
2007-12-12 10:03:02 StandardHttpWrapper[:default]: Loading container
servlet default
2007-12-12 10:03:02 default: init
2007-12-12 10:03:02 StandardHttpWrapper[:invoker]: Loading container
servlet invoker
2007-12-12 10:03:02 invoker: init
2007-12-12 10:03:02 jsp: init
2007-12-12 10:03:02 ConvergedContext[]: ConvergedContext [Welcome] has
been started
2007-12-12 10:03:02
> Default Wesip Application ==> http://PROXY_IP:8080/
>
2007-12-12 10:03:02
> In order to access the manager application use default credentials:
- username: wesip
- password: wesip
> This configuration is defined in wesip-users.xml inside conf folder:
- file: ./conf/wesip-users.xml
I'd like to use " Click to dial " service.
I don't write configuration file yet (sip.xml or web.xml).
At this point, What should I do?
Shouldn't I to access to Manager Wesip Application? (Manager Wesip
Application ==> http://PROXY_IP:8080/manager/html?) - If yes, in this
case I get an 500 http Error.
My problem is very simple : I'm new in using servlet so I 'd like to
know how I have to move (I didn't find no useful guide on this) .
thanks.
daniel
-----Messaggio originale-----
Da: elias baixas [mailto:elias.baixas@voztele.com]
Inviato: mer 12/12/2007 0.40
A: Daniel Grotti
Cc: users(a)lists.openser.org
Oggetto: Re: [OpenSER-Users] Could someone help me with WeSIP ?
Hello Daniel, can you provide some WeSIP's logs and openser's logs to
gain some more information on the problem ?
it's hard to guess what might be wrong with just the configuration.
of course, you can substitute your IP addresses with some predefined
token for the sake of confidentiality. for example:
bash#>sed -i -e "s/192.168.1.1/PRIVATE_PROXY_IP/g" openser.cfg
thanks !
Hi:
I just installed wesip application server and 1.3.0-pre1-notls with
seas.so modules. I also downloaded ringtone-24_05_07.sar application
into path $WESIP_ROOT/wesipapps. Ijust configed openser.cfg and
server.xml especially for those key property such as
com.voztele.javax.sip.SER_ADDRESS, listen_sockets. The openser.cfg was
mainly copied from http://www.openser.org/docs/modules/1.3.x standalone
script. It seemed that openser and wesip server started correctly.
Then I have the following test:
1. UA1 register to openser
2. UA2 register to openser
3. UA1 call UA2 through openser
4. UA1 ringing, received 100 trying, no 183 with SDP
Can anyone tell me how to use ringtone applicaton? Any config should be
done with ringtone application? Or my setup was wrong?
Thanks in advance.
Best Regards,
Chen Xueqin