[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