[Kamailio-Users] [OpenSIPS-Users] Where are going my pua_dialoginfo publishes ?
Klaus Darilion
klaus.mailinglists at pernau.at
Thu Mar 5 11:14:21 CET 2009
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 at pernau.at
> <mailto:klaus.mailinglists at 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 at pernau.at
> <mailto:klaus.mailinglists at pernau.at>
> <mailto:klaus.mailinglists at pernau.at
> <mailto:klaus.mailinglists at 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 at 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 at 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 at domain"> <dialog
> id="MzQ3N2FiMzhiZGIwNzhhNDhhNjcxN2Y5OGJhY2M0N2Q."
> call-id="MzQ3N2FiMzhiZGIwNzhhNDhhNjcxN2Y5OGJhY2M0N2Q."
> direction="initiator"> <state>Trying</state>
> <remote> <identity>sip:bob at domain</identity>
> <target
> uri="sip:bob at domain"/> </remote> <local>
> <identity>sip:alice at domain</identity> <target
> uri="sip:alice at domain"/> </local> </dialog>
> </dialog-info>
> DBG:pua_dialoginfo:dialog_publish: publish uri=
> sip:alice at domain
> DBG:pua_dialoginfo:print_publ: publ:
> DBG:pua_dialoginfo:print_publ: uri= sip:alice at 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 at 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 at lists.opensips.org
> <mailto:Users at lists.opensips.org>
> <mailto:Users at lists.opensips.org <mailto:Users at lists.opensips.org>>
>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
More information about the Users
mailing list