Cursos Asterisk en México

Dirigir llamadas a extensiones

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Dirigir llamadas a extensiones

    Hola amigos, estoy usando asterisk@home, he colocado una tdmo4b con 4 fxo, y todo funciona perfecto. Pero lo que yo quiero hacer es conectar 4 extensiones de una centralita a estos puertos y que cuando llame al zap1 llame a la ext201 de *, que cuando llame al zap2 desvie la llamada a la ext202 y así con las cuatro lineas. Tambien que cuando llame desde la ext201 use el zap1, desde la ext202 el zap2 y así sucesivamente.
    No se que debo poner en zapata.conf y extension.conf, gracias.

  • #2
    Busca de poner a aca canal de la fxo en un ocntexto diferente dentro del zapata.conf. Dentro del mismo zapata tenes ejemplos.

    Comentario


    • #3
      Gracias Sokaris, pero aun no lo tengo muy claro. En zapata.conf tengo esto.

      ;
      ; Zapata telephony interface
      ;
      ; Configuration file

      [trunkgroups]

      [channels]

      language=en
      context=from-pstn
      signalling=fxs_ks
      rxwink=300 ; Atlas seems to use long (250ms) winks
      ;
      ; Whether or not to do distinctive ring detection on FXO lines
      ;
      ;usedistinctiveringdetection=yes

      usecallerid=yes
      hidecallerid=no
      callwaiting=yes
      usecallingpres=yes
      callwaitingcallerid=yes
      threewaycalling=yes
      transfer=yes
      cancallforward=yes
      callreturn=yes
      echocancel=yes
      echocancelwhenbridged=no
      echotraining=800
      rxgain=0.0
      txgain=0.0
      group=0
      callgroup=1
      pickupgroup=1
      immediate=no

      ;faxdetect=both
      faxdetect=incoming
      ;faxdetect=outgoing
      ;faxdetect=no

      ;Include genzaptelconf configs
      #include zapata-auto.conf

      ;Include AMP configs
      #include zapata_additional.conf


      Pero tambien tengo un zapata-auto.conf que pone esto:

      ; Autogenerated by /usr/local/sbin/genzaptelconf -- do not hand edit
      ; Zaptel Channels Configurations (zapata.conf)
      ;
      ; This is not intended to be a complete zapata.conf. Rather, it is intended
      ; to be #include-d by /etc/zapata.conf that will include the global settings
      ;
      callerid=asreceived

      ; Span 1: WCTDM/0 "Wildcard TDM400P REV I Board 1"
      signalling=fxs_ks
      ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 1
      context=from-pstn
      group=0
      channel => 1

      signalling=fxs_ks
      ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 2
      context=from-pstn
      group=0
      channel => 2

      signalling=fxs_ks
      ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 3
      context=from-pstn
      group=0
      channel => 3

      signalling=fxs_ks
      ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 4
      context=from-pstn
      group=0
      channel => 4

      Es aquí donde tengo que cambiar el contexto ?
      Es normal que ponga "signalling=fxs_ks" o deberia poner fxo ?

      perdonad mi ignorancia pero estoy hecho un lio.

      Gracias.

      Comentario


      • #4
        No habia leido lo del asterisk@home, no lo conozco... pero lo que yo te digo es esto:

        signalling=fxs_ks
        ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 4
        context=from-pstn
        group=0
        channel => 4

        Donde dice context, que pongas otro contexto diferente NO el mismo para los 4. Entonces cada ves que llegue una llamada va a ir a buscar a ese contexto dentro del extension.conf. Luego ahi dentro tendras 4 contextos por cada canal (por ej pstn1/2/3/4) y ahi mismo el interno que quieres responda por ejemplo el 101 para el channel 1 (pstn1) y asi sucesivamente. Con eso lograras que la llamada llegue a un interno determinado.

        Perdoname si no puedo ponerte ejemplo mas claros, pero no conozco las tarjetas FXO ni el *@home...

        Espero te alla ayudado algo.
        Saludos

        PD: si alguien sabe realmente, q me corriga depaso aprendo... jee.. =)

        Comentario


        • #5
          Gracias Sokaris, por supuesto que me ha servido y de mucho. Ya he resuelto el tema de dirigir las llamadas a las extensiones del *. Para ello he modificado el contexto en zapata-auto.conf

          ; Autogenerated by /usr/local/sbin/genzaptelconf -- do not hand edit
          ; Zaptel Channels Configurations (zapata.conf)
          ;
          ; This is not intended to be a complete zapata.conf. Rather, it is intended
          ; to be #include-d by /etc/zapata.conf that will include the global settings
          ;
          callerid=asreceived

          ; Span 1: WCTDM/0 "Wildcard TDM400P REV I Board 1"
          signalling=fxs_ks
          ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 1
          context=zapa1
          group=0
          channel => 1

          signalling=fxs_ks
          ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 2
          context=zapa2
          group=0
          channel => 2

          signalling=fxs_ks
          ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 3
          context=zapa3
          group=0
          channel => 3

          signalling=fxs_ks
          ; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 4
          context=zapa4
          group=0
          channel => 4


          Y despues leyendo por el foro he encontrado una respuesta de Boquita (grande boca), que explicaba lo que habia que poner en extension.conf, y he agregado estas lineas:

          [zapa1]
          exten => s,1,Dial(SIP/201) ;dirige llamada zap1 al 201

          [zapa2]
          exten => s,1,Dial(SIP/202) ;dirige llamada zap2 al 202

          [zapa3]
          exten => s,1,Dial(SIP/203) ;dirige llamada zap3 al 203

          [zapa4]
          exten => s,1,Dial(SIP/204) ;dirige llamada zap4 al 204


          y todo bien, pero ahora quiero que hagalo contrario, osea que cuando uso la ext201, esta llame por el zap1. Para ello y siguiendo con lo que escribio Boquita dice:

          ""y para llamar hacia la central telefonica
          [contexto de los tel sip]
          exten => xx,1,Dial(Zap/1(${EXTEN})""

          He cambiado el contexto de las extensiones, y he introducido esta linea en extension.conf, pero no se si tengo que cambiar algun valor como por ejemplo las xx por que de momento no me funciona. Lo que he puesto es esto:

          [sip1]
          exten => xx,1,Dial(Zap/1(${EXTEN})

          [sip2]
          exten => xx,1,Dial(Zap/2(${EXTEN})

          [sip3]
          exten => xx,1,Dial(Zap/3(${EXTEN})

          [sip4]
          exten => xx,1,Dial(Zap/4(${EXTEN})

          Muchas gracias a todos.

          Comentario


          • #6
            Bueno pues seguimos investigando, y de paseo por otro foro me he encontrado con esto, escrito por "cleaves"

            ""Re: llamadas externas
            exten => _9XXXXXXXX,1,Dial(Zap/1/${EXTEN})

            lo que significa...

            _ = el comienzo de un patron
            9 = el digito 9 (facil)
            X = cualquier digito 0-9
            ${EXTEN} = un variable con el numero exacto marcado

            entonces el patron arriba dice que mande cualquier numero marcado de 9 digitos (el 9 mas 8 X) que comienze con 9 por el canal ZAP ""

            Bien pues hecho esto, lo que pasa es que cuando marco un numero 9xxxxxxxx, me devuelve el tono del zap1, y despues puedo marcar cualquier numero. Puedo acortar el patron y poner "_9" y que cuando marque el nueve me devuelva el tono, pero ¿hay alguna forma de hacerlo sin tener que esperar un tono, osea que marque el numero de 9 digitos y ya esta ?

            Saludos.

            Comentario


            • #7
              A ver si te entendi bien, digamos que marques y directamente tome al PSTN?? si es so, solo tenes que poner asi:

              exten => _[4-6]XXXXXXX,1,Dial(Zap/1/${EXTEN})

              Esto lo que hace es que cuando vos ingreses 4,5 o6 seguido de en este caso de 7 digitos, lo mande a Zap 1. Te recomiendo que lo tengas en un contexto aparte y lo incluyas dentro del que corresponda para cada interno.
              Otro dato es qeu si por ejemplo vos queres una clave delante del numero a marcar como es el caso del 9, entonces lo que podes hacer es esto:

              exten => _9XXXXXXXX,1,Dial(Zap/1/${EXTEN:1})

              Ese ":1" lo que hace es borrar el primer digito, eso lo podes hacer con la cantidad q quieras.

              Espero te haya servido, saludos

              Sokaris

              PD: Sos bostero?

              Comentario


              • #8
                je, je, no sokaris ni bostero, ni gallina solo un "gallego" que tuvo el gran privilegio de vivir durante 7 años en distintos lugares del sur Argentino, pero mi mujer si es bostera ja , ja ....

                Bueno volviendo al tema no se porque lo maximo que consigo es que me devuelva el tono de pstn.
                Cuando pongo esta linea

                exten => _[4-6]XXXXXXX,1,Dial(Zap/1/${EXTEN})

                Lo que hace es que cuando marco un numero que empieza 4,5 o 6 y las cifras siguientes, me devuelve el tono de pstn que tengo en zap1 y despues puedo marcar, Pero lo que yo quiero es que cuando marque por ejemplo el 968070104 en la extension este automaticamente se marque en el zap1. Tambien he probado asi

                exten => _9XXXXXXXXX,1,Dial(Zap/1/${EXTEN:1})

                Aunque tenga que marcar un nueve delante me da igual, pero el resultado es el mismo, siempre me da el tono pstn. Lo que pasa es que tengo que conectar un equipo que marca automaticamente, y a este no le puedo decir que marque un nueve y haga una pausa y despues marque el numero.

                Saludos.

                Comentario


                • #9
                  Okey entendi, lo que quieres es que directamente marque y salga.... mmm... me parece que ahora tendrias que buscar algo con los AGI, porque no se si se puede. Encima lamentablemante no vi nada de AGI todavia, sorry... Por ahi te puede ayudar alguien mas.... si se me ocurre algo te aviso....

                  Saludos

                  Comentario


                  • #10
                    Bueno amigos por fin lo he conseguido, lo que hay que hacer es crear 4 outboun routing iguales y que cada uno salga por un canal diferente en el zap, y despues incluir en extensions.conf la linea que te genera pero con el contexto del sip. A continuacion resumo lo que he tenido que incluir en extensions.conf para que funcione.

                    [zapa1]
                    exten => s,1,Dial(SIP/301) ;dirige llamada zap1 al 301

                    [zapa2]
                    exten => s,1,Dial(SIP/302) ;dirige llamada zap2 al 302

                    [zapa3]
                    exten => s,1,Dial(SIP/303) ;dirige llamada zap3 al 303

                    [zapa4]
                    exten => s,1,Dial(SIP/304) ;dirige llamada zap4 al 304


                    [sip1]
                    include => outrt-001-ruta1-custom
                    exten => _xxxxxxxxx,1,Macro(dialout-trunk,1,${EXTEN},)
                    exten => _xxxxxxxxx,2,Macro(outisbusy) ; No available circuits

                    [sip2]
                    include => outrt-002-ruta2-custom
                    exten => _xxxxxxxxx,1,Macro(dialout-trunk,2,${EXTEN},)
                    exten => _xxxxxxxxx,2,Macro(outisbusy) ; No available circuits

                    [sip3]
                    include => outrt-003-ruta3-custom
                    exten => _xxxxxxxxx,1,Macro(dialout-trunk,3,${EXTEN},)
                    exten => _xxxxxxxxx,2,Macro(outisbusy) ; No available circuits

                    [sip4]
                    include => outrt-004-ruta4-custom
                    exten => _xxxxxxxxx,1,Macro(dialout-trunk,4,${EXTEN},)
                    exten => _xxxxxxxxx,2,Macro(outisbusy) ; No available circuits


                    Los outboun routing son ruta1, ruta2, ruta3, y ruta4

                    Me gustaria poder explicar lo que significan estas ultimas lineas, pero como soy "supernovato"..... Pero creo que quiere decir que cuando marque cualquier numero de 9 cifras, este lo mande al outboun que corresponde y como este tiene asignado un canal, pues entonces marca directamente.(joder si sigo explicandolo al final ni yo mismo me entiendo)

                    Muchas gracias Sokaris por tu ayuda.

                    Saludos.

                    Comentario


                    • #11
                      No hay de que, aunque no se si te ayude mucho pero lo intente.
                      Ahora podrias pasarme si podes las 2 macros que nombras?? y tb el include q mencionas, asi de paso queda mejor registrado todo.

                      Saludos y me alegra que lo hayas solucionado.

                      Sokaris

                      Comentario


                      • #12
                        Hola Sokaris, veras yo estoy usando una version de asterisk@home, primero lo hice con la version 2.0 beta6, ycomo tenia problemas con el flash panel, volvi a formatear e instalar de nuevo pero esta vez la version estable 1.5. Bien lo que hice fue crear 4 outbound iguales. En la version AAH el solo te genera los parametros, entonces buscando me di cuenta que en extensions_additional.conf me generaba estas lineas

                        [globals]
                        VM_PREFIX = *
                        RINGTIMER = 15
                        REGTIME = 7:55-17:05
                        REGDAYS = mon-fri
                        RECORDEXTEN = ""
                        PARKNOTIFY = SIP/200
                        OUT_4 = ZAP/4
                        OUT_3 = ZAP/3
                        OUT_2 = ZAP/2
                        OUT_1 = ZAP/1
                        OUTPREFIX_4 =
                        OUTPREFIX_3 =
                        OUTPREFIX_2 =
                        OUTPREFIX_1 =
                        OUTMAXCHANS_4 = 1
                        OUTMAXCHANS_3 = 1
                        OUTMAXCHANS_2 = 1
                        OUTMAXCHANS_1 = 1
                        OUTCID_4 = zap4
                        OUTCID_3 = zap3
                        OUTCID_2 = zap2
                        OUTCID_1 = zap1
                        OPERATOR =
                        NULL = ""
                        IN_OVERRIDE = forcereghours
                        INCOMING = group-all
                        FAX_RX_EMAIL = fax@mydomain.com
                        FAX_RX = system
                        FAX =
                        E304 = SIP
                        E303 = SIP
                        E302 = SIP
                        E301 = SIP
                        DIRECTORY_OPTS =
                        DIRECTORY = last
                        DIAL_OUT = 9
                        DIAL_OPTIONS = tr
                        DIALOUTIDS = 1/2/3/4/
                        CALLFILENAME = ""
                        AFTER_INCOMING =

                        [ext-local]
                        include => ext-local-custom
                        exten => 301,1,Macro(exten-vm,novm,301)
                        exten => 302,1,Macro(exten-vm,novm,302)
                        exten => 303,1,Macro(exten-vm,novm,303)
                        exten => 304,1,Macro(exten-vm,novm,304)

                        [outbound-allroutes]
                        include => outbound-allroutes-custom
                        include => outrt-001-ruta1
                        include => outrt-002-ruta2
                        include => outrt-003-ruta3
                        include => outrt-004-ruta4

                        [outrt-001-ruta1]
                        include => outrt-001-ruta1-custom
                        exten => _xxx,1,Macro(dialout-trunk,1,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [outrt-002-ruta2]
                        include => outrt-002-ruta2-custom
                        exten => _xxx,1,Macro(dialout-trunk,2,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [outrt-003-ruta3]
                        include => outrt-003-ruta3-custom
                        exten => _xxx,1,Macro(dialout-trunk,3,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [outrt-004-ruta4]
                        include => outrt-004-ruta4-custom
                        exten => _xxx,1,Macro(dialout-trunk,4,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        Bueno fijate que ahora es _xxx porque son tres los numeros de extension de la centralita a la que voy a conectar. Entonces se me ocurrió el copiar estas lineas pero cambiando el contexto en extensions.conf

                        [sip1]
                        include => outrt-001-ruta1-custom
                        exten => _xxx,1,Macro(dialout-trunk,1,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [sip2]
                        include => outrt-002-ruta2-custom
                        exten => _xxx,1,Macro(dialout-trunk,2,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [sip3]
                        include => outrt-003-ruta3-custom
                        exten => _xxx,1,Macro(dialout-trunk,3,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        [sip4]
                        include => outrt-004-ruta4-custom
                        exten => _xxx,1,Macro(dialout-trunk,4,${EXTEN},)
                        exten => _xxx,2,Macro(outisbusy) ; No available circuits

                        Y entonces funciona a la perfeccion, es una punto a punto entre el zap y el sip perfecta. Hoy durante todo el dia he estado haciendo pruebas y funciona de maravilla.

                        A continuacion te pongo la macro, pero no tengo ni idea de lo que es, como te dije antes solo hice copy&paste

                        [macro-dialout-trunk]
                        exten => s,1,GotoIf($[foo${ARG3} = foo]?3:2)) ; arg3 is pattern password
                        exten => s,2,Authenticate(${ARG3})
                        exten => s,3,Macro(record-enable,${CALLERIDNUM},OUT)
                        exten => s,4,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?7) ;check for CID override for exten
                        exten => s,5,SetCallerID(${ECID${CALLERIDNUM}})
                        exten => s,6,Goto(9)
                        exten => s,7,GotoIf($[foo${OUTCID_${ARG1}} = foo]?9) ;check for CID override for trunk
                        exten => s,8,SetCallerID(${OUTCID_${ARG1}})
                        exten => s,9,SetGroup(OUT_${ARG1})
                        exten => s,10,CheckGroup(${OUTMAXCHANS_${ARG1}})
                        ; if we've used up the max channels, continue at 109 (n+101)
                        exten => s,11,SetVar(DIAL_NUMBER=${ARG2})
                        exten => s,12,SetVar(DIAL_TRUNK=${ARG1})
                        exten => s,13,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk
                        exten => s,14,SetVar(OUTNUM=${OUTPREFIX_${ARG1}}${DIAL_NUMB ER}) ; OUTNUM is the final dial number
                        exten => s,15,Cut(custom=OUT_${ARG1},:,1) ; Custom trunks are prefixed with "AMP:"
                        exten => s,16,GotoIf($[${custom} = AMP]?19)
                        exten => s,17,Dial(${OUT_${ARG1}}/${OUTNUM}) ; Regular Trunk Dial
                        exten => s,18,Goto(s-${DIALSTATUS},1)

                        ; This is a custom trunk. Substitute $OUTNUM$ with the actual number and rebuild the dialstring
                        ; example trunks: "AMP:CAPI/XXXXXXXX:b$OUTNUM$,30,r", "AMP:OH323/$OUTNUM$@XX.XX.XX.XX:XXXX"
                        exten => s,19,Cut(pre_num=OUT_${ARG1},$,1)
                        exten => s,20,Cut(the_num=OUT_${ARG1},$,2) ; this is where we expect to find string OUTNUM
                        exten => s,21,Cut(post_num=OUT_${ARG1},$,3)
                        exten => s,22,GotoIf($[${the_num} = OUTNUM]?23:24) ; if we didn't find "OUTNUM", then skip to Dial
                        exten => s,23,SetVar(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial
                        exten => s,24,Dial(${pre_num:4}${the_num}${post_num})
                        exten => s,25,Goto(s-${DIALSTATUS},1)

                        exten => s,111,Noop(max channels used up)
                        exten => s-BUSY,1,NoOp(Trunk is reporting BUSY)
                        exten => s-BUSY,2,Busy()
                        exten => s-BUSY,3,Wait(60)
                        exten => s-BUSY,4,NoOp()

                        exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS})

                        ; Adds a dynamic agent/member to a Queue
                        ; Prompts for call-back number - in not entered, uses CIDNum


                        Espero que te sirva, pero si no, dimelo y te explico paso a paso como lo he hecho con AAH 1.5.

                        Saludos.

                        Comentario

                        Principales Usuarios Activos

                        Colapsar

                        No hay usuarios activos superiores.
                        Trabajando...
                        X