[Devel] Re: presence: 412 Conditional Request Failed

Cesc cesc.santa at gmail.com
Fri Apr 13 17:03:26 CEST 2007


more info, I hope it helps ...

I captured two publishs on openser ... the first works, the second does NOT.
The first (works) does NOT have a SIP-if-match ... so handle_publish
generates one ... say E-tag = xxxx.1, which attaches to the OK
The second (non-working) PUB, DOES have a Sip-if-Match, thus
handle_publish looks into the database for a matching E-tag ... but
the E-tag on the PUB message E-tag = yyyy.2  (not the one generated on
the first PUB!).
Then, of course, handle_publish looks on the database and does NOT
find a match ... returning 412 ...

Cesc

On 4/13/07, Cesc <cesc.santa at gmail.com> wrote:
> Hi,
>
> Today is my openser presence + dbtext day ... sorry Anca ;)
>
> So, now that I can have a basic setup, I am going onto more complex
> settings ...
>
> xlite1 - ser1
>               |
> xlite2 - ser2 - openser2
>
> The idea is that on each ser, ONLY PUB messages are sent across, that
> is, to the other ser.
> Let's say, for the sake of clarity, that SUBS from xlite1 are discarded ...
>
> No big deal ... as I would think that for each ser/openser cluster it
> makes no difference if there has been 1 or 2 hops for the publish
> message ...
> Ideally, xlite2 shall be able to see all the status changes from xlite1.
>
> But the problem is that I on a clean boot, it works ... for a while.
> After a few PUBs from xlite1, openser2 starts generating 412 messages,
> which ends up travelling all the way from openser2 via ser2, ser1 and
> to xlite1 ... resulting in NO status change ...
>
> Ideas?
> See the attached log ... the 412 gets generated when, in
> handle_publish function, a call to update_presentity() returns 412 ...
> because the searched 3 values (domain, username, etag) are not found
> on the database ...
>
>
>  4(9398)  method:  <PUBLISH>
>  4(9398)  uri:     <sip:Klaas at cafes.org>
>  4(9398)  version: <SIP/2.0>
>  4(9398) parse_headers: flags=2
>  4(9398) Found param type 232, <branch> = <z9hG4bKcfcb.04071694.0>; state=16
>  4(9398) end of header reached, state=5
>  4(9398) parse_headers: Via found, flags=2
>  4(9398) parse_headers: this is the first via
>  4(9398) After parse_msg...
>  4(9398) preparing to run routing scripts...
>  4(9398) parse_headers: flags=100
>  4(9398) Found param type 234, <received> = <192.168.3.170>; state=6
>  4(9398) Found param type 232, <branch> = <0>; state=16
>  4(9398) end of header reached, state=5
>  4(9398) parse_headers: Via found, flags=100
>  4(9398) parse_headers: this is the second via
>  4(9398) Found param type 232, <branch> =
> <z9hG4bK-d87543-ec4056068e608815-1--d87543->; state=6
>  4(9398) Found param type 235, <rport> = <24064>; state=16
>  4(9398) end of header reached, state=5
>  4(9398) parse_headers: Via found, flags=100
>  4(9398) DEBUG:maxfwd:is_maxfwd_present: value = 15
>  4(9398) ==============================================================================================
>  4(9398) parse_headers: flags=10
>  4(9398) DEBUG:parse_to:end of header reached, state=10
>  4(9398) DBUG:parse_to: display={"X-lite user 1"}, ruri={sip:Klaas at cafes.org}
>  4(9398) DEBUG: get_hdr_field: <To> [38]; uri=[sip:Klaas at cafes.org]
>  4(9398) DEBUG: to body ["X-lite user 1"<sip:Klaas at cafes.org>
> ]
>  4(9398) DEBUG: add_param: tag=e104da1a
>  4(9398) DEBUG:parse_to:end of header reached, state=29
>  4(9398) DBUG:parse_to: display={"X-lite user 1"}, ruri={sip:Klaas at cafes.org}
>  4(9398) New Message received: [1] from [sip:Klaas at cafes.org]
>  4(9398) Request method used:[PUBLISH].
>  4(9398) =============================================================================================
>  4(9398) DEBUG: t_newtran:  T on entrance=0xffffffff
>  4(9398) parse_headers: flags=ffffffffffffffff
>  4(9398) get_hdr_field: cseq <CSeq>: <20> <PUBLISH>
>  4(9398) DEBUG: get_hdr_body : content_length=419
>  4(9398) found end of header
>  4(9398) parse_headers: flags=78
>  4(9398) t_lookup_request: start searching: hash=48380, isACK=0
>  4(9398) DEBUG: RFC3261 transaction matching failed
>  4(9398) DEBUG: t_lookup_request: no transaction found
>  4(9398) =============================================================================================
>  4(9398) The request method used is to [PUBLISH] information. (handle publish)
>  4(9398) =============================================================================================
>  4(9398) parse_headers: flags=ffffffffffffffff
>  4(9398) PRESENCE:handle_publish: SIP-If-Match found
>  4(9398) PRESENCE:handle_publish: existing etag  = a.1176470910.12535.15
>  4(9398) PRESENCE: handle_publish: 'expires' found
>  4(9398) PRESENCE: handle_publish: lexpire= 3600
>  4(9398) PRESENCE: handle_publish: 'To' header ALREADY PARSED:
> <sip:Klaas at cafes.org>
>  4(9398) parse_headers: flags=ffffffffffffffff
>  4(9398) presentity.c: update_presentity: querying: domain = cafes.org
>  4(9398) presentity.c: update_presentity: querying: username = Klaas
>  4(9398) presentity.c: update_presentity: querying: etag = a.1176470910.12535.15
>  4(9398) PRESENCE:update_presentity: querying presentity
>  4(9398) DBT:dbt_query: new res with 1 cols
>  4(9398) DBT:dbt_result_new: new res with 1 cols
>  4(9398) PRESENCE:update_presentity: No E_Tag match
>  4(9398) parse_headers: flags=ffffffffffffffff
>  4(9398) check_via_address(192.168.1.150, 192.168.1.150, 0)
>  4(9398) DEBUG: cleanup_uac_timers: RETR/FR timers reset
>  4(9398) DEBUG: add_to_tail_of_timer[2]: 0xb5d20880 (39)
>  4(9398) DEBUG:tm:UNREF_UNSAFE: after is 0
>  4(9398) DEBUG:destroy_avp_list: destroying list (nil)
>



More information about the Devel mailing list