Enrutar llamadas entrantes según el número al que estén llamando.

1,792 views
Skip to first unread message

Ramses II

unread,
Jul 12, 2006, 4:39:14 AM7/12/06
to asterisk-es
Hola a todos,

A ver, os cuento:

Según tengo entendido, en las líneas analógicas no se pasa el
número al que se está llamando, es decir, si yo tengo una TDM400P,
con 3 líneas analógicas con 3 números distintos, si entra una
llamada externa, no tengo forma de saber a qué número me están
llamando, sí puedo ver el puerto por el que está entrando la llamada.

Bien, yo necesito que, en función del número al que me estén
llamando, pasarlo a un Ring-Group u otro.

Lo he hecho de una forma rudimentaria y seguro que no la más ortodosa
y fácil, pero es la que he encontrado por la poca experiencia que
tengo con ASTERISK y AAH.

Lo que hago, en Extensions.conf y dentro del contexto del horario de
trabajo, es detectar por el puerto que me entra la llamada y en
función de eso le asigno uno de mis números de teléfono a la
variable "FROM_DID" y después, en Inbound Routing del AMP, creo 3
rutas con cada uno de mis 3 teléfonos y lo mando a un RG u otro.

Lo que meto en Extensions.conf es:

;*******************************************************************************
;** Para detectar por el canal que esta entrando la llamada y poder
gestionar la llamada
;*******************************************************************************
exten => s,1,Noop(CHANNEL=${CHANNEL})
exten => s,2,GotoIf($["${CHANNEL}" = "Zap/1-1"]?3:4)
exten => s,3,setvar(FROM_DID=954532615)
exten => s,4,GotoIf($["${CHANNEL}" = "Zap/2-1"]?5:6)
exten => s,5,setvar(FROM_DID=954542759)
exten => s,6,GotoIf($["${CHANNEL}" = "Zap/3-1"]?7:8)
exten => s,7,setvar(FROM_DID=954540599)
exten => s,8,GotoIf($["${CHANNEL}" = "Zap/4-1"]?9:10)
exten => s,9,setvar(FROM_DID=954000000)
exten => s,10,Noop(${FROM_DID})
;*******************************************************************************

El tema es que esto lo tengo hecho en AAH 2.5, pero cuando he ido a
hacerlo en AAH 2.8, los ficheros han cambiado los contextos, aparecen
líneas "exten => s,n,...." que no sé qué significa la n ni como
tratarla.

El tema es que si alguien me puede decir como puedo hacer esto de otra
forma más limpia y que pueda direccionarlo después fácilmente desde
el FreePBX.

Perdón por lo largo del mensaje, pero es la única forma de dejar
claro lo que quiero hacer.


Gracias y saludos,


Juan García

David Prieto

unread,
Jul 12, 2006, 4:59:17 AM7/12/06
to aster...@googlegroups.com

Una linea analógica solo recibe llamadas que vayan dirigidas a ella. Si entra una llamada por una línea, sabes a qué número iba dirigida.

Si en el zapata.conf defines cada linea en un contexto distinto, lo puedes controlar facilmente:

[entradaLinea1]
exten => s,1,NoOp("Entrando por la linea 1")
exten => s,2,setvar(FROM_DID=954532615)
exten => s,3,...

[entradaLinea2]
exten => s,1,NoOp("Entrando por la linea 2")
exten => s,n,setvar(FROM_DID=954542759)
exten => s,n,...


Lo de poner "exten => s,n,..." es la forma de poner las prioridades en asterisk 1.2. El poner "n" significa "next". Y te permite insertar una línea sin tener que cambiar el nº de la prioridad de todas las que vienen detrás.

En el ejemplo que has puesto antes, si quisieras poner al principio del exten => s una linea nueva, tendrías que renumerar todas las siguientes (1,2,3,4,...,8,9,10). Poniendo "n" basta con insertar la línea.

Un saludo
David Prieto
--
Un saludo,
David Prieto

ruben

unread,
Jul 12, 2006, 5:09:35 AM7/12/06
to aster...@googlegroups.com
Buenos días,

¿Se puede hacer esto?

Necesitaría hacer como una cola de llamadas, es decir, que cuando una
llamada salte a la extensión 100, si esta, está con una llamada, que se
quede la otra en espera con musica o algun mensaje de "esta en espera..." y
que cuando la extensión 100 cuelgue la llamada entre la que estaba en
espera.

Gracias


Juan García

unread,
Jul 12, 2006, 5:31:18 AM7/12/06
to aster...@googlegroups.com, David Prieto, jga...@grupo-ondemand.com

David, ante todo gracias por la respuesta.

 

Como ya comentaba, llevo poco tiempo con esto del AAH y no estoy muy puesto con el tema de los contextos, extensiones, etc, etc, etc,…

 

¿Me podrías decir donde meto esas líneas que me pones?

 

¿Las pongo y listo?, ¿no hay que hacer referencia a esos contextos en ningún sitio?

 

Y lo de las líneas “n”, ¿entonces no puedo hacer referencia a ellas en los GotoIf, no?

 

 

 

Saludos y gracias,

 

 

Juan García

 

 

 


Ramses II

unread,
Jul 13, 2006, 7:23:21 AM7/13/06
to asterisk-es
Hola a todos, solucionada la historia y mucho más fácil de lo que se
creia.

Os cuento:

En AAH 2.8, en el fichero "Extensions_Customs.conf" ya aparece lo
siguiente:

[ext-did-custom]
; this will allow calls to be routed by the ZAP channel they come in
on.
; example a call comming in on ZAP cahnnel 1 will have Zap1 for it's
DID.

exten => s,2,GotoIf($["${CHANNEL:0:3}" =
"Zap"]?ext-did|Zap${CHANNEL:4:1}|1)

Con esto, le tuve que cambiar el número de línea de s,2 a s,1 para
que me funcionara.

Entonces, añadimos rutas en "inbound routing" con "Zap1", "Zap2", ....
que queramos identificar en el DID y lo mandamos a donde queramos.
Funciona fantástico.

Savvas

unread,
Jul 13, 2006, 9:31:17 AM7/13/06
to asterisk-es
La mayoria de las lineas son analogicas pero las centrales (Switches )
son de tecnologia digital. El identificador del abonado que llama se
envia entre el primer timbrado y el segundo por lo que si la llamada se
contesta en forma imediata no se logra recibir la identificación
(ANI).


Y aprovechando el correo hay alguno en la lista que tenga un asterisk
en Nicaragua para establecer, una conexión. No formo parte de ninguna
empresa ni tengo llamadas masivas pero quien sabe podría llegar a ser,
Por el momento me interesa buscar un socio de negocio de pequeña
escala, una PC con un par de salidas, para hacer los primeros pasos.

Juan García

unread,
Jul 13, 2006, 12:37:41 PM7/13/06
to aster...@googlegroups.com, saga...@hotmail.com
Gracias Savvas, pero no me refería al número llamante (CID), me refería al
número llamado (DID), que en Analógica no se pasa.

He descrito como lo he conseguido en un post.




Un saludo y gracias,


Juan García

-----Mensaje original-----

nombre de Savvas
Enviado el: jueves, 13 de julio de 2006 15:31
Para: asterisk-es


Asunto: [Asterisk-ES] Re: Enrutar llamadas entrantes según el número al que
estén llamando.

David Prieto

unread,
Jul 14, 2006, 3:17:47 PM7/14/06
to aster...@googlegroups.com

Sobre el tema de numerar las prioridades del dialplan usando "n" y cómo hacías luego el Goto (esto se me olvidó comentártelo), la cosa se haría poniendo etiquetas a cada línea que te interese:


exten => s,1,Noop(CHANNEL=${CHANNEL})
exten => s,n,GotoIf($["${CHANNEL}" = "Zap/1-1"]?esLinea1:noEsLinea1)
exten => s,n( esLinea1),setvar(FROM_DID=954532615)
exten => s,n(noEsLinea1),GotoIf($["${CHANNEL}" = "Zap/2-1"]?5:6)
...

Así puedes insertar líneas por medio y no tienes que revisar todo el código.

Juan García

unread,
Jul 17, 2006, 4:09:58 AM7/17/06
to aster...@googlegroups.com

Ok, muchas gracias David.

 

 

 

Un saludo,

 

 

Juan García

 


De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En nombre de David Prieto
Enviado el: viernes, 14 de julio de 2006 21:18
Para: aster...@googlegroups.com
Asunto: [Asterisk-ES] Re: Enrutar llamadas entrantes según el número al que estén llamando.

Reply all
Reply to author
Forward
0 new messages