On Wed, Oct 5, 2011 at 2:34 PM, Uri Shacked <ushacked@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@gmail.com> wrote:


---------- Forwarded message ----------
From: Uri Shacked <uri.shacked@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");}

........