On Wed, Oct 5, 2011 at 2:34 PM, Uri Shacked <ushac...@gmail.com> wrote:
> OK... > now i see the problem is some where in the cfg file... > i get te following error : > > 0(3774) : <core> [cfg.y:3406]: parse error in config file > //etc/kamailio/kamailio.cfg, from line 944, column 2 to line 945, column 0: > syntax error > 0(3774) : <core> [cfg.y:3406]: parse error in config file > //etc/kamailio/kamailio.cfg, from line 944, column 2 to line 945, column 0: > bad command > ERROR: bad config file (2 errors) > 0(3774) DEBUG: tm [t_funcs.c:122]: DEBUG: tm_shutdown : start > 0(3774) DEBUG: tm [t_funcs.c:125]: DEBUG: tm_shutdown : emptying hash > table > 0(3774) DEBUG: tm [t_funcs.c:127]: DEBUG: tm_shutdown : removing > semaphores > 0(3774) DEBUG: tm [t_funcs.c:129]: DEBUG: tm_shutdown : destroying tmcb > lists > 0(3774) DEBUG: tm [t_funcs.c:132]: DEBUG: tm_shutdown : done > 0(3774) DEBUG: <core> [mem/shm_mem.c:236]: shm_mem_destroy > 0(3774) DEBUG: <core> [mem/shm_mem.c:239]: destroying the shared memory > lock > > > here is my complete cfg file. > any ideas? > > > ... > > ######## Routing Logic ######## > > # Main SIP request routing logic > > # - processing of any incoming SIP request starts with this route > > route { > > setflag(FLT_TRC); # Trace message > > # per request initial checks > > route(REQINIT); > > # NAT detection > > route(NAT); > > # handle requests within SIP dialogs > > route(WITHINDLG); > > ### only initial requests (no To tag) > > # CANCEL processing > > if (is_method("CANCEL")) > > { > > if (t_check_trans()) > > t_relay(); > > exit; > > } > > t_check_trans(); > > # authentication > > route(AUTH); > > # record routing for dialog forming requests (in case they are routed) > > # - remove preloaded route headers > > remove_hf("Route"); > > if (is_method("INVITE|SUBSCRIBE")) > > record_route(); > > # account only INVITEs > > if (is_method("INVITE")) > > { > > #!ifdef WITH_DIALPLAN > > dp_translate("1", "$rU/$rU"); > > xlog("translated to $rU \n"); > > #!endif > > #!ifdef WITH_CARRIERROUTE > > ####cr_user_carrier("$rU", "$td", "$avp(carrierid)"); > > ####xlog("translated to var $avp(carrierid) \n"); > > cr_route("OSP1", "kamailio2", "$rU", "$rU", "call_id"); > > #!endif > > setflag(FLT_ACC); # do accounting > > } > > # dispatch requests to foreign domains > > route(SIPOUT); > > ### requests for my local domains > > # handle presence related requests > > route(PRESENCE); > > # handle registrations > > route(REGISTRAR); > > if ($rU==$null) > > { > > # request with no Username in RURI > > sl_send_reply("484","Address Incomplete"); > > exit; > > } > > # dispatch destinations to PSTN > > route(PSTN); > > # user location service > > route(LOCATION); > > route(RELAY); > > } > > route[RELAY] { > > #!ifdef WITH_NAT > > if (check_route_param("nat=yes")) { > > setbflag(FLB_NATB); > > } > > if (isflagset(FLT_NATS) || isbflagset(FLB_NATB)) { > > route(RTPPROXY); > > } > > #!endif > > /* example how to enable some additional event routes */ > > if (is_method("INVITE")) { > > #t_on_branch("BRANCH_ONE"); > > t_on_reply("REPLY_ONE"); > > t_on_failure("FAIL_ONE"); > > } > > if (!t_relay()) { > > sl_reply_error(); > > } > > exit; > > } > > # Per SIP request initial checks > > route[REQINIT] { > > #!ifdef WITH_ANTIFLOOD > > # flood dection from same IP and traffic ban for a while > > # be sure you exclude checking trusted peers, such as pstn gateways > > # - local host excluded (e.g., loop to self) > > if(src_ip!=myself) > > { > > if($sht(ipban=>$si)!=$null) > > { > > # ip is already blocked > > xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n"); > > exit; > > } > > if (!pike_check_req()) > > { > > xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n"); > > $sht(ipban=>$si) = 1; > > exit; > > } > > } > > #!endif > > if (!mf_process_maxfwd_header("10")) { > > sl_send_reply("483","Too Many Hops"); > > exit; > > } > > if(!sanity_check("1511", "7")) > > { > > xlog("Malformed SIP message from $si:$sp\n"); > > exit; > > } > > #!ifdef WITH_PIPELIMIT > > # perform pipe match for INVITE method > > if (is_method("INVITE")) { > > if (!pl_check("avg")) { > > pl_drop(); > > exit; > > } > > if (!pl_check("peek")) { > > pl_drop(); > > exit; > > } > > #endif > > #!ifdef WITH_DIALOG > > xlog("currently active dialogs are $DLG_count\n"); > > dlg_manage(); > > dlg_setflag(FLT_DLG); > > if (is_method("INVITE")) { > > $var(size) = 0; > > get_profile_size("test","$rU","$var(size)"); > > xlog("currently, the user $rU has $var(size) active calls\n"); > > if( $var(size) >= 5 ) > > { > > sl_send_reply("507", "Simultaneous calls limit reached"); > > xlog("Limit of $var(size) active calls has been reached \n"); > > exit; > > } > > set_dlg_profile("test","$rU"); > > } > > #!endif > > } > > # Handle requests within SIP dialogs > > route[WITHINDLG] { > > if (has_totag()) { > > # sequential request withing a dialog should > > # take the path determined by record-routing > > if (loose_route()) { > > if (is_method("BYE")) { > > setflag(FLT_ACC); # do accounting ... > > setflag(FLT_ACCFAILED); # ... even if the transaction fails > > } > > route(RELAY); > > } else { > > if (is_method("SUBSCRIBE") && uri == myself) { > > # in-dialog subscribe requests > > route(PRESENCE); > > exit; > > } > > if ( is_method("ACK") ) { > > if ( t_check_trans() ) { > > # no loose-route, but stateful ACK; > > # must be an ACK after a 487 > > # or e.g. 404 from upstream server > > t_relay(); > > exit; > > } else { > > # ACK without matching transaction ... ignore and discard > > exit; > > } > > } > > sl_send_reply("404","Not here"); > > } > > exit; > > } > > } > > # Handle SIP registrations > > route[REGISTRAR] { > > if (is_method("REGISTER")) > > { > > if(isflagset(FLT_NATS)) > > { > > setbflag(FLB_NATB); > > # uncomment next line to do SIP NAT pinging > > ## setbflag(FLB_NATSIPPING); > > } > > if (!save("location")) > > sl_reply_error(); > > exit; > > } > > } > > # USER location service > > route[LOCATION] { > > #!ifdef WITH_ALIASDB > > # search in DB-based aliases > > alias_db_lookup("dbaliases"); > > #!endif > > if (!lookup("location")) { > > switch ($rc) { > > case -1: > > case -3: > > t_newtran(); > > t_reply("404", "Not Found"); > > exit; > > case -2: > > sl_send_reply("405", "Method Not Allowed"); > > exit; > > } > > } > > # when routing via usrloc, log the missed calls also > > if (is_method("INVITE")) > > { > > setflag(FLT_ACCMISSED); > > } > > } > > # Presence server route > > route[PRESENCE] { > > if(!is_method("PUBLISH|SUBSCRIBE")) > > return; > > #!ifdef WITH_PRESENCE > > if (!t_newtran()) > > { > > sl_reply_error(); > > exit; > > }; > > if(is_method("PUBLISH")) > > { > > handle_publish(); > > t_release(); > > } > > else > > if( is_method("SUBSCRIBE")) > > { > > handle_subscribe(); > > t_release(); > > } > > exit; > > #!endif > > # if presence enabled, this part will not be executed > > if (is_method("PUBLISH") || $rU==$null) > > { > > sl_send_reply("404", "Not here"); > > exit; > > } > > return; > > } > > # Authentication route > > route[AUTH] { > > #!ifdef WITH_AUTH > > if (is_method("REGISTER")) > > { > > # authenticate the REGISTER requests (uncomment to enable auth) > > if (!www_authorize("$td", "subscriber")) > > { > > www_challenge("$td", "0"); > > exit; > > } > > if ($au!=$tU) > > { > > sl_send_reply("403","Forbidden auth ID"); > > exit; > > } > > } else { > > #!ifdef WITH_IPAUTH > > if(allow_source_address()) > > { > > # source IP allowed > > return; > > } > > #!endif > > # authenticate if from local subscriber > > if (from_uri==myself) > > { > > if (!proxy_authorize("$fd", "subscriber")) { > > proxy_challenge("$fd", "0"); > > exit; > > } > > if (is_method("PUBLISH")) > > { > > if ($au!=$tU) { > > sl_send_reply("403","Forbidden auth ID"); > > exit; > > } > > } else { > > if ($au!=$fU) { > > sl_send_reply("403","Forbidden auth ID"); > > exit; > > } > > } > > consume_credentials(); > > # caller authenticated > > } else { > > # caller is not local subscriber, then check if it calls > > # a local destination, otherwise deny, not an open relay here > > if (!uri==myself) > > { > > sl_send_reply("403","Not relaying"); > > exit; > > } > > } > > } > > #!endif > > return; > > } > > # Caller NAT detection route > > route[NAT] { > > #!ifdef WITH_NAT > > force_rport(); > > if (nat_uac_test("19")) { > > if (method=="REGISTER") { > > fix_nated_register(); > > } else { > > fix_nated_contact(); > > } > > setflag(FLT_NATS); > > } > > #!endif > > return; > > } > > # RTPProxy control > > route[RTPPROXY] { > > #!ifdef WITH_NAT > > if (is_method("BYE")) { > > unforce_rtp_proxy(); > > } else if (is_method("INVITE")){ > > force_rtp_proxy(); > > } > > if (!has_totag()) add_rr_param(";nat=yes"); > > #!endif > > return; > > } > > # Routing to foreign domains > > route[SIPOUT] { > > if (!uri==myself) > > { > > append_hf("P-hint: outbound\r\n"); > > route(RELAY); > > } > > } > > # PSTN GW routing > > route[PSTN] { > > #!ifdef WITH_PSTN > > # check if PSTN GW IP is defined > > if (strempty($sel(cfg_get.pstn.gw_ip))) { > > xlog("SCRIPT: PSTN rotuing enabled but pstn.gw_ip not defined\n"); > > return; > > } > > # route to PSTN dialed numbers starting with '+' or '00' > > # (international format) > > # - update the condition to match your dialing rules for PSTN routing > > if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$")) > > return; > > # only local users allowed to call > > if(from_uri!=myself) { > > sl_send_reply("403", "Not Allowed"); > > exit; > > } > > $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip); > > route(RELAY); > > exit; > > #!endif > > return; > > } > > # XMLRPC routing > > #!ifdef WITH_XMLRPC > > route[XMLRPC] > > { > > # allow XMLRPC from localhost > > if ((method=="POST" || method=="GET") > > && (src_ip==127.0.0.1)) { > > # close connection only for xmlrpclib user agents (there is a bug in > > # xmlrpclib: it waits for EOF before interpreting the response). > > if ($hdr(User-Agent) =~ "xmlrpclib") > > set_reply_close(); > > set_reply_no_connect(); > > dispatch_rpc(); > > exit; > > } > > send_reply("403", "Forbidden"); > > exit; > > } > > #!endif > > # Sample branch router > > branch_route[BRANCH_ONE] { > > xdbg("new branch at $ru\n"); > > } > > # Sample onreply route > > onreply_route[REPLY_ONE] { > > xdbg("incoming reply\n"); > > #!ifdef WITH_NAT > > if ((isflagset(FLT_NATS) || isbflagset(FLB_NATB)) > > && status=~"(183)|(2[0-9][0-9])") { > > force_rtp_proxy(); > > } > > if (isbflagset("6")) { > > fix_nated_contact(); > > } > > #!endif > > } > > route[STATS] { > > sql_query("ca", > > "insert into statistics (time_stamp,shm_used_size,shm_real_used_size," > > "shm_max_used_size,shm_free_used_size,ul_users,ul_contacts) values ($Ts," > > "$stat(used_size),$stat(real_used_size),$stat(max_used_size)," > > "$stat(free_size),$stat(location-users),$stat(location-contacts))", > > "ra"); > > } > > # Sample failure route > > failure_route[FAIL_ONE] { > > #!ifdef WITH_NAT > > if (is_method("INVITE") > > && (isbflagset(FLB_NATB) || isflagset(FLT_NATS))) { > > unforce_rtp_proxy(); > > } > > #!endif > > if (t_is_canceled()) { > > exit; > > } > > # uncomment the following lines if you want to block client > > # redirect based on 3xx replies. > > ##if (t_check_status("3[0-9][0-9]")) { > > ##t_reply("404","Not found"); > > ## exit; > > ##} > > # uncomment the following lines if you want to redirect the failed > > # calls to a different new destination > > ##if (t_check_status("486|408")) { > > ## sethostport("192.168.2.100:5060"); > > ## append_branch(); > > ## # do not set the missed call flag again > > ## t_relay(); > > ##} > > } > > On Wed, Oct 5, 2011 at 12:12 PM, Uri Shacked <ushac...@gmail.com> wrote: > >> >> >> ---------- Forwarded message ---------- >> From: Uri Shacked <uri.shac...@gmail.com> >> Date: Wed, Oct 5, 2011 at 11:48 AM >> Subject: dialog ref Error >> To: sr-users@lists.sip-router.org >> >> >> Hi, >> >> i keep on getting this error: >> Oct 5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog >> [dlg_hash.c:247]: new dialog on hash 531 >> Oct 5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog >> [dlg_handlers.c:264]: route_set , contact sip:036264529@10.2.0.55:5061, >> cseq 1 and bind_addr udp:10.2.0.5:5060 >> Oct 5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog >> [dlg_hash.c:519]: ref dlg 0xb417f5a0 with 3 -> 3 >> Oct 5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog >> [dlg_hash.c:600]: unref dlg 0xb417f5a0 with 1, crt ref count: 3 >> >> anyone knows what it is? >> >> here is the dialog part in my cfg: >> >> >> *# ------ dialog params --------* >> >> modparam("dialog", "db_url", DBURL) >> >> ##modparam("dialog", "rr_param", "did") >> >> modparam("dialog", "default_timeout", 7200) >> >> modparam("dialog", "dlg_match_mode", >> 0) >> >> modparam("dialog", "detect_spirals", 1) >> >> modparam("dialog", "db_mode", 1) >> >> ##modparam("dialog", "db_fetch_rows", 100) >> >> modparam("dialog", "dlg_flag", FLT_DLG) >> >> modparam("dialog", "profiles_with_value", "test") >> >> >> >> .......... >> >> dlg_manage(); >> >> ##dlg_setflag(FLT_DLG); >> >> if (is_method("INVITE")) { >> >> $var(size) = 0; >> >> get_profile_size("test","$rU","$var(size)"); >> >> xlog("currently, the user $rU has $var(size) active calls\n"); >> >> if( $var(size) >= 5 ){ >> >> sl_send_reply("507", "Simultaneous calls limit reached"); >> >> xlog("Limit of $var(size) active calls has been reached \n"); >> >> exit;} >> >> set_dlg_profile("test","$rU");} >> >> ........ >> >> >
_______________________________________________ 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