Re: LUA scripting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

the LUA scripting is still highly experimental and the way how LUA
scripts interface with GnuGk may still change. Thats why I haven't added
anything to the manual, yet.

The main idea is that you shouldn’t have to worry about keeping another
process running to make complex routing decisions or destination
rewrites. Right now the 'lua' policy can do about the same things the
'vqueue' and 'sql' policies can do, just more convenient.

With the latest CVS, you can add

[RoutingPolicy]
default=lua,explicit,internal

[Routing::Lua]
;Script=destAlias=string.gsub(calledAlias, "#", "*")
;Script=destAlias=calledAlias;destAlias=string.gsub(destAlias, "#", "*")
ScriptFile=myscript.lua

The current interface between LUA and GnuGk is that the script gets
access to a number of global symbols, like "calledAlias" and writes the
new destination to "destAlias" and GnuGk will treat this the same as a
RouteToAlias. What you do in the LUA script to make the transformation
is all up to you.
There are a few more symbols you can use. See Routing.cxx.

If somebody tries this, please give me feedback how you like the
interface. I'm considering to move away from the lists of symbols maybe
towards functions GetProperty("calledAlias") and
SetProperty("destAlias", "new value") or even something completely
different.

It would also be cool to have this kind of scripting ability for CLI
rewriting...

Regards,
Jan

-- 
Jan Willamowius, Founder of the GNU Gatekeeper Project
EMail  : jan@xxxxxxxxxxxxxx
Website: http://www.gnugk.org
Support: http://www.willamowius.com/gnugk-support.html


Robert Kulagowski wrote:
> On Tue, Feb 7, 2012 at 2:16 PM, Robert Kulagowski <rkulagow@xxxxxxxxx> wrote:
> > Any pointers on how to use lua to do things?
> 
> To expand on this, I'm wondering if Lua is going to assist me.
> 
> I have implemented a "flat" dialplan in my company.  Endpoints
> register to the GnuGK using countrycode-ISDN-number, so in the U.S.
> they're registered as 13125678901, in the UK they're registered as
> 442072987654, etc.
> 
> The issue I run into is that users are used to dialing international
> escape codes, even when they don't need them, so a user in the U.S.
> may dial 011442072987654 to reach an internal system.
> 
> To avoid unnecessary ISDN charges, I wrote a vqueue perl script that's
> triggered on 011, 00, 0011 which are the international escape codes
> that I see worldwide.
> 
> The script takes off the escape code, then does a lookup of the number
> that remains, and checks if that number maps to an internal alias.
> 
> it then has logic that does this:
> 
> rejectRoute is true when we don't want the endpoint to use one of the
> ISDN gateways. isAlias is true when we've mapped a dialed ISDN number
> to an internal H323-name.
> 
>         if ( !$rejectRoute ) {
>             if ($isAlias) {
>                 print "destination alias is $destinationAlias and
> destinationIP is $dialedDestination\n";
>                 print "routetoalias $destinationAlias"." $EP_ID $CRV\n";
>                 print $sock "routetoalias $destinationAlias"." $EP_ID $CRV\n";
>                 $sock->getline();
>                 $isAlias = false;
>             }
>             else {
>                 print "routetogateway $destinationAlias $destinationIP
> $EP_ID $CRV\n";
>                 print $sock "routetogateway $destinationAlias
> $destinationIP $EP_ID $CRV\n";
>                 $sock->getline();
>             }
>         }
>         else    #route was rejected, so EP should use its native ISDN
>         {
>             $rejectRoute = false;
>             print "Rejecting route\n";
>             print $sock "routereject $EP_ID $CRV\n";
>             $sock->getline();
>         }
>     }
> }
> 
> Would Lua allow more flexibility in how numbers are manipulated and
> rewritten prior to a final routing decision being made by GnuGK?

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________________

Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx
Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users
Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users
Homepage: http://www.gnugk.org/



[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux