On 04/16/2012 04:09 PM, Billy Kaye wrote:
Thanks Dale,

Am not sure why it was working in 1.4 but for some reason it was ( Note : My Asterisk is running bundled with Elastix).
But any your suggestion worked very fine.


Glad to hear it.

Now am having one problem how can define those extensions only with in different contexts, the problem I see is since am
Building 3 recording applications only one will be able call its AGI file,

Say if someone calls custom extension 1114
They can record message
-Press 1 to Replay Press 2 to Re-record or Press 3 to Save the file

Also if someone calls custom extension 1115
-Press 1 to Replay Press 2 to Re-record or Press 3 to Save the file

Note Each save file selection calls a different AGI file

E.g

exten => 1,1,Goto,timo|3552|9
exten => 2,1,Goto(3552,7) ; re-record message
exten => 3,1,Goto(4,1)
exten => 4,AGI(timorec.php)


There a few ways to do it. Probably the easiest to maintain in the long run would be via the use of a macro.

[macro-timo]
exten => s,1,Set(RecordingType=${ARG1})
exten => s,n,Set(TIMEOUT(digit)=2) ; Set Digit Timeout to 5 seconds exten => s,n,Set(TIMEOUT(response)=2) ; Set Response Timeout to 10 seconds
exten => s,n,Answer
exten => s,n,NoOp(${CALLERID(num)})
exten => s,n,Set(number=${CALLERID(num)})
exten => s,n,NoOp(${number})
exten => s,n(recordmsg),Background(recmsg1) ;"Please say yo message after the beep and end with a hash"
exten => s,n,Record(crystalrecords/${RecordingType}/${number}.gsm)
exten => s,n(playmsg),Playback(crystalrecords/${RecordingType}/${number})
exten => s,n(askuser),Background(ackrec) ;"Press 1 to replay or 2 to re-record, 3 to save "
exten => s,11,WaitExten(5)

exten => 1,1,Goto(s,playmsg)
exten => 2,1,Goto(s,recordmsg)  ; re-record message
exten => 3,1,Goto(4,1)
exten => 4,AGI($RecordingType}.php)

exten => i,1,Background(invalidentry)
exten => i,n,Goto(s,askuser)

exten => t,1,Playback(thankyoubye)
exten => t,n,Return

Here I have taken you original dialplan and created a macro out of it. I made a few other changes such as using the 'n' priority and labels to make the macro easier to maintain later. This macro takes an argument which would be the recording type. I do not know what the three variations you need are, but that is not really relevant. When the macro is called, it will save the argument as a variable 'RecordingType' which is used elsewhere. It saves the recording under a subdirectory of 'crystalrecords' that is the same name as the recording type. When saving the message, it also calls the AGI as RecordingType.php, so simply name the script the same as the recording type.

Then, in your dialplan you simply make calls to your macro with the correct argument.

[from-internal-custom]

exten => 1114,1,Macro(timo,type1)
exten => 1114,n,Hangup()

exten => 1115,1,Macro(timo,type2)
exten => 1115,n,Hangup()

exten => 1116,1,Macro(timo,type3)
exten => 1116,n,Hangup()



Dale

--
"The truth speaks for itself. I'm just the messenger."
     Lyta Alexander - Babylon 5

--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to