<div dir="ltr">var event is switch_event_t, there are many iteration examples in the code.<br><br>It's just a linked list.<br><br>for (h = var_event->headers; h; h = h->next) {<br> printf("%s=%s\n", h->name, h->value);<br>
}<br><br><br><div class="gmail_quote">On Fri, Oct 3, 2008 at 1:00 AM, 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;">
Is there a way to iterate var_event or do I need to add one?<br>
<br>
<br>
Simon<br>
<br>
<br>
On 10/2/08 11:52 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>
> 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>
> On Thu, Oct 2, 2008 at 1:21 PM, Simon Capper <<a href="mailto:scapper@ooma.com">scapper@ooma.com</a>> wrote:<br>
><br>
>> 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<br>
>> *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>
>> 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<br>
>> needed.<br>
>>><br>
>>> you will learn to understand that due to the years of torture from<br>
>> asterisk<br>
>>> and it's knotted up api that is somehow called an abstraction layer, I<br>
>> 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<br>
>> to<br>
>>>> setting a sip_x variable and having it appear in the sip signaling,<br>
>> 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<br>
>> 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<br>
>> 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<br>
>> (*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:<br>
>> <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>
>><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>