#374 b2b_logic -> b2bl_key_avp -- possible bug

trunk
open
nobody
modules (454)
5
2011-04-30
2011-04-30
Anonymous
No

Hi Anca,

It's me again. Sorry to bother you, but I need to clarify something that looks like a bug to me.

Because of the dialog module leading to the issues I reported earlier, I'm looking for a way to pass some data from leg1 to leg2.
It seems like the b2bl_key_avp option is the right one for me, but I'm facing some troubles.

Reading here:
http://www.opensips.org/html/docs/modules/devel/b2b_logic.html#id250244

It says: "The name of the Attribute-Value-Pair (AVP) used to store the b2b_logic entity key."

What really is the b2b_logic entity key ?

I have:
modparam("b2b_logic", "b2bl_key_avp", "$avp(i:99)")

and after calling:
b2b_init_request("top hiding");

the $avp(i:99) is equal to 642.0 and the $ci is B2B.642.954463

Isn't B2B.642.954463 what should be assigned to $avp(i:99) ?

Because of that difference I have to do:

route[b2b_reply] {
if (is_method("INVITE")) {
cache_fetch("memcached_local","b2b_call_info_$avp(i:99)",$avp(s:call_setup));
xlog("[leg2]INVITE GOT ($avp(i:99)): $avp(s:call_setup)\n");
cache_store("memcached_local","b2b_call_info_$ci","$avp(s:call_setup)",14400);
}
}

route {
....
b2b_init_request("top hiding");
cache_store("memcached_local","b2b_call_info_$avp(i:99)","$json(cs)",14400);
....
}

If there is any way to know the B2B call id, then I can skip the whole b2b_reply manipulation.

Please advise.

A fan of you:
-- Kamen :)

Discussion

  • Ovidiu Sas

    Ovidiu Sas - 2011-04-30

    When a B2B call is created, there are:
    - one b2b_logic entity
    - two b2b_entities entities

    The avp that you is set via the b2b_logic modparam is for the key of the b2b_logic entity and it has the correct value. This key is not visible in any part of a SIP message that is part of the call.
    The b2b_entities entities keys are identifying the caller/callee (those are with the special format: B2B.XXX.YYY). These keys are used in the call-id field of the callee and in the to-tag of the caller. Please note, that in some scenario, one of the participants may be replaced with another and these keys will change. However, for the duration of the call (even if any of the participants are replaced) the b2b_logic key is still the same.

    The b2b_logic key is useful while inspecting the internals of the b2b_logic context:
    opensipsctl fifo b2b_list <b2b_logic_key>.

    Regards,
    Ovidiu Sas

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2011-04-30

    Hi Osas,

    Ok, that makes sense, but:

    1) if there are let say 5000 concurrent calls, what is the chance for the b2b_logic entity key to get duplicated ?
    2) since the top hiding scenario resets all the applied avps, how could I pass a parameter between the:
    - before top hiding
    - after top hiding

    All what I need is a way to see the leg1 Call-ID in leg2.

    Thank you for your time
    -- Kamen

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks