<div dir="ltr">use a hash to store the vars.<br>we have a hashtable you can see being used in zap_io.c<br><br><br><br><div class="gmail_quote">On Thu, Oct 2, 2008 at 1:21 PM, Simon Capper <span dir="ltr"><<a href="mailto:scapper@ooma.com">scapper@ooma.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I see how the var_event mechanism works.<br>
<br>
Are you ok with new openzap functions to set/get the vars on the channel,<br>
called from outgoing_channel().<br>
<br>
zap_channel_add_var(zap_channel_t *zchan, char *var_name, const char *value)<br>
<br>
const char * zap_channel_get_var(zap_channel_t *zchan, char *var_name)<br>
<br>
And new fields in zap_channel struct to hold the data<br>
char * user_vars[];<br>
int num_user_vars<br>
<br>
<br>
Simon<br>
<br>
<br>
On 10/2/08 10:18 AM, "Anthony Minessale" <<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>><br>
<div><div></div><div class="Wj3C7c">wrote:<br>
<br>
> The difference openzp is itself also an abstraction layer so you need to<br>
> pass it down.<br>
><br>
> I *will not* violate scope like that.....<br>
><br>
> so the only thing I am ok with is adding channel variables to the openzap<br>
> channels.<br>
> Then you can either set them all from the vars_event in the mod_openzap<br>
> outgoing_channel routine<br>
> or with a callback via the core set_variable mechanism.<br>
><br>
> Then your signaling mod could get the variables by name when it was needed.<br>
><br>
> you will learn to understand that due to the years of torture from asterisk<br>
> and it's knotted up api that is somehow called an abstraction layer, I will<br>
> not bend on scope issues. Things like this are exactly what went wrong<br>
> there.<br>
><br>
><br>
><br>
><br>
><br>
> On Thu, Oct 2, 2008 at 11:04 AM, Simon Capper <<a href="mailto:scapper@ooma.com">scapper@ooma.com</a>> wrote:<br>
><br>
>> The variables would be set before the call by another app, its analogous to<br>
>> setting a sip_x variable and having it appear in the sip signaling, don't<br>
>> need a callback.<br>
>><br>
>> The parameters are (so far):<br>
>> Ring type: (cadences index to ring the phone with)<br>
>> Phones to ring list: (proprietary for my ozmod module, don't think it<br>
>> should<br>
>> be in the library)<br>
>><br>
>> Maybe have a variable "opanzap_<variable_name>" that mod_openzap looks for<br>
>> and adds to the zchan structure by passing a custom variable array to<br>
>> zap_channel_open() then the ozmod can read it.<br>
>><br>
>> Simon<br>
>><br>
>><br>
>> On 10/2/08 6:11 AM, "Anthony Minessale" <<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>><br>
>> wrote:<br>
>><br>
>>> That would pretty much violate the whole scope of the library. It's not<br>
>>> supposed to even know there is a such thing as FreeSWITCH to get<br>
>> variables<br>
>>> from. There could just as easily be a chan_openzap for asterisk (*WINK*<br>
>>> *WINK* anyone? buelleur?)<br>
>>><br>
>>> What exactly do you need them for?<br>
>>><br>
>>> The most elegant way would be for the FS core to allow endpoints<br>
>>> (mod_openzap) to register a callback to be called<br>
>>> when a variable is set on that channel, then add the concept of channel<br>
>>> variables to openzap zchans<br>
>>><br>
>>> so then when FS had a channel variable set it mod_openzap would in turn<br>
>> set<br>
>>> it on openzap zchan and the blind abstraction would be preserved.<br>
>>><br>
>>><br>
>>><br>
>>><br>
>>> On Thu, Oct 2, 2008 at 2:42 AM, Simon Capper <<a href="mailto:scapper@ooma.com">scapper@ooma.com</a>> wrote:<br>
>>><br>
>>>> I want to access channel variables from an ozmod module in openzap.<br>
>>>> I can't see a way to do it in the current code.<br>
>>>><br>
>>>> I'd like to add the feature and provide a patch for openzap when I'm<br>
>> done.<br>
>>>> I'm thinking of adding a void pointer that could be passed down via<br>
>>>> zap_channel_open that could be then be used from the ozmod modules?<br>
>>>> Mod_openzap would set the pointer to a function that would give access<br>
>> to<br>
>>>> channel variables. Thoughts?<br>
>>>><br>
>>>> Simon<br>
>>>><br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> Freeswitch-dev mailing list<br>
>>>> <a href="mailto:Freeswitch-dev@lists.freeswitch.org">Freeswitch-dev@lists.freeswitch.org</a><br>
>>>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
>>>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
>>>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>>>><br>
>>><br>
>>><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Freeswitch-dev mailing list<br>
>> <a href="mailto:Freeswitch-dev@lists.freeswitch.org">Freeswitch-dev@lists.freeswitch.org</a><br>
>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>><br>
><br>
><br>
<br>
<br>
<br>
_______________________________________________<br>
Freeswitch-dev mailing list<br>
<a href="mailto:Freeswitch-dev@lists.freeswitch.org">Freeswitch-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/">http://www.cluecon.com/</a><br>
<br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br><a href="http://iax:guest@conference.freeswitch.org/888">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400<br>
</div>