Re: [eside-ghost] Asterisk, detección de llamadas no exitosas con el SPA3102 y transcoding

Unai Goikoetxeta unai en goikoetxeta.com
Mar Sep 25 16:43:19 CEST 2007


Volviendo al tema de detectar si la RTB está ocupada....  He configurado el
macro para que detecte el estado de la llamada, pero no ocurre nada. Empiezo
a pensar que es imposible detectar si la llamada ha tenido éxito o no usando
la salida PSTN del SPA3102.

He probado, por ejemplo, la siguiente configuración en extensions.conf:

exten => _XX.,1,NoOp(${CALLERID(num)} llamando a ${EXTEN} via RTB)
exten => _XX.,n,Dial(SIP/${EXTEN}@rtb,30,Tt)
exten => _XX.,n,Hangup


Como veís, simplemente llama al telefono marcado por la extensión empleando
sip del modo Dial(SIP/${EXTEN}@rtb,30,Tt). Lo de ${EXTEN}@rtb me lo saqué de
la manga y funciona, aunque no se si hay otra manera mejor.

En cuanto a los 30 segundos para la llamada, estos se pueden llegar a
superar con creces, ya que cuando se realiza la llamada el SPA contesta al
momento, por lo que todos los parámetros configurados en el
extensions.confno sirven para nada.

Si por ejemplo llamo a un móvil no operativo, me sale el mensaje de la
operadora del móvil diciéndome que no esta disponible, y Asterisk no es
capaz de detectar que la llamada no ha tenido éxito.

¿Existe alguna manera de solucionar esto? Me temo que no se puede... y de
poderse, sería configurando algún parámetro raro dentro de la configuración
del SPA.....


On 9/20/07, Saúl Ibarra <saghul en gmail.com> wrote:
>
> 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/
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20070925/12769845/attachment-0001.htm


Más información sobre la lista de distribución eside-ghost