[Serusers] CPLEd and cpl-c module

Bogdan-Andrei IANCU iancu at fokus.fraunhofer.de
Thu Nov 27 12:02:13 CET 2003


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