[SR-Users] Dialog ref Error

Uri Shacked ushacked at gmail.com
Wed Oct 5 14:53:53 CEST 2011


On Wed, Oct 5, 2011 at 2:34 PM, Uri Shacked <ushacked at 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 <ushacked at gmail.com> wrote:
>
>>
>>
>> ---------- Forwarded message ----------
>> From: Uri Shacked <uri.shacked at gmail.com>
>> Date: Wed, Oct 5, 2011 at 11:48 AM
>> Subject: dialog ref Error
>> To: sr-users at 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 at 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");}
>>
>> ........
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20111005/5f70e067/attachment-0001.htm>


More information about the sr-users mailing list