[Freeswitch-users] Finding session variables by name pattern

Oleg Stolyar olegstolyar at gmail.com
Thu Mar 3 02:11:59 MSK 2016


Thanks Michael, looks like a very workable solution!

On Wed, Mar 2, 2016 at 2:57 PM, Michael Collins <msc at freeswitch.org> wrote:

> You can use the uuid_dump command to get all the channel variables and
> values. Here's some rudimentary code which accepts the uuid as an argument:
>
> -- Lua has no split function, so we need to create one
> function string:split( inSplitPattern, outResults )
>    if not outResults then
>       outResults = {}
>    end
>    local theStart = 1
>    local theSplitStart, theSplitEnd = string.find( self, inSplitPattern,
> theStart )
>    while theSplitStart do
>       table.insert( outResults, string.sub( self, theStart,
> theSplitStart-1 ) )
>       theStart = theSplitEnd + 1
>       theSplitStart, theSplitEnd = string.find( self, inSplitPattern,
> theStart )
>    end
>    table.insert( outResults, string.sub( self, theStart ) )
>    return outResults
> end
>
> api = freeswitch.API()
> uuid = argv[1]
>
> -- uuid_dump gets all vars for a particular channel
> res = api:execute('uuid_dump',uuid)
> freeswitch.consoleLog('INFO',"Complete vars list: " .. res .. "\n")
>
> -- lines is a table, one row per var: val pair
> lines = string.split(res,"\n")
>
> for i=1,#lines do
>   -- check for variable name using pattern match
>   -- Adjust the pattern to whatever you are trying to find
>   myPattern = 'variable_'
>   if string.match(lines[i], myPattern) then
>     varval = string.split(lines[i],": ")
>     freeswitch.consoleLog("NOTICE","Variable '" .. varval[1] .. "'
> contains '" .. varval[2] .. "'\n")
>   end
> end
>
> I don't know if this is the most efficient way of doing what you're trying
> to do but it does demonstrate the power and flexibility of Lua and
> FreeSWITCH API's like uuid_dump.
>
> -MC
>
> On Wed, Mar 2, 2016 at 12:05 PM, Oleg Stolyar <olegstolyar at gmail.com>
> wrote:
>
>> Hi guys,
>>
>> is there a way to find all the session variable with a certain name
>> pattern *in lua*?
>>
>> For example I need to find all the session variables whose names start
>> with "bla_"
>>
>> As an alternative is there a way to iterate over all the session
>> variables?  Then I can just do that and find the variables I need this way.
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://confluence.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20160302/d6f5b13c/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list