[Serusers] CPLEd and cpl-c module

Brinker, Oliver Oliver.Brinker at t-systems.com
Thu Dec 11 10:58:58 CET 2003


Hi Bogdan,

better late then never ;) The upload of CPL scripts via SIP works fine
with CPLEd but after changing the SER config file with the if statement
you mentioned below I cannot REGISTER my client any more. It is a normal
REGISTER without any payload in the SDP part. I try it with three different
SIP clients and they all get a 500 error every time. Why do normal REGISTER
messages run into the if statement, too? Many thanks for your help.

Regards,
Oliver


Bogdan-Andrei IANCU wrote

>Hi Oliver,
>
>Instead of using HTTP for upload/download (which requires more pieces 
>and more complex senttings) I would recommend you to use directly SIP 
>for transporting CPL scripts (via REGISTER). CPLEd supprts also this method.
>In order to separated normal REGISTERs from CPL transport REGISTERS, 
> From the SER part you must do something like:
>
>if (method=="REGISTER") {
>    if ( cpl_process_register() ) {
>        sl_send_reply("500","Error");
>    };
>    # here you can do normal processing of a
>    # REGISTER request or whatever you want
>};
>
>In CPLEd, in the upload/download window you have to fill in the address 
>and port of SER and the user name for which you want to install/fetch 
>the script.
>
>Regards,
>Bogdan

Brinker, Oliver wrote:

>Hi Daniel,
>when I try to upload a cpl script via http the status string of CPLEd
>displays the following error message: 
>
>Error: Upload via HTTP: HTTP request failed: Invalid CPL script
>
>I've set the direct path to the cpl.dtd in the cpl.php and in the CPLEd
>settings. Although Java SDK 1.4.1 is installed on the machine I load
>crimson.jar and xalan.jar into the classpath. But what is checker.jar
>and where can I get it? Is jaxp.jar included in the Java SDK or should
>I download a separate version?
>
>Many thanks,
>Oliver 
>
>
>Daniel-Constantin Mierla wrote
>
>  
>
>>Hello,
>>if you use the CVS head version then you should change the format of 
>>database url: Now it reflects the type of database used and for mysql 
>>should be like:
>>
>>mysql://foo:bar@localhost/ser
>>
>>Try with this one when setting the "cpl_db" parameter.
>>
>>Daniel
>>    
>>
>
>  
>
>>On 11/26/2003 11:30 AM, Brinker, Oliver wrote:
>>    
>>
>
>  
>
>>Hi Bogdan,
>>
>>The mysql module is loaded before the cpl-c one. Please have a look into
>>my ser.cfg because I cannot find any misconfig. Could it be a problem
>>with the SQL connection string? MySQL should be running correct.
>>
>>I change the module name in the modparam declaration from cpl_c to cpl-c
>>because cpl_c like in your documentation doesn't work ;) Thanks
>>
>>Oliver
>>
>>#
>># $Id: ser.cfg,v 1.24 2003/11/11 15:32:36 andrei Exp $
>>#
>># simple quick-start config script
>>#
>>
>># ----------- global configuration parameters ------------------------
>>
>>#debug=3         # debug level (cmd line: -dddddddddd)
>>#fork=yes
>>#log_stderror=no	# (cmd line: -E)
>>
>>/* Uncomment these lines to enter debugging mode 
>>fork=no
>>log_stderror=yes
>>*/
>>
>>check_via=no	# (cmd. line: -v)
>>dns=no           # (cmd. line: -r)
>>rev_dns=no      # (cmd. line: -R)
>>#port=5060
>>#children=4
>>fifo="/tmp/ser_fifo"
>>
>># ------------------ module loading ----------------------------------
>>
>># Uncomment this if you want to use SQL database
>>loadmodule "/usr/local/lib/ser/modules/mysql.so"
>>
>>loadmodule "/usr/local/lib/ser/modules/cpl-c.so"
>>loadmodule "/usr/local/lib/ser/modules/sl.so"
>>loadmodule "/usr/local/lib/ser/modules/tm.so"
>>loadmodule "/usr/local/lib/ser/modules/rr.so"
>>loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>>loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>>loadmodule "/usr/local/lib/ser/modules/registrar.so"
>>loadmodule "/usr/local/lib/ser/modules/textops.so"
>>
>># Uncomment this if you want digest authentication
>># mysql.so must be loaded !
>>loadmodule "/usr/local/lib/ser/modules/auth.so"
>>loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>>
>># ----------------- setting module-specific parameters ---------------
>>
>># -- 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)
>>
>># -- cpl-c module --
>>modparam("cpl-c","cpl_db","sql://foo:bar@localhost/ser")
>>modparam("cpl-c","cpl_table","cpl")
>>modparam("cpl-c","cpl_dtd_file","/usr/local/etc/ser/cpl-06.dtd")
>>modparam("cpl-c","log_dir","/var/log/ser/cpl")
>>modparam("cpl-c","proxy_recurse",0)
>>
>># -------------------------  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");
>>		break;
>>	};
>>	if (msg:len >=  max_len ) {
>>		sl_send_reply("513", "Message too big");
>>		break;
>>	};
>>
>>	# 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);
>>		break;
>>	};
>>
>>	if (!uri==myself) {
>>		# mark routing logic in request
>>		append_hf("P-hint: outbound\r\n"); 
>>		route(1);
>>		break;
>>	};
>>
>>	# 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("t-systems.com", "subscriber")) {
>>				www_challenge("t-systems.com", "0");
>>				break;
>>			};
>>
>>			save("location");
>>			break;
>>		};
>>	
>>		lookup("aliases");
>>		if (!uri==myself) {
>>			append_hf("P-hint: outbound alias\r\n"); 
>>			route(1);
>>			break;
>>		};
>>
>>		# native SIP destinations are handled using our USRLOC DB
>>		if (!lookup("location")) {
>>			sl_send_reply("404", "Not Found");
>>			break;
>>		};
>>	};
>>	append_hf("P-hint: usrloc applied\r\n"); 
>>	route(1);
>>}
>>
>>route[1] 
>>{
>>	# send it out now; use stateful forwarding as it works reliably
>>	# even for UDP2TCP
>>	if (!t_relay()) {
>>		sl_reply_error();
>>	};
>>}
>>
>>
>>Bogdan-Andrei IANCU [mailto:iancu at fokus.fraunhofer.de] wrote
>>
>> 
>>
>>    
>>
>>>Hi Oliver,
>>>
>>>The mysql module must be loade before the cpl-c one. Make sure about 
>>>this in your configuration file.
>>>
>>>Bogdan
>>>   
>>>
>>>      
>>>
>>Brinker, Oliver wrote:
>>
>> 
>>
>>    
>>
>>>Hi Bogdan,
>>>now I fetch the whole cvs tree and compile SER and the needed modules.
>>>Everything works fine until I put the cpl-c modparam values into ser.cfg.
>>>I get an error message on my xconsole that the cpl-c module cannot bind 
>>>to the database. The mysql module is loaded because digest authentications
>>>works since a few days. Is there anything to mind regarding the order of
>>>loading modules or setting params in the ser.cfg? Many thanks.
>>>
>>>Regards,
>>>Oliver
>>>
>>>
>>>Bogdan-Andrei IANCU [mailto:iancu at fokus.fraunhofer.de] wrote
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Hi Oliver,
>>>>
>>>>what branch of cvs do you use? or you use the head of cvs?
>>>>on CVS head everything is fixed - but you have to get the whole tree, 
>>>>not only the TM.
>>>>
>>>>Regards,
>>>>Bogdan
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>Brinker, Oliver wrote:
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Hi Bogdan,
>>>>
>>>>I try to patch the TM module and get an error during patching t_reply.c:
>>>>
>>>>Hunk #2 FAILED at 375
>>>>Hunk #3 FAILED at 400
>>>>
>>>>I'm not sure but could the faked_env function be the problem (expect four params,
>>>>but receiving only two)? Should I use a new version of the TM module from the CVS?
>>>>Many thanks.
>>>>
>>>>Regards,
>>>>Olli
>>>>
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Hello,
>>>>>
>>>>>In order to compile the cpl-c module, you need to apply a patch to the
>>>>>tm_modulel you can finf this patch in modules/cpl-c/tm.patch.
>>>>>Please, use the patch from the same version of ser as the tm modules. Try to do
>>>>>so and let my know if it worked.
>>>>>
>>>>>Regards,
>>>>>Bogdan
>>>>> 
>>>>>
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>   
>>>
>>>      
>>>
>>_______________________________________________
>>Serusers mailing list
>>serusers at lists.iptel.org
>>http://lists.iptel.org/mailman/listinfo/serusers
>>
>> 
>>
>>    
>>
>
>
>  
>




More information about the sr-users mailing list