Re: [asterisk-users] ControlPlayback's options

2011-06-05 Thread Johan Wilfer

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},6,3,1,*#2456790,,,o(${position}))

${filename} is the file you want to play.
6 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 li...@jttech.se 
mailto:li...@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},6,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; }
}
  }
}


Re: [asterisk-users] ControlPlayback's options

2011-06-05 Thread virendra bhati
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 li...@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},6,3,1,*#2456790,,,o(${position}))

 ${filename} is the file you want to play.
 6 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 li...@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); }

 

Re: [asterisk-users] ControlPlayback's options

2011-06-04 Thread virendra bhati
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?
and another things is what is the use of  SayUnixTime(${time},${tz},d
'digits/of' B);
this function in such case?

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},6,3,1,*#2456790,,,o(${position}))

Please put some light on these too.

On Wed, Jun 1, 2011 at 1:50 AM, Johan Wilfer li...@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},6,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}-6]); //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}+6]); //Forward 1 minute
   goto play,1;
 }

 4 = {
   Set(position=$[${position}-30]); //Rewind 5 minutes
   goto play,1;
 }

 5 = {
   goto conference_play_recordings_conference_paused, announce, 1;
 //Pause
 }

 6 = {
   Set(position=$[${position}+30]); //Forward 5 minutes
   goto play,1;
 }

 7 = {
   Set(position=$[${position}-90]); //Rewind 15 minutes
   goto play,1;
 }

 9 = {
   Set(position=$[${position}+90]); //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


 --
 

Re: [asterisk-users] ControlPlayback's options

2011-05-31 Thread Johan Wilfer

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},6,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}-6]); //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}+6]); //Forward 1 minute
  goto play,1;
}

4 = {
  Set(position=$[${position}-30]); //Rewind 5 minutes
  goto play,1;
}

5 = {
  goto conference_play_recordings_conference_paused, announce, 1; 
//Pause

}

6 = {
  Set(position=$[${position}+30]); //Forward 5 minutes
  goto play,1;
}

7 = {
  Set(position=$[${position}-90]); //Rewind 15 minutes
  goto play,1;
}

9 = {
  Set(position=$[${position}+90]); //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: jo...@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

[asterisk-users] ControlPlayback's options

2011-05-30 Thread virendra bhati
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)
:


-
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