Hey Daniel,
Ok I worked it out. In the async callback before I call tmb.t_continue you
need to restore the transaction avp lists before trying to add an AVP to be
used in the "continue route" of the cfg file. do for example:
set_avp_list(AVP_TRACK_FROM | AVP_CLASS_URI, &t->uri_avps_from );
set_avp_list(AVP_TRACK_TO | AVP_CLASS_URI, &t->uri_avps_to );
set_avp_list(AVP_TRACK_FROM | AVP_CLASS_USER, &t->user_avps_from );
set_avp_list(AVP_TRACK_TO | AVP_CLASS_USER, &t->user_avps_to );
set_avp_list(AVP_TRACK_FROM | AVP_CLASS_DOMAIN, &t->domain_avps_from );
set_avp_list(AVP_TRACK_TO | AVP_CLASS_DOMAIN, &t->domain_avps_to );
...
code to add my AVP to be made available to cfg file
...
tmb.t_continue(data->tindex, data->tlabel, data->act);
Hopefully this make more sense?
Cheers
Jason
On Tue, Oct 2, 2012 at 2:45 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com>wrote;wrote:
Hello,
not clear now what you try to do, but have in mind that avps are attached
to a sip message or transaction. You cannot access it if it is set in
other process for a transaction you don't have access to it anymore. Use
some other sort of shared memory structure.
Cheers,
Daniel
On 10/2/12 2:12 PM, Jason Penton wrote:
Hey Daniel,
plse see inline:
On Tue, Oct 2, 2012 at 2:02 PM, Daniel-Constantin Mierla <
miconda(a)gmail.com> wrote:
Hello,
On 10/2/12 1:58 PM, Jason Penton wrote:
Okay I solved this by using the uas->request structure ;)
indeed, this is the right way -- forgot to answer this email...
np, thanks!
One more question re. async "pattern" Daniel:
In the "continued" code, prior to executing the config file actions, can
you add an avp (ie from within the code prior to calling t_continue, can we
add an avp and have it available to the config file in the "continued"
route block)?
IIRC, at that moment you have to add it to the list that is stored in
transaction. Maybe you can use a $var() and then move it in avp list inside
the continued route block.
Im not sure I understand you here? Just to make sure I am clear. I am
effectively trying to do this:
longrunningfunction(); #this is where the async will happen, so the next
line will be run by another process
if ($avp(s:return_val_from_longrunningfunction) > 0) {
blah;
}
So, I am asking how I can set the
$avp(s:return_val_from_longrunningfunction). I can tell you from practice
that it doesnt work using the default add_avp from within my async callback
process. I have not researched yet how the avps are stored, architected,
etc. But I am imagineing that right now the process I am in has no "access"
to avp "storage". Either that or the avp "storage" is overwritten
with the
t_continue code? Would be great if you could shed some light?
Cheers,
Daniel
cheers
Jason
On Mon, Oct 1, 2012 at 3:46 PM, Jason Penton <jason.penton(a)gmail.com>wrote;wrote:
Hi (Daniel this may be for you re. async)
Is it possible to get the sip message from a transaction after using
t_continue. The reason I ask is that using the async "pattern", how would
one be able to use transactional replies in code using t_reply(code,
message). Is the only way to store the sip_msg in shm for later use,
because if I look at TM I see there is no storage for the original SIP
request?
Cheers
Jason
_______________________________________________
sr-dev mailing
listsr-dev@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla -
http://www.asipto.comhttp://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 -
http://asipto.com/u/kat
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 -
http://asipto.com/u/katu
--
Daniel-Constantin Mierla -
http://www.asipto.comhttp://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 -
http://asipto.com/u/kat
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 -
http://asipto.com/u/katu