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

Jon Bonilla (Manwe) manwe en aholab.ehu.es
Jue Sep 20 07:48:19 CEST 2007


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




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