[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