bayonne-devel
[Top][All Lists]
Advanced

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

[Bayonne-devel] many forms of labels


From: David Sugar
Subject: [Bayonne-devel] many forms of labels
Date: Tue, 01 Nov 2005 21:03:39 -0500
User-agent: Mozilla Thunderbird 1.0.5 (Macintosh/20050711)

At one time we had a lot of forms of duplicitive synonyms and ways of setting labels. There was the ::xxx method. There were "proc(edure)" and "service", and there was private and public. There may have been a few others! On the 1.0 ccscript3 I did purge all but the most logical ones. Hence:

private xxx
        label local to a script

public xxx
        label globally accessable from any script using yyy::xxx form

program xxx
        label globally accessible, with options, special use case.  With
        "program main" being the primary special use.

function xxx
        parametric function, globally callable from any script, called
        from call statement

local xxx
        same as function, but only accessible from the same script file
        commonly used to build local macros

I am hoping that is all the special label cases that now exist in ccscript3 1.0.

Calling labels:

        goto
                to goto a public or private label, can set vars...

        call
                to call a function, creates new stack context

        source
                to call a label using current stack context, kind of
                a subroutine call but uses same local vars...

        gosub
to use a public or private label and create an entirely new base context

        return
                returns from a source, call, or gosub

golfong woo wrote:
It can not work.
starting 0.3.1 on x86 w32; timeslots=32
soundcard/0: session starting
soundcard/0: state=initial, event=100, seq=0
soundcard/0: state=idle, event=100, seq=0
binding ivrscript...
compiled mytest::start; 2 steps
compiled mytest::done; 1 steps
compiled mytest; 2 steps
C:\Program Filessoundcard msgport starting
\GNU Telephony\Bayonne IVRScript1: directory missing
1 applications compiled
driver(s) started; 1 timeslot(s) used
soundcard/0: state=idle, event=105, seq=1
soundcard/0: state=pickup, event=100, seq=1
soundcard/0: state=pickup, event=400, seq=2
soundcard/0: state=run, event=100, seq=2
soundcard/0: mytest.scr(2): script start access
soundcard/0: state=hangup, event=100, seq=2
soundcard/0: state=hangup, event=400, seq=3
soundcard/0: state=idle, event=100, seq=3

2005/11/1, David Sugar <address@hidden>:

In ccscript3, you no longer have labels done this way.  Instead, consider:

# some initialization stuff, occurs before any script starts...
set %myvar "1"

# main is the default entry point.

program main
       sleep 60
       goto start

proc start
       echo "i'm in start, myvar = %myvar"
       goto done

proc done
       echo "i'm in done"
       exit

You can have a script without a main, but then it starts from the top,
as in:

       set %myvar "1"
       goto start

proc start
       echo "started myvar = " %myvar
       goto done

proc done
       echo "im done"
       exit

golfong woo wrote:

Bayonne2-1.1.0 is working now. But when using label, it can not work well.
Here is the script:
::start
sleep 60
hangup
exit

^hangup
     slog "^hangup"
     exit

^1
     slog "^1"
     goto ::start

Here is the console info:
starting 0.3.1 on x86 w32; timeslots=32
soundcard/0: session starting
soundcard/0: state=initial, event=100, seq=0
soundcard/0: state=idle, event=100, seq=0
binding ivrscript...
compiled mytest; 6 steps
C:\Program Files\GNU Telephony\Bayonne IVRScrisoundcard msgport starting
pt1: directory missing
1 applications compiled
driver(s) started; 1 timeslot(s) used
soundcard/0: state=idle, event=105, seq=1
soundcard/0: state=pickup, event=100, seq=1
soundcard/0: state=pickup, event=400, seq=2
soundcard/0: state=run, event=100, seq=2
soundcard/0: mytest.scr(1): script start missing
soundcard/0: state=sleep, event=100, seq=2
soundcard/0: state=sleep, event=709, seq=3
soundcard/0: state=run, event=100, seq=3
soundcard/0: ^1
soundcard/0: state=run, event=400, seq=4
soundcard/0: ^hangup
soundcard/0: state=hangup, event=100, seq=4
soundcard/0: state=hangup, event=400, seq=5
soundcard/0: state=idle, event=100, seq=5


_______________________________________________
Bayonne-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/bayonne-devel



Attachment: dyfet.vcf
Description: Vcard


reply via email to

[Prev in Thread] Current Thread [Next in Thread]