diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index f3b0824..ae3ec78 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -3,7 +3,7 @@ #!trydef PRESENCE_MIN_EXPIRES_ACTION 1 #!trydef PRESENCE_MAX_EXPIRES 3600 -#!trydef KZ_PRESENCE_IGNORE_STATUS_PROBE_RESP 1 +#!trydef KZ_PRESENCE_IGNORE_STATUS_PROBE_RESP 0 #!trydef KZ_PRESENCE_CSEQ_OFFSET 2 #!trydef KZ_PRESENCE_MAX_CALL_PER_PRESENTITY 20 #!trydef BLF_USE_SINGLE_DIALOG 1 @@ -15,7 +15,7 @@ #!trydef KZ_PRESENCE_REQUIRE_AUTHN 0 #!trydef KZ_PRESENCE_KEEPALIVE_NAT_ONLY 1 #!trydef KZ_PRESENCE_KEEPALIVE_UDP_ONLY 1 - +#!trydef KZ_PRESENCE_FAST_NOTIFY 1 #!ifdef NAT_TRAVERSAL_ROLE #!ifndef KEEPALIVE_ROLE @@ -49,7 +49,7 @@ modparam("presence_xml", "disable_bla", 1) modparam("presence", "subs_db_mode", 3) modparam("presence", "expires_offset", 0) -modparam("presence", "send_fast_notify", 1) +modparam("presence", "send_fast_notify", KZ_PRESENCE_FAST_NOTIFY) modparam("presence", "clean_period", 0) modparam("presence", "db_update_period", 0) @@ -110,6 +110,8 @@ route[HANDLE_SUBSCRIBE] return; } + route_if_exists("CUSTOM_HANDLE_SUBSCRIBE"); + if ($hdr(Event) != "dialog" && $hdr(Event) != "presence" && $hdr(Event) != "message-summary") { @@ -117,13 +119,6 @@ route[HANDLE_SUBSCRIBE] send_reply(489, "Bad Event"); exit(); } - - route(PRESENCE_AUTHN); - - if (!t_newtran()) { - sl_reply_error(); - exit; - } if(has_totag()) { loose_route(); @@ -137,8 +132,6 @@ route[HANDLE_SUBSCRIBE] route(HANDLE_NEW_SUBSCRIBE); } - t_release(); - exit; } @@ -236,7 +229,7 @@ route[REQUEST_PROBE] } else { xlog("L_INFO", "$ci|sub|requesting $hdr(Event) probe for $subs(to_user) in realm $subs(to_domain)\n"); $var(rk) = "probes." + $hdr(Event); - $var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "probe", "Event-Package" : "$hdr(event)", "Username" : "$tU", "Realm" : "$fd", "Call-ID" : "$ci"}); + $var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "probe", "Event-Package" : "$hdr(event)", "Username" : "$subs(to_user)", "Realm" : "$subs(to_domain)", "Call-ID" : "$ci"}); kazoo_publish("presence", "$var(rk)", $var(amqp_payload_request)); } } @@ -258,6 +251,8 @@ route[HANDLE_PUBLISH] return; } + route_if_exists("CUSTOM_HANDLE_PUBLISH"); + if ($hdr(Event) != "dialog" && $hdr(Event) != "presence" && $hdr(Event) != "message-summary") { @@ -266,19 +261,12 @@ route[HANDLE_PUBLISH] exit(); } - route(PRESENCE_AUTHN); - - if (!t_newtran()) { - sl_reply_error(); - exit; - } - if($hdr(Sender)!= $null) { handle_publish("$hdr(Sender)"); } else { handle_publish(); } - t_release(); + exit; } @@ -427,7 +415,7 @@ event_route[kazoo:consumer-event-presence-update] } } - xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|received presence update for $(kzE{kz.json,Presence-ID})"); + xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|received presence update for $(kzE{kz.json,Presence-ID})\n"); $var(JObj) = $kzE; $var(presentity) = $_s(sip:$(kzE{kz.json,Presence-ID})); $var(payload) = $kzE;