Opciones en Correo de Voz

Discussion in 'Elastix 2.x' started by ElasMex, Apr 19, 2008.

  1. ElasMex

    Joined:
    Oct 22, 2007
    Messages:
    493
    Likes Received:
    0
    Hola amigos

    Me pueden ayudar?

    Hacer que el correo de voz me de un saludo diferente cuando esta ocupado o no disponible y tenga las opciones siguientes:

    Marque uno para dejar mensaje.

    Marque dos para comunicarse a otra extensión en este caso a un IVR.

    Tres que me comunique con la operadora.

    Y si no marca nada que se dirija al correo de voz.

    Espero me puedan ayudar comunidad.

    Tengo un contesto que encontré pero no se donde colocarlo.... Espero que les sirva alguien mas este diseño.

    Sería buena idea colocarlo como función en el sistema.

    [ivr-VM-Option]
    include => ext-findmefollow
    include => ext-local
    include => app-directory
    exten => #,1,Goto(app-directory,#,1)
    exten => h,1,Hangup
    exten => s,1,Set(LOOPCOUNT=0)
    exten => s,n,Set(__DIR-CONTEXT=default)
    exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
    exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
    exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
    exten => s,n,Answer
    exten => s,n,Wait(1)
    exten => s,n(begin),Set(TIMEOUT(digit)=3)
    exten => s,n,Set(TIMEOUT(response)=10)
    exten => s,n,Background(custom/OpcionBuzon)
    exten => s,n,WaitExten()
    exten => hang,1,Playback(vm-goodbye)
    exten => hang,n,Hangup
    exten => 0,1,dbDel(${BLKVM_OVERRIDE})
    exten => 0,n,Set(__NODEST=)
    exten => 0,n,Goto(ext-local,100,1)
    exten => 1,1,dbDel(${BLKVM_OVERRIDE})
    exten => 1,n,Set(__NODEST=)
    exten => 1,n,Set(ARG1=${VMBOX})
    exten => 1,n,Goto(macro-vm,s-${DIALSTATUS},2)
    exten => 2,1,dbDel(${BLKVM_OVERRIDE})
    exten => 2,n,Set(__NODEST=)
    exten => 2,n,Goto(ivr-Other-Extension,s,1)
    exten => i,1,Playback(invalid)
    exten => i,n,Goto(loop,1)
    exten => t,1,Goto(loop,1)
    exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
    exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?hang,1)
    exten => loop,n,Goto(ivr-VM-Option,s,begin)
    exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
    exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
    exten => return,n,Goto(ivr-VM-Option,s,begin)
    exten => fax,1,Goto(ext-fax,in_fax,1)

    ; end of [ivr-VM-Option]

    [ivr-Other-Extension]
    include => ext-findmefollow
    include => ext-local
    include => app-directory
    ;include => from-internal
    exten => #,1,Goto(app-directory,#,1)
    exten => h,1,Hangup
    exten => s,1,Set(LOOPCOUNT=0)
    exten => s,n,Set(__DIR-CONTEXT=default)
    exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
    exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
    exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
    exten => s,n,Answer
    exten => s,n,Wait(1)
    exten => s,n(begin),Set(TIMEOUT(digit)=5)
    exten => s,n,Set(TIMEOUT(response)=20)
    exten => s,n,Background(custom/OtraExtension)
    exten => s,n,WaitExten()
    exten => hang,1,Playback(vm-goodbye)
    exten => hang,n,Hangup
    exten => t,1,dbDel(${BLKVM_OVERRIDE})
    exten => t,n,Set(__NODEST=)
    exten => t,n,Goto(ivr-Other-Extension,s,begin)
    exten => i,1,Playback(invalid)
    exten => i,n,Goto(loop,1)
    exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
    exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?hang,1)
    exten => loop,n,Goto(ivr-Other-Extension,s,begin)
    exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
    exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
    exten => return,n,Goto(ivr-Other-Extension,s,begin)
    exten => fax,1,Goto(ext-fax,in_fax,1)

    ; end of [ivr-Other-Extension
     
  2. ElasMex

    Joined:
    Oct 22, 2007
    Messages:
    493
    Likes Received:
    0
    Hola a Todos

    Ya tengo solucionado la función de opciones de correo de voz.

    Voy a realizar unos cambios mas y lo pongo al publico...


    Saludos a mi.. :)
     
  3. vlad

    Joined:
    Nov 15, 2007
    Messages:
    86
    Likes Received:
    0
    Estamos esperando =P
     
  4. ElasMex

    Joined:
    Oct 22, 2007
    Messages:
    493
    Likes Received:
    0
    Saludos

    Ya tengo el contexto de las opciones de buzón.

    - Primero hay que entrar al archivo /etc/asterisk/extension_custom.conf y colocar los siguiente:
    [VMOption]
    include => app-directory
    exten => #,1,Goto(app-directory,#,1)
    exten => h,1,Hangup
    exten => s,1,Set(LOOPCOUNT=0)
    exten => s,n,Set(__DIR-CONTEXT=default)
    exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
    exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
    exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
    exten => s,n,Answer
    exten => s,n,Wait(0)
    exten => s,n(begin),Set(TIMEOUT(digit)=5)
    exten => s,n,Set(TIMEOUT(response)=5)
    exten => s,n,Background(custom/OpcionBuzon)
    exten => s,n,WaitExten()
    exten => hang,1,Playback(vm-goodbye)
    exten => hang,n,Hangup
    exten => 0,1,dbDel(${BLKVM_OVERRIDE})
    exten => 0,n,Set(__NODEST=)
    exten => 0,n,Goto(ext-local,100,1)
    exten => 1,1,dbDel(${BLKVM_OVERRIDE})
    exten => 1,n,Set(__NODEST=)
    exten => 1,n,Set(ARG1=${VMBOX})
    exten => 1,n,Goto(macro-vm,s-${DIALSTATUS},2)
    exten => 2,1,dbDel(${BLKVM_OVERRIDE})
    exten => 2,n,Set(__NODEST=)
    exten => 2,n,Goto(OtherExtension,s,1)
    exten => i,1,Playback(invalid)
    exten => i,n,Goto(loop,1)
    exten => t,1,Goto(loop,1)
    exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
    exten => loop,n,GotoIf($[${LOOPCOUNT} > 1]?hang,1)
    exten => loop,n,Goto(VMOption,s,begin)
    exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
    exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
    exten => return,n,Goto(VMOption,s,begin)
    exten => fax,1,Goto(ext-fax,in_fax,1)

    ; end of [VMOption]

    [OtherExtension]
    include => ext-findmefollow
    include => ext-local
    include => app-directory
    exten => #,1,Goto(app-directory,#,1)
    exten => h,1,Hangup
    exten => s,1,Set(LOOPCOUNT=0)
    exten => s,n,Set(__DIR-CONTEXT=default)
    exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
    exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
    exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
    exten => s,n,Answer
    exten => s,n,Wait(1)
    exten => s,n(begin),Set(TIMEOUT(digit)=5)
    exten => s,n,Set(TIMEOUT(response)=5)
    exten => s,n,Background(custom/OtraExtension)
    exten => s,n,WaitExten()
    exten => hang,1,Playback(vm-goodbye)
    exten => hang,n,Hangup
    exten => i,1,Playback(invalid)
    exten => i,n,Goto(loop,1)
    exten => t,1,Goto(loop,1)
    exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
    exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?hang,1)
    exten => loop,n,Goto(OtherExtension,s,begin)
    exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
    exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
    exten => return,n,Goto(OtherExtension,s,begin)
    exten => fax,1,Goto(ext-fax,in_fax,1)

    ; end of [OtherExtension]

    - Segundo hay que agregar las grabaciones en Recording vía Web de
    * OpcionBuzon
    * OtraExtension
    Nota: No es necesario el mismo nombre para los mensajes.

    - Tercero Entrar al archivo /etc/asterisk/extensions.conf, ubicamos el contesto [macro-vm] y nos ubicamos en:
    ;**********************************
    exten => s-BUSY,1,Goto(VMOption,s,1)
    ;**********************************
    exten => s-BUSY,2,NoOp(BUSY voicemail)
    exten => s-BUSY,n,Macro(get-vmcontext,${ARG1})
    exten => s-BUSY,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}) ; Voicemail Busy message
    exten => s-BUSY,n,Goto(exit-${VMSTATUS},1)

    exten => s-NOMESSAGE,1,NoOp(NOMESSAGE (beeb only) voicemail)
    exten => s-NOMESSAGE,n,Macro(get-vmcontext,${ARG1})
    exten => s-NOMESSAGE,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}${VMGAIN}) ; Voicemail Busy message
    exten => s-NOMESSAGE,n,Goto(exit-${VMSTATUS},1)

    ;**********************************
    exten => s-DIRECTDIAL,1,Goto(VMOption,s,1)
    ;**********************************
    exten => s-DIRECTDIAL,2,NoOp(DIRECTDIAL voicemail)
    exten => s-DIRECTDIAL,n,Macro(get-vmcontext,${ARG1})
    exten => s-DIRECTDIAL,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN})
    exten => s-DIRECTDIAL,n,Goto(exit-${VMSTATUS},1)

    ;**********************************
    exten => _s-.,1,Goto(VMOption,s,1)
    ;**********************************
    exten => _s-.,2,Macro(get-vmcontext,${ARG1})
    exten => _s-.,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) ; Voicemail Unavailable message
    exten => _s-.,n,Goto(exit-${VMSTATUS},1)

    Hay que colocar lo que esta en *

    espero les sirva, se aceptan actualizaciones o una mejor forma de darle opciones al buzón de los usuarios.
     

Share This Page