Hi Sebastian, I find no reason why two Publish messages might be sent when an MI command is received. Please send me a message trace together with the openser log ( debug= 7) from where the MI command is being handled (search for the line containing "mi_pua_publish: start").
regards, Anca Schumann Sebastian wrote: > Dear Anca > > Thank you for the response. > > The publication of more than one message in your described scenario I > understand. In my case, immediately after the first PUBLISH is sent, a > second one is sent afterwards. OpenSER does not use the most recent etag > for an update, but creates a new one, that is never been removed > automatically. If I send an expires=0 message after the publication, > only the first published etag is removed. > > Here my publication script: > #!/bin/bash > # FIFO command to PUBLISH hard-presence state of user via PUA > # > > #config values > OP_SYSUSER="[EMAIL PROTECTED]" > OP_SIPURI="sip:$OP_SYSUSER" > OP_STATE="open" > OP_EXPIRES="-1" > > #build reply fifo file > rm -f /tmp/openser_fifo_reply > mkfifo /tmp/openser_fifo_reply > cat /tmp/openser_fifo_reply& > > cat >/tmp/openser_fifo <<EOF > :pua_publish:openser_fifo_reply > $OP_SIPURI > $OP_EXPIRES > presence > application/pidf+xml > . > <?xml version='1.0' encoding='UTF-8'?><presence > xmlns='urn:ietf:params:xml:ns:pidf' > xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model' > xmlns:rpid='urn:ietf:params:x ml:ns:pidf:rpid' > xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' ntity='$OP_SIPURI'><tuple > id='gigpoej8'><status><basic>$OP_STATE</basic></status><rpid:user-input> > Har d-State</rpid:user-input></tuple><dm:person > id='0jfqoiet'><rpid:activities><rpid:unknown/></rpid:activities><dm:note > >> Hard-State</dm:note></dm:person></presence> >> > EOF > > And my expires script: > #!/bin/bash > # FIFO command to PUBLISH hard-presence state of user via PUA > # > > #config values > OP_SYSUSER="[EMAIL PROTECTED]" > OP_SIPURI="sip:$OP_SYSUSER" > OP_STATE="closed" > OP_EXPIRES="0" > > #build reply fifo file > rm -f /tmp/openser_fifo_reply > mkfifo /tmp/openser_fifo_reply > cat /tmp/openser_fifo_reply& > > cat >/tmp/openser_fifo <<EOF > :pua_publish:openser_fifo_reply > $OP_SIPURI > $OP_EXPIRES > presence > application/pidf+xml > . > <?xml version='1.0' encoding='UTF-8'?><presence > xmlns='urn:ietf:params:xml:ns:pidf' > xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model' > xmlns:rpid='urn:ietf:params:x ml:ns:pidf:rpid' > xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' ntity='$OP_SIPURI'><tuple > id='giqpoej8'><status><basic>$OP_STATE</basic></status><rpid:user-input> > Har d-State</rpid:user-input></tuple><dm:person > id='0jfqoiet'><rpid:activities><rpid:unknown/></rpid:activities><dm:note > >> ard-State</dm:note></dm:person></presence> >> > > EOF > > I start first publish, then expire, then publish again and so on. > > The following etags are created normally: > e.g. a.1207041424.4027.1.0 > a.1207041424.4027.3.0 > a.1207041424.4027.5.0 > > At some point, another one is created together with the "normal" one, > e.g. a.1207041424.4027.7.0 and a.1207041424.4027.8.0 > > The expires only removed the a.1207041424.4027.7.0 (all odd numbers). > The published one with the even number stays forever. > > I don't know what can be the reason. Here my OpenSER configuration file > extract from pua module: > modparam("pua", "db_url", > "mysql://openser:[EMAIL PROTECTED]/openser") > modparam("pua", "db_table", "pua") > modparam("pua", "update_period", 10) > modparam("pua", "default_expires", 600) > > Thanks for help. > > Best regards > Sebastian > > -----Original Message----- > From: Anca Vamanu [mailto:[EMAIL PROTECTED] > Sent: Tuesday, 25. March 2008 3:05 PM > To: Schumann Sebastian > Cc: users@lists.openser.org > Subject: Re: [OpenSER-Users] PUA/PUA_MI: More than one Publish sent > > Hello Sebastian, > > Indeed sometimes more that one Publish messages are sent. I will explain > > when and why. > It is possible for someone to request through the MI command to publish > a state that should be active for 5000 seconds (you probably know that > -1 in expires filed means infinite time). But the max expires in > presence server is lets say 3600 sec. If no other publish request is > received before the first one expires, the record is deleted. So, to > respect the requested time, the pua module generates itself another > publish when the first one is close to expire just to update the > validity time. > Now, if for a subsequent mi command you do not sent the etag parameter ( > > set it to '.' value), the most recent etag will be found in pua module, > and a correct Publish message will be sent. > I have just now tried the scenario you described and it works perfectly > for me. > So, I want to ask you to say exactly what you are doing because there > must be something you have missed out. Is the presentity uri exactly the > > same for the first and the subsequent mi requests? After how much time > have you sent the mi request that fails? > > Regards, > Anca Vamanu > > Schumann Sebastian wrote: > >> Dear all >> >> I am using OpenSER 1.3.1 branch release R3936. I face some bad >> behaviour using pua and pua_mi modules. >> >> I publish presence states via the management interface. Sometimes, it >> happens that multiple PUBLISH message are sent by one request. >> Unfortunately, there is no "system" or oder when this occurs. It just >> happens after some publications. >> >> In case of an expiration (Expires=0, E-Tag .) it is not that bad, I >> receive the log message: ERROR:presence:update_presentity: No E_Tag >> > match. > >> >> In case of publication (Expires=-1, E-Tag .) it is very bad: After >> publication, he receives also two similar messages, and threats both >> PUBLISH messages as two different ones. Thus, creates two different >> presentity entries with different E-Tags. If the state is expired now >> via MI (Expires: -1, E-Tag .) only one of the E-Tags is removed. The >> second stays in the presentity table and the user still appears >> > online. > >> >> Any ideas what can be the reason and how to solve it? >> >> Best regards >> Sebastian >> >> > ------------------------------------------------------------------------ > >> _______________________________________________ >> Users mailing list >> Users@lists.openser.org >> http://lists.openser.org/cgi-bin/mailman/listinfo/users >> >> > > _______________________________________________ Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users