List Info

Thread: RE: WeSIP setup problem




RE: WeSIP setup problem
country flaguser name
France
2007-04-26 05:55:41
Hi Gines, thanks for your support


> Your servlet named "neo" is being executed
and looks like it is
> proxying but what from what I see in the packet it is
proxying to
> itself. Could you try to proxy to another address and
see if this
> still happens ? Aside, could you send me your
configuration files and
> your servlet code ?

The serlvet code is the following

protected void doInvite(SipServletRequest callerInvite)
throws ServletException,
IOException {


      //Get a proxy for this request
      Proxy callerProxy = callerInvite.getProxy();

	System.out.println("doInvite within neos servlet:
requestURI is " +
callerInvite.getRequestURI() );


	callerProxy.proxyTo(callerInvite.getRequestURI());


    }


This code causes the "no route" exception. The
println above gives :

doInvite within neos servlet: requestURI is sip:5002192.168.1.11

where 5002 is the called SIP phone and 192.168.1.11 is the
address of my OpenSER
+ WeSIP box (i.e. the managed SIP domain)


Following your advice I have tried to change the proxyTo to
a different address:


	SipURI dest =
sipFactory.createSipURI("5002","192.168.1.16&
quot;);
      callerProxy.proxyTo(dest);

It that case, the called phone (5002, IP address
192.168.1.16) gets the INVITE
correctly. However, something puzzles me here: the serlvet
is not supposed to
know the IP address of the called phone. In my
understanding, the AS processes
the INVITE, then it must send it back to the proxy server
which is supposed to
forward it to the next hop, is that right ?

Could you please give me an example of a doInvite which
basically does nothing
and which lets the INVITE be forwarded to the called party
?


Finally here are my config files:

<<<<<<<<< Server.xml
>>>>>>>>>

<Server port="5005"
shutdown="SHUTDOWN" debug="1">
	<Service name="NEOS-Standalone">
     		<Connector
className="org.apache.catalina.connector.http.HttpConne
ctor"
	 		port="7080" minProcessors="5"
maxProcessors="5"
	 		enableLookups="true"
acceptCount="10" debug="0" />

		<Connector
className="com.voztele.sipservlet.connector.SipConnecto
r"
	 		minProcessors="5" maxProcessors="5"
	 		enableLookups="true"
acceptCount="10" debug="1"
	 		addresses="192.168.1.11:5060"
pathName="com.voztele" protocol="udp"
>
		 		<ExtraProperties>
			 		<Property
key="com.voztele.javax.sip.SER_ADDRESS"
value="127.0.0.1" />
			 		<Property
key="com.voztele.javax.sip.SER_PORT"
value="5080" />
			 		<Property key="com.voztele.STATISTICS"
value="false" />
					<Property key="javax.sip.STACK_NAME"
value="neos_as" />
					<Property key="javax.sip.THREAD_POOL_SIZE"
value="10" />
					<Property
key="com.voztele.javax.sip.THREAD_POOL_SIZE"
value="10" />
					<Property
key="com.voztele.javax.sip.SPIRAL_HDR"
value="true" />
					<Property
key="com.voztele.javax.sip.REENTRANT_LISTENER"
value="true" />
					<Property
key="javax.sip.AUTOMATIC_DIALOG_SUPPORT"
value="false" />
					<Property
key="com.voztele.javax.sip.TRACE_LEVEL"
value="3" />
		 		</ExtraProperties>
	 	</Connector>

     	<Engine name="Standalone"
defaultHost="localhost" debug="1"
className="com.voztele.sipservlet.core.ConvergedEngine&
quot;>

			<Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
protocol="HTTP/1.1"/>
			<Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
protocol="HTTP/1.0"/>
	 		<Mapper
className="com.voztele.sipservlet.core.EngineSipMapper&
quot;
protocol="SIP/2.0"/>
			<Logger
className="org.apache.catalina.logger.FileLogger"
timestamp="true"/>
			<Realm
className="org.apache.catalina.realm.MemoryRealm"
/>

			<Host name="localhost"
nameSip="192.168.1.11_5060" debug="1" 
appBase="wesipapps"
className="com.voztele.sipservlet.core.ConvergedHost&qu
ot;>

				<Logger
className="org.apache.catalina.logger.FileLogger"
timestamp="true"/>
				<Mapper
className="com.voztele.sipservlet.core.SipHostMapper&qu
ot;
protocol="SIP/2.0"/>
				<Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
protocol="HTTP/1.1"/>
				<Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
protocol="HTTP/1.0"/>
		    	</Host>
   		</Engine>
	</Service>
</Server>


<<<<<<<<<<openser.cfg>>&
gt;>>>>>>>>>>>
#
# $Id: openser.cfg 1827 2007-03-12 15:22:53Z bogdan_iancu $
#
# simple quick-start config script
# Please refer to the Core CookBook at http://www.o
penser.org/dokuwiki/doku.php
# for a explanation of possible statements, functions and
parameters.
#

# ----------- global configuration parameters
------------------------

debug=3            # debug level (cmd line: -dddddddddd)
fork=yes
#log_stderror=no    # (cmd line: -E)
children=4

# Uncomment these lines to enter debugging mode
#fork=no
log_stderror=yes
#


listen = tcp:192.168.1.11:5060
listen = udp:192.168.1.11:5060


# ------------------ module loading
----------------------------------

#set module path
mpath="/usr/local/lib/openser/modules/"

# Uncomment this if you want to use SQL database
#loadmodule "mysql.so"

loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"

# added for WeSIP
loadmodule "seas.so"
modparam("seas","listen_sockets","1
27.0.0.1:5080")
# end added for WeSIP

# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "auth.so"
#loadmodule "auth_db.so"

# ----------------- setting module-specific parameters
---------------

# -- mi_fifo params --

modparam("mi_fifo", "fifo_name",
"/tmp/openser_fifo")

# -- usrloc params --

modparam("usrloc", "db_mode",   0)

# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)

# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth_db", "calculate_ha1",
yes)
#
# If you set "calculate_ha1" parameter to yes
(which true in this config),
# uncomment also the following parameter)
#
#modparam("auth_db", "password_column",
"password")

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

# -------------------------  request routing logic
-------------------

# 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();	# ftoutain essai de supprimer 莽a ? ne
change rien

	# 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-enforcedrn");
		route(1);
	};

	if (!uri==myself) {
		# mark routing logic in request
		append_hf("P-hint: outboundrn");

		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("openser.org",
"subscriber")) {
			#	www_challenge("openser.org", "0");
			#	exit;
			#};

			save("location");
			exit;
		};

		lookup("aliases");
		if (!uri==myself) {
			append_hf("P-hint: outbound aliasrn");
			route(1);
		};

		# native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			sl_send_reply("404", "Not Found");
			exit;
		};
		append_hf("P-hint: usrloc appliedrn");
	};

	route(1);
}


route[1] {

	if (is_present_hf("X-WeSIP-SPIRAL")) {
		if (!t_relay()) {
			sl_reply_error();
		};
		exit;
	};

	if (! as_relay_t("neos_as") ){
		t_reply("500", "NEOS service not
found");
	};

	exit;
}


_______________________________________________
Users mailing list
Usersopenser.org
htt
p://openser.org/cgi-bin/mailman/listinfo/users

Re: WeSIP setup problem
country flaguser name
Spain
2007-04-27 07:51:39
Hi ,

	I've discovered that there is a problem with WeSIP looping
back to  
its own address (which is what you are trying to do). We are
fixing  
it but it'll take more time. As a workaround you can do thre
 
different things.

1) Let OpenSER discover the next hop before passing the
message to  
WeSIP then proxy from WeSIP to the next hop.
	
	<--------- Transaction 1 --------->  <--------
Transaction  
2------------>
	
	UAC ---------> 	[OpenSER --> WeSIP --> OpenSER]
--------->	UAS
	
	1.1 UAC sends request with RURI=sip:5002192.168.1.11
	1.2 OpenSER modifies the RURI after consulting the location
info   
RURI=sip:5002192.168.1.16
	1.3 OpenSER passes the modified message to WeSIP
	1.4 WeSIP processes and proxies
	1.5 OpenSER processes message coming from WeSIP (if
X-WeSIP-SPIRAL  
was used) and forwards it downstream

2) Use separated WeSIP with its own OpenSER frontend( see
Openser.cfg  
working as WeSIP front-end at http://www.wesip.com/
mediawiki/ 
index.php/Configuration#Openser.cfg_in_standalone)
	
	<---Trans 1----><----- Transaction 2
------><-----Transaction 3------ 
 ><---Trans 4--->

	UAC ----> OpenSER ----> (WeSIP with OpenSER frontend)
----> OpenSER  
------> UAS

	2.1 UAC sends request with RURI=sip:5002192.168.1.11
	2.2 OpenSER delivers message to standalone WeSIP
	2.3 WeSIP processes and proxies back to OpenSER (WeSIP may 

RecordRoute or not)
	2.4 OpenSER modifies the RURI after consulting the location
info   
RURI=sip:5002192.168.1.16
	2.5 OpenSER proxies to UAS

3)     Use different IP to make WeSIP think that it is
forwarding to  
a different host and not looping

	<-------Transaction 1--------><-------------
Transaction 2  
-------------><---Transaction 3---->

	UAC ----> 	[OpenSER --> WeSIP --> OpenSER]
---------> OpenSER  
(192.168.1.12) ------> UAS
	
	1.1 UAC sends request with RURI=sip:5002192.168.1.11
	1.2 OpenSER modifies the RURI to an alias IP RURI=sip: 
5002192.168.1.12 (192.168.1.12 is a second IP where
OpenSER listens)
	1.3 OpenSER passes the modified message to WeSIP
	1.4 WeSIP processes and proxies to 192.168.1.12 (No
loopback failure  
since 192.168.1.12 != 192.168.1.11)
	1.5 OpenSER processes message coming from WeSIP (if
X-WeSIP-SPIRAL  
was used) and forwards it to 192.168.1.12
	1.6 OpenSER receives proxied message (in IP 192.168.69.12)
	1.7 OpenSER applies location translation
	1.8 OpenSER forwards


Hope it helps

Regards

Gines


> Hi Gines, thanks for your support
>
>
>> Your servlet named "neo" is being
executed and looks like it is
>> proxying but what from what I see in the packet it
is proxying to
>> itself. Could you try to proxy to another address
and see if this
>> still happens ? Aside, could you send me your
configuration files and
>> your servlet code ?
>
> The serlvet code is the following
>
> protected void doInvite(SipServletRequest callerInvite)
throws  
> ServletException,
> IOException {
>
>
>       //Get a proxy for this request
>       Proxy callerProxy = callerInvite.getProxy();
>
> 	System.out.println("doInvite within neos servlet:
requestURI is " +
> callerInvite.getRequestURI() );
>
>
> 	callerProxy.proxyTo(callerInvite.getRequestURI());
>
>
>     }
>
>
> This code causes the "no route" exception.
The println above gives :
>
> doInvite within neos servlet: requestURI is
sip:5002192.168.1.11
>
> where 5002 is the called SIP phone and 192.168.1.11 is
the address  
> of my OpenSER
> + WeSIP box (i.e. the managed SIP domain)
>
>
> Following your advice I have tried to change the
proxyTo to a  
> different address:
>
>
> 	SipURI dest =
sipFactory.createSipURI("5002","192.168.1.16&
quot;);
>       callerProxy.proxyTo(dest);
>
> It that case, the called phone (5002, IP address
192.168.1.16) gets  
> the INVITE
> correctly. However, something puzzles me here: the
serlvet is not  
> supposed to
> know the IP address of the called phone. In my
understanding, the  
> AS processes
> the INVITE, then it must send it back to the proxy
server which is  
> supposed to
> forward it to the next hop, is that right ?
>
> Could you please give me an example of a doInvite which
basically  
> does nothing
> and which lets the INVITE be forwarded to the called
party ?
>
>
> Finally here are my config files:
>
> <<<<<<<<< Server.xml
>>>>>>>>>
>
> <Server port="5005"
shutdown="SHUTDOWN" debug="1">
> 	<Service name="NEOS-Standalone">
>      		<Connector  
>
className="org.apache.catalina.connector.http.HttpConne
ctor"
> 	 		port="7080" minProcessors="5"
maxProcessors="5"
> 	 		enableLookups="true"
acceptCount="10" debug="0" />
>
> 		<Connector
className="com.voztele.sipservlet.connector.SipConnecto
r"
> 	 		minProcessors="5"
maxProcessors="5"
> 	 		enableLookups="true"
acceptCount="10" debug="1"
> 	 		addresses="192.168.1.11:5060"
pathName="com.voztele"  
> protocol="udp" >
> 		 		<ExtraProperties>
> 			 		<Property
key="com.voztele.javax.sip.SER_ADDRESS"  
> value="127.0.0.1" />
> 			 		<Property
key="com.voztele.javax.sip.SER_PORT"
value="5080" />
> 			 		<Property
key="com.voztele.STATISTICS"
value="false" />
> 					<Property key="javax.sip.STACK_NAME"
value="neos_as" />
> 					<Property
key="javax.sip.THREAD_POOL_SIZE"
value="10" />
> 					<Property
key="com.voztele.javax.sip.THREAD_POOL_SIZE"  
> value="10" />
> 					<Property
key="com.voztele.javax.sip.SPIRAL_HDR"
value="true" />
> 					<Property
key="com.voztele.javax.sip.REENTRANT_LISTENER"  
> value="true" />
> 					<Property
key="javax.sip.AUTOMATIC_DIALOG_SUPPORT"  
> value="false" />
> 					<Property
key="com.voztele.javax.sip.TRACE_LEVEL"
value="3" />
> 		 		</ExtraProperties>
> 	 	</Connector>
>
>      	<Engine name="Standalone"
defaultHost="localhost" debug="1"
>
className="com.voztele.sipservlet.core.ConvergedEngine&
quot;>
>
> 			<Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
> protocol="HTTP/1.1"/>
> 			<Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
> protocol="HTTP/1.0"/>
> 	 		<Mapper
className="com.voztele.sipservlet.core.EngineSipMapper&
quot;
> protocol="SIP/2.0"/>
> 			<Logger
className="org.apache.catalina.logger.FileLogger" 

> timestamp="true"/>
> 			<Realm
className="org.apache.catalina.realm.MemoryRealm"
/>
>
> 			<Host name="localhost"
nameSip="192.168.1.11_5060" debug="1"
> appBase="wesipapps"  
>
className="com.voztele.sipservlet.core.ConvergedHost&qu
ot;>
>
> 				<Logger
className="org.apache.catalina.logger.FileLogger" 

> timestamp="true"/>
> 				<Mapper
className="com.voztele.sipservlet.core.SipHostMapper&qu
ot;
> protocol="SIP/2.0"/>
> 				<Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
> protocol="HTTP/1.1"/>
> 				<Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
> protocol="HTTP/1.0"/>
> 		    	</Host>
>    		</Engine>
> 	</Service>
> </Server>
>
>
>
<<<<<<<<<<openser.cfg>>&
gt;>>>>>>>>>>>
> #
> # $Id: openser.cfg 1827 2007-03-12 15:22:53Z
bogdan_iancu $
> #
> # simple quick-start config script
> # Please refer to the Core CookBook at http://www.openser.org/ 
> dokuwiki/doku.php
> # for a explanation of possible statements, functions
and parameters.
> #
>
> # ----------- global configuration parameters
------------------------
>
> debug=3            # debug level (cmd line:
-dddddddddd)
> fork=yes
> #log_stderror=no    # (cmd line: -E)
> children=4
>
> # Uncomment these lines to enter debugging mode
> #fork=no
> log_stderror=yes
> #
>
>
> listen = tcp:192.168.1.11:5060
> listen = udp:192.168.1.11:5060
>
>
> # ------------------ module loading
----------------------------------
>
> #set module path
> mpath="/usr/local/lib/openser/modules/"
>
> # Uncomment this if you want to use SQL database
> #loadmodule "mysql.so"
>
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
>
> # added for WeSIP
> loadmodule "seas.so"
>
modparam("seas","listen_sockets","1
27.0.0.1:5080")
> # end added for WeSIP
>
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> #loadmodule "auth.so"
> #loadmodule "auth_db.so"
>
> # ----------------- setting module-specific parameters
---------------
>
> # -- mi_fifo params --
>
> modparam("mi_fifo", "fifo_name",
"/tmp/openser_fifo")
>
> # -- usrloc params --
>
> modparam("usrloc", "db_mode",   0)
>
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> #modparam("usrloc", "db_mode", 2)
>
> # -- auth params --
> # Uncomment if you are using auth module
> #
> #modparam("auth_db",
"calculate_ha1", yes)
> #
> # If you set "calculate_ha1" parameter to yes
(which true in this  
> config),
> # uncomment also the following parameter)
> #
> #modparam("auth_db",
"password_column", "password")
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr",
1)
>
> # -------------------------  request routing logic
-------------------
>
> # 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();	# ftoutain essai de supprimer 莽a ?
ne change rien
>
> 	# 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-enforcedrn");
> 		route(1);
> 	};
>
> 	if (!uri==myself) {
> 		# mark routing logic in request
> 		append_hf("P-hint: outboundrn");
>
> 		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("openser.org",
"subscriber")) {
> 			#	www_challenge("openser.org",
"0");
> 			#	exit;
> 			#};
>
> 			save("location");
> 			exit;
> 		};
>
> 		lookup("aliases");
> 		if (!uri==myself) {
> 			append_hf("P-hint: outbound aliasrn");
> 			route(1);
> 		};
>
> 		# native SIP destinations are handled using our
USRLOC DB
> 		if (!lookup("location")) {
> 			sl_send_reply("404", "Not
Found");
> 			exit;
> 		};
> 		append_hf("P-hint: usrloc appliedrn");
> 	};
>
> 	route(1);
> }
>
>
> route[1] {
>
> 	if (is_present_hf("X-WeSIP-SPIRAL")) {
> 		if (!t_relay()) {
> 			sl_reply_error();
> 		};
> 		exit;
> 	};
>
> 	if (! as_relay_t("neos_as") ){
> 		t_reply("500", "NEOS service not
found");
> 	};
>
> 	exit;
> }
>
>
> _______________________________________________
> Users mailing list
> Usersopenser.org
> htt
p://openser.org/cgi-bin/mailman/listinfo/users
>
>


_______________________________________________
Users mailing list
Usersopenser.org
htt
p://openser.org/cgi-bin/mailman/listinfo/users

Re: WeSIP setup problem
country flaguser name
China
2007-04-28 01:18:06
Hi,Gines
	Could you send me your configuration files of the 3 mode ? 

Thanks  

GP.Coder
2007-04-28



发件人: Gin閟_G髆ez
发送时间: 2007-04-27 20:52:22
收件人: ventilo35free.fr
抄送: users openser.org
主题: Re: [Users] WeSIP setup problem

Hi ,

I've discovered that there is a problem with WeSIP looping
back to  
its own address (which is what you are trying to do). We are
fixing  
it but it'll take more time. As a workaround you can do thre
 
different things.

1) Let OpenSER discover the next hop before passing the
message to  
WeSIP then proxy from WeSIP to the next hop.
<--------- Transaction 1 --------- >   <--------
Transaction  
2------------ >
UAC --------- >  [OpenSER -- > WeSIP -- > OpenSER]
--------- > UAS
1.1 UAC sends request with RURI=sip:5002192.168.1.11
1.2 OpenSER modifies the RURI after consulting the location
info   
RURI=sip:5002192.168.1.16
1.3 OpenSER passes the modified message to WeSIP
1.4 WeSIP processes and proxies
1.5 OpenSER processes message coming from WeSIP (if
X-WeSIP-SPIRAL  
was used) and forwards it downstream

2) Use separated WeSIP with its own OpenSER frontend( see
Openser.cfg  
working as WeSIP front-end at http://www.wesip.com/
mediawiki/ 
index.php/Configuration#Openser.cfg_in_standalone)
<---Trans 1---- > <----- Transaction 2 ------ >
<-----Transaction 3------ 
  > <---Trans 4--- >

UAC ---- > OpenSER ---- > (WeSIP with OpenSER
frontend) ---- > OpenSER  
------ > UAS

2.1 UAC sends request with RURI=sip:5002192.168.1.11
2.2 OpenSER delivers message to standalone WeSIP
2.3 WeSIP processes and proxies back to OpenSER (WeSIP may 

RecordRoute or not)
2.4 OpenSER modifies the RURI after consulting the location
info   
RURI=sip:5002192.168.1.16
2.5 OpenSER proxies to UAS

3)     Use different IP to make WeSIP think that it is
forwarding to  
a different host and not looping

<-------Transaction 1-------- > <-------------
Transaction 2  
------------- > <---Transaction 3---- >

UAC ---- >  [OpenSER -- > WeSIP -- > OpenSER]
--------- > OpenSER  
(192.168.1.12) ------ > UAS
1.1 UAC sends request with RURI=sip:5002192.168.1.11
1.2 OpenSER modifies the RURI to an alias IP RURI=sip: 
5002192.168.1.12 (192.168.1.12 is a second IP where
OpenSER listens)
1.3 OpenSER passes the modified message to WeSIP
1.4 WeSIP processes and proxies to 192.168.1.12 (No loopback
failure  
since 192.168.1.12 != 192.168.1.11)
1.5 OpenSER processes message coming from WeSIP (if
X-WeSIP-SPIRAL  
was used) and forwards it to 192.168.1.12
1.6 OpenSER receives proxied message (in IP 192.168.69.12)
1.7 OpenSER applies location translation
1.8 OpenSER forwards


Hope it helps

Regards

Gines


> Hi Gines, thanks for your support
>
>
> > Your servlet named "neo" is being
executed and looks like it is
> > proxying but what from what I see in the packet it
is proxying to
> > itself. Could you try to proxy to another address
and see if this
> > still happens ? Aside, could you send me your
configuration files and
> > your servlet code ?
>
> The serlvet code is the following
>
> protected void doInvite(SipServletRequest callerInvite)
throws  
> ServletException,
> IOException {
>
>
>       //Get a proxy for this request
>       Proxy callerProxy = callerInvite.getProxy();
>
>  System.out.println("doInvite within neos servlet:
requestURI is " +
> callerInvite.getRequestURI() );
>
>
>  callerProxy.proxyTo(callerInvite.getRequestURI());
>
>
>     }
>
>
> This code causes the "no route" exception.
The println above gives :
>
> doInvite within neos servlet: requestURI is
sip:5002192.168.1.11
>
> where 5002 is the called SIP phone and 192.168.1.11 is
the address  
> of my OpenSER
> + WeSIP box (i.e. the managed SIP domain)
>
>
> Following your advice I have tried to change the
proxyTo to a  
> different address:
>
>
>  SipURI dest =
sipFactory.createSipURI("5002","192.168.1.16&
quot;);
>       callerProxy.proxyTo(dest);
>
> It that case, the called phone (5002, IP address
192.168.1.16) gets  
> the INVITE
> correctly. However, something puzzles me here: the
serlvet is not  
> supposed to
> know the IP address of the called phone. In my
understanding, the  
> AS processes
> the INVITE, then it must send it back to the proxy
server which is  
> supposed to
> forward it to the next hop, is that right ?
>
> Could you please give me an example of a doInvite which
basically  
> does nothing
> and which lets the INVITE be forwarded to the called
party ?
>
>
> Finally here are my config files:
>
>  < < < < < < < < <
Server.xml  > > > > > > > > >
>
>  <Server port="5005"
shutdown="SHUTDOWN" debug="1" >
>  <Service name="NEOS-Standalone" >
>       <Connector  
>
className="org.apache.catalina.connector.http.HttpConne
ctor"
>    port="7080" minProcessors="5"
maxProcessors="5"
>    enableLookups="true"
acceptCount="10" debug="0" / >
>
>  <Connector
className="com.voztele.sipservlet.connector.SipConnecto
r"
>    minProcessors="5"
maxProcessors="5"
>    enableLookups="true"
acceptCount="10" debug="1"
>    addresses="192.168.1.11:5060"
pathName="com.voztele"  
> protocol="udp"  >
>    <ExtraProperties >
>    <Property
key="com.voztele.javax.sip.SER_ADDRESS"  
> value="127.0.0.1" / >
>    <Property
key="com.voztele.javax.sip.SER_PORT"
value="5080" / >
>    <Property key="com.voztele.STATISTICS"
value="false" / >
>  <Property key="javax.sip.STACK_NAME"
value="neos_as" / >
>  <Property
key="javax.sip.THREAD_POOL_SIZE"
value="10" / >
>  <Property
key="com.voztele.javax.sip.THREAD_POOL_SIZE"  
> value="10" / >
>  <Property
key="com.voztele.javax.sip.SPIRAL_HDR"
value="true" / >
>  <Property
key="com.voztele.javax.sip.REENTRANT_LISTENER"  
> value="true" / >
>  <Property
key="javax.sip.AUTOMATIC_DIALOG_SUPPORT"  
> value="false" / >
>  <Property
key="com.voztele.javax.sip.TRACE_LEVEL"
value="3" / >
>    </ExtraProperties >
>    </Connector >
>
>       <Engine name="Standalone"
defaultHost="localhost" debug="1"
>
className="com.voztele.sipservlet.core.ConvergedEngine&
quot; >
>
>  <Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
> protocol="HTTP/1.1"/ >
>  <Mapper
className="org.apache.catalina.core.StandardEngineMappe
r"
> protocol="HTTP/1.0"/ >
>    <Mapper
className="com.voztele.sipservlet.core.EngineSipMapper&
quot;
> protocol="SIP/2.0"/ >
>  <Logger
className="org.apache.catalina.logger.FileLogger" 

> timestamp="true"/ >
>  <Realm
className="org.apache.catalina.realm.MemoryRealm"
/ >
>
>  <Host name="localhost"
nameSip="192.168.1.11_5060" debug="1"
> appBase="wesipapps"  
>
className="com.voztele.sipservlet.core.ConvergedHost&qu
ot; >
>
>  <Logger
className="org.apache.catalina.logger.FileLogger" 

> timestamp="true"/ >
>  <Mapper
className="com.voztele.sipservlet.core.SipHostMapper&qu
ot;
> protocol="SIP/2.0"/ >
>  <Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
> protocol="HTTP/1.1"/ >
>  <Mapper
className="org.apache.catalina.core.HttpHostMapper"
;
> protocol="HTTP/1.0"/ >
>       </Host >
>     </Engine >
>  </Service >
>  </Server >
>
>
>  < < < < < < < < <
<openser.cfg > > > > > > > > >
> > > > >
> #
> # $Id: openser.cfg 1827 2007-03-12 15:22:53Z
bogdan_iancu $
> #
> # simple quick-start config script
> # Please refer to the Core CookBook at http://www.openser.org/ 
> dokuwiki/doku.php
> # for a explanation of possible statements, functions
and parameters.
> #
>
> # ----------- global configuration parameters
------------------------
>
> debug=3            # debug level (cmd line:
-dddddddddd)
> fork=yes
> #log_stderror=no    # (cmd line: -E)
> children=4
>
> # Uncomment these lines to enter debugging mode
> #fork=no
> log_stderror=yes
> #
>
>
> listen = tcp:192.168.1.11:5060
> listen = udp:192.168.1.11:5060
>
>
> # ------------------ module loading
----------------------------------
>
> #set module path
> mpath="/usr/local/lib/openser/modules/"
>
> # Uncomment this if you want to use SQL database
> #loadmodule "mysql.so"
>
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
>
> # added for WeSIP
> loadmodule "seas.so"
>
modparam("seas","listen_sockets","1
27.0.0.1:5080")
> # end added for WeSIP
>
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> #loadmodule "auth.so"
> #loadmodule "auth_db.so"
>
> # ----------------- setting module-specific parameters
---------------
>
> # -- mi_fifo params --
>
> modparam("mi_fifo", "fifo_name",
"/tmp/openser_fifo")
>
> # -- usrloc params --
>
> modparam("usrloc", "db_mode",   0)
>
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> #modparam("usrloc", "db_mode", 2)
>
> # -- auth params --
> # Uncomment if you are using auth module
> #
> #modparam("auth_db",
"calculate_ha1", yes)
> #
> # If you set "calculate_ha1" parameter to yes
(which true in this  
> config),
> # uncomment also the following parameter)
> #
> #modparam("auth_db",
"password_column", "password")
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr",
1)
>
> # -------------------------  request routing logic
-------------------
>
> # 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(); # ftoutain essai de supprimer 莽a ? ne
change rien
>
>  # 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-enforcedrn");
>  route(1);
>  };
>
>  if (!uri==myself) {
>  # mark routing logic in request
>  append_hf("P-hint: outboundrn");
>
>  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("openser.org",
"subscriber")) {
>  # www_challenge("openser.org",
"0");
>  # exit;
>  #};
>
>  save("location");
>  exit;
>  };
>
>  lookup("aliases");
>  if (!uri==myself) {
>  append_hf("P-hint: outbound aliasrn");
>  route(1);
>  };
>
>  # native SIP destinations are handled using our USRLOC
DB
>  if (!lookup("location")) {
>  sl_send_reply("404", "Not
Found");
>  exit;
>  };
>  append_hf("P-hint: usrloc appliedrn");
>  };
>
>  route(1);
> }
>
>
> route[1] {
>
>  if (is_present_hf("X-WeSIP-SPIRAL")) {
>  if (!t_relay()) {
>  sl_reply_error();
>  };
>  exit;
>  };
>
>  if (! as_relay_t("neos_as") ){
>  t_reply("500", "NEOS service not
found");
>  };
>
>  exit;
> }
>
>
> _______________________________________________
> Users mailing list
> Usersopenser.org
> htt
p://openser.org/cgi-bin/mailman/listinfo/users
>
>


_______________________________________________
Users mailing list
Usersopenser.org
htt
p://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Usersopenser.org
htt
p://openser.org/cgi-bin/mailman/listinfo/users

[1-3]

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