Reproducir sonido en canal

151 views
Skip to first unread message

elguillote

unread,
Nov 10, 2008, 4:31:32 PM11/10/08
to asterisk-es
Hola gente. Como puedo reproducir un beep constante durante una
frecuencia X en un canal en el que estoy hablando?
La idea es reproducir alguna advertencia (como puede ser un beep) de
que la llamada esta siendo grabada.
Intente con Background, playBack y otros derivados pero no me fue muy
bien.
Tal vez haya algo para esto.
Gracias.

Manuel Rubio

unread,
Nov 11, 2008, 4:06:34 AM11/11/08
to aster...@googlegroups.com
Hola,

http://www.voip-info.org/wiki/view/Asterisk+cmd+Playtones

Un saludo.
--
Manuel A. Rubio "Bombadil"
Usuario de GNU/Linux #323628 acorde a http://counter.li.org/
Técnico en Admin. Sistemas Informáticos

elguillote

unread,
Nov 11, 2008, 6:40:01 AM11/11/08
to asterisk-es
Gracias por la respuesta. Lo probe pero no me sirve. Si ejecuto
playTones e inmediatamente un dial como siguiente paso, los tonos
dejan de sonar. Justamente necesito lo contrario, poder reproducir
sonidos sobre un canal por el que estoy hablando.
Alguna otra idea?
Gracias.
> Usuario de GNU/Linux #323628 acorde ahttp://counter.li.org/

Julian J. M.

unread,
Nov 11, 2008, 6:54:48 AM11/11/08
to aster...@googlegroups.com
Igual te sirve el parámetro L del comando dial...

# L(x[:y][:z]): Limit the call to 'x' ms, warning when 'y' ms are
left, repeated every 'z' ms) Only 'x' is required, 'y' and 'z' are
optional. The following special variables are optional for limit
calls: (pasted from app_dial.c)

* LIMIT_PLAYAUDIO_CALLER - yes|no (default yes) - Play sounds to the caller.
* LIMIT_PLAYAUDIO_CALLEE - yes|no - Play sounds to the callee.
* LIMIT_TIMEOUT_FILE - File to play when time is up.
* LIMIT_CONNECT_FILE - File to play when call begins.
* LIMIT_WARNING_FILE - File to play as warning if 'y' is defined.
If LIMIT_WARNING_FILE is not defined, then the default behaviour is to
announce ("You have [XX minutes] YY seconds").

x=limite de la conversación (si no hay límite, un valor muy grande)
y=Cuando queden "y" milisegundos, reproducir un sonido
z=Y repetir cada "z" milissegundos

Ejemplo

exten => XXX,1,Set(LIMIT_PLAYAUDIO_CALLER=yes)
exten => XXX,n,Set(LIMIT_PLAYAUDIO_CALLEE=yes)
exten => XXX,n,Set(WARNING_FILE=beep)
exten => XXX,n,Dial(SIP/{$EXTEN},L(3600000,3590000,10000)

Límite de 1 hora, cuando quede una hora menos 10 segundos, reproducir
el primer pitido, luego cada 10 segundos.

Un poco rebuscado, pero igual hasta funciona ;)

Julian.
--
http://www.julianmenendez.es

elguillote

unread,
Nov 11, 2008, 7:39:46 AM11/11/08
to asterisk-es
Gracias por las respuestas. Puede que esto ultimo me sirva.
Para quien lo necesite, la forma en que me andubo es:


exten = _.,5,Set(LIMIT_PLAYAUDIO_CALLER=yes)
exten = _.,6,Set(LIMIT_PLAYAUDIO_CALLEE=yes)
exten = _.,7,Set(LIMIT_WARNING_FILE=beep)
exten = _.,8,Set(LIMIT_CONNECT_FILE=vm-intro)
exten = _.,9,Dial(ZAP/{EXTEN},20,L(360000000000:359999999999:10000))

Faltaba el parametro de timeout, y en vez de pipes van dos puntos (por
lo menos en mi version de asterisk)

Lo unico medio medio, es que cuando reproduce el sonido cada 10 seg en
este caso me toma el canal y no escucho del otro lado y del otro lado
pasa lo mismo. Pero igual, muchas gracias.
La otra alternativa es implementar esto mismo desde el cliente SIP,
pero estoy limitado a que las advertencias solo funcionen cuando
utilizo este cliente propio.

Gelo

unread,
Nov 11, 2008, 12:01:45 PM11/11/08
to asterisk-es
No lo he probado y a lo mejor ni siquiera es posible, pero se me
ocurre que tal vez puedas hacer la llamada, crear un canal con un
playtones y juntarlo todo en una conferencia :P Chapucilla

paco gil

unread,
Nov 11, 2008, 12:18:54 PM11/11/08
to aster...@googlegroups.com
ummm... se podría con

M(x): Executes the macro (x) upon connect of the call (i.e. when the called party answers).

Tras responder, te vas a una macro donde reproduces el sonido. El tema es que ese sonido se reproduzca en el canal... jeje.

saludos,
--
http://ualtech.wordpress.com

David Calvache

unread,
Nov 11, 2008, 5:45:01 PM11/11/08
to asterisk-es

a mi se me ocurre que podrias jugar con Meetme.

Por ejemplo (y esto no lo he probado, pero podria resultar...) coges
las llamadas y las envia a un meetme y generas otra tercera llamada
solo en emision reproduciendo un playtones que tambien la metes en el
meetme, y voilá, conversacion establecida con los pitidos de fondo sin
que te viole la conversacion.

Algo mas o menos asi, puliendo detalles ;), quizas podria valer.

elguillote

unread,
Nov 12, 2008, 7:49:00 AM11/12/08
to asterisk-es
GRacias a todos por las respuestas. Son buenas ideas. Por cuestiones
de tiempo y facilidad implemente la solucion de julian, ya que el
pitido se reproducira una vez cada 60 seg aprox (por lo que no molesta
que se corte un poquito por el beep).
Cuando me pidan optimizar... vere estas soluciones.
Saludos.

elguillote

unread,
Nov 13, 2008, 1:01:40 PM11/13/08
to asterisk-es
Gente... no puedo lograr que anden la opcion T (transfiere el
llamador) y la opcion L ( la que me explicaban arriba) en forma
conjunta.
Si hago por ejemplo

exten = _.,8,Dial(ZAP/2/112,20,L(360000000000:359999999999:10000))
reproduce el pitido

Si hago

exten = _.,8,Dial(ZAP/2/112,20,T) puedo transferir

Si hago

exten = _.,8,Dial(ZAP/2/112,20,TL(360000000000:359999999999:10000))

Funciona el pitido pero no transfiere.

Posible bug?
Reply all
Reply to author
Forward
0 new messages