[sr-dev] [dialog] Adding more info (variables) to a dialog

Timo Reimann timo.reimann at 1und1.de
Fri Jul 23 10:16:58 CEST 2010


Hey,


Iñaki Baz Castillo wrote:
> 2010/7/22 Timo Reimann <timo.reimann at 1und1.de>:
>> Hey,
>>
>>
>> Iñaki Baz Castillo wrote:
>>> 2010/7/21 Timo Reimann <timo.reimann at 1und1.de>:
>>>>> In my case when my kamailio handles a call it sets it a "client_name"
>>>>> profile which is enough to list/terminate all the calls belonging to
>>>>> such client.
>>>>> But sometimes I need to terminate those calls with a specific CLI, and
>>>>> the CLI is not the From username but a custon PAI inserted by
>>>>> Kamailio. This info is not stored with the dialog.
>>>>>
>>>>> A workaround could be settting the dialog in two profiles: client_name
>>>>> and PAI, but I think it's not very elegant.
>>>>> Also I think that storing custom variables within each dialog could be
>>>>> very useful for other subjects.
>>>>>
>>>>> Opinions? Thanks.
>>>> Have you considered using profiles that are associated to specific
>>>> values? I haven't tried them myself but it looks pretty much like what
>>>> you seek. Consider exported functions *profile(profile, value), and the
>>>> MI function "profile_list_dlgs":
>>> Ops, really sorry, in fact I *alreay* use it! and it's a good
>>> solution. Sorry, not sure what I was thinking about when asked the
>>> question XD
>>>
>>> However I still think that having custom variables associated to
>>> dialogs could be useful for some other cases.
>> Hmm, not sure if I get you. According to the docs, you can pass
>> pseudo-variables to profiles already now. How would the current dialog
>> interface need to differ in your opinion?
>>
>> Could be elaborate a bit please?
> 
> Yes, sure:
> 
> Actually you can set a dialog into profiles and also set a value for
> such profiles. Imagine I want to add a custom header "X-Client-Id:
> NNNN" to the BYE depending on a profile value set in for the dialog in
> the initial INVITE. Then I must do:
> 
>   if is_in_profile("client_id", "1000")
>     hf_append("X-Client-Id: 1000\r\n");
>   else if is_in_profile("client_id", "1001")
>     hf_append("X-Client-Id: 1001\r\n");
>   else if is_in_profile("client_id", "1002")
>     hf_append("X-Client-Id: 1002\r\n");
>   [...]
>   end
> 
> Do you get the point? There is no way to get all the profiles/values a
> dialog belongs to, so in my example (really a stupid example, I know)
> I should create a very big "if" statement with all the possible values
> in a fixed way (not feasible in most of the real cases).
> 
> What I would like is something like:
> 
>   # In the initial INVITE after setting the dialog:
>   $dlg("client_id") = 1000;
> 
>   # When processing the BYE:
>   hf_append("X-Client-Id: $dlg("client_id")\r\n");
> 
> Do you get the point? :)

Yeah, got it now and endorsing your proposal -- your use case shows that
trying to solve certain dialog issues with profiles can become quite
hackish. So what we need in addition to existing value-specific profiles
is dialog-specific custom variables/attribute.


Cheers,

--Timo



More information about the sr-dev mailing list