FOP2: La variable ${BLINDTRANSFER} llega vacía
Hola,
He visto que hace dos años una persona escribió al foro con un problema similar al que yo mismo tengo ahora, el título del hilo era este: "No ${BLINDTRANSFER} set "
Mi FOP2 es este: FOP2 - Version 2.30.04 - Licensed to Vigartel SL
Trabajo con Asterisk 13 y CentOs 6.6
En la empresa donde estoy todas las transferencias son ciegas, por lo tanto cuando se transfiere a una extensión donde nadie atiende lo que sucede es que al agotarse el tiempo límite para esa extensión, la llamada se dirige por defecto al buzón de voz de la extensión y sino estuviera activado, la llamada se corta sin mas con el subsiguiente cabreo de quien llamó; también puedo hacer que la llamada se quede sonando eternamente en la extensión o que salte a otro sitio, pero lo que yo quiero hacer es que la llamada regrese a quien la ha transferido ....
Para ello me hice un pequeño dialplan que pasada cierta cantidad de segundos sin que nadie atienda, el sistema lee la variable ${BLINDTRANSFER} y de allí saca quien fue el que ha transferido para poder devolver la llamada a esa persona.
Pues bien, cuando transfiero con un teléfono SIP, funciona bien y hace lo que quiero que haga, pero cuando transfiero con el FOP2, la variable ${BLINDTRANSFER} me viene vacía, con lo cual no puedo saber quien ha sido el que ha transferido la llamada y me es imposible devolverla sin ese dato.
He visto en el hilo anterior que le sugeríais tocar el FOP2Callbacks.pm, lo he intentado pero la verdad es que no me entero mucho y no he logrado nada.
Podéis ayudarme con esto ?
Gracias !!!!
He visto que hace dos años una persona escribió al foro con un problema similar al que yo mismo tengo ahora, el título del hilo era este: "No ${BLINDTRANSFER} set "
Mi FOP2 es este: FOP2 - Version 2.30.04 - Licensed to Vigartel SL
Trabajo con Asterisk 13 y CentOs 6.6
En la empresa donde estoy todas las transferencias son ciegas, por lo tanto cuando se transfiere a una extensión donde nadie atiende lo que sucede es que al agotarse el tiempo límite para esa extensión, la llamada se dirige por defecto al buzón de voz de la extensión y sino estuviera activado, la llamada se corta sin mas con el subsiguiente cabreo de quien llamó; también puedo hacer que la llamada se quede sonando eternamente en la extensión o que salte a otro sitio, pero lo que yo quiero hacer es que la llamada regrese a quien la ha transferido ....
Para ello me hice un pequeño dialplan que pasada cierta cantidad de segundos sin que nadie atienda, el sistema lee la variable ${BLINDTRANSFER} y de allí saca quien fue el que ha transferido para poder devolver la llamada a esa persona.
Pues bien, cuando transfiero con un teléfono SIP, funciona bien y hace lo que quiero que haga, pero cuando transfiero con el FOP2, la variable ${BLINDTRANSFER} me viene vacía, con lo cual no puedo saber quien ha sido el que ha transferido la llamada y me es imposible devolverla sin ese dato.
He visto en el hilo anterior que le sugeríais tocar el FOP2Callbacks.pm, lo he intentado pero la verdad es que no me entero mucho y no he logrado nada.
Podéis ayudarme con esto ?
Gracias !!!!
Comments
En cuanto pueda voy a hacer pruebas y si doy con la solución la pondré aquí para quien la necesite.
He revisado las variables con DumpChan y veo que cuando transfiero con FOP2 en ninguna me sale quien ha sido el que ha transferido así que no tengo por donde agarrarlo ....
Lo que hago es lo siguiente: La extensión 105 llama a la 112 y ésta última hace una transferencia ciega de la extensión 105 a la extensión 100, la idea es que si la extensión 100 no coge la llamada, vuelva a la extensión 112 que fue quien hizo la transferencia.
Transferencia con teléfono SIP (Variables)
Variables:
DIALSTATUS=NOANSWER
DIALEDTIME=
ANSWEREDTIME=
DIALEDPEERNAME=
DIALEDPEERNUMBER=
SIPDOMAIN=192.168.200.244
SIPTRANSFER_REFERER=<sip:112@192.168.200.244>
SIPTRANSFER=yes
BLINDTRANSFER=SIP/112-000004dc
SIPREFERREDBYHDR=<sip:112@192.168.200.244>
SIPREFERRINGCONTEXT=from-internal
SIPADDHEADER04=
SIPADDHEADER03=
SIPADDHEADER02=
SIPADDHEADER01=
SIPCALLID=2975960790@192_168_200_105
SIPURI=sip:105@192.168.200.105:5060
Transferencia con panel FOP2 (Variables)
Variables:
DIALSTATUS=NOANSWER
DIALEDTIME=
ANSWEREDTIME=
DIALEDPEERNAME=
DIALEDPEERNUMBER=
SIPADDHEADER04=
SIPADDHEADER03=
SIPADDHEADER02=
SIPADDHEADER01=
SIPCALLID=2893482195@192_168_200_105
SIPDOMAIN=192.168.200.244
SIPURI=sip:105@192.168.200.105:5060
Como escribí antes, esto lo dejo a modo informativo, de momento le he dicho al operador que si quiere hacer transferencias ciegas lo haga con el teléfono porque sino la llamada no vuelve y eso es lo que hay así que dejo este tema aquí, gracias por la ayuda !!
exten => 305,1,Set(RETURN_DIAL=${DIALEDPEERNAME}) ->Need to retain the DIALEDPEERNAME as another variable before the blind transfer occurs
same => n,Dial(${WARR_GRP},20,trw)
same => n,GotoIf($[${LEN(${RETURN_DIAL})}>0]?RETURN)
same => n,Hangup
same => n(RETURN),Log(NOTICE,Returning to transferrer)
same => n,Set(CALLERID(name)=${IF($[${DIALSTATUS}= NOANSWER]?Transfer Not Answered)})
same => n,Set(CALLERID(name)=${IF($[${DIALSTATUS}= BUSY]?Transferee was BUSY:Transfer Failed)})
same => n,Dial(${RETURN_DIAL:0:$[${LEN(${RETURN_DIAL})}-9]})
same => n,Hangup()
This is my old dialplan, very similar to yours ....
exten => _4[1235-9]XX,1,Dial(SIP/${EXTEN},30,t)
same => n,NoOp("Llamada en el Dialplan correcto")
same => n,NoOp(${BLINDTRANSFER})
same => n,GotoIf($[${LEN(${BLINDTRANSFER})}>0]?RETURN)
same => n,Hangup
same => n(RETURN),Log(NOTICE,Devolviendo llamada al que ha transferido)
same => n,Set(CALLERID(name)=${IF($[${DIALSTATUS}= NOANSWER]?Transferencia no contestada)})
same => n,Set(CALLERID(name)=${IF($[${DIALSTATUS}= BUSY]?El transferido comunica:Transferencia no contestada)})
same => n,Dial(${BLINDTRANSFER:0:$[${LEN(${BLINDTRANSFER})}-9]})
same => n,Hangup()
I understand your dialplan but my doubt, reading it, is: how do you know if a blind transfer takes place ?
In mine, i know because if is not takes place, ${BLINDTRANSFER} is empty, but in yours ?, what values takes the ${DIALEDPEERNAME} variable in the case you have a blind transfer and in the case you have not ?
Anyway, i did not test your diaplan yet, only is a doubt ....
Sorry I do not check this forum frequently.
In our specific case we did not care how the call was transferred (blind or not). We always wanted it to return to the ${DIALEDPEERNAME} if the person did not answer. DIALEDPEERNAME is always filled with the extension of who started a transfer to 305