[eside-ghost] Asterisk, detección de llamadas no exitosas con el SPA3102 y transcoding
Iker Sagasti Markina
iker en irontec.com
Jue Sep 27 15:41:00 CEST 2007
Aupi Saul,
Como eres tan atento de estar en Italia en el VON [1] y responder a la
lista???? :-))))
tanto nos quieres?? :-)
[1] http://www.von.com
Saúl Ibarra escribió:
> Después de esa llamada a móvil 'no exitosa', asterisk cualga normal?
>
> El tema es que el SPA3102 no esta pensado para PSTN gateway puro y
> duro, y siempre hace answer... Creo que a Halls le pasó parecido..
>
> El 25/09/07, Unai Goikoetxeta <unai en goikoetxeta.com> escribió:
>> 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.conf
>> no 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
>>>
>>
>> _______________________________________________
>> 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
--
Iker Sagasti Markina
Irontec, Internet y Sistemas sobre GNU/LinuX - http://www.irontec.com
+34 94.404.81.82
Más información sobre la lista de distribución eside-ghost