[Freeswitch-dev] Channel variables from openzap

Simon Capper scapper at ooma.com
Thu Oct 2 14:21:01 EDT 2008


I see how the var_event mechanism works.

Are you ok with new openzap functions to set/get the vars on the channel,
called from outgoing_channel().

zap_channel_add_var(zap_channel_t *zchan, char *var_name, const char *value)

const char * zap_channel_get_var(zap_channel_t *zchan, char *var_name)

And new fields in zap_channel struct to hold the data
char * user_vars[];
int num_user_vars 


Simon


On 10/2/08 10:18 AM, "Anthony Minessale" <anthony.minessale at gmail.com>
wrote:

> The difference openzp is itself also an abstraction layer so you need to
> pass it down.
> 
> I *will not* violate scope like that.....
> 
> so the only thing I am ok with is adding channel variables to the openzap
> channels.
> Then you can either set them all from the vars_event in the mod_openzap
> outgoing_channel routine
> or with a callback via the core set_variable mechanism.
> 
> Then your signaling mod could get the variables by name when it was needed.
> 
> you will learn to understand that due to the years of torture from asterisk
> and it's knotted up api that is somehow called an abstraction layer, I will
> not bend on scope issues. Things like this are exactly what went wrong
> there.
> 
> 
> 
> 
> 
> On Thu, Oct 2, 2008 at 11:04 AM, Simon Capper <scapper at ooma.com> wrote:
> 
>> The variables would be set before the call by another app, its analogous to
>> setting a sip_x variable and having it appear in the sip signaling, don't
>> need a callback.
>> 
>> The parameters are (so far):
>> Ring type: (cadences index to ring the phone with)
>> Phones to ring list: (proprietary for my ozmod module, don't think it
>> should
>> be in the library)
>> 
>> Maybe have a variable  "opanzap_<variable_name>" that mod_openzap looks for
>> and adds to the zchan structure by passing a custom variable array to
>> zap_channel_open() then the ozmod can read it.
>> 
>> Simon
>> 
>> 
>> On 10/2/08 6:11 AM, "Anthony Minessale" <anthony.minessale at gmail.com>
>> wrote:
>> 
>>> That would pretty much violate the whole scope of the library.  It's not
>>> supposed to even know there is a such thing as FreeSWITCH to get
>> variables
>>> from.  There could just as easily be a chan_openzap for asterisk (*WINK*
>>> *WINK* anyone? buelleur?)
>>> 
>>> What exactly do you need them for?
>>> 
>>> The most elegant way would be for the FS core to allow endpoints
>>> (mod_openzap) to register a callback to be called
>>> when a variable is set on that channel, then add the concept of channel
>>> variables to openzap zchans
>>> 
>>> so then when FS had a channel variable set it mod_openzap would in turn
>> set
>>> it on openzap zchan and the blind abstraction would be preserved.
>>> 
>>> 
>>> 
>>> 
>>> On Thu, Oct 2, 2008 at 2:42 AM, Simon Capper <scapper at ooma.com> wrote:
>>> 
>>>> I want to access channel variables from an ozmod module in openzap.
>>>> I can't see a way to do it in the current code.
>>>> 
>>>> I'd like to add the feature and provide a patch for openzap when I'm
>> done.
>>>> I'm thinking of adding a void pointer that could be passed down via
>>>> zap_channel_open that could be then be used from the ozmod modules?
>>>> Mod_openzap would set the pointer to a function that would give access
>> to
>>>> channel variables. Thoughts?
>>>> 
>>>> Simon
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Freeswitch-dev mailing list
>>>> Freeswitch-dev at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>>> http://www.freeswitch.org
>>>> 
>>> 
>>> 
>> 
>> 
>> 
>> _______________________________________________
>> Freeswitch-dev mailing list
>> Freeswitch-dev at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
>> 
> 
> 





More information about the Freeswitch-dev mailing list