Eric PTAK schrieb:
Hi all for a new debug day ;)
You're right Klaus, from my understanding :
- the expires value is taken from the dialog struct, or from
override_lifetime if it's set.
==> at this point, dialog->lifetime = 0, so if override_lifetime isn't
set the expires will equal 0 too. so we need to go more deeply.
(not in call order)
- the dialog struct is given via the callback and filled by the dialog
module
- the dialog module calls get_dlg_timeout function which return the avp
lifetime or default_timeout if the avp doesn't exist
- the dialog module calls run_create_callbacks which then calls
registered callbacks like pua_dialoginfo's one
the weird thing, from dialog/dlg_handlers.c line 470 to 510, the dialog
struct is built but the lifetime field is filled after the
run_create_callbacks call...
I remember I have come across this before. Currently the order is:
/* first INVITE seen (dialog created, unconfirmed) */
run_create_callbacks( dlg, msg);
if ( seq_match_mode!=SEQ_MATCH_NO_ID &&
add_dlg_rr_param( msg, dlg->h_entry, dlg->h_id)<0 ) {
LM_ERR("failed to add RR param\n");
goto error;
}
if ( d_tmb.register_tmcb( msg, t,
TMCB_RESPONSE_OUT|TMCB_RESPONSE_FWDED,
dlg_onreply, (void*)dlg, unref_new_dialog)<0 ) {
LM_ERR("failed to register TMCB\n");
goto error;
}
dlg->lifetime = get_dlg_timeout(msg);
I wonder if it should be changed. Shouldn't run_create_callbacks()
executed later? E.g. If there is an error creating the dialog IMO it
makes no sense to call the callback at all.
Daniel, what do you think?
regards
klaus
Regards,
Eric.
2009/3/5 Klaus Darilion <klaus.mailinglists(a)pernau.at
<mailto:klaus.mailinglists@pernau.at>>
I wonder why the lifetime was 0 at all?
The lifetime should be the lifetime from the dialog module, and a
liftime of 0 makes also in dialog module no sense.
regards
klaus
Eric PTAK schrieb:
Daniel was right !
I've changed override_lifetime pua_dialoginfo's parameter and
it's now working !
Eric.
2009/3/4 Klaus Darilion <klaus.mailinglists(a)pernau.at
<mailto:klaus.mailinglists@pernau.at>
<mailto:klaus.mailinglists@pernau.at
<mailto:klaus.mailinglists@pernau.at>>>
Actually we still do not know if you use Kamailio or Opensips
(which
have slightly different implementations)
The PUBLISh should be sent to: publish uri= sip:alice@domain
If "domain" is yourself, it should be looped to the proxy via
loopback interface (ngrep -d lo port 5060)
regards
klaus
Eric PTAK schrieb:
Hi,
I'm trying to use *_dialoginfo modules but I'm facing to a
missunderstanding, or a bug.
In fact, the presence server is working and I'm also able to
subscribe to dialog event.
But when pua_dialoginfo uses pua to send the Publish, I don't
know where it going...
I even not sure publishes are really sent.
This the log :
DBG:dialog:run_create_callbacks: dialog=0xb59d30b0
DBG:pua_dialoginfo:__dialog_created: new INVITE dialog
created:
from=sip:alice@domain
DBG:core:grep_aliases: comparing host [0:domain:0] with us
[0:domain:0]
DBG:core:grep_aliases: match found for: [0:domain:0]
DBG:core:check_self: host == me
DBG:pua_dialoginfo:build_dialoginfo: new_body: <?xml
version="1.0"?> <dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="0"
state="full" entity="sip:alice@domain">
<dialog
id="MzQ3N2FiMzhiZGIwNzhhNDhhNjcxN2Y5OGJhY2M0N2Q."
call-id="MzQ3N2FiMzhiZGIwNzhhNDhhNjcxN2Y5OGJhY2M0N2Q."
direction="initiator"> <state>Trying</state>
<remote> <identity>sip:bob@domain</identity>
<target
uri="sip:bob@domain"/> </remote> <local>
<identity>sip:alice@domain</identity> <target
uri="sip:alice@domain"/> </local>
</dialog>
</dialog-info>
DBG:pua_dialoginfo:dialog_publish: publish uri=
sip:alice@domain
DBG:pua_dialoginfo:print_publ: publ:
DBG:pua_dialoginfo:print_publ: uri= sip:alice@domain
DBG:pua_dialoginfo:print_publ: id=
DIALOG_PUBLISH.MzQ3N2FiMzhiZGIwNzhhNDhhNjcxN2Y5OGJhY2M0N2Q.
DBG:pua_dialoginfo:print_publ: expires= 0
DBG:pua:send_publish: pres_uri=sip:alice@domain
DBG:pua:search_htable: core_hash= 118
DBG:pua:search_htable: record not found
DBG:pua:send_publish: insert type
DBG:pua:send_publish: UPDATE_TYPE and no record found
DBG:pua:send_publish: request for a publish with expires
0 and
no record found
DBG:dialog:get_dlg_timeout: invalid AVP value, use
default timeout
DBG:tm:run_reqin_callbacks: trans=0xb59d3270, callback
type 1,
id 0 entered
Regards,
Eric.
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)lists.opensips.org
<mailto:Users@lists.opensips.org>
<mailto:Users@lists.opensips.org <mailto:Users@lists.opensips.org>>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users