[asterisk-users] ControlPlayback's options

virendra bhati virbhati at gmail.com
Sun Jun 5 12:54:23 CDT 2011


Hi John Wilfer,

Thanks for replay. Now all things is working on asterisk 1.6.2.18 version.
But When I try the same thing on Asterisk 1.4.X then facing problem.

Is this the problem of  ControlPlayback 's option fields of asterisk 1.4.X
in this version have option P(jumping) not O(time) ?
Is there any way by which we will implement like by upload ControlPlayback
from asterisk 1.6 to 1.4 or else ?
ControlPlayback(filename[,skipms[,ff[,rew[,stop[,pause[,restart[,options]]]]]]])

On Sun, Jun 5, 2011 at 2:16 PM, Johan Wilfer <lists at jttech.se> wrote:

>  On 2011-06-04 13:38, virendra bhati wrote:
>
> Hi Johan Wilfer,
>
> Thanks for your reply. On the basis of your provided code I made all things
> into extensions.conf. But i have an small issue on which I need your
> attention again.
> in below context what's  ${tz} ? Is this time zone value or else?
>
> Yes, I store the calls timezone in tis variable before the code sample you
> got.
>
>
>  and another things is what is the use of  SayUnixTime(${time},${tz},d
> 'digits/of' B);
> this function in such case?
>
>
> I've implemented 5 as a pause-button on the phone. This context handles
> this by playing a
> prompt that you have pause the recording and <time> and <date>.
>
> This is repeated untill the user presses a key on the keypad.
>
>
> context conference_play_recordings_
> conference_paused {
>     announce => {
>       Set(time=$[${epoch_start}+${position}/1000]);
>       while(true) {
>         WaitExten(1);
>         Background(conf_playrec_pause_part1);
>         SayUnixTime(${time},${tz},kM);
>         Background(conf_playrec_pause_part2);
>         SayUnixTime(${time},${tz},d 'digits/of' B);
>         Background(conf_playrec_pause_part3);
>         WaitExten(5);
>       }
>     }
>
> one thing which is also confusing is that what is the meaning or use of
> such lines in this application.
>
> ControlPlayback(${filename},60000,3,1,*#2456790,,,o(${position}))
>
> ${filename} is the file you want to play.
> 60000 is 60 seconds to skip.
> 3 is to use 3 as forward 60 seconds
> 1 to to use 1 as rewind  60 seconds
> *#2456790 is used as stop buttons (and handled by the dialplan)
> o() is a option to go to a specific position in the file
> ${position} is the variable that hold the current position of the playback.
>
> To get more details use the following command:
> asterisk*CLI> core show application ControlPlayback
>
> Displays:
>   -= Info about application 'ControlPlayback' =-
>
> [Synopsis]
> Play a file with fast forward and rewind.
>
> [Description]
> This application will play back the given <filename>.
> It sets the following channel variables upon completion:
> ${CPLAYBACKSTATUS}: Contains the status of the attempt as a text string
>     SUCCESS
>     USERSTOPPED
>     ERROR
> ${CPLAYBACKOFFSET}: Contains the offset in ms into the file where playback
> was at when it stopped. '-1' is end of file.
> ${CPLAYBACKSTOPKEY}: If the playback is stopped by the user this variable
> contains the key that was pressed.
>
> [Syntax]
>
> ControlPlayback(filename[,skipms[,ff[,rew[,stop[,pause[,restart[,options]]]]]]])
>
> [Arguments]
> skipms
>     This is number of milliseconds to skip when rewinding or fast-fo
>     rwarding.
> ff
>     Fast-forward when this DTMF digit is received. (defaults to '#')
> rew
>     Rewind when this DTMF digit is received. (defaults to '*')
> stop
>     Stop playback when this DTMF digit is received.
> pause
>     Pause playback when this DTMF digit is received.
> restart
>     Restart playback when this DTMF digit is received.
> options
>     o(time):
>         time - Start at <time> ms from the beginning of the
>         file.
>
> [See Also]
> Not available
>
>
> /Johan
>
>
> Please put some light on these too.
>
> On Wed, Jun 1, 2011 at 1:50 AM, Johan Wilfer <lists at jttech.se> wrote:
>
>>  On 2011-05-30 14:32, virendra bhati wrote:
>>
>> Hi List,
>>
>> Asterisk 's *ControlPlayback* will used for play any recorded file as an
>> audio player. Is it possible that we can use it for multiple forward and
>> rewind ?
>>
>> ex:-
>> original: ControlPlayback(filename,skipms,ff,rew,stop,pause)
>> expected
>> ControlPlayback(filename,skip1,skip2,skip3,forward1,rewind1,forward2,rewind2,forward3,rewind3,stop,pause)
>> :
>>
>>
>>  Yes, you can use the CPLAYBACKSTATUS, CPLAYBACKOFFSET and
>> CPLAYBACKSTOPKEY variables to get this behavior.
>> All you have to do is to list the additional keys and stop keys and
>> implement this in your dialplan...
>>
>> I've attached some ael I use for this to implement 1 and 3 as 1 minute
>> rewind/forward. 4 and 6 as 5 minutes rewind/forward and 7 and 9 as 15
>> minutes.
>> 5 I use as the pause key, and */# to switch recording.
>>
>> Greetings,
>> Johan Wilfer
>>
>> ----
>>
>>
>>   context conference_play_recordings_conference_connect {
>>     playrec_intro => {
>>       Set(position=0);
>>       goto play,1;
>>     }
>>
>>     play => {
>>       while (true) {
>>         if (${position}==-1) { goto recording_end,1; }
>>
>>         //rewind 5 seconds after every action (so the user doesn't feel
>> lost...)
>>         Set(position=$[${position}-5000]);
>>         if (${position} < 0) { Set(position=0); }
>>
>>         ControlPlayback(${filename},60000,3,1,*#2456790,,,o(${position}));
>>         Set(position=${CPLAYBACKOFFSET});
>>
>>         if (${CPLAYBACKSTATUS}==ERROR) {
>>           Playback(pbx_error_500);
>>           Playback(pbx_endcall);
>>           Wait(2);
>>           Hangup();
>>         }
>>
>>         //If stopped by user
>>         if (${CPLAYBACKSTATUS}==USERSTOPPED) {
>>           if (!${ISNULL(${CPLAYBACKSTOPKEY})}) { goto
>> ${CPLAYBACKSTOPKEY},1; }
>>         }
>>       }
>>     }
>>
>>     recording_end => {
>>       //The end of the recording is reached
>>       Set(position=0);
>>       Background(pbx_endcall);
>>       WaitExten(2);
>>       Hangup();
>>     }
>>
>>     1 => {
>>       Set(position=$[${position}-60000]); //Rewind 1 minute
>>       goto play,1;
>>     }
>>
>>     2 => {
>>       //Instructions, that could be aborted with 2.
>>       //1 and 3 could be used to forward/rewind 0 ms effectivly disabling
>> the defalut..
>>       ControlPlayback(conf_playrec_instructions_full,0,1,3,2);
>>       Wait(1);
>>       goto play,1;
>>     }
>>
>>     3 => {
>>       Set(position=$[${position}+60000]); //Forward 1 minute
>>       goto play,1;
>>     }
>>
>>     4 => {
>>       Set(position=$[${position}-300000]); //Rewind 5 minutes
>>       goto play,1;
>>     }
>>
>>     5 => {
>>       goto conference_play_recordings_conference_paused, announce, 1;
>> //Pause
>>     }
>>
>>     6 => {
>>       Set(position=$[${position}+300000]); //Forward 5 minutes
>>       goto play,1;
>>     }
>>
>>     7 => {
>>       Set(position=$[${position}-900000]); //Rewind 15 minutes
>>       goto play,1;
>>     }
>>
>>     9 => {
>>       Set(position=$[${position}+900000]); //Forward 15 minutes
>>       goto play,1;
>>     }
>>
>>     0 => {
>>       goto playrec_intro,1; //Restart playback of the current recording
>>     }
>>
>>     * => {
>>       //Previous recording
>>       //If no recording found, resume playback
>>       goto play,1;
>>     }
>>
>>     # => {
>>       //Next recording
>>       //If no recording found, resume playback
>>       goto play,1;
>>     }
>>
>>     i => {
>>       goto play,1;
>>     }
>>
>>   }
>>
>>   context conference_play_recordings_conference_paused {
>>     announce => {
>>       Set(time=$[${epoch_start}+${position}/1000]);
>>       while(true) {
>>         WaitExten(1);
>>         Background(conf_playrec_pause_part1);
>>         SayUnixTime(${time},${tz},kM);
>>         Background(conf_playrec_pause_part2);
>>         SayUnixTime(${time},${tz},d 'digits/of' B);
>>         Background(conf_playrec_pause_part3);
>>         WaitExten(5);
>>       }
>>     }
>>
>>     i => {
>>       //Every inputs goes here
>>       Wait(1);
>>       goto conference_play_recordings_conference_connect,play,1;
>>     }
>>   }
>>
>>
>>
>>
>> -----
>> Thanks and regards
>>
>>  Virendra Bhati
>> +91-9172341457
>> Asterisk Engineer
>>
>>
>> --
>> _____________________________________________________________________
>> -- 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
>>
>>
>>
>> --
>> Med vänlig hälsning
>>
>> Johan Wilfer                 email: johan at jttech.se
>> JT Tech | Utvecklare         webb: http://jttech.se
>> direkt: +46 31 380 91 01  support: +46 31 380 91 00
>>
>>
>> --
>> _____________________________________________________________________
>> -- 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
>>
>
>
>
> --
>
>
>
> -----
> Thanks and regards
>
>  Virendra Bhati
> +91-9172341457
> Asterisk Engineer
>
>
> --
> _____________________________________________________________________
> -- 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
>
>
>
> --
> Med vänlig hälsning
>
> Johan Wilfer                 email: johan at jttech.se
> JT Tech | Utvecklare         webb: http://jttech.se
> direkt: +46 31 380 91 01  support: +46 31 380 91 00
>
>
> --
> _____________________________________________________________________
> -- 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
>



-- 



-----
Thanks and regards

 Virendra Bhati
+91-9172341457
Asterisk Engineer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110605/73c4470d/attachment.htm>


More information about the asterisk-users mailing list