[Freeswitch-dev] please shed me light on code reading

Mathieu Rene mrene_lists at avgs.ca
Thu Nov 25 07:30:48 PST 2010


Hi,

switch_channel_set_variable() is limited to saving strings, if you want to save other data structures, you have to use switch_channel_set_private().

Mathieu Rene
Avant-Garde Solutions Inc
Office: + 1 (514) 664-1044 x100
Cell: +1 (514) 664-1044 x200
mrene at avgs.ca




On 2010-11-23, at 10:56 PM, jesse wrote:

> Michael,
> 
>   my question is more more specific like :
>    Can we use   : switch_channel_set_variable(channel, "_userspy_",
> (void *) argv[0]);  instead of using private?
>   It seems this should serve the same purpose. thus,   I don't see a
> reason why one is using private, the other is using variable.
> 
>   thanks for pointing out the code process_event is used to support
> loopback. I still couldn't figure out why the process_event won't work
> on call leg-a, but it will work on call leg-b in the case of loop
> back? please illustrate me.
> 
>   just one general observation, FS source code really lacks code
> comments, it takes tremendous effort to understand the code.  FS dev
> community should enforce developer to add more comments for business
> logic for readability. This is going to help FS down the road in terms
> of sustaining, adapting, and feature enriching.
> 
>  -jesse
> 
> 
> 
> On Tue, Nov 23, 2010 at 6:39 AM, Michael Jerris <mike at jerris.com> wrote:
>> a variable is a channel variable that you can access in the dial-plan, in events, etc.  A private is a void pointer that we use to store data that is later accessed by name in the application.  The code you were talking about below was added to support loopback channel:
>> 
>> commit d0a74dd5c445e8a1540ba0a3f465ad394e033193
>> Date:   Mon Apr 26 04:30:10 2010 -0400
>>    mod_spy: add support for loopback endpoint (MODAPP-416)
>> 
>> 
>> 
>> Mike
>> 
>> On Nov 21, 2010, at 2:36 AM, jesse wrote:
>> 
>>> one more question.
>>> 
>>> switch_channel_set_variable(channel, "spy_uuid", my_uuid);
>>> switch_channel_set_private(channel, "_userspy_", (void *) argv[0]);
>>> 
>>> 
>>> why one is set via rugular variable and one is set via private?  is
>>> that necessary?
>>> 
>>> -jesse
>>> 
>>> 
>>> On Sat, Nov 20, 2010 at 10:48 PM, jesse <chat2jesse at gmail.com> wrote:
>>>> hi,
>>>> 
>>>>  Any expert can shed me some light on quick code understanding?
>>>> thanks in advance!
>>>> 
>>>> suppose I dial 88<1001> to spy on extension user 1001. and 5 minutes
>>>> later 1001 calls 1002.
>>>> 
>>>> <extension name="userspy">
>>>>    <condition field="destination_number" expression="^88(.*)$|^\*0(.*)$">
>>>>      <action application="answer"/>
>>>>      <action application="userspy" data="$1 at 192.168.1.1"/>
>>>>    </condition>
>>>>  </extension>
>>>> 
>>>>  in event_handle(...) of mod_spy.c.
>>>>  -- Whats is the reason that we need to call process_event for both event and
>>>> peer_event?
>>>>    is not processing event for call leg-a 's bridge enough? it seems
>>>> mod_spy.c in 1.0.6 version
>>>> doesn't process peer_event.
>>>> 
>>>> static void event_handler(switch_event_t *event)
>>>> {
>>>>        if (process_event(event) != SWITCH_STATUS_SUCCESS) {
>>>>                const char *peer_uuid = switch_event_get_header(event,
>>>> "variable_signal_bond");
>>>>                ...
>>>>                if (peer_event) {
>>>>                        process_event(peer_event);
>>>>                }
>>>>        }
>>>> }
>>>> 
>>>> 
>>>> http://svn.freeswitch.org/svn/freeswitch/trunk/src/mod/applications/mod_spy/mod_spy.c
>>>> 
>>> 
>>> _______________________________________________
>>> 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
>> 
> 
> _______________________________________________
> 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