Hi Daniel, I'm sorry. I don't know how to make a pull request. I can google a howto but maybe anyone here has one.
Thanks. Diego 2017-03-21 9:32 GMT-03:00 Daniel-Constantin Mierla <mico...@gmail.com>: > If you want to propose a patch to be merged into Kamailio, do a pull > request via github.com/kamailio/kamailio -- it makes it easier to review > as well as have the patch compiled by Travic CI before merging, so we can > spot the basic conflicts if any. The patch has to be for master branch, to > be merged directly. > > On Mon, Mar 20, 2017 at 8:40 PM, Diego Nadares <dnada...@gmail.com> wrote: > >> I didn't mention that I did this on kamailio 4.4. >> >> Cheers, >> >> Diego >> >> 2017-03-20 16:38 GMT-03:00 Diego Nadares <dnada...@gmail.com>: >> >>> Hi Lucian, >>> >>> I made a few changes like you and I think it's working. Loads dialogs >>> and generate cdr. It needs more testing. The function cdr_on_load it's >>> copy and paste to avoid touching those params in on_create. A lot of >>> improve is needed. >>> >>> diff --git a/modules/dialog/dialog.c b/modules/dialog/*dialog.c* >>> index ceaf08a..59210e8 100644 >>> --- a/modules/dialog/dialog.c >>> +++ b/modules/dialog/dialog.c >>> @@ -692,7 +692,7 @@ static int mod_init(void) >>> LM_ERR("failed to initialize the DB support\n"); >>> return -1; >>> } >>> - run_load_callbacks(); >>> + //run_load_callbacks(); >>> } >>> >>> destroy_dlg_callbacks( DLGCB_LOADED ); >>> >>> ######## >>> >>> diff --git a/modules/dialog/dlg_db_handler.c b/modules/dialog/ >>> *dlg_db_handler.c* >>> index e27f8b2..22d0f04 100644 >>> --- a/modules/dialog/dlg_db_handler.c >>> +++ b/modules/dialog/dlg_db_handler.c >>> @@ -173,6 +173,7 @@ int init_dlg_db(const str *db_url, int dlg_hash_size >>> , int db_update_period, int >>> LM_ERR("unable to load the dialog data\n"); >>> return -1; >>> } >>> + run_load_callbacks(); >>> } >>> dialog_dbf.close(dialog_db_handle); >>> dialog_db_handle = 0; >>> >>> >>> ######## >>> >>> diff --git a/modules/acc/acc_cdr.c b/modules/acc/*acc_cdr.c* >>> index 73bdd45..81ad640 100644 >>> --- a/modules/acc/acc_cdr.c >>> +++ b/modules/acc/acc_cdr.c >>> @@ -733,11 +733,79 @@ static void cdr_on_destroy( struct dlg_cell* >>> dialog, >>> LM_DBG("dialog '%p' destroyed!\n", dialog); >>> } >>> >>> +/* callback for loading a dialog from db. */ >>> +static void cdr_on_load( struct dlg_cell* dialog, >>> + int type, >>> + struct dlg_cb_params* params) >>> +{ >>> + >>> + LM_ERR("ON LOAD\n"); >>> + if( !dialog) >>> + { >>> + LM_ERR( "invalid dialog\n!"); >>> + return; >>> + } >>> + >>> + if( cdr_enable == 0) >>> + { >>> + return; >>> + } >>> + >>> + if( dlgb.register_dlgcb( dialog, DLGCB_CONFIRMED, cdr_on_start, 0, >>> 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog CONFIRM callback\n"); >>> + return; >>> + } >>> + >>> + if(_acc_cdr_on_failed==1) { >>> + if( dlgb.register_dlgcb( dialog, DLGCB_FAILED, >>> cdr_on_failed, 0, 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog FAILED >>> callback\n"); >>> + return; >>> + } >>> + } >>> + >>> + if( dlgb.register_dlgcb( dialog, DLGCB_TERMINATED, cdr_on_end, 0, >>> 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog TERMINATED callback\n"); >>> + return; >>> + } >>> + >>> + if( dlgb.register_dlgcb( dialog, DLGCB_TERMINATED_CONFIRMED, >>> cdr_on_end_confirmed, 0, 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog TERMINATED CONFIRMED >>> callback\n"); >>> + return; >>> + } >>> + >>> + if( dlgb.register_dlgcb( dialog, DLGCB_EXPIRED, cdr_on_expired, 0, >>> 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog EXPIRED callback\n"); >>> + return; >>> + } >>> + >>> + if( dlgb.register_dlgcb( dialog, DLGCB_DESTROY, cdr_on_destroy, 0, >>> 0) != 0) >>> + { >>> + LM_ERR("can't register create dialog DESTROY callback\n"); >>> + return; >>> + } >>> + >>> + LM_DBG("dialog '%p' created!", dialog); >>> + >>> + if( set_start_time( dialog) != 0) >>> + { >>> + LM_ERR( "failed to set start time"); >>> + return; >>> + } >>> +} >>> + >>> + >>> /* callback for the creation of a dialog. */ >>> static void cdr_on_create( struct dlg_cell* dialog, >>> int type, >>> struct dlg_cb_params* params) >>> { >>> + >>> + LM_ERR("ON CREATE\n"); >>> if( !dialog || !params || !params->req) >>> { >>> LM_ERR( "invalid values\n!"); >>> @@ -852,13 +920,19 @@ int init_cdr_generation( void) >>> LM_ERR("can't load dialog API\n"); >>> return -1; >>> } >>> - >>> - if( dlgb.register_dlgcb( 0, DLGCB_CREATED, cdr_on_create, 0, 0) != >>> 0) >>> + //Loaded from db >>> + if( dlgb.register_dlgcb( 0, DLGCB_LOADED, cdr_on_load, 0, 0) != 0) >>> { >>> LM_ERR("can't register create callback\n"); >>> return -1; >>> } >>> >>> + if( dlgb.register_dlgcb( 0, DLGCB_CREATED, cdr_on_create, 0, 0) != >>> 0) >>> + { >>> + LM_ERR("can't register create callback\n"); >>> + return -1; >>> + } >>> + >>> return 0; >>> } >>> >>> >>> >>> if( cdr_enable == 0) >>> { >>> return; >>> } >>> >>> if( dlgb.register_dlgcb( dialog, DLGCB_CONFIRMED, cdr_on_start, 0, >>> 0) != 0) >>> { >>> LM_ERR("can't register create dialog CONFIRM callback\n"); >>> return; >>> } >>> >>> >>> >>> Diego. >>> >>> >>> >>> 2017-03-20 10:06 GMT-03:00 Kordován Szabolcs <kos...@gmail.com>: >>> >>>> Hi All, >>>> >>>> I have tired your patch but it dosen't work. No any changes. :( >>>> >>>> Regards, >>>> Szabolcs >>>> >>>> 2017-03-16 15:36 GMT+01:00 Lucian Balaceanu <lucian.balace...@1and1.ro> >>>> : >>>> >>>>> Hello all, >>>>> >>>>> Just created the pull request: https://github.com/kamailio/ka >>>>> mailio/pull/1036 in relation to this problem with the sketch of a >>>>> solution. >>>>> >>>>> Any input is appreciated, >>>>> Lucian >>>>> >>>>> >>>>> On 15.03.2017 15:17, Daniel-Constantin Mierla wrote: >>>>> >>>>> Hello, >>>>> >>>>> ok, good to know is someone tackling it. >>>>> >>>>> Thanks, >>>>> Daniel >>>>> >>>>> On 15/03/2017 12:14, Pawel Kuzak wrote: >>>>> >>>>> Hello, >>>>> >>>>> This indeed is a bug we've also spotted. It is not only present in >>>>> 5.0. It seems the *run_create_callbacks()* function which triggers >>>>> the *DLGCB_CREATED* callbacks to be executed is not called for >>>>> dialogs created from database. We are already working on a fix and are >>>>> currently testing it. We will try push it upstream as soon as possible. We >>>>> will answer on this thread when a fix is upstream. >>>>> >>>>> Regards, >>>>> Paul >>>>> >>>>> Am 14.03.2017 um 22:00 schrieb Kordován Szabolcs: >>>>> >>>>> Hello Daniel, >>>>> >>>>> Sorry for my reply, I didn't receive your mail. >>>>> So, only the active calls are affected. The new call, from invite to >>>>> bye-ok, is recorded into table acc and acc_cdrs. >>>>> >>>>> Regards, >>>>> Szabolcs >>>>> >>>>> 2017-03-14 11:13 GMT+01:00 Kordován Szabolcs <kos...@gmail.com>: >>>>> >>>>>> Hi, >>>>>> >>>>>> I use acc module for create cdr into db and also make acc log into db. >>>>>> After restart Kamailio cdr won't be created but acc log will be >>>>>> inserted into db. In the syslog also I see just the acc log. The dialog >>>>>> will be remove from db. >>>>>> >>>>>> I have read many threads. I know that it should work. >>>>>> >>>>>> Thanks for help! >>>>>> Regards, >>>>>> Szabolcs >>>>>> >>>>>> From my configs: >>>>>> >>>>>> #!define FLT_ACC 1 >>>>>> #!define FLT_ACCMISSED 2 >>>>>> #!define FLT_ACCFAILED 3 >>>>>> >>>>>> modparam("acc", "db_url", DBURL) >>>>>> modparam("acc", "db_flag", FLT_ACC) >>>>>> modparam("acc", "db_missed_flag", FLT_ACCMISSED) >>>>>> modparam("acc", "db_extra", "src_user=$fU;src_domain=$fd;d >>>>>> st_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si") >>>>>> >>>>>> modparam("acc", "log_level", 3) >>>>>> modparam("acc", "log_flag", FLT_ACC) >>>>>> modparam("acc", "log_missed_flag", FLT_ACCMISSED) >>>>>> >>>>>> modparam("acc", "report_ack", 1) >>>>>> modparam("acc", "report_cancels", 1) >>>>>> modparam("acc", "early_media", 1) >>>>>> >>>>>> modparam("acc", "failed_transaction_flag", FLT_ACCFAILED) >>>>>> >>>>>> modparam("acc", "acc_prepare_always", 1) >>>>>> modparam("acc", "time_mode", 1) >>>>>> modparam("acc", "time_attr", "seconds") >>>>>> modparam("acc", "time_exten", "microsecs") >>>>>> modparam("acc", "reason_from_hf", 1) >>>>>> >>>>>> modparam("acc", "cdr_enable", 1) >>>>>> modparam("acc", "cdr_expired_dlg_enable", 1) >>>>>> modparam("acc", "cdr_start_on_confirmed", 1) >>>>>> modparam("acc", "cdrs_table", "acc_cdrs") >>>>>> modparam("acc", "cdr_on_failed", 1) >>>>>> modparam("acc", "cdr_extra", "callid=$ci;src_user=$dlg_var( >>>>>> fU);src_domain=$dlg_var(fd);dst_ouser=$dlg_var(tU);dst_user= >>>>>> $dlg_var(rU);dst_domain=$dlg_var(rd);src_ip=$dlg_var(si);pee >>>>>> r_in=$dlg_var(peerin);peer_out=$dlg_var(peerout)") >>>>>> >>>>>> request_route { >>>>>> <------> >>>>>> <------>$var(loose) = loose_route(); >>>>>> <------>$var(check_trans) = t_check_trans(); >>>>>> <------>sip_trace(); >>>>>> <------>setflag(FLT_SIPTRACE); >>>>>> <------>dlg_manage(); >>>>>> >>>>>> <------># handle retransmissions >>>>>> <------>if(t_precheck_trans()) { >>>>>> <------> xlogl("LOG_LOCAL0", "L_ALERT", "================== kamaty >>>>>> $rm route $ci ==== $rm ==== precheck_trans exit\n"); >>>>>> <------> exit; >>>>>> <------>} >>>>>> >>>>>> <------>if(is_method("OPTIONS")) {. >>>>>> <------> # send reply for each options request. >>>>>> <------> sl_send_reply("200", "ok");. >>>>>> <------> exit();. >>>>>> <------>} >>>>>> <------># CANCEL processing >>>>>> <------>if (is_method("CANCEL")) { >>>>>> <------><------>if (t_check_trans()) { >>>>>> <------><------> route(RELAY); >>>>>> <------><------>} >>>>>> <------><------>exit; >>>>>> <------>} >>>>>> <------>if ( is_method("ACK") ) { >>>>>> <------><------>if ( $var(check_trans) ) { >>>>>> <------><------> route(RELAY); >>>>>> <------><------>} >>>>>> <------><------>exit; >>>>>> <------>} >>>>>> <------>if (is_method("BYE")) { >>>>>> <------> if ($var(loose)) { >>>>>> <------><------>setflag(FLT_ACC); # do accounting ... >>>>>> <------><------>setflag(FLT_ACCFAILED); # ... even if the >>>>>> transaction fails >>>>>> <------><------>setflag(FLT_ACCMISSED); >>>>>> <------><------>route(RELAY); >>>>>> <------> <-->exit; >>>>>> <------> } >>>>>> <------> exit; >>>>>> <------>} >>>>>> etc. >>>>>> >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>> listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>> listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>> >>>>> >>>>> -- >>>>> Daniel-Constantin Mierlawww.twitter.com/miconda -- >>>>> www.linkedin.com/in/miconda >>>>> Kamailio Advanced Training - Mar 6-8 (Europe) and Mar 20-22 (USA) - >>>>> www.asipto.com >>>>> Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>> listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>>>> sr-users@lists.sip-router.org >>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>>> sr-users@lists.sip-router.org >>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>> >>>> >>> >> >> _______________________________________________ >> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >> sr-users@lists.sip-router.org >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> > > > -- > Daniel-Constantin Mierla - http://www.asipto.com > http://twitter.com/#!/miconda - http://www.linkedin.com/in/micond > <http://www.linkedin.com/in/miconda> > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users