Buenas! Tengo unas dudillas del busy tone que no veo por el foro.
Estoy con Asterisk 11.5 y teléfonos Cisco SPA504 y Grandstream.
Si llamo a una extensión ocupada la llamada se cuelga inmediatamente sin sonar tono de ocupado. En la pantalla del teléfono sí aparece Busy pero la gente se guía por el sonido del teléfono y no mirando la pantalla.
Así que he controlado el tema del DIALSTATUS y he puesto el playtones(Busy), pero ese comando necesita antes un Answer(), así que en el CDR no aparece como llamada BUSY, sino "Answered". ¿Hay algún workaround para esto? Por ejemplo, que sea el propio teléfono el que haga sonar el busytone cuando detecte el comando SIP correspondiente y nos olvidemos de controlar el DIALSTATUS.
Y segunda pregunta sobre el busytone. Tengo activada la transferencia atendida. Persona 'A' llama desde fuera por RDSI y llega a un gateway RDSI conectado al Asterisk (sin tarjetas PCI internas) y lo coge empleado 'B'.
'B' comienza la attended transfer llamando al empleado 'C' y resulta que 'C' ya está hablando. El Asterisk, sin aviso de ningún tipo, conecta a 'A' y 'B' de nuevo. Así que el empleado B se queda sorprendido porque no sabe por qué está hablando de nuevo con 'A'. Se cree que no funciona la transferencia.
Le puse también lo de controlar el DIALSTATUS (a través de una macro) para que le suene el busytone, pero al hacer attended transfer no se ejecuta nunca esa macro.
En vez de una macro, ¿sería mejor tratando la extensión "h" ?
[macro-estadohangup]
exten => s,1,GotoIf($[${ISNULL(${DIALSTATUS})}]?2:rc-${DIALSTATUS},1)
exten => s,2,Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})})
exten => s,3,Goto(rc-${RC},1)
exten => s,4,Hangup(${RC})
exten => i,1,Set(RC=0)
exten => i,2,Goto(s,4)
; Convierte el DIALSTATUS al HANGUPCAUSE
exten => rc-BUSY,1,Playtones(busy)
exten => rc-BUSY,n,Answer()
exten => rc-BUSY,n,Set(RC=17)
exten => rc-BUSY,n,Goto(s,4)
exten => rc-ANSWER,1,....
exten => rc-CANCEL,1,....
exten => rc-CONGESTION,1,....
exten => rc-CHANUNAVAIL,1,....
....
Gracias.