[Serusers] NOTIFY and WATCHERINFO_NOTIFY

Alois Schafferhofer schaffi_lui at hotmail.com
Mon Jun 19 21:31:07 CEST 2006


Hi,

I have some questions about PUBLISH handling. SER sends a lot of NOTIFYS 
when status changes. Additionally, SER sends more than one tuples in one 
Response (open and closed in one Response).

The second question is about WATCHERINFO_NOTIFY. I have the line:
modparam("pa", "watcherinfo_notify", 1) in my config file, but SER doesn't 
NOTIFY me, if someone SUBSCRIBEs to my Presence information.

Regards,
Alois



10.40.1.42:5060 -> 10.15.200.57:5060
SUBSCRIBE sip:PDA_User at fh-joanneum.at SIP/2.0..Via: SIP/2.0/UDP 
10.40.1.42:5060;rport;branch=z9hG4bK92504..Max-Forwards: 70..To:
<sip:PDA_User at fh-joan
neum.at>..From: <sip:esca at fh-joanneum.at>;tag=z9hG4bK19686534..Call-ID: 
035185567140 at 10.40.1.42..CSeq: 1 SUBSCRIBE..Contact:
<sip:esca at 10.40.1.42>..Ex
pires: 3600..User-Agent: mjsip stack 1.6..Event: presence..Accept: 
application/cpim-pidf+xml..Content-Length: 0....
#

10.15.200.57:5060 -> 10.40.1.42:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.40.1.42:5060;rport=5060;branch=z9hG4bK92504..To: 
<sip:PDA_User at fhjoanneum.
at>;tag=589230a54cd08b3768529724501fae2
8-51f5..From: <sip:esca at fh-joanneum.at>;tag=z9hG4bK19686534..Call-ID: 
035185567140 at 10.40.1.42..CSeq: 1 SUBSCRIBE..Expires:
3600..Contact: <sip:10.15.2
00.57:5060>..Server: Sip EXpress router (0.10.99-dev35-pa-4.1 
(i386/linux))..Content-Length: 0..Warning: 392 10.15.200.57:5060 "Noisy 
feedback
tells:
pid=7288 req_src_ip=10.40.1.42 req_src_port=5060 
in_uri=sip:PDA_User at fh-joanneum.at out_uri=sip:PDA_User at fh-joanneum.at 
via_cnt==1"....
#

10.15.200.57:5060 -> 10.40.1.42:5060
NOTIFY sip:esca at 10.40.1.42 SIP/2.0..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKc1d8.7c27cd7.0..To: <sip:esca at fhjoanneum.
at>;tag=z9hG4bK19686534..Fro
m: 
<sip:PDA_User at fh-joanneum.at>;tag=589230a54cd08b3768529724501fae28-51f5..CSeq: 
1 NOTIFY..Call-ID:
035185567140 at 10.40.1.42..Content-Length: 305..Use
r-Agent: Sip EXpress router(0.10.99-dev35-pa-4.1 (i386/linux))..Event: 
presence..Content-Type: application/cpim-pidf+xml..Contact:
<sip:10.15.200.57:5
060>..Subscription-State: active;expires=3600....<?xml version="1.0" 
encoding="UTF-8"?>..<presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"
entity="pr
es:PDA_User at fh-joanneum.at">...<tuple 
id="0x409c3328x557f3c98x44970bc3">....<status><basic>open</basic></status>....<contact
priority="0.00">sip:pda_u
ser at fh-joanneum.at</contact>...</tuple>..</presence>..
#

10.40.1.42:5060 -> 10.15.200.57:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKc1d8.7c27cd7.0..To: 
<sip:esca at fh-joanneum.at>;tag=z9hG4bK19686534..From:
<sip:PDA_User at fhjoanneum.
at>;tag=589230a54cd08b3768529724501fae28-51f5..Call-ID: 
035185567140 at 10.40.1.42..CSeq: 1 NOTIFY..Server: mjsip stack
1.6..Content-Length: 0.

10.0.0.3:5060 -> 10.0.0.11:5060
PUBLISH sip:pda_user at fh-joanneum.at SIP/2.0..Via: SIP/2.0/UDP 
10.0.0.3:5060;branch=z9hG4bK1286239759..Max-Forwards: 70..From:
<sip:pda_user at fh-joanneu
m.at>;tag=264505054..To: <sip:pda_user at fh-joanneum.at>..Call-ID: 
2090602137-1913544447-137194582..CSeq: 2 PUBLISH..Contact:
<sip:pda_user at fh-joanneum.
at>..Content-Type: application/cpim-pidf+xml..Content-Length: 219..Expires: 
7200..Event: presence..User-Agent: SIP .NET 1.0 evaluation version,
www.in
dependentsoft.com....<?xml version="1.0" encoding="utf-8"?><presence 
xmlns="urn:ietf:params:xml:ns:pidf"entity="pres:pda_user at fhjoanneum.
at"><tuple i
d="0x409c3328x557f3c98x44970bc3"><status><basic>closed</basic></status></tuple></presence>..
#

10.0.0.11:5060 -> 10.0.0.3:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.0.0.3:5060;branch=z9hG4bK1286239759..From: 
<sip:pda_user at fh-joanneum.at>;tag=264505054..To:
<sip:pda_user at fh-joann
eum.at>;tag=589230a54cd08b3768529724501fae28-f3b7..Call-ID: 
2090602137-1913544447-137194582..CSeq: 2 PUBLISH..Expires: 120..SIPETag:
0x409c2714x56983
668x449711ab..Contact: <sip:10.0.0.11:5060>..Server: Sip EXpress router 
(0.10.99-dev35-pa-4.1 (i386/linux))..Content-Length: 0..Warning: 392
10.0.0.11
:5060 "Noisy feedback tells: pid=7293 req_src_ip=10.0.0.3 req_src_port=5060 
in_uri=sip:pda_user at fh-joanneum.at out_uri=sip:pda_user at fhjoanneum.
at vi
a_cnt==1"

10.15.200.57:5060 -> 10.40.1.42:5060
NOTIFY sip:esca at 10.40.1.42 SIP/2.0..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bK91d8.2831e0b1.0..To: <sip:esca at fhjoanneum.
at>;tag=z9hG4bK19686534..Fr
om: 
<sip:PDA_User at fh-joanneum.at>;tag=589230a54cd08b3768529724501fae28-51f5..CSeq: 
2 NOTIFY..Call-ID:
035185567140 at 10.40.1.42..Content-Length: 441..Us
er-Agent: Sip EXpress router(0.10.99-dev35-pa-4.1 (i386/linux))..Event: 
presence..Content-Type: application/cpim-pidf+xml..Contact:
<sip:10.15.200.57:
5060>..Subscription-State: active;expires=3545....<?xml version="1.0" 
encoding="UTF-8"?>..<presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"
entity="p
res:PDA_User at fh-joanneum.at">...<tuple 
id="0x409c45e0x5dd5903fx449711ab">....<status><basic>closed</basic></status>....<contact
priority="0.00"></cont
act>...</tuple>...<tuple 
id="0x409c3328x557f3c98x44970bc3">....<status><basic>open</basic></status>....<contact
priority="0.00">sip:pda_user at fh-joanne
um.at</contact>...</tuple>..</presence>..
#

10.15.200.57:5060 -> 10.40.1.42:5060
NOTIFY sip:esca at 10.40.1.42 SIP/2.0..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bK23e1.c6b3a835.0..To: <sip:esca at fhjoanneum.
at>;tag=z9hG4bK13311114..Fr
om: 
<sip:PDA_User at fh-joanneum.at>;tag=589230a54cd08b3768529724501fae28-4a9d..CSeq: 
6 NOTIFY..Call-ID:
480873203923 at 10.40.1.42..Content-Length: 441..Us
er-Agent: Sip EXpress router(0.10.99-dev35-pa-4.1 (i386/linux))..Event: 
presence..Content-Type: application/cpim-pidf+xml..Contact:
<sip:10.15.200.57:
5060>..Subscription-State: active;expires=2198....<?xml version="1.0" 
encoding="UTF-8"?>..<presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"
entity="p
res:PDA_User at fh-joanneum.at">...<tuple 
id="0x409c45e0x5dd5903fx449711ab">....<status><basic>closed</basic></status>....<contact
priority="0.00"></cont
act>...</tuple>...<tuple 
id="0x409c3328x557f3c98x44970bc3">....<status><basic>open</basic></status>....<contact
priority="0.00">sip:pda_user at fh-joanne
um.at</contact>...</tuple>..</presence>..
#

10.15.200.57:5060 -> 10.40.1.42:5060
NOTIFY sip:esca at 10.40.1.42 SIP/2.0..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKe636.2a57bde3.0..To: <sip:esca at fhjoanneum.
at>;tag=z9hG4bK49649677..Fr
om: 
<sip:PDA_User at fh-joanneum.at>;tag=589230a54cd08b3768529724501fae28-9d18..CSeq: 
12 NOTIFY..Call-ID:
047322370278 at 10.40.1.42..Content-Length: 441..U
ser-Agent: Sip EXpress router(0.10.99-dev35-pa-4.1 (i386/linux))..Event: 
presence..Content-Type: application/cpim-pidf+xml..Contact:
<sip:10.15.200.57
:5060>..Subscription-State: active;expires=1614....<?xml version="1.0" 
encoding="UTF-8"?>..<presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"
entity="
pres:PDA_User at fh-joanneum.at">...<tuple 
id="0x409c45e0x5dd5903fx449711ab">....<status><basic>closed</basic></status>....<contact
priority="0.00"></con
tact>...</tuple>...<tuple 
id="0x409c3328x557f3c98x44970bc3">....<status><basic>open</basic></status>....<contact
priority="0.00">sip:pda_user at fh-joann
eum.at</contact>...</tuple>..</presence>..
#

10.15.200.57:5060 -> 10.40.1.42:5060
NOTIFY sip:esca at 10.40.1.42 SIP/2.0..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKe7b3.ac386935.0..To: <sip:esca at fhjoanneum.
at>;tag=z9hG4bK24602857..Fr
om: 
<sip:PDA_User at fh-joanneum.at>;tag=589230a54cd08b3768529724501fae28-52ae..CSeq: 
19 NOTIFY..Call-ID:
310599367527 at 10.40.1.42..Content-Length: 441..U
ser-Agent: Sip EXpress router(0.10.99-dev35-pa-4.1 (i386/linux))..Event: 
presence..Content-Type: application/cpim-pidf+xml..Contact:
<sip:10.15.200.57
:5060>..Subscription-State: active;expires=1236....<?xml version="1.0" 
encoding="UTF-8"?>..<presence xmlns="urn:ietf:params:xml:ns:cpim-pidf"
entity="
pres:PDA_User at fh-joanneum.at">...<tuple 
id="0x409c45e0x5dd5903fx449711ab">....<status><basic>closed</basic></status>....<contact
priority="0.00"></con
tact>...</tuple>...<tuple 
id="0x409c3328x557f3c98x44970bc3">....<status><basic>open</basic></status>....<contact
priority="0.00">sip:pda_user at fh-joann
eum.at</contact>...</tuple>..</presence>..
#

10.40.1.42:5060 -> 10.15.200.57:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bK91d8.2831e0b1.0..To: 
<sip:esca at fh-joanneum.at>;tag=z9hG4bK19686534..From:
<sip:PDA_User at fh
-joanneum.at>;tag=589230a54cd08b3768529724501fae28-51f5..Call-ID: 
035185567140 at 10.40.1.42..CSeq: 2 NOTIFY..Server: mjsip stack
1.6..Content-Length: 0.
...
#
10.40.1.42:5060 -> 10.15.200.57:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bK23e1.c6b3a835.0..To: 
<sip:esca at fh-joanneum.at>;tag=z9hG4bK13311114..From:
<sip:PDA_User at fh
-joanneum.at>;tag=589230a54cd08b3768529724501fae28-4a9d..Call-ID: 
480873203923 at 10.40.1.42..CSeq: 6 NOTIFY..Server: mjsip stack
1.6..Content-Length: 0.
...
#
10.40.1.42:5060 -> 10.15.200.57:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKe636.2a57bde3.0..To: 
<sip:esca at fh-joanneum.at>;tag=z9hG4bK49649677..From:
<sip:PDA_User at fh
-joanneum.at>;tag=589230a54cd08b3768529724501fae28-9d18..Call-ID: 
047322370278 at 10.40.1.42..CSeq: 12 NOTIFY..Server: mjsip stack
1.6..Content-Length: 0
....
#
10.40.1.42:5060 -> 10.15.200.57:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP 
10.15.200.57;branch=z9hG4bKe7b3.ac386935.0..To: 
<sip:esca at fh-joanneum.at>;tag=z9hG4bK24602857..From:
<sip:PDA_User at fh
-joanneum.at>;tag=589230a54cd08b3768529724501fae28-52ae..Call-ID: 
310599367527 at 10.40.1.42..CSeq: 19 NOTIFY..Server: mjsip stack
1.6..Content-Length: 0






modparam("msilo","use_contact",0)
modparam("msilo","expire_time",7200)
# -- usrloc params --
# -- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
modparam("auth_db", "password_column", "password")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("rls", "min_expiration", 200)
modparam("rls", "max_expiration", 300)
modparam("rls", "default_expiration", 300)
modparam("rls", "auth", "none") #"implicit"
modparam("rls", "xcap_root", "http://localhost/xcap")
modparam("rls", "reduce_xcap_needs", 1)
modparam("rls", "db_mode", 1)
modparam("rls", "db_url", "mysql://ser:heslo@localhost:3306/ser")
modparam("pa", "default_expires", 3600)
modparam("pa", "use_db", 1)
#modparam("pa", "pa_domain", "fh-joanneum.at")
modparam("pa", "use_offline_winfo", 1) # allow storing authorization 
requests for offline users into database
modparam("pa", "offline_winfo_timer", 600) # how often try to remove old 
stored authorization requests
modparam("pa", "offline_winfo_expiration", 600) # how long stored 
authorization requests live
modparam("pa", "db_url", "mysql://ser:heslo@localhost:3306/ser")
modparam("pa", "auth", "none") # mode of PA authorization: none, implicit or 
xcap
#modparam("pa", "auth_xcap_root", "http://localhost/xcap")
modparam("pa", "winfo_auth", "none") # do not authorize watcherinfo 
subscriptions
modparam("pa", "use_callbacks", 1) # use only published information if set 
to 0
modparam("pa", "accept_internal_subscriptions", 1) # don't accept internal 
subscriptions from RLS, ...
modparam("pa", "watcherinfo_notify", 1)
modparam("pa", "max_subscription_expiration", 3600) # maximum value of 
Expires for subscriptions
modparam("pa", "max_publish_expiration", 3600) # maximum value of Expires 
for publications
modparam("pa", "timer_interval", 5) # how often test if something changes 
and send NOTIFY
modparam("presence_b2b", "presence_route", 
"<sip:127.0.0.1;transport=tcp;lr>") # route for generated SUBSCRIBE requests
for presence
modparam("presence_b2b", "on_error_retry_time", 60) # waiting time from 
error to new attepmt about SUBSCRIBE
modparam("presence_b2b", "wait_for_term_notify", 33) # how long wait for 
NOTIFY with Subscription-Status=terminated
after unsubscribe
modparam("presence_b2b", "resubscribe_delta", 30) # how long before 
expiration send renewal SUBSCRIBE request
modparam("presence_b2b", "min_resubscribe_time", 60) # minimal time to send 
renewal SUBSCRIBE request from receiving
previous response
modparam("presence_b2b", "default_expiration", 3600) # default expiration 
timeout
modparam("presence_b2b", "handle_presence_subscriptions", 1) # process 
internal subscriptions to presence events
modparam("usrloc", "db_mode", 1)
modparam("domain", "db_mode", 1)
modparam("domain|uri_db|acc|auth_db|usrloc|msilo", "db_url", 
"mysql://ser:heslo@localhost:3306/ser")
modparam("domain", "domain_table", "domain")
#modparam("domain", "domain_column", "domain")
modparam("fifo", "fifo_file", "/tmp/ser_fifo")
if (uri==myself) {
log(1, "URI == myself");
if (method=="SUBSCRIBE") {
log(1, "SUBSCRIBE received");
if (!t_newtran()) {
sl_reply_error();
break;
};
# new subscription
if (@to.tag=="") {
log(1, "new SUBSCRIPTION");
if ((@msg.supported=~"eventlist")) {
log(1, "msg.supported=eventlist");
# Supported header field
# -> may be RLS subscription
if (is_simple_rls_target("$uid-list")) {
log(1, "it is simple subscription!\n");
# handle_rls_subscription("1");
# takes From UID and makes XCAP query
# for user's list named "default"
if (@to.tag=="") {
# only for new subscriptions (with empty to tag
if (!query_resource_list("default")) {
t_reply("500", "XCAP query error");
break;
}
}
}
if (!have_flat_list()) {
# query_resource_list failed or was not called
# do standard RLS query acording to To/AOR
query_rls_services();
}
if (have_flat_list()) {
handle_rls_subscription("1");
break;
}
}
# SUBSCRIBE to existing user
# xlog("L_ERR", "PA: handling subscription: %tu from: %fu\n");
log(1, "handle SUBSCRIBE request\n");
handle_subscription("registrar");
log(1, "handled subscription\n");
log(1, "break 1");
break;
}
else { # renewal subscription
log(1, "else - renewal subscription");
if (!handle_rls_subscription("0")) {
log(1, "!handle rls subscription");
handle_subscription("registrar");
log(1, "handled subscription 2");
}
log(1, "break 2");
break;
}
}
if (method=="REGISTER") {
log(1, "REGISTER received");
# if (!www_authorize("fh-joanneum.at", "credentials")) {
# www_challenge("fh-joanneum.at", "0");
# break;
# };
save("location");
log(1, "saved location");
break;
};
if (method=="PUBLISH") {
log(1, "PUBLISH received");
if (!t_newtran()) {
sl_reply_error();
break;
};
log(1, "handle publish request\n");
handle_publish("registrar");
log(1, "handled publish\n");
break;
};
if (method=="NOTIFY") {
log(1, "NOTIFY received");
if (!t_newtran()) {
log(1, "newtran error\n");
sl_reply_error();
break;
};
if (!handle_notify()) {
log(1, "unable to handle notification - lui");
t_reply("481", "Unable to handle notification");
}
break;
};





More information about the sr-users mailing list