Author: derek Date: Sun Jan 14 23:10:32 2007 New Revision: 234 Modified: sofaswitch/trunk/callflow/src/eventer.cpp sofaswitch/trunk/callflow/src/information.h sofaswitch/trunk/callflow/src/shapelist.cpp sofaswitch/trunk/callflow/src/timer.cpp sofaswitch/trunk/callflow/tests/amplaywavfile.src sofaswitch/trunk/callflow/tests/dtmf_from_sound.src sofaswitch/trunk/callflow/tests/forloop.src sofaswitch/trunk/callflow/tests/helloworld.src sofaswitch/trunk/callflow/tests/loadgraph.src sofaswitch/trunk/callflow/tests/makevoipcall.src sofaswitch/trunk/callflow/tests/parent.src sofaswitch/trunk/callflow/tests/recordmessage.src sofaswitch/trunk/callflow/tests/requestnode.src sofaswitch/trunk/callflow/tests/timetest.src Log: Update graphics to cope with chnages in the eventer & timer structures. Set maximum number of entries in an information box to be 8. Event information is now a python tuple of (sourceNode, eventName, eventData) Modified: sofaswitch/trunk/callflow/src/eventer.cpp ============================================================================== --- sofaswitch/trunk/callflow/src/eventer.cpp (original) +++ sofaswitch/trunk/callflow/src/eventer.cpp Sun Jan 14 23:10:32 2007 @@ -35,7 +35,13 @@ InformationSection(wxT("Event sought (Regular Exp)"), wxT("*DTMF")); displayData[displayData.size()] = - InformationSection(wxT("Python variable to hold event data"), wxT("self.eventData")); + InformationSection(wxT("Python variable: source of the event"), wxT("self.eventSource")); + + displayData[displayData.size()] = + InformationSection(wxT("Python variable: name of the event"), wxT("self.eventName")); + + displayData[displayData.size()] = + InformationSection(wxT("Python variable: generated data"), wxT("self.eventData")); } bool DndShapeEventer::TestInternalVariables() @@ -122,13 +128,27 @@ file.AddLine(" link not be connected, a None value will be returned. "); file.AddLine(" \"\"\" "); file.AddLine(" a,b,c = sTuple "); - file.AddLine(" pVbl = self.data[a][\"Event Variable\"] "); - file.AddLine(" pVbl += \" = None\" "); + file.AddLine(" pVbl = self.data[a][\"Event Source\"] + \" = None\" "); + file.AddLine(" try: "); + file.AddLine(" exec(pVbl) "); + file.AddLine(" except: "); + file.AddLine(" pVbl = self.data[a][\"Event Source\"] "); + file.AddLine(" print \"The Python variable \", pVbl, \" to hold event source output could not be initialisd\" "); + + file.AddLine(" pVbl = self.data[a][\"Event Name\"] + \" = None\" "); file.AddLine(" try: "); file.AddLine(" exec(pVbl) "); file.AddLine(" except: "); - file.AddLine(" pVbl = self.data[a][\"Event Variable\"] "); - file.AddLine(" print \"The Python variable \", pVbl, \" to hold event output could not be initialisd\" "); + file.AddLine(" pVbl = self.data[a][\"Event Name\"] "); + file.AddLine(" print \"The Python variable \", pVbl, \" to hold event name output could not be initialisd\" "); + + file.AddLine(" pVbl = self.data[a][\"Event Data\"] + \" = None\" "); + file.AddLine(" try: "); + file.AddLine(" exec(pVbl) "); + file.AddLine(" except: "); + file.AddLine(" pVbl = self.data[a][\"Event Data\"] "); + file.AddLine(" print \"The Python variable \", pVbl, \" to hold event data output could not be initialisd\" "); + file.AddLine(" ePyn = self.data[a][\"Event Python\"] "); file.AddLine(" eReg = self.data[a][\"Event RegExp\"] "); file.AddLine(" if len(ePyn) > 0: "); @@ -169,9 +189,15 @@ file.AddLine(wxString::Format(" \"Event RegExp\" : ")); file.AddLine(wxString::Format(" \"%s\", ", displayData[2].data.c_str())); - file.AddLine(wxString::Format(" \"Event Variable\" : ")); + file.AddLine(wxString::Format(" \"Event Source\" : ")); file.AddLine(wxString::Format(" \"%s\", ", displayData[3].data.c_str())); + file.AddLine(wxString::Format(" \"Event Name\" : ")); + file.AddLine(wxString::Format(" \"%s\", ", displayData[4].data.c_str())); + + file.AddLine(wxString::Format(" \"Event Data\" : ")); + file.AddLine(wxString::Format(" \"%s\", ", displayData[5].data.c_str())); + file.AddLine(wxString::Format(" },")); return true; Modified: sofaswitch/trunk/callflow/src/information.h ============================================================================== --- sofaswitch/trunk/callflow/src/information.h (original) +++ sofaswitch/trunk/callflow/src/information.h Sun Jan 14 23:10:32 2007 @@ -56,7 +56,7 @@ protected: /**An integer to specify howmany possible controls this dialog can handle */ enum MemberCount { - MaxMembers = 5 /**This dialog can only handle 5 controls, indexed as 0..4 */ + MaxMembers = 8 /**This dialog can only handle 5 controls, indexed as 0..7 */ }; Modified: sofaswitch/trunk/callflow/src/shapelist.cpp ============================================================================== --- sofaswitch/trunk/callflow/src/shapelist.cpp (original) +++ sofaswitch/trunk/callflow/src/shapelist.cpp Sun Jan 14 23:10:32 2007 @@ -320,12 +320,12 @@ file.AddLine(" self.generatedEvents = {} "); file.AddLine(" self.pendingEvents = {} "); file.AddLine(" self.currentHandlers= {} "); - file.AddLine(" self.knownNetworkMessages= [] "); - file.AddLine(" self.knownNetworkMessages.append(\"REQUESTNEWID\") "); - file.AddLine(" self.knownNetworkMessages.append(\"RECEIVEDDTMF\") "); - file.AddLine(" self.knownNetworkMessages.append(\"Terminating\") "); + file.AddLine(" self.knownNetworkMessages= [] "); + file.AddLine(" self.knownNetworkMessages.append(\"REQUESTNEWID\") "); + file.AddLine(" self.knownNetworkMessages.append(\"RECEIVEDDTMF\") "); + file.AddLine(" self.knownNetworkMessages.append(\"Terminating\") "); file.AddLine(" self.knownNetworkMessages.append(\"QueryAcceptIncoming\") "); -// file.AddLine(" self.knownNetworkMessages.append(\"\") "); + file.AddLine(" self.knownNetworkMessages.append(\"FinishedFile\") "); char c= 34; wxString tString = wxString::Format(" self.quote = \"\\%c\"", c); file.AddLine(tString.c_str()); @@ -413,21 +413,39 @@ file.AddLine(" if len(hre.split(event)) > 1: "); file.AddLine(" #found a match "); file.AddLine(" eventNode = self.currentHandlers[handler] "); - file.AddLine(" eventData = self.generatedEvents.pop(event) "); file.AddLine(" eHandler = self.data[eventNode][\"Event Handler\"] "); - file.AddLine(" pVbl = self.data[eventNode][\"Event Variable\"] "); - file.AddLine(" pVbl += \" = \" + self.quote + eventData + self.quote "); + file.AddLine(" eSource,eName,eData = self.generatedEvents.pop(event) "); + + file.AddLine(" pVbl = self.data[eventNode][\"Event Source\"] "); + file.AddLine(" pVbl += \" = \" + self.quote + eSource + self.quote "); file.AddLine(" try: "); file.AddLine(" exec(pVbl) "); file.AddLine(" except: "); file.AddLine(" print \"An internal error processing \", pVbl "); + + file.AddLine(" pVbl = self.data[eventNode][\"Event Name\"] "); + file.AddLine(" pVbl += \" = \" + self.quote + eName + self.quote "); + file.AddLine(" try: "); + file.AddLine(" exec(pVbl) "); + file.AddLine(" except: "); + file.AddLine(" print \"An internal error processing \", pVbl "); + + file.AddLine(" pVbl = self.data[eventNode][\"Event Data\"] "); + file.AddLine(" pVbl += \" = \" + self.quote + eData + self.quote "); + file.AddLine(" try: "); + file.AddLine(" exec(pVbl) "); + file.AddLine(" except: "); + file.AddLine(" print \"An internal error processing \", pVbl "); + + file.AddLine(" self.DoWork(eHandler) "); file.AddLine(" self.generatedEvents.clear() "); file.AddLine(" "); file.AddLine(" def networkEventData(self, eName, data): "); file.AddLine(" \"\"\"This node has received a message from some remote node. The "); file.AddLine(" eventName is a concatanation of the sender name and the event. "); - file.AddLine(" Thus, an example eventName would be voipREQUESTNEWID. "); + file.AddLine(" Thus, an example eventName would be voip34REQUESTNEWID. "); + file.AddLine(" This example eventName indicates voip34 wants a new id from us "); file.AddLine(" The data is additional information on this event. In this case, "); file.AddLine(" the date field could be voip34 (the ID of the node node on voip)"); file.AddLine(" A second possible set of parameters would be voip23DTMF and 9 "); @@ -545,16 +563,18 @@ file.AddLine(" thisMessage = thisMessage.strip() "); file.AddLine(" for msg in self.knownNetworkMessages: "); file.AddLine(" if thisMessage.find(msg) >= 0: "); - file.AddLine(" idx = thisMessage.find(\":\") "); - file.AddLine(" msga = thisMessage[0:idx] + thisMessage[(idx+1):] "); - file.AddLine(" idx = thisMessage.find(\" \") "); - file.AddLine(" if idx < 0: "); - file.AddLine(" eName= msga "); - file.AddLine(" body=\"\" "); + file.AddLine(" idxc = thisMessage.find(\":\") "); + file.AddLine(" eventSource = thisMessage[0:idxc] "); + file.AddLine(" idxs = thisMessage.find(\" \") "); + file.AddLine(" if idxs < 0: "); + file.AddLine(" eventName = thisMessage[(idxc+1):] "); + file.AddLine(" eventData = \"\" "); file.AddLine(" else: "); - file.AddLine(" eName = msga[0:idx] "); - file.AddLine(" body = thisMessage[(idx+1):] "); - file.AddLine(" self.networkEventData(eName, body) "); + file.AddLine(" eventName = thisMessage[(idxc+1):] "); + file.AddLine(" eventData = thisMessage[(idxs+1):] "); + file.AddLine(" eventString = eventSource + eventName "); + file.AddLine(" eTuple = (eventSource, eventName, eventData) "); + file.AddLine(" self.networkEventData(eventString, eTuple) "); file.AddLine(" "); file.AddLine(" "); for (int i = 0; i < DndShape::KnownShapes; i++) { Modified: sofaswitch/trunk/callflow/src/timer.cpp ============================================================================== --- sofaswitch/trunk/callflow/src/timer.cpp (original) +++ sofaswitch/trunk/callflow/src/timer.cpp Sun Jan 14 23:10:32 2007 @@ -96,7 +96,7 @@ file.AddLine(" except: "); file.AddLine(" print \"The timer label of \", self.data[a][\"Timer label\"], \" was unintelligible Python\" "); file.AddLine(" return self.data[a][\"Output\"] "); - file.AddLine(" self.pendingEvents[eName] = a "); + file.AddLine(" self.pendingEvents[eName] = (\"internaltimer\", \"timerexpired\", a) "); file.AddLine(" try: "); file.AddLine(" self.period = eval (self.data[a][\"Timer period\"]) "); file.AddLine(" except: "); Modified: sofaswitch/trunk/callflow/tests/amplaywavfile.src ============================================================================== --- sofaswitch/trunk/callflow/tests/amplaywavfile.src (original) +++ sofaswitch/trunk/callflow/tests/amplaywavfile.src Sun Jan 14 23:10:32 2007 @@ -1,3 +1,3 @@ -5<B>770<B>331<B> extra <special>Tool Tip<ms>play leaving sound<ms><special>Test (Python code)<ms>self.dtmfData=="3"<ms><special> <B><Shape>16<B>516<B>561<B> extra <special>Tool Tip<ms>initial wav file<ms><special>Filename to read audio from (Python code)<ms>"../prompts/instructions.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>2<B>659<B>427<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>11<B>191<B>67<B> extra <special>Tool Tip<ms>Request Node from AM module<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestam<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>5<B>507<B>312<B> extra <special>Tool Tip<ms>Test Roger voice<ms><special>Test (Python code)<ms>self.dtmfData=="1"<ms><special> <B><Shape>7<B>989<B>497<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.amNode<ms><special> <B><Shape>10<B>990<B>405<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hangup, as dtmf 9 has been received"<ms><special> <B><Shape>10<B>282<B>279<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>14<B>251<B>461<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable to hold event data<ms>self.dtmfData<ms><special> <B><Shape>9<B>264<B>199<B>264,513,264,635,426,639,428,199,532,202,532,262<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>202<B>162<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>amREQ<ms><special>Python variable to hold event data<ms>self.amNode<ms><special> <B><Shape>5<B>581<B>341<B> extra <special>Tool Tip<ms>Repeat instructions<ms><special>Test (Python code)<ms>self.dtmfData=="4"<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node from sound module<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>821<B>356<B>821,357,977,357,1018,356<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>991<B>588<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>544<B>394<B>606,394,602,560,544,561<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>248<B>182<B>248,183,308,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request sound<ms><special> <B><Shape>9<B>1039<B>386<B>1039,386,1082,387<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>712<B>318<B>712,358,755,361,750,320,793,318,798,333<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>266<B>329<B>308,329,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>559<B>339<B>559,339,604,342<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>302<B>485<B>302,485,544,492,542,506<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>214<B>304<B>214,304,262,356<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>291<B>382<B>291,386,334,382,332,395<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>334<B>209<B> extra <special>Tool Tip<ms>Catch the timer which, when fired, -indicates the end of this call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hanguptime<ms><special>Python variable to hold event data<ms>self.hanguptime<ms><special> <B><Shape>16<B>770<B>378<B> extra <special>Tool Tip<ms>play leaving sound<ms><special>Filename to read audio from (Python code)<ms>"../prompts/leaving.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>2<B>769<B>426<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>15<B>989<B>451<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>13<B>190<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request voip<ms><special> <B><Shape>15<B>240<B>412<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>2<B>307<B>394<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>1058<B>385<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>12<B>990<B>549<B> extra <special>Tool Tip<ms>Initiate a timer, which causes this to -play wave file process to end.<ms><special>Timer period (seconds)<ms>0.1<ms><special>Timer label (string literal)<ms>hanguptime<ms><special> <B><Shape>5<B>660<B>332<B> extra <special>Tool Tip<ms>play entering sound<ms><special>Test (Python code)<ms>self.dtmfData=="2"<ms><special> <B><Shape>10<B>190<B>254<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new am node on ", self.amNode<ms><special> <B><Shape>14<B>295<B>185<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQU<ms><special>Python variable to hold event data<ms>self.soundNode<ms><special> <B><Shape>16<B>505<B>364<B> extra <special>Tool Tip<ms>Play Rogers voice<ms><special>Filename to read audio from (Python code)<ms>"../prompts/sample_message.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>10<B>507<B>259<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "dtmf received of ", self.dtmfData<ms><special> <B><Shape>5<B>991<B>358<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>2<B>505<B>398<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>17<B>516<B>509<B> extra <special>Tool Tip<ms>Write To File<ms><special>Filename to contain new audio (Python code)<ms>"recorded_audio.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>16<B>659<B>379<B> extra <special>Tool Tip<ms>play entering sound<ms><special>Filename to read audio from (Python code)<ms>"../prompts/entering.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>20<B>335<B>252<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>632<B>318<B>632,366,638,319,685,318,685,330<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>517<B>600<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>5<B>241<B>359<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.amNode != None) and (self.soundNode != None)<ms><special> <B><Shape> +20<B>362<B>256<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>712<B>318<B>712,358,755,361,750,320,793,318,798,333<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>298<B>185<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQU<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.soundNode<ms><special> <B><Shape>9<B>559<B>339<B>559,339,604,342<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>991<B>588<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>5<B>660<B>332<B> extra <special>Tool Tip<ms>play entering sound<ms><special>Test (Python code)<ms>self.dtmfData=="2"<ms><special> <B><Shape>2<B>769<B>426<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>5<B>770<B>331<B> extra <special>Tool Tip<ms>play leaving sound<ms><special>Test (Python code)<ms>self.dtmfData=="3"<ms><special> <B><Shape>10<B>198<B>248<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new am node on ", self.amNode<ms><special> <B><Shape>16<B>770<B>378<B> extra <special>Tool Tip<ms>play leaving sound<ms><special>Filename to read audio from (Python code)<ms>"../prompts/leaving.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>9<B>302<B>485<B>302,485,544,492,542,506<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>659<B>427<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>264<B>199<B>264,513,264,635,426,639,428,199,532,202,532,262<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>507<B>312<B> extra <special>Tool Tip<ms>Test Roger voice<ms><special>Test (Python code)<ms>self.dtmfData=="1"<ms><special> <B><Shape>9<B>821<B>356<B>821,357,977,357,1018,356<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node from sound module<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>1039<B>386<B>1039,386,1082,387<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>7<B>989<B>497<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.amNode<ms><special> <B><Shape>15<B>240<B>412<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>10<B>998<B>400<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hangup, as dtmf 9 has been received"<ms><special> <B><Shape>9<B>632<B>318<B>632,366,638,319,685,318,685,330<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>362<B>214<B> extra <special>Tool Tip<ms>Catch the timer, which when fired, +indicates the end of call<ms><special>Event sought (Python code)<ms>self.myId + "thistimer"<ms><special>Event sought (Regular Exp)<ms><ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.hanguptime<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>16<B>505<B>364<B> extra <special>Tool Tip<ms>Play Rogers voice<ms><special>Filename to read audio from (Python code)<ms>"../prompts/sample_message.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>10<B>513<B>259<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "dtmf received of ", self.dtmfData<ms><special> <B><Shape>5<B>241<B>359<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.amNode != None) and (self.soundNode != None)<ms><special> <B><Shape>12<B>990<B>548<B> extra <special>Tool Tip<ms>timer which, when completed +indicates the program should end<ms><special>Timer period (seconds, Python code)<ms>0.1<ms><special>Timer label (Python code)<ms>self.myId + "thistimer"<ms><special> <B><Shape>10<B>292<B>270<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>9<B>266<B>329<B>308,329,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>214<B>304<B>214,304,262,356<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>544<B>394<B>606,394,602,560,544,561<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>17<B>516<B>509<B> extra <special>Tool Tip<ms>Write To File<ms><special>Filename to contain new audio (Python code)<ms>"recorded_audio.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>11<B>191<B>67<B> extra <special>Tool Tip<ms>Request Node from AM module<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestam<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>15<B>989<B>451<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>16<B>516<B>561<B> extra <special>Tool Tip<ms>initial wav file<ms><special>Filename to read audio from (Python code)<ms>"../prompts/instructions.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>9<B>348<B>207<B>348,207,375,214<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>1058<B>385<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>517<B>600<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>13<B>190<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request voip<ms><special> <B><Shape>2<B>385<B>239<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>291<B>382<B>291,386,334,382,332,395<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>991<B>358<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>2<B>505<B>398<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>16<B>659<B>379<B> extra <special>Tool Tip<ms>play entering sound<ms><special>Filename to read audio from (Python code)<ms>"../prompts/entering.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>14<B>252<B>464<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.dtmfData<ms><special> <B><Shape>14<B>201<B>161<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>amREQ<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.amNode<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request sound<ms><special> <B><Shape>5<B>581<B>341<B> extra <special>Tool Tip<ms>Repeat instructions<ms><special>Test (Python code)<ms>self.dtmfData=="4"<ms><special> <B><Shape>2<B>307<B>394<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>248<B>182<B>248,183,308,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/dtmf_from_sound.src ============================================================================== --- sofaswitch/trunk/callflow/tests/dtmf_from_sound.src (original) +++ sofaswitch/trunk/callflow/tests/dtmf_from_sound.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -9<B>335<B>274<B>338,274,335,398<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>221<B>12<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>11<B>222<B>64<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestnode<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>120<B>265<B>248,294,121,265,120,267<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>147<B>379<B>147,379,337,397<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>285<B>179<B>285,179,338,183<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>221<B>199<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have a new node on ", self.newNode<ms><special> <B><Shape>14<B>324<B>187<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestnode<ms><special>Python variable to hold event data<ms>self.timerData<ms><special> <B><Shape>20<B>110<B>395<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>5<B>98<B>354<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="*"<ms><special> <B><Shape>14<B>236<B>155<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>REQ<ms><special>Python variable to hold event data<ms>self.newNode<ms><special> <B><Shape>10<B>313<B>226<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "timer has expired at ", time.asctime(), " ", self.timerData<ms><special> <B><Shape>10<B>222<B>108<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have requested a node from sound at ", time.asctime()<ms><special> <B><Shape>10<B>98<B>311<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DTMF detected is ", self.dtmfData<ms><special> <B><Shape>14<B>110<B>269<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable to hold event data<ms>self.dtmfData<ms><special> <B><Shape>2<B>310<B>397<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>13<B>221<B>244<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestnode<ms><special> <B><Shape> +9<B>232<B>205<B>374,205,376,329,232,323<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>222<B>64<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestnode<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>14<B>109<B>266<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.dtmfData<ms><special> <B><Shape>2<B>310<B>397<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>10<B>105<B>307<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DTMF detected is ", self.dtmfData<ms><special> <B><Shape>13<B>221<B>244<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestnode<ms><special> <B><Shape>9<B>335<B>294<B>336,294,335,397<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>147<B>379<B>147,379,337,397<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>233<B>195<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have a new node on ", self.newNode<ms><special> <B><Shape>10<B>320<B>234<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "timer has expired at ", time.asctime(), " ", self.timerData<ms><special> <B><Shape>9<B>285<B>179<B>285,179,338,183<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>207<B>323<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>236<B>159<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>REQ<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.newNode<ms><special> <B><Shape>10<B>230<B>98<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have requested a node from sound at ", time.asctime()<ms><special> <B><Shape>14<B>324<B>183<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestnode<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.timerData<ms><special> <B><Shape>5<B>98<B>354<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="*"<ms><special> <B><Shape>20<B>110<B>395<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>120<B>265<B>248,294,121,265,120,267<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>160<B>291<B>160,291,232,323<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>221<B>12<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/forloop.src ============================================================================== --- sofaswitch/trunk/callflow/tests/forloop.src (original) +++ sofaswitch/trunk/callflow/tests/forloop.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -4<B>301<B>152<B> extra <special>Tool Tip<ms>End For Loop<ms><special> <B><Shape>1<B>306<B>11<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>3<B>299<B>62<B> extra <special>Tool Tip<ms>Start For<ms><special>Initialise (Python code)<ms>self.i = 0<ms><special>Test for Termination (Python code)<ms>self.i < 10<ms><special>Increment (Python code)<ms>self.i+=1<ms><special> <B><Shape>20<B>322<B>199<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>10<B>307<B>108<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "loop index is ", self.i<ms><special> <B><Shape>9<B>258<B>84<B>296,87,258,84,259,174,299,178<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> +3<B>299<B>62<B> extra <special>Tool Tip<ms>Start For<ms><special>Initialise (Python code)<ms>self.i = 0<ms><special>Test for Termination (Python code)<ms>self.i < 10<ms><special>Increment (Python code)<ms>self.i+=1<ms><special> <B><Shape>1<B>306<B>11<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>4<B>301<B>152<B> extra <special>Tool Tip<ms>End For Loop<ms><special> <B><Shape>10<B>316<B>98<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "loop index is ", self.i<ms><special> <B><Shape>20<B>322<B>199<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>258<B>84<B>296,87,258,84,259,174,299,178<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/helloworld.src ============================================================================== --- sofaswitch/trunk/callflow/tests/helloworld.src (original) +++ sofaswitch/trunk/callflow/tests/helloworld.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -1<B>374<B>36<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>20<B>389<B>126<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>10<B>376<B>79<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hello world!"<ms><special> <B><Shape> +10<B>382<B>79<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hello world!"<ms><special> <B><Shape>1<B>374<B>36<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>20<B>387<B>135<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/loadgraph.src ============================================================================== --- sofaswitch/trunk/callflow/tests/loadgraph.src (original) +++ sofaswitch/trunk/callflow/tests/loadgraph.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -10<B>378<B>126<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have generated the new graph"<ms><special> <B><Shape>20<B>391<B>305<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>1<B>379<B>35<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>18<B>378<B>79<B> extra <special>Tool Tip<ms>Load New Graph<ms><special>new graph file (Python code)<ms>"am_test.graph"<ms><special> <B><Shape>14<B>389<B>221<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>endloadgraph<ms><special>Python variable to hold event data<ms>self.eventData<ms><special> <B><Shape>12<B>378<B>172<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds)<ms>20<ms><special>Timer label (string literal)<ms>endloadgraph<ms><special> <B><Shape>10<B>377<B>262<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "end the master now"<ms><special> <B><Shape> +10<B>387<B>114<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have generated the new graph"<ms><special> <B><Shape>9<B>442<B>241<B>442,241,499,241,537,241<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>12<B>378<B>172<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds)<ms>20<ms><special>Timer label (string literal)<ms>endloadgraph<ms><special> <B><Shape>14<B>392<B>219<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>endloadgraph<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.eventData<ms><special> <B><Shape>1<B>379<B>35<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>10<B>388<B>258<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "end the master now"<ms><special> <B><Shape>20<B>391<B>305<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>18<B>378<B>79<B> extra <special>Tool Tip<ms>Load New Graph<ms><special>new graph file (Python code)<ms>"am_test.graph"<ms><special> <B><Shape>2<B>509<B>241<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/makevoipcall.src ============================================================================== --- sofaswitch/trunk/callflow/tests/makevoipcall.src (original) +++ sofaswitch/trunk/callflow/tests/makevoipcall.src Sun Jan 14 23:10:32 2007 @@ -1,4 +1 @@ -10<B>448<B>518<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hangup, as dtmf 9 has been received"<ms><special> <B><Shape>12<B>439<B>683<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"hanguptime"<ms><special> <B><Shape>2<B>438<B>731<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>215<B>653<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>425<B>333<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>386<B>284<B>386,284,386,313,424,314<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>248<B>182<B>248,183,308,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>403<B>444<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "End this as the voip or sound did not respond in time"<ms><special> <B><Shape>10<B>481<B>418<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "the voip node has died ", self.eventData<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>14<B>204<B>496<B> extra <special>Tool Tip<ms>Catch DTMF events<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable to hold event data<ms>self.dtmfData<ms><special> <B><Shape>11<B>191<B>71<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"voip"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestvoip<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>10<B>200<B>531<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "dtmf received of ", self.dtmfData<ms><special> <B><Shape>2<B>227<B>517<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>409<B>257<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestsound<ms><special>Python variable to hold event data<ms>self.requestSound<ms><special> <B><Shape>6<B>189<B>402<B> extra <special>Tool Tip<ms>Make Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>Call destination (python code)<ms>"h323:h323.voxgratia.org"<ms><special> <B><Shape>9<B>214<B>308<B>309,335,214,308<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>214<B>353<B>214,353,216,402<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>523<B>304<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>418<B>359<B>421,359,418,448<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestsound<ms><special> <B><Shape>2<B>218<B>330<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>19<B>216<B>606<B> extra <special>Tool Tip<ms>Send Dtmf<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>DTMF to send to worker node (python code)<ms>self.dtmfData<ms><special> <B><Shape>9<B>218<B>518<B>218,628,463,518<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>198<B>252<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new voip node on ", self.voipNode<ms><special> <B><Shape>14<B>373<B>236<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestvoip<ms><special>Python variable to hold event data<ms>self.requestVoip<ms><special> <B><Shape>9<B>216<B>573<B>216,573<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>295<B>185<B> extra <special>Tool Tip<ms>Catch the creation -of the sound node<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQU<ms><special>Python variable to hold event data<ms>self.soundNode<ms><special> <B><Shape>14<B>202<B>162<B> extra <special>Tool Tip<ms>Catch the creation of -the voip node<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>voipREQ<ms><special>Python variable to hold event data<ms>self.voipNode<ms><special> <B><Shape>13<B>189<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestvoip<ms><special> <B><Shape>14<B>333<B>211<B> extra <special>Tool Tip<ms>Catch the timer which, when fired, -indicates the end of this call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hanguptime<ms><special>Python variable to hold event data<ms>self.hanguptime<ms><special> <B><Shape>15<B>190<B>450<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.voipNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>7<B>440<B>632<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special> <B><Shape>5<B>193<B>579<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>5<B>189<B>304<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.voipNode != None) and (self.soundNode != None)<ms><special> <B><Shape>9<B>506<B>388<B>506,388<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>293<B>279<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>15<B>439<B>579<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>20<B>336<B>255<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>458<B>279<B>458,279,511,279<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>497<B>330<B>511,330,497,418<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>498<B>280<B> extra <special>Tool Tip<ms>The voip node has died.<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>voip[0-9]*Terminating<ms><special>Python variable to hold event data<ms>self.eventData<ms><special> <B><Shape>9<B>464<B>478<B>497,478,495,572,464,578<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>419<B>504<B>419,504,420,570,464,578<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>397<B>310<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.requestVoip==None) or(self.requestSound==None)<ms><special> <B><Shape> +10<B>448<B>518<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "hangup, as dtmf 9 has been received"<ms><special> <B><Shape>10<B>293<B>279<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>14<B>297<B>184<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQ<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.soundNode<ms><special> <B><Shape>12<B>439<B>683<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"hanguptime"<ms><special> <B><Shape>14<B>375<B>236<B> extra <special>Tool Tip<ms>A timer - did we receive a voip node before this timer fires<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestvoip<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.requestVoip<ms><special> <B><Shape>9<B>214<B>353<B>214,353,216,402<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>412<B>261<B> extra <special>Tool Tip<ms>Did we rceive a sound node in time<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestsound<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.requestSound<ms><special> <B><Shape>9<B>214<B>308<B>309,335,214,308<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>6<B>189<B>402<B> extra <special>Tool Tip<ms>Make Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>Call destination (python code)<ms>"h323:h323.voxgratia.org"<ms><special> <B><Shape>19<B>216<B>606<B> extra <special>Tool Tip<ms>Send Dtmf<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>DTMF to send to worker node (python code)<ms>self.dtmfData<ms><special> <B><Shape>15<B>439<B>579<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>15<B>190<B>450<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.voipNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>9<B>497<B>330<B>511,330,497,418<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>338<B>210<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hanguptime<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.hanguptime<ms><special> <B><Shape>2<B>523<B>304<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>10<B>403<B>444<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "End this as the voip or sound did not respond in time"<ms><special> <B><Shape>13<B>189<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestvoip<ms><special> <B><Shape>9<B>248<B>182<B>248,183,308,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>458<B>279<B>458,279,511,279<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>191<B>71<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"voip"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestvoip<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>218<B>518<B>218,628,463,518<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>189<B>304<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.voipNode != None) and (self.soundNode != None)<ms><special> <B><Shape>2<B>438<B>731<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>202<B>158<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>voipREQ<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.voipNode<ms><special> <B><Shape>5<B>193<B>579<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>14<B>204<B>491<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.dtmfData<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>5<B>397<B>310<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.requestVoip==None) or(self.requestSound==None)<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>10<B>198<B>252<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new voip node on ", self.voipNode<ms><special> <B><Shape>9<B>418<B>359<B>421,359,418,448<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>227<B>517<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>419<B>504<B>419,504,420,570,464,578<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>218<B>330<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>386<B>284<B>386,284,386,313,424,314<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>200<B>531<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "dtmf received of ", self.dtmfData<ms><special> <B><Shape>14<B>501<B>279<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>voip[0-9]*Terminat<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.eventData<ms><special> <B><Shape>9<B>464<B>478<B>497,478,495,572,464,578<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>216<B>573<B>216,573<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>506<B>388<B>506,388<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>481<B>418<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "the voip node has died ", self.eventData<ms><special> <B><Shape>20<B>336<B>255<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestsound<ms><special> <B><Shape>2<B>425<B>333<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>215<B>653<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>7<B>440<B>632<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/parent.src ============================================================================== --- sofaswitch/trunk/callflow/tests/parent.src (original) +++ sofaswitch/trunk/callflow/tests/parent.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -9<B>187<B>42<B>187,236,283,240,285,42,334,44<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>12<B>307<B>42<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>10<ms><special>Timer label (Python code)<ms>self.myId + "thistimer"<ms><special> <B><Shape>20<B>322<B>143<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>18<B>160<B>141<B> extra <special>Tool Tip<ms>Load New Graph<ms><special>new graph file (Python code)<ms>"child.graph"<ms><special>Python variable to pass to child<ms>self.data[a]<ms><special> <B><Shape>4<B>154<B>189<B> extra <special>Tool Tip<ms>End For Loop<ms><special> <B><Shape>2<B>352<B>210<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>152<B>120<B>152,120,153,214<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>3<B>153<B>93<B> extra <special>Tool Tip<ms>Start For<ms><special>Initialise (Python code)<ms>self.i = 0<ms><special>Test for Termination (Python code)<ms>self.i < 20<ms><special>Increment (Python code)<ms>self.i++<ms><special> <B><Shape>1<B>160<B>46<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>14<B>362<B>122<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>Terminating<ms><special>Python variable to hold event data<ms>self.termTime<ms><special> <B><Shape>10<B>360<B>161<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "child has terminated", self.termTime<ms><special> <B><Shape>2<B>387<B>145<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>321<B>96<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer<ms><special>Python variable to hold event data<ms>self.eventData<ms><special> <B><Shape> +2<B>374<B>218<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>12<B>307<B>42<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>10<ms><special>Timer label (Python code)<ms>self.myId + "thistimer"<ms><special> <B><Shape>3<B>153<B>93<B> extra <special>Tool Tip<ms>Start For<ms><special>Initialise (Python code)<ms>self.i = 0<ms><special>Test for Termination (Python code)<ms>self.i < 20<ms><special>Increment (Python code)<ms>self.i++<ms><special> <B><Shape>14<B>318<B>95<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.eventData<ms><special> <B><Shape>20<B>319<B>143<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>4<B>154<B>189<B> extra <special>Tool Tip<ms>End For Loop<ms><special> <B><Shape>1<B>160<B>46<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>9<B>438<B>144<B>438,146,477,144<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>383<B>169<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "child has terminated", self.termTime<ms><special> <B><Shape>2<B>452<B>144<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>18<B>160<B>141<B> extra <special>Tool Tip<ms>Load New Graph<ms><special>new graph file (Python code)<ms>"child.graph"<ms><special>Python variable to pass to child<ms>self.data[a]<ms><special> <B><Shape>14<B>388<B>124<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>Terminating<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.termTime<ms><special> <B><Shape>9<B>368<B>117<B>368,117,401,124<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>152<B>120<B>152,120,153,214<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>187<B>42<B>187,236,283,240,285,42,334,44<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/recordmessage.src ============================================================================== --- sofaswitch/trunk/callflow/tests/recordmessage.src (original) +++ sofaswitch/trunk/callflow/tests/recordmessage.src Sun Jan 14 23:10:32 2007 @@ -1,4 +1,2 @@ -14<B>291<B>535<B> extra <special>Tool Tip<ms>Catch the timer which, when fired, -indicates the end of this call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hanguptime<ms><special>Python variable to hold event data<ms>self.hanguptime<ms><special> <B><Shape>9<B>248<B>182<B>248,183,308,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>15<B>605<B>522<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>9<B>555<B>290<B>555,290,600,293<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>605<B>324<B> extra <special>Tool Tip<ms>End the recording..<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>9<B>266<B>329<B>308,329,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>295<B>185<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQU<ms><special>Python variable to hold event data<ms>self.soundNode<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node from sound module<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>16<B>275<B>484<B> extra <special>Tool Tip<ms>Play the instructions<ms><special>Filename to read audio from (Python code)<ms>"../prompts/record.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>14<B>202<B>162<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>amREQ<ms><special>Python variable to hold event data<ms>self.amNode<ms><special> <B><Shape>15<B>240<B>412<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>2<B>604<B>618<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>13<B>190<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request voip<ms><special> <B><Shape>7<B>605<B>474<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.amNode<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request sound<ms><special> <B><Shape>5<B>576<B>297<B> extra <special>Tool Tip<ms>Repeat instructions<ms><special>Test (Python code)<ms>self.dtmfData=="3"<ms><special> <B><Shape>9<B>300<B>346<B>601,346,581,447,300,483<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>307<B>394<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>5<B>507<B>264<B> extra <special>Tool Tip<ms>Start recording now<ms><special>Test (Python code)<ms>self.dtmfData=="1"<ms><special> <B><Shape>17<B>695<B>537<B> extra <special>Tool Tip<ms>Stop writing to the file -while we play it back<ms><special>Filename to contain new audio (Python code)<ms>" "<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>16<B>694<B>585<B> extra <special>Tool Tip<ms>Play the message just recorded back<ms><special>Filename to read audio from (Python code)<ms>"message.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>20<B>296<B>625<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>630<B>374<B>630,374,631,473<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>265<B>199<B>265,513,265,635,427,639,429,199,533,202,533,262<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>280<B>579<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DEATH NOW."<ms><special> <B><Shape>11<B>191<B>67<B> extra <special>Tool Tip<ms>Request Node from AM module<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestam<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>10<B>282<B>279<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>2<B>507<B>362<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>12<B>605<B>571<B> extra <special>Tool Tip<ms>Initiate a timer, which causes this to -end.<ms><special>Timer period (seconds)<ms>0.1<ms><special>Timer label (string literal)<ms>hanguptime<ms><special> <B><Shape>9<B>291<B>382<B>291,386,334,382,332,395<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>656<B>401<B>656,401,666,535,721,536,721,534<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>241<B>359<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.amNode != None) and (self.soundNode != None)<ms><special> <B><Shape>2<B>694<B>626<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>808<B>362<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>10<B>190<B>254<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new am node on ", self.amNode<ms><special> <B><Shape>9<B>214<B>304<B>214,304,262,356<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>628<B>347<B> extra <special>Tool Tip<ms>hear the recording<ms><special>Test (Python code)<ms>self.dtmfData=="2"<ms><special> <B><Shape>17<B>508<B>310<B> extra <special>Tool Tip<ms>Write To File<ms><special>Filename to contain new audio (Python code)<ms>"message.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>14<B>251<B>461<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable to hold event data<ms>self.dtmfData<ms><special> <B><Shape>9<B>676<B>363<B>676,371,834,363<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> +9<B>630<B>374<B>630,374,631,473<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>604<B>618<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>350<B>557<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>216<B>307<B>216,307,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>296<B>182<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>soundREQU<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.soundNode<ms><special> <B><Shape>15<B>605<B>522<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>14<B>203<B>158<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>amREQ<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.amNode<ms><special> <B><Shape>14<B>254<B>464<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>DTMF<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.dtmfData<ms><special> <B><Shape>15<B>240<B>412<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>2<B>507<B>362<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>656<B>401<B>656,401,666,535,721,536,721,534<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>343<B>207<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>690<B>373<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>678<B>372<B>678,372,715,373<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>16<B>694<B>585<B> extra <special>Tool Tip<ms>Play the message just recorded back<ms><special>Filename to read audio from (Python code)<ms>"message.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>2<B>307<B>394<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>11<B>191<B>109<B> extra <special>Tool Tip<ms>Request Node from sound module<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestsound<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>5<B>507<B>264<B> extra <special>Tool Tip<ms>Start recording now<ms><special>Test (Python code)<ms>self.dtmfData=="1"<ms><special> <B><Shape>5<B>605<B>324<B> extra <special>Tool Tip<ms>End the recording..<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>5<B>576<B>297<B> extra <special>Tool Tip<ms>Repeat instructions<ms><special>Test (Python code)<ms>self.dtmfData=="3"<ms><special> <B><Shape>5<B>241<B>359<B> extra <special>Tool Tip<ms>Conditional<ms><special>Test (Python code)<ms>(self.amNode != None) and (self.soundNode != None)<ms><special> <B><Shape>9<B>291<B>382<B>291,386,334,382,332,395<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>191<B>67<B> extra <special>Tool Tip<ms>Request Node from AM module<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>requestam<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>9<B>265<B>199<B>265,513,265,635,427,639,429,199,533,202,533,262<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>17<B>695<B>537<B> extra <special>Tool Tip<ms>Stop writing to the file +while we play it back<ms><special>Filename to contain new audio (Python code)<ms>" "<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>2<B>694<B>626<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>300<B>346<B>601,346,581,447,300,483<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>12<B>605<B>575<B> extra <special>Tool Tip<ms>timer, which on firing ends this flow<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"hanguptime"<ms><special> <B><Shape>13<B>190<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request voip<ms><special> <B><Shape>16<B>275<B>484<B> extra <special>Tool Tip<ms>Play the instructions<ms><special>Filename to read audio from (Python code)<ms>"../prompts/record.wav"<ms><special>answering machine node (Python code)<ms>self.amNode<ms><special> <B><Shape>17<B>508<B>310<B> extra <special>Tool Tip<ms>Write To File<ms><special>Filename to contain new audio (Python code)<ms>"message.wav"<ms><special>answering machine node<ms>self.amNode<ms><special> <B><Shape>9<B>555<B>290<B>555,290,600,293<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>290<B>536<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hanguptime<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.hanguptime<ms><special> <B><Shape>7<B>605<B>474<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.amNode<ms><special> <B><Shape>20<B>294<B>621<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>10<B>289<B>569<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DEATH NOW."<ms><special> <B><Shape>9<B>266<B>329<B>308,329,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>341<B>557<B>341,557,375,557<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>345<B>207<B>368,207,345,207<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>200<B>247<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Have a new am node on ", self.amNode<ms><special> <B><Shape>5<B>628<B>347<B> extra <special>Tool Tip<ms>hear the recording<ms><special>Test (Python code)<ms>self.dtmfData=="2"<ms><special> <B><Shape>13<B>284<B>231<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>request sound<ms><special> <B><Shape>9<B>253<B>180<B>253,180,309,182<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>294<B>267<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/requestnode.src ============================================================================== --- sofaswitch/trunk/callflow/tests/requestnode.src (original) +++ sofaswitch/trunk/callflow/tests/requestnode.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -14<B>244<B>255<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>NEWID<ms><special>Python variable to hold event data<ms>self.eventData<ms><special> <B><Shape>13<B>231<B>340<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestnode<ms><special> <B><Shape>2<B>323<B>370<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>20<B>245<B>386<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>10<B>323<B>322<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "timer has expired at ", time.asctime(), " from ", self.timerData<ms><special> <B><Shape>10<B>231<B>295<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have a new node on ", self.eventData<ms><special> <B><Shape>9<B>290<B>279<B>290,280,350,279<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>231<B>157<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>11<B>232<B>206<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"voip"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>request node<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>14<B>336<B>282<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>request node<ms><special>Python variable to hold event data<ms>self.timerData<ms><special> <B><Shape> +2<B>326<B>370<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>340<B>269<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestnode<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.timerData<ms><special> <B><Shape>10<B>336<B>311<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "timer has expired at ", time.asctime(), " from ", self.timerData<ms><special> <B><Shape>9<B>390<B>291<B>390,291,445,291<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>13<B>231<B>340<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestnode<ms><special> <B><Shape>2<B>418<B>291<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>10<B>240<B>288<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have a new node on ", self.eventData<ms><special> <B><Shape>14<B>246<B>251<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>NEWID<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.eventData<ms><special> <B><Shape>11<B>232<B>206<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"voip"<ms><special>Timer period (seconds)<ms>1<ms><special>Timer label<ms>request node<ms><special>Additional information (Python code)<ms><ms><special> <B><Shape>1<B>231<B>157<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>20<B>245<B>386<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>292<B>273<B>292,274,352,273<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/timetest.src ============================================================================== --- sofaswitch/trunk/callflow/tests/timetest.src (original) +++ sofaswitch/trunk/callflow/tests/timetest.src Sun Jan 14 23:10:32 2007 @@ -1 +1 @@ -10<B>36<B>110<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Start ", time.asctime()<ms><special> <B><Shape>9<B>150<B>271<B>150,271,152,406,223,407,229,423<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>188<B>201<B>188,201,231,202<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>394<B>380<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>12<B>333<B>273<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>self.gap<ms><special>Timer label (Python code)<ms>self.myId + "thistimer"<ms><special> <B><Shape>10<B>214<B>303<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t2 ", time.asctime(), " data is ", self.timer2<ms><special> <B><Shape>14<B>139<B>179<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer1<ms><special>Python variable to hold event data<ms>self.timer1Data<ms><special> <B><Shape>14<B>347<B>327<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms>self.myId + "thistimer"<ms><special>Event sought (Regular Exp)<ms><ms><special>Python variable to hold event data<ms>self.timer3<ms><special> <B><Shape>20<B>346<B>417<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>10<B>36<B>158<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>self.gap=10<ms><special> <B><Shape>10<B>133<B>218<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t1 ", time.asctime(), " data is ", self.timer1Data<ms><special> <B><Shape>14<B>220<B>256<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer2<ms><special>Python variable to hold event data<ms>self.timer2<ms><special> <B><Shape>9<B>231<B>351<B>232,351,231,422<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>271<B>275<B>271,277,360,275<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>342<B>368<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t10 ", time.asctime(), " data is ", self.timer3<ms><special> <B><Shape>2<B>204<B>419<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>12<B>29<B>207<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1.95<ms><special>Timer label (Python code)<ms>"timer1"<ms><special> <B><Shape>9<B>399<B>349<B>399,349,420,352,418,379<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>54<B>157<B>153,177,156,157,105,167,73,282,57,279,54,254<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>28<B>63<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>12<B>209<B>203<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>2<ms><special>Timer label (Python code)<ms>"timer2"<ms><special> <B><Shape> +9<B>153<B>292<B>229,419,153,420,153,292<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>219<B>302<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t2 ", time.asctime(), " data is ", self.timer2<ms><special> <B><Shape>14<B>347<B>326<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms>self.myId + "thistimer"<ms><special>Event sought (Regular Exp)<ms><ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.timer3<ms><special> <B><Shape>9<B>271<B>275<B>271,277,360,275<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>28<B>63<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>12<B>333<B>273<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>self.gap<ms><special>Timer label (Python code)<ms>self.myId + "thistimer"<ms><special> <B><Shape>9<B>54<B>157<B>153,177,156,157,105,167,73,282,57,279,54,254<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>342<B>368<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t10 ", time.asctime(), " data is ", self.timer3<ms><special> <B><Shape>14<B>222<B>256<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer2<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.timer2<ms><special> <B><Shape>12<B>29<B>207<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1.95<ms><special>Timer label (Python code)<ms>"timer1"<ms><special> <B><Shape>10<B>36<B>158<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>self.gap=10<ms><special> <B><Shape>2<B>394<B>380<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>188<B>201<B>188,201,231,202<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>12<B>209<B>203<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>2<ms><special>Timer label (Python code)<ms>"timer2"<ms><special> <B><Shape>10<B>137<B>232<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "t1 ", time.asctime(), " data is ", self.timer1Data<ms><special> <B><Shape>10<B>36<B>110<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "Start ", time.asctime()<ms><special> <B><Shape>20<B>346<B>417<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>2<B>204<B>419<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>396<B>347<B>419,380,418,348,396,347<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>229<B>362<B>235,362,229,419<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>140<B>181<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>timer1<ms><special>Python variable: source of the event<ms>self.eventSource<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: data associated<ms>self.timer1Data<ms><special> <B><Shape>