Author: derek Date: Tue Jul 17 22:43:02 2007 New Revision: 355 Modified: sofaswitch/trunk/callflow/docs/chap3.sgml sofaswitch/trunk/callflow/tests/amplaywavfile.src sofaswitch/trunk/callflow/tests/amtest.src sofaswitch/trunk/callflow/tests/dtmf_from_sound.src sofaswitch/trunk/callflow/tests/makevoipcall.src sofaswitch/trunk/callflow/tests/recordincomingvoip.src sofaswitch/trunk/callflow/tests/recordmessage.src sofaswitch/trunk/callflow/tests/requestnode.src Log: Bring docs etc up to speed after changing the format of the Request_Node entity. Request_Node now handles timeout's internally. Thus, the user is not required to supply a timeout, eventer and stop timer icon. Modified: sofaswitch/trunk/callflow/docs/chap3.sgml ============================================================================== --- sofaswitch/trunk/callflow/docs/chap3.sgml (original) +++ sofaswitch/trunk/callflow/docs/chap3.sgml Tue Jul 17 22:43:02 2007 @@ -1480,16 +1480,25 @@ </para> <para> -Request Node is a key component of the SofaSwitch suite of applications. With +Request Node is a key component of the &sofaswitch; suite of applications. With this item, the controller asks the designated application to supply one worker node for use by this call graph. Alternatively, this is the mechanism by which this call graph gets remote entities who can handle media data. </para> <para> -Once created, the requested worker has a lifetime of 2 seconds. This lifetime is -set by the designated application. If the requested worker is not acknowledged -after 2 seconds, it is silently destroyed by the designated application. +Once created, the requested worker has a lifetime of 2 seconds. This lifetime +is set by the designated application. If the requested worker is not +acknowledged after 2 seconds, it is silently destroyed by the designated +application. +</para> + +<para> +If the requested node is created in the preset time interval, control will +move to the bottom left most output. The name of the created node is in the +<literal>Python variable: generated data</literal> field. If the requested node +is not created in the preset time interval, control moves to the bottom right +most output. </para> <para> @@ -1545,21 +1554,23 @@ </para></entry></row> <row> <entry><literal> -Timer label +Additional information (Python code) </literal></entry> <entry><para> -This label is used in the eventer structure, and "fires" when there has been no -answer in the specified time period. +The additional information field is used to provide details that some +&sofaswitch; applications want. For example, the conference +utility needs information on which room the requested node should be in. </para></entry></row> <row> <entry><literal> -Additional information (Python code) +Python variable: generated data </literal></entry> <entry><para> -The additional information field is used to provide details that some -&sofaswitch; applications want. For example, the conference -utility needs information on which room the requested node should be in. +When the node is found (within the timeout period) control is passed to the +leftmost output point. The variable specified in this field can be used by +subsequent code to access the name of the generated node. </para></entry></row> + </tbody> </tgroup> </informaltable> @@ -1567,8 +1578,6 @@ </sect1> - - <sect1 id="SendDtmfSec"> <title>Send DTMF</title> <titleabbrev id="SendDtmf">Send DTMF</titleabbrev> Modified: sofaswitch/trunk/callflow/tests/amplaywavfile.src ============================================================================== --- sofaswitch/trunk/callflow/tests/amplaywavfile.src (original) +++ sofaswitch/trunk/callflow/tests/amplaywavfile.src Tue Jul 17 22:43:02 2007 @@ -1,3 +1,2 @@ -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> +9<B>199<B>121<B>199,121,214,248<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>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>2<B>517<B>600<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<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>304<B>115<B>304,119,344,115<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>266<B>148<B>266,148,308,270<special>Tool Tip<ms>Join blocks shape<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>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>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>2<B>1058<B>385<B> extra <special>Tool Tip<ms>End Processing<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>9<B>559<B>339<B>559,339,604,342<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>20<B>275<B>145<B> extra <special>Tool Tip<ms>Death<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>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>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>189<B>71<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.amNode<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>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>632<B>318<B>632,366,638,319,685,318,685,330<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>9<B>239<B>94<B>239,94,281,96<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>505<B>398<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>11<B>256<B>98<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>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>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>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>20<B>209<B>119<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>2<B>991<B>588<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>9<B>214<B>304<B>214,304,262,356<special>Tool Tip<ms>Join blocks shape<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>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>319<B>116<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>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>659<B>427<B> extra <special>Tool Tip<ms>End Processing<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>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>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>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>302<B>485<B>302,485,544,492,542,506<special>Tool Tip<ms>Join blocks shape<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>2<B>769<B>426<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/amtest.src ============================================================================== --- sofaswitch/trunk/callflow/tests/amtest.src (original) +++ sofaswitch/trunk/callflow/tests/amtest.src Tue Jul 17 22:43:02 2007 @@ -1,7 +1,5 @@ -14<B>305<B>447<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>"deathtimer"<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>2<B>362<B>231<B> extra <special>Tool Tip<ms>Stop processing, while we wait -on events from the different entitties<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>17<B>190<B>357<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>9<B>318<B>262<B>347,262,318,294<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>7<B>291<B>347<B> extra <special>Tool Tip<ms>End the Answering -machine node.<ms><special>Worker node for termination (python code)<ms>self.amNode<ms><special> <B><Shape>9<B>311<B>236<B>311,236,318,294<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>15<B>292<B>298<B> extra <special>Tool Tip<ms>Make the sound node -talk to itself, so the user hears echo.<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>9<B>355<B>469<B>355,469,355,469,355,469,355,469,355,469,395,471<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>190<B>446<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>334<B>212<B> extra <special>Tool Tip<ms>wait for incoming DTMF from the sound node. -On receiving DTMF, end everything<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.eventData<ms><special> <B><Shape>2<B>370<B>470<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>22<B>200<B>66<B> extra <special>Tool Tip<ms>Register for events from sound node<ms><special>Node to receive events from (Python code)<ms>"sound"<ms><special> <B><Shape>16<B>190<B>401<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>14<B>298<B>186<B> extra <special>Tool Tip<ms>Catch the timer, which when fired, -indicates no am node was found<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>requestam<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.nonodefound<ms><special> <B><Shape>14<B>201<B>161<B> extra <special>Tool Tip<ms>Wait for an event to indicate -that the am node is created<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>20<B>304<B>492<B> extra <special>Tool Tip<ms>Death<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>13<B>190<B>210<B> extra <special>Tool Tip<ms>Stop Timer<ms><special>Timer to stop<ms>requestam<ms><special> <B><Shape>11<B>190<B>110<B> extra <special>Tool Tip<ms>Request Node<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>190<B>310<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>12<B>291<B>396<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"deathtimer"<ms><special> <B><Shape>1<B>191<B>15<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape> +1<B>192<B>26<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>9<B>242<B>141<B>242,141,242,141,242,141<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>242<B>136<B>242,141,288,136<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>22<B>201<B>72<B> extra <special>Tool Tip<ms>Register for events from sound node<ms><special>Node to receive events from (Python code)<ms>"sound"<ms><special> <B><Shape>2<B>341<B>362<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>321<B>161<B>321,162,381,161<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>20<B>275<B>384<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>7<B>262<B>239<B> extra <special>Tool Tip<ms>End the Answering +machine node.<ms><special>Worker node for termination (python code)<ms>self.amNode<ms><special> <B><Shape>2<B>177<B>365<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>11<B>192<B>116<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.amNode<ms><special> <B><Shape>14<B>275<B>136<B> extra <special>Tool Tip<ms>wait for incoming DTMF from the sound node. +On receiving DTMF, end everything<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.eventData<ms><special> <B><Shape>2<B>356<B>160<B> extra <special>Tool Tip<ms>Stop processing, while we wait +on events from the different entitties<ms><special> <B><Shape>14<B>276<B>339<B> extra <special>Tool Tip<ms>Eventer<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>"deathtimer"<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>12<B>262<B>288<B> extra <special>Tool Tip<ms>Timer<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"deathtimer"<ms><special> <B><Shape>9<B>326<B>361<B>326,361,326,361,326,361,326,361,326,361,366,363<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>16<B>177<B>320<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>15<B>263<B>190<B> extra <special>Tool Tip<ms>Make the sound node +talk to itself, so the user hears echo.<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>10<B>185<B>167<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>15<B>177<B>229<B> extra <special>Tool Tip<ms>Transfer Media<ms><special>First SofaSwitch worker (python)<ms>self.amNode<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>17<B>177<B>276<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>9<B>222<B>166<B>222,166,288,186<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 Tue Jul 17 22:43:02 2007 @@ -1 +1 @@ -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> +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>20<B>110<B>395<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>122<B>191<B>180,191,122,266<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>200<B>135<B>200,135,205,195<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>10<B>164<B>131<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>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>207<B>322<B> extra <special>Tool Tip<ms>End Processing<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>11<B>170<B>85<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>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.soundNode<ms><special> <B><Shape>9<B>148<B>322<B>148,379,232,322<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>189<B>195<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>2<B>200<B>160<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>20<B>192<B>252<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>1<B>168<B>34<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>10<B>208<B>104<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> Modified: sofaswitch/trunk/callflow/tests/makevoipcall.src ============================================================================== --- sofaswitch/trunk/callflow/tests/makevoipcall.src (original) +++ sofaswitch/trunk/callflow/tests/makevoipcall.src Tue Jul 17 22:43:02 2007 @@ -1,4 +1,4 @@ -15<B>448<B>338<B> extra <special>Tool Tip<ms>Make sound node -talk to itself<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>9<B>155<B>205<B>155,206,215,205<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>473<B>306<B>565,306,473,338<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>12<B>446<B>426<B> extra <special>Tool Tip<ms>Timer which initates a shutdown, after some tidyup - messages etc have been sent.<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"endeverything"<ms><special> <B><Shape>20<B>312<B>286<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>473<B>330<B>602,330,473,338<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>88<B>95<B> extra <special>Tool Tip<ms>Request voip 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>13<B>90<B>229<B> extra <special>Tool Tip<ms>Stop Timer on the voip request<ms><special>Timer to stop<ms>requestvoip<ms><special> <B><Shape>5<B>140<B>548<B> extra <special>Tool Tip<ms>Test for dtmf data of "9"<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>9<B>156<B>338<B>473,338,409,347,413,712,156,711,165,598<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>248<B>338<B>473,338,378,339,380,616,249,618,248,578<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>199<B>294<B> extra <special>Tool Tip<ms>report we have a sound node<ms><special>Python Code<ms>print " have a sound node of ", self.soundNode<ms><special> <B><Shape>7<B>447<B>383<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special> <B><Shape>13<B>189<B>250<B> extra <special>Tool Tip<ms>Stop Timer on the request for a sound node<ms><special>Timer to stop<ms>requestsound<ms><special> <B><Shape>2<B>168<B>626<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>1<B>88<B>9<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>9<B>203<B>527<B>203,527,248,528<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>19<B>168<B>575<B> extra <special>Tool Tip<ms>Send Dtmf to the voip node<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>191<B>382<B>191,382,237,383<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>5<B>141<B>357<B> extra <special>Tool Tip<ms>TEST: have a sound and voip node.<ms><special>Test (Python code)<ms>(self.voipNode != None) and (self.soundNode != None)<ms><special> <B><Shape>14<B>589<B>280<B> extra <special>Tool Tip<ms>Test timer on request of sound<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.eventData<ms><special> <B><Shape>2<B>445<B>470<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>616<B>300<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>115<B>328<B>115,328,166,357<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>102<B>185<B> extra <special>Tool Tip<ms>have a voip node from the voip module<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>14<B>552<B>256<B> extra <special>Tool Tip<ms>test timer on request of voip<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.eventData<ms><special> <B><Shape>14<B>235<B>528<B> extra <special>Tool Tip<ms>Wait for voip call to end<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.eventData<ms><special> <B><Shape>11<B>90<B>139<B> extra <special>Tool Tip<ms>Request sound 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>2<B>263<B>551<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>200<B>207<B> extra <special>Tool Tip<ms>wait for arrival of sound node<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>9<B>250<B>229<B>250,229,325,229<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>6<B>141<B>406<B> extra <special>Tool Tip<ms>Make Call to a remote entity<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>Call destination (python code)<ms>self.scriptArgs<ms><special> <B><Shape>15<B>141<B>457<B> extra <special>Tool Tip<ms>Transfer Media between the voip and sound node<ms><special>First SofaSwitch worker (python)<ms>self.voipNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>9<B>360<B>254<B>360,254,567,254<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>99<B>268<B> extra <special>Tool Tip<ms>report we have a voip node<ms><special>Python Code<ms>print "Have a new voip node on ", self.voipNode<ms><special> <B><Shape>9<B>166<B>354<B>215,354,166,357<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>212<B>383<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>153<B>505<B> extra <special>Tool Tip<ms>Wait for DTMF data<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>22<B>97<B>52<B> extra <special>Tool Tip<ms>Register for events from voip node<ms><special>Node to receive events from (Python code)<ms>"voip"<ms><special> <B><Shape>14<B>310<B>232<B> extra <special>Tool Tip<ms>Wait for timer, which -indicates end everything<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>endeverything<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> +5<B>140<B>548<B> extra <special>Tool Tip<ms>Test for dtmf data of "9"<ms><special>Test (Python code)<ms>self.dtmfData=="9"<ms><special> <B><Shape>6<B>141<B>406<B> extra <special>Tool Tip<ms>Make Call to a remote entity<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special>Call destination (python code)<ms>self.scriptArgs<ms><special> <B><Shape>9<B>152<B>336<B>473,338,391,336,398,694,152,696,165,598<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>166<B>171<B>166,171,166,357<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>206<B>146<B>206,146,323,232<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>473<B>306<B>565,306,473,338<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>212<B>383<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>139<B>119<B>139,121,181,119<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>7<B>447<B>383<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node to activate (python code)<ms>self.voipNode<ms><special> <B><Shape>14<B>153<B>505<B> extra <special>Tool Tip<ms>Wait for DTMF data<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>263<B>551<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>360<B>254<B>360,254,567,254<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>235<B>528<B> extra <special>Tool Tip<ms>Wait for voip call to end<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.eventData<ms><special> <B><Shape>9<B>166<B>555<B>166,555<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>616<B>300<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>248<B>333<B>248,578,249,662,389,660,387,333,473,338<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>20<B>178<B>213<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>12<B>446<B>426<B> extra <special>Tool Tip<ms>Timer which initates a shutdown, after some tidyup + messages etc have been sent.<ms><special>Timer period (seconds, Python code)<ms>1<ms><special>Timer label (Python code)<ms>"endeverything"<ms><special> <B><Shape>5<B>141<B>357<B> extra <special>Tool Tip<ms>TEST: have a sound and voip node.<ms><special>Test (Python code)<ms>(self.voipNode != None) and (self.soundNode != None)<ms><special> <B><Shape>9<B>473<B>330<B>602,330,473,338<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>20<B>109<B>190<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>15<B>448<B>338<B> extra <special>Tool Tip<ms>Make sound node +talk to itself<ms><special>First SofaSwitch worker (python)<ms>"sound"<ms><special>Second SofaSwitch worker (python)<ms>"sound"<ms><special> <B><Shape>11<B>89<B>96<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>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.voipNode<ms><special> <B><Shape>11<B>156<B>121<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>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.soundNode<ms><special> <B><Shape>9<B>99<B>146<B>99,146,100,353,166,357<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>552<B>256<B> extra <special>Tool Tip<ms>test timer on request of voip<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.eventData<ms><special> <B><Shape>1<B>88<B>9<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>15<B>141<B>457<B> extra <special>Tool Tip<ms>Transfer Media between the voip and sound node<ms><special>First SofaSwitch worker (python)<ms>self.voipNode<ms><special>Second SofaSwitch worker (python)<ms>self.soundNode<ms><special> <B><Shape>7<B>163<B>164<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node for termination (Python code)<ms>self.voipNode<ms><special> <B><Shape>9<B>191<B>382<B>191,382,237,383<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>589<B>280<B> extra <special>Tool Tip<ms>Test timer on request of sound<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.eventData<ms><special> <B><Shape>7<B>95<B>148<B> extra <special>Tool Tip<ms>End Call<ms><special>Worker node for termination (Python code)<ms>self.soundNode<ms><special> <B><Shape>19<B>168<B>575<B> extra <special>Tool Tip<ms>Send Dtmf to the voip node<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>14<B>310<B>232<B> extra <special>Tool Tip<ms>Wait for timer, which +indicates end everything<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>endeverything<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>312<B>286<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>203<B>527<B>203,527,248,528<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>168<B>626<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>22<B>97<B>52<B> extra <special>Tool Tip<ms>Register for events from voip node<ms><special>Node to receive events from (Python code)<ms>"voip"<ms><special> <B><Shape>2<B>445<B>470<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape> Modified: sofaswitch/trunk/callflow/tests/recordincomingvoip.src ============================================================================== --- sofaswitch/trunk/callflow/tests/recordincomingvoip.src (original) +++ sofaswitch/trunk/callflow/tests/recordincomingvoip.src Tue Jul 17 22:43:02 2007 @@ -1,3 +1,2 @@ -22<B>150<B>94<B> extra <special>Tool Tip<ms>Register for events from voip<ms><special>Node to receive events from (Python code)<ms>"voip"<ms><special> <B><Shape>9<B>684<B>288<B>684,288,729,313<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>302<B>274<B>302,274,355,286,355,286<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>634<B>266<B> extra <special>Tool Tip<ms>Wait for hangup of the voip call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hangup<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.hangupdata<ms><special> <B><Shape>22<B>246<B>398<B> extra <special>Tool Tip<ms>Register for events from voip node -that has just answered the call<ms><special>Node to receive events from (Python code)<ms>self.voipNode<ms><special> <B><Shape>15<B>619<B>126<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.voipNode<ms><special> <B><Shape>7<B>241<B>488<B> extra <special>Tool Tip<ms>End voip node<ms><special>Worker node for termination (python code)<ms>self.voipNode<ms><special> <B><Shape>2<B>278<B>117<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>14<B>252<B>252<B> extra <special>Tool Tip<ms>DETECT the AM node to -connect to the incoming call.<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.amMasterNode<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>252<B>442<B> extra <special>Tool Tip<ms>A node (voip or am) has died<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.eventData<ms><special> <B><Shape>2<B>328<B>282<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>266<B>375<B>647,375,605,527,266,488<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>250<B>586<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DEATH NOW."<ms><special> <B><Shape>1<B>141<B>41<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>9<B>302<B>113<B>302,464,496,466,499,113,644,126<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>702<B>313<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>166<B>93<B>166,134,265,93<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>631<B>315<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "the voip call has ended with ", self.remotePerson<ms><special> <B><Shape>17<B>621<B>217<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>10<B>248<B>301<B> extra <special>Tool Tip<ms>Report - have an am node<ms><special>Python Code<ms>print " have a am node of ", self.amNode<ms><special> <B><Shape>14<B>252<B>93<B> extra <special>Tool Tip<ms>Wait for an incoming voip call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>QueryAccept<ms><special>Python variable: source of the event<ms>self.voipNode<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.remotePerson<ms><special> <B><Shape>11<B>239<B>200<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>248<B>141<B> extra <special>Tool Tip<ms>report: incoming voip call<ms><special>Python Code<ms>print "have received an incoming voip call from ",self.remotePerson<ms><special> <B><Shape>16<B>618<B>170<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>7<B>240<B>537<B> extra <special>Tool Tip<ms>End AM node<ms><special>Worker node for termination (python code)<ms>self.amNode<ms><special> <B><Shape>20<B>251<B>637<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>23<B>237<B>354<B> extra <special>Tool tip<ms>Accept incoming voip call at sofa node<ms><special>SofaSwitch node to advise as to accepting the call (Python code)<ms>self.voipNode<ms><special>Answer call yes or no (Python code)<ms>"yes"<ms><special> <B><Shape> +9<B>266<B>299<B>284,299,344,482,266,488<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>22<B>169<B>145<B> extra <special>Tool Tip<ms>Register for events from voip<ms><special>Node to receive events from (Python code)<ms>"voip"<ms><special> <B><Shape>20<B>251<B>637<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>684<B>288<B>684,288,729,313<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>14<B>634<B>266<B> extra <special>Tool Tip<ms>Wait for hangup of the voip call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>hangup<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.hangupdata<ms><special> <B><Shape>17<B>621<B>217<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>301<B>114<B>301,465,495,467,498,114,643,127<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>266<B>375<B>647,375,605,527,266,488<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>7<B>240<B>537<B> extra <special>Tool Tip<ms>End AM node<ms><special>Worker node for termination (python code)<ms>self.amNode<ms><special> <B><Shape>10<B>250<B>586<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "DEATH NOW."<ms><special> <B><Shape>7<B>241<B>488<B> extra <special>Tool Tip<ms>End voip node<ms><special>Worker node for termination (python code)<ms>self.voipNode<ms><special> <B><Shape>2<B>297<B>168<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>9<B>185<B>144<B>185,185,284,144<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>15<B>619<B>126<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.voipNode<ms><special> <B><Shape>14<B>271<B>144<B> extra <special>Tool Tip<ms>Wait for an incoming voip call<ms><special>Event sought (Python code)<ms><ms><special>Event sought (Regular Exp)<ms>QueryAccept<ms><special>Python variable: source of the event<ms>self.voipNode<ms><special>Python variable: name of the event<ms>self.eventName<ms><special>Python variable: generated data<ms>self.remotePerson<ms><special> <B><Shape>23<B>237<B>354<B> extra <special>Tool tip<ms>Accept incoming voip call at sofa node<ms><special>SofaSwitch node to advise as to accepting the call (Python code)<ms>self.voipNode<ms><special>Answer call yes or no (Python code)<ms>"yes"<ms><special> <B><Shape>2<B>702<B>313<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>2<B>323<B>277<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>22<B>246<B>398<B> extra <special>Tool Tip<ms>Register for events from voip node +that has just answered the call<ms><special>Node to receive events from (Python code)<ms>self.voipNode<ms><special> <B><Shape>9<B>307<B>274<B>307,274,351,277<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>267<B>192<B> extra <special>Tool Tip<ms>report: incoming voip call<ms><special>Python Code<ms>print "have received an incoming voip call from ",self.remotePerson<ms><special> <B><Shape>11<B>254<B>249<B> extra <special>Tool Tip<ms>Request Node<ms><special>Request node from (Python code)<ms>"am"<ms><special>Timer period (seconds)<ms>1<ms><special>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.amNode<ms><special> <B><Shape>10<B>631<B>315<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "the voip call has ended with ", self.remotePerson<ms><special> <B><Shape>14<B>252<B>442<B> extra <special>Tool Tip<ms>A node (voip or am) has died<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.eventData<ms><special> <B><Shape>10<B>247<B>295<B> extra <special>Tool Tip<ms>Report - have an am node<ms><special>Python Code<ms>print " have a am node of ", self.amNode<ms><special> <B><Shape>1<B>160<B>92<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>16<B>618<B>170<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> Modified: sofaswitch/trunk/callflow/tests/recordmessage.src ============================================================================== --- sofaswitch/trunk/callflow/tests/recordmessage.src (original) +++ sofaswitch/trunk/callflow/tests/recordmessage.src Tue Jul 17 22:43:02 2007 @@ -1,2 +1,2 @@ -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> +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>9<B>630<B>374<B>630,374,631,473<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>266<B>151<B>272,151,266,359<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>9<B>240<B>96<B>240,96,287,101<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>190<B>19<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>2<B>307<B>394<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>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>10<B>132<B>264<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have not received sound or voip node in time"<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>312<B>129<B>335,129,312,129<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>200<B>121<B>200,121,266,359<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>2<B>694<B>626<B> extra <special>Tool Tip<ms>End Processing<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>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>294<B>621<B> extra <special>Tool Tip<ms>Death<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>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>9<B>148<B>151<B>292,151,148,264<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>9<B>148<B>324<B>148,324,168,674,579,672,566,479,630,474<special>Tool Tip<ms>Join blocks shape<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>2<B>507<B>362<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>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>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>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>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>9<B>678<B>372<B>678,372,715,373<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>11<B>262<B>101<B> extra <special>Tool Tip<ms>Request Node from sound<ms><special>Request node from (Python code)<ms>"sound"<ms><special>Timer period (seconds)<ms>1<ms><special>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.soundNode<ms><special> <B><Shape>9<B>148<B>121<B>220,121,148,264<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>11<B>190<B>71<B> extra <special>Tool Tip<ms>Request Node from voip<ms><special>Request node from (Python code)<ms>"voip"<ms><special>Timer period (seconds)<ms>1<ms><special>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms>self.voipNode<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>2<B>350<B>557<B> extra <special>Tool Tip<ms>End Processing<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>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>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>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>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>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>2<B>311<B>128<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> Modified: sofaswitch/trunk/callflow/tests/requestnode.src ============================================================================== --- sofaswitch/trunk/callflow/tests/requestnode.src (original) +++ sofaswitch/trunk/callflow/tests/requestnode.src Tue Jul 17 22:43:02 2007 @@ -1 +1 @@ -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> +9<B>409<B>246<B>409,246,479,276<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>1<B>399<B>96<B> extra <special>Tool Tip<ms>Start Processing<ms><special> <B><Shape>11<B>401<B>143<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>Info to send to remote node (Python code)<ms><ms><special>Python variable: generated data<ms><ms><special> <B><Shape>10<B>393<B>186<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "have a new node on ", self.eventData<ms><special> <B><Shape>2<B>534<B>169<B> extra <special>Tool Tip<ms>End Processing<ms><special> <B><Shape>20<B>467<B>276<B> extra <special>Tool Tip<ms>Death<ms><special> <B><Shape>9<B>451<B>168<B>451,168,559,169<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>10<B>461<B>218<B> extra <special>Tool Tip<ms>Python<ms><special>Python Code<ms>print "timer has expired at ", time.asctime()<ms><special> <B><Shape>9<B>431<B>193<B>477,218,431,193<special>Tool Tip<ms>Join blocks shape<ms><special> <B><Shape>