Thanks for your reply.
This is part of my config file:
request_route { # per request initial checks route(REQINIT);
# NAT detection route(NATDETECT);
# 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|NOTIFY")) record_route();
# account only INVITEs if (is_method("INVITE")) { 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] {
# enable additional event routes for forwarded requests # - serial forking, RTP relaying handling, a.s.o. if (is_method("INVITE|SUBSCRIBE|NOTIFY")) { t_on_branch("MANAGE_BRANCH"); t_on_reply("MANAGE_REPLY"); } if (is_method("INVITE")) { t_on_failure("MANAGE_FAILURE"); }
if (!t_relay()) { sl_reply_error(); } exit; }
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 } if ( is_method("ACK") ) { # ACK is forwarded statelessy route(NATMANAGE); } route(RELAY); } else { if ((is_method("SUBSCRIBE| NOTIFY")) && uri == myself) { 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; } }
I'm using loose_route function in WITHINDLG function, presence in the same server works buts with user from another domain I receive duplicate notifys. The request line for this notifys is userB@ip_of_domainB not userB@ip_of_userB like the ones I receive when the two users are in the same domain.
Thanks. Regards.
On Tue, Feb 28, 2012 at 5:22 PM, Klaus Darilion < klaus.mailinglists@pernau.at> wrote:
NOTIFYs are in-dialog and should be loose-routed. Verify that loose-routing works fine.
If the clients are behind NAT also verify that Contact headers are rewritten during subscription.
regards Klaus
On 28.02.2012 16:08, Manuel Perez wrote:
Hello,
I've used kamailio 3.2.2, i have rls, simple presence and xcap support working. I've replicated this server into another one in a different domain, but presence between domains is not working. I'm using for presence presence.so, presence_xml.so and presence_mwi.so. In route[WITHINDLG] i have the following lines:
... if (is_method("SUBSCRIBE|NOTIFY") && uri==myself) route(PRESENCE); ...
When NOTIFY from user B at domain B arrives to the server at domain A, the message is not forwarded to the user A, How can i achieve this?
Thank you.
______________________________**_________________ 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-**usershttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users