[Serusers] handling multicast

Jan Janak jan at iptel.org
Fri Jun 20 10:44:54 CEST 2003


Hello,

yes, it is not possible to do it from the script, you will have to write
a new function.

  Jan.

On 20-06 12:21, matthieu saunier wrote:
> Hi,
> 
> I want SER to handle forwarding multicast requests.
> To do that, I want to realise this scenario :
> All the UACs which want to belong to the multicast group need to register 
> themselves with the same multicast URI.
> When SER receive request with that multicast URI, it looks for all the 
> contacts for the username of that URI in usrloc (with lookup() function call) 
> and then forward the request to all the contacts found (with t_relay() 
> function call). 
> 
> But I don't want SER to forward the request to the sender.
> 
> That's why I want to ensure myself that URIs which have been added to the 
> destination set and the one which rewrites the request URI (after the 
> lookup() function call) don't match with SIP URI in the Contact header field 
> of the processing request.
> 
> Here is the test code :
> 
> ###########################
> Server: Sip EXpress router (0.8.11pre29 (i386/linux))
> Platform: GNU/Linux 2.4.18-14 i686
> ###########################
> 
> # ------------------ module loading ----------------------------------
> 
> loadmodule "/usr/local/lib/ser/modules/mysql.so"
> loadmodule "/usr/local/lib/ser/modules/sl.so"
> loadmodule "/usr/local/lib/ser/modules/tm.so"
> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> loadmodule "/usr/local/lib/ser/modules/registrar.so"
>  
> # ----------------- setting module-specific parameters ---------------
> 
> # -- registrar params --
> # to add contacts in the destination set
> modparam("registrar", "append_branches", 1)
> 
> # -- usrloc params --
> # use SQL database for persistent storage
> modparam("usrloc", "db_mode", 1)
> 
> # -------------------------  request routing logic -------------------
> 
> # main routing logic
> 
> route{
> 
> 	if (uri==myself)
> 	{
> 		
> 		(...)	
> 
> 		# registering
> 		if (method=="REGISTER") 
> 		{
> 			save("location");
> 			break;
> 		};
> 
> 		(...)
> 
> 		# to find contacts, rewrite request URI and
> 		# add contacts to the destination set
> 		if (!lookup("location")) 
> 		{
> 			sl_send_reply("404","not found");
> 			break;
> 		};
> 
> 		# Here I want to compare the destination set 
> 		# and the rewrited request URI with the Contact header
> 		# field of the processing request before forwarding
> 		...
> 
> 		# forward
> 		if (!t_relay()) 
> 		{
> 			 sl_reply_error();
> 			 break;
> 		};
> 
> 		(...)
> 	
> 	}else{
> 		(...)
> 		}
> 
> }
> 
> ################
> 
> I think it's not possible using only ser script functionalities. I think I 
> have to write a specific function in a specific module to do that (based on 
> lookup() function).
> What do you think about it ? Any suggestions are welcomed.
> 
> Thanks in advance.
> 
> Matthieu Saunier
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20030620/ddcda142/attachment.pgp>


More information about the sr-users mailing list