Hi Bogdan,
it works ;) I can upload/remove/download CPL scripts via CPLEd's REGISTER function. Now I can test my CPL scripts and play around a little bit with CPLEd. Many thanks for your help. I will follow the further development of CPLEd and cpl-c.
Best Regards Oliver
Bogdan-Andrei IANCU [mailto:iancu@fokus.fraunhofer.de] wrote
Hi Oliver,
My mistake - try like :
if (method=="REGISTER") { cpl_process_register(); # here you can do normal processing of a # REGISTER request or whatever you want };
cpl_process_register function doesn't returns back to script if it's a REGISTER related to CPL. Please, let me know if works.
Best regards, Bogdan
Brinker, Oliver wrote:
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@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@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@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers