Me surgió hacer esto, ya que mi proveedor envía "Anonymous" como callerid cuando el origen de la llamada tiene bloqueado el envío del ANI.
La gente me reclamaba que le daba "miedo" atender estas llamadas, porque creían que podían ser hackeados.
No se si es la mejor manera o la única, pero de esta forma, funciona el cambio de Callerid.
Paso 1: en extensions_custom.conf, crear el contexto [ext-did-custom]
Paso 2: crear una entrada con la ruta entrante definida en Issabel. Este ejemplo toma como DID el 8201
- [ext-did-custom]
- exten => _8201,1,Set(__FROM_DID=${EXTEN})
- exten => _8201,n,Gosub(app-blacklist-check,s,1()); Chequea que no esté en la lista negra
- exten => _8201,n,Set(CDR(did)=${FROM_DID}); setea el did en el CDR
- exten => _8201,n,ExecIf($[ "${CALLERID(name)}" = "Anonymous" ] ?Set(CALLERID(name)=Numero)) ; Setea el valor del CallerID name como "Numero")
- exten => _8201,n,ExecIf($[ "${CALLERID(num)}" = "Anonymous" ] ?Set(CALLERID(num)=Restringido)) ; Setea el > - valor del CallerID num como "Restringido")
- exten => _8201,n,NOop(${CALLERID(num)}) ; Imprime el valor de callerid num
- exten => _8201,n,NOop(${CALLERID(name)}) ; Imprime el valor de callerid name
- exten => _8201,n,Set(CHANNEL(musicclass)=default)
- exten => _8201,n,Set(__MOHCLASS=default)
- exten => _8201,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
- exten => _8201,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
- exten => _8201,n,Set(CALLERPRES()=allowed_not_screened)
- exten => _8201,n(dest-ext),Goto(ivr-4,s,1) ; envío el llamado al IVR principal configurado en ese DID/extensión/cola,etc.'
La llamada que llegaba antes como "Anonymous", llega ahora como "Numero restringido", número sin acento, porque envía caracteres especiales sino...
Espero que les sea útil.
Saludos!!!