Re: [eside-ghost] Asterisk, detección de llamadas no exitosas con el SPA3102 y transcoding
Saúl Ibarra
saghul en gmail.com
Jue Sep 20 09:45:31 CEST 2007
El 20/09/07, Unai Goikoetxeta <unai en goikoetxeta.com> escribió:
> Aupa Jon,
>
> Muchas gracias por responder. No tenía muy claro como hacer el dialplan, y
> me lo saqué de la chistera xD Pero ahora que me has dicho eso, lo he
> restructurado para dejarlo así:
>
> [etxea]
>
> exten => _XXX,Dial( SIP/${EXTEN}@rtb,30)
> exten => _112,Dial(SIP/112 en rtb,30)
>
> exten => _XXXX, Dial(SIP/${EXTEN}@rtb,30)
>
> exten => _XXXXX, Dial(SIP/${EXTEN}@rtb,30)
>
> exten => _656008062,1,Goto(1,1)
> exten => _944763299,n,Goto(2,1)
> exten => _XXXXXXXXX,n,Dial(SIP/${EXTEN}@rtb,30)
> exten => _XXXXXXXXX,n,Congestion
>
> exten => 1,1,Dial(SIP/unai,30)
> exten => 1,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?4)
> exten => 1,n,Dial( SIP/6561111111 en rtb,30)
> exten => 1,n,Goto(6,1)
> exten => 1,n,PlayBack(vm-goodbye)
> exten => 1,n,Hangup
>
> exten => 2,1,Dial(SIP/etxea,30)
> exten => 2,n,Goto(7,1)
> exten => 2,n,PlayBack(vm-goodbye)
> exten => 2,n,Hangup
>
> exten => 5,1,VoicemailMain(${CALLERID(num)}@buzondevoz)
> exten => 5,n,Hangup
>
> exten => 6,1,Voicemail(656111111 en buzondevoz)
> exten => 6,n,Hangup
>
> exten => 7,1,Voicemail(944761111 en buzondevoz)
> exten => 7,n,Hangup
>
> Sobre la variable ${DIALSTATUS}, probé a ponerlo ayer detrás de la directiva
> (1,3) pero no me detectaba ni busy ni congestion.... Si tenéis alguna
> sugerencia sobre como ponerlo me haríais un gran favor :)
>
Para las llamadas a los dispositivos SIP y tal, una macro (normalita jeje):
[macro-llamar]
exten => s,1,Dial(${ARG1},30,Tt)
exten => s,n,Goto(s-${DIALSTATUS})
exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}|b)
exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN}|u)
exten => _s-.,1,Goto(s-NOANSWER,1)
Y en el dialplan pones:
exten => 2,1,Macro(llamar,SIP/etxea)
> En cuanto al transcoding, lo preguntaba porque Saúl ayer me recomendó
> hacerlo. Según te he entendido, tengo que poner en cada usuario el tipo de
> codec preferido para él, ¿no? ¿De esta manera, si tengo un codec para el
> usuario a y otro distinto para el b, las comunicaciones del a al asterisk
> serán empleando el primer codec y las del b al asterisk serán con el
> segundo? Quisiera preguntaros sobre qué codec debería utilizar... en el
> SPA3102 utilizo el g729a, que me he fijado que no lo tengo soportado por
> asterisk....
>
Umm, yo te recomendé lo contrario :) que no hagas transcodign, para no
cargar la máquina... Asterisk de serie no soporta transcoding de g729,
pero todo se puede arreglar :) puedes bajarte el codec para fines
educativos de http://asterisk.hosting.lv y así podrás transcodificar
:)
Por otro lado, vas a utilizar softphones y tal, pero con g729 no los
hay ni libres ni gratis, así que lo suyo es usar Zoiper y el codec GSM
por ejemplo. Entonces, lo mejor será que configures el SPA en alaw,
porque el transcoding tiene menor coste. No obstante, en el PAP2
tendrás que configurar el g729 para que no te consuma mucho ancho de
banda, así que instalate el codec del link que te he puesto.
Happy Asterisk hacking!
> Muchas gracias!!
>
> Unai
>
> PD:
>
> Me piro a Galicia en dos horas y puede que no pueda contestaros con rapidez.
> Pero en cuanto tenga un momento, chequearé el correo :)
>
>
>
> On 9/20/07, Manwe Jon Bonilla <manwe en aholab.ehu.es> wrote:
> >
> > El Thu, 20 Sep 2007 03:31:26 +0200
> > "Unai Goikoetxeta" <unai en goikoetxeta.com> escribió:
> >
> > > Bueno, ya he configurado el PAPT y el SPA3102 y he de decir que funciona
> > > todo de maravilla. Quisiera consultaros un par de dudas en base a mi
> > > dialplan en Asterisk:
> > >
> > > [etxea]
> > >
> > > exten => _XXXXXXXXX,1,GotoIf($["${EXTEN}" =
> "656111111"]?5)
> > > exten => _XXXXXXXXX,2,GotoIf($["${EXTEN}" =
> "944761111"]?6)
> > > exten => _XXXXXXXXX,3,Dial(SIP/${EXTEN}@rtb,30)
> > > exten => _XXXXXXXXX,4,Congestion
> > > exten => _XXXXXXXXX,5,Goto(1,1)
> > > exten => _XXXXXXXXX,6,Goto(2,1)
> > >
> > > exten => 1,1,Dial(SIP/unai,30)
> > > exten => 1,2,GotoIf($["${DIALSTATUS}" = "BUSY"]?4)
> > > exten => 1,3,Dial(SIP/6561111111 en rtb ,30)
> > > exten => 1,4,Goto(6,1)
> > > exten => 1,5,PlayBack(vm-goodbye)
> > > exten => 1,6,Hangup
> > >
> > > exten => 2,1,Dial(SIP/etxea,30)
> > > exten => 2,2,Goto(7,1)
> > > exten => 2,3,PlayBack(vm-goodbye)
> > > exten => 2,4,Hangup
> > >
> > > exten => 5,1,VoicemailMain(${CALLERID(num)}@buzondevoz)
> > >
> > > exten => 6,1,Voicemail(656111111 en buzondevoz)
> > > exten => 6,2,Hangup
> > >
> > > exten => 7,1,Voicemail( 944761111 en buzondevoz)
> > > exten => 7,2,Hangup
> > >
> > > Como veis, he hecho una regla general para todos los teléfonos de 9
> cifras,
> > > sobre los que filtro mi numero de teléfono y el de casa, para los que
> hago
> > > un tratamiento especial. En el caso de mi número, primero intento
> contactar
> > > vía SIP con mi usuario durante 30 segundos, y de no poder hacerlo llamo
> a mi
> > > teléfono móvil. Si el usuario sip rechaza la llamada, se salta el
> > > contestador... pero si no la rechaza, se realiza la llamada al móvil, y
> > > aunque esta no sea exitosa, no salta el contestador. ¿Hay alguna manera
> de
> > > hacer que Asterisk detecte una llamada fallida en este caso?
> >
> > Vamos por partes:
> >
> > Las dos primeras líneas que has puesto son imaginativas pero no son la
> manera
> > correcta de filtrar números. Cuando tienes varias plantillas dentro de una
> > extensión, asterisk usa siempre la menos ambigua que coincida con la
> extensión
> > que marcas. Ejemplo:
> >
> > exten => _XXX,NoOp(Llamada de 3 cifras)
> > exten => _1XX,NoOp(Llamada al ciento algo)
> > exten => _112,NoOp(Emergencias)
> >
> > Si marcas el 300 solo el primer patrón coincide y esta claro que ese se
> usa.
> > Si llamases al 150 los dos primeros patrones son válidos pero se usa el
> > segundo por ser menos ambiguo. Y en el caso de llamar al 112 se usaría el
> > tercero por la misma razón.
> >
> > exten => 656111111,1,
> > ...
> > exten => 944761111,1,
> > ...
> > exten => _XXXXXXXXX,1
> > ...
> >
> > Otra cosa: Las prioridades las marcas 1,2,3,... y es correcto pero poco
> > flexible ya que si quieres meter cosas en medio tienes que renombrarlas
> todas.
> > Se usa 1,n,n,n,n,... que es mucho más cómodo.
> >
> >
> > Respecto a lo de detectar las llamadas fallidas y tal te puedo decir cómo
> lo
> > trataría yo pero cuando Saul se despierte va a mandar seguro una macro
> enorme
> > que contemple todas las posibilidades :)
> >
> > Si quieres algo refinado lo mejor es que uses una macro que contemple las
> > posibilidades en función de la variable ${DIALSTATUS} y te permitirá
> > diferenciar entre noanswer, busy...etc
> >
> >
> >
> > > Por otro lado, quería preguntaros alguna sugerencia para mejorar el
> dialplan
> > > y sobre como puedo realizar transcoding para lograr mejor calidad en la
> > > conversación.
> > >
> >
> > algunas mejoras ya te las he sugerido. En cuanto al trascoding, asterisk
> lo
> > realiza para poder comunicar los canales si usan diferentes codecs. Para
> > mejorar la calidad de audio solo tienes que decir al uusario que use
> mejores
> > codecs. Puede que no hay entendido esta parte...
> >
> >
> >
> > Un saludo
> >
> >
> >
> > _______________________________________________
> > eside-ghost mailing list
> > eside-ghost en deusto.es
> > https://listas.deusto.es/mailman/listinfo/eside-ghost
> >
>
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
--
Saúl -- "Nunca subestimes el ancho de banda de un camión lleno de disketes."
----------------------------------------------------------------
http://www.saghul.net/
Más información sobre la lista de distribución eside-ghost