BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Feature codes de Asterisk para que se reproduzca una locución al marcar un código

juanjogzo

Buenas a todos, os cuento un poco lo que tengo entre manos, y es que necesito que en una llamada (tanto saliente, como entrante, pasando por una cola), marcando un código, se reproduzca una locución en ambos canales (llamante y llamado) y que además, todo este quede grabado.

He desarrollado una pequeña porción de código dialplan que permite a los participantes de una conversación marcar un código que reproduce una locución (en ambos canales). Además, com digo, esto tiene que ser grabado (toda la llamada y la voz en off reproducida).

Al principio, pude hacer que funcionara. En una llamada de extensión a extensión, funciona perfectamente. El problema es cuando hago una llamada saliente a través de un troncal SIP. Marco el código, el dialplan me muestra una "feature found", pero no hace nada, no ejecuta el código, cosa que si hace en una llamada de extensión a extensión.

En mi extensions_custom.conf, tengo esto:

[macro-testing]
exten => s,1,NooP(Ha pulsado *200 valor bridgepeer ${BRIDGEPEER})
;same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
exten => s,n,Dial(Local/spy@macro-testing,30,G(testing-play^0^1))
exten => _spy,1,ChanSpy(SIP/${CALLERID(num)},BqS)

[testing-play]
exten => 0,2(music),Playback(custom/Loc-testing)

En mi features_applicationmap_custom.conf, tengo lo siguiente:

testing => *315,self/both,Macro,testing

También he probado a ponerlo así:

testing => *315,self/callee,Macro,testing.

Y esto es lo que tengo en mi extensions_custom.conf:

exten => n,Set(__DYNAMIC_FEATURES=testing)

He probado a definir la __DYNAMIC_FEATURES en el globals_custom.conf , pero obtengo el mismo resultado.

En las opciones de marcado de salida SIP de Asterisk, he puesto "wW".

Repito que de extensión en extensión funciona perfectamente. Con las llamadas entrantes, también funciona. El problema es con las llamadas salientes.

Se ejecuta en Asterisk versión 11.21.0. Lo he probado en Asterisk 13 también con el mismo resultado.

Viendo que no funcionaba, he intentado hacerlo de otro modo con CONFBRIDGE para usar conferencias, pero ahora el problema es que no funciona en las llamadas entrantes cuando el agente está en cola....

En el extensions_custom.conf tengo esto:

[macro-testing]
exten => s,1,Noop(Quick Conference   ||||    Bridgepeer: ${BRIDGEPEER}     ||||)
same => n,ChannelRedirect(${BRIDGEPEER},pruebas,s,1)
same => n,Set(HORA=${EPOCH})
same => n,Set(CONFBRIDGE(user,template)=admin1)
same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
same => n,DumpChan()
same => n,ConfBridge(${HORA})
same => n,MacroExit()

[pruebas]
exten => s,1,Macro(user-callerid)
same => n,Set(CONFBRIDGE(user,template)=default_user1)
same => n,Set(HORA=${EPOCH})
same => n,ConfBridge(${HORA})
same => n,MacroExit()

Y en el confbridge_custom.conf, tengo esto:

[default_bridge]
type=bridge
sound_join=t
sound_leave=t
sound_kicked=t
language=es

[default_user1]
announcement=tt-monkeys
type=user
announce_only_user=no
dtmf_passthrough=yes

[admin1]
announcement=tt-monkeys
type=user
dtmf_passthrough=no
admin=yes
announce_only_user=no

Pero como digo, no funciona en las llamadas entrantes cuando el agente está en cola...

Alguien puede echarme un cable?

Saludos.

👁 1K5