> Te cuento Raúl,
>
>
> - Los módulos en principio los tengo todos cargados con un autoload=yes, de
> hecho deberÃa de pensar en desactivar alguno.
Siempre es preferible tener cargado solo lo que se usa, mas que nada, porque hay
varios módulos que per-sé están cascados ... ya ni te cuento los que no se
llevan bien entre ellos.
> - Cuando me dices que configure el preference order de los terminales a
> g729 te refieres tanto en el SIP.conf como en el propio terminal ¿no?
> Actualmente en mis terminales VOIP(en este caso en concreto en mi gateway
> FXS) como primera opción de codec de audio tengo el alaw, asà que si esto
> afecta a pesar de que en el SIP.conf le diga que la primera opción sea el
> g729 lo cambiaré en el propio gateway.
A ver si soy capaz de explicarte lo de los codecs en Asterisk de una forma
simplificada ...
En Asterisk NO FUNCIONA la selección de codecs ... ¿suficientemente simple?
Bien ... ahora ... partiendo de el anterior axioma, verdad universal en el
multiverso de versiones de Asterisk (1.0, 1.2, 1.4, 1.6, 1.8, 10, 11, 12, etc.),
vamos a ver como intentar lidiar con ello ...
Pongamos primero el caso de una extensión, terminal SIP, aquí tienes 'dos listas
de codecs' ... la que configuras en el terminal y la que configuras en la
'definición' del terminal en Asterisk. Bien ... ahora toma como axiomas
irrefutables las siguientes afirmaciones:
- Cualquier comunicación iniciada por el terminal SIP, usará como codec de la
comunicación EL PRIMERO de los codecs que sea compatible con la lista de la
definición de la extensión en el Asterisk.
Ejemplo:
- En el terminal: G729, G711u, G711a, iLBC
- En la definición de la extensión en Asterisk: G711a, G711u, iLBC, G729
En este escenario, CUALQUIER comunicación iniciada por el terminal hacia
Asterisk (ya sea llamar a otra extensión o lo que sea), usará G729
En este mismo escenario, CUALQUIER comunicación iniciada por Asterisk hacia el
terminal, usará G711a, A NO SER, que el terminal sea muy listo, y renegocie,
porque su codec preference order ... y acabe en G729, pero eso solo lo hacen
terminales tipo los SNOM
- Ahora ... con este escenario de comportamiento de Asterisk explicado ...
imagínate lo que pasa cuando un terminal tiene G729,G711a,G711u ... y otro
G711u,G729,G711a ... y líalo un poco más añadiendo sip-trunks, etc., que al fin
y al cabo para Asterisk no son más que SIP-EndPoints
Todo esto que he comentado ... no tiene en cuenta la pila PJSIP, ya que no sé,
ni tengo ganas ni tiempo ... de averiguar si la integración de PJSIP ha
arreglado el pésimo comportamiento de Asterisk en este asunto de los codecs.
> - En cuanto al tráfico sà que tengo a Asterisk para que se lo trague todo
> él con un directmedia=no, ¿No puede dar problemas si pongo directmedia=yes
> a la hora de intentar salir través de hacer llamadas salientes?
No, si le dices que el sip-trunk saliente no admite directmedia ... ;), a veces
las torpezas de asterisk se pueden usar mediante 'reducción al absurdo', para
conseguir lo que uno quiere.
> Creo que anteriormente tuve problemas con el canreinvite (lo que viene a
> ser ahora el directmedia si no me confundo) con respecto a las llamadas
> salientes.
De la época en que me peleaba con Asterisk ... siempre seguíamos la misma regla:
- Las extensiones se configuran con directmedia = yes, los sip-trunks con
directmedia = no, de esta manera, el tráfico RTP de las comunicaciones entre
extensiones, no pasaba por el Asterisk (susceptible de sufrir otro tipo de
problemas debido a ello), y cuando vamos o venimos a un proveedor ... que el
tráfico pase por Asterisk. De esta manera, se evitaba otro bug-chungo de
asterisk, solo visible cuando Asterisk tiene la IP pública y las extensiones
estan en una red privada, pero eso es otra película.
> - En cuanto al uso de licencias g729 entiendo que si la comunicación es
> directa entre dos terminales no hay transcoding de ningún tipo a través de
> Asterisk y por tanto la licencia no se usa. Y en caso de que la
> comunicación sea a través de Asterisk si ambos terminales tienen g729 y en
> su contexto usan como primera opción g729 tampoco habrÃa ningún problema de
> transcoding.
Te voy a dar una mala noticia ... si el RTP pasa por Asterisk, da igual que la
comunicación sea G729-G729 ... SIEMPRE hay transcoding.
> Si actualmente trato de salir a través de una tarjeta RDSI o analógica ahÃ
> entiendo que Asterisk deberá de hacer un transcoding porque no hay más
> remedio ¿No?
Exacto.
> En caso de tener gateways BRI o FXO supongo que este problema
> se solucionarÃa.
No se soluciona si sigues mandando el RTP a través del Asterisk, ya te lo he
comentado más arriba.
> En tal caso, el problema sólo aparecerÃa si entra más de
> una persona a la vez al IVR ¿no? Cada vez que entra 1 persona habrÃa que
> hacer un transcoding y por tanto se usarÃa una licencia. En principio el
> proveedor de VOIP sólo es usado para llamadas salientes, para llamadas
> entrantes usamos el proveedor de telefonÃa normal y corriente (RDSI y
> analógico, tenemos lÃneas de ambos tipos)
Ten en cuenta, que una mal nombrada 'llamada', son 2 canales, uno que sube y
otro que baja ... te pongo el peor caso, que además creo que es el que te está
pasando por los logs y los comentarios que has puesto en el hilo.
Terminal -> G729 -> Asterisk -> G729 -> Proveedor
¿Cuantas licencias crees que estas usando en ese caso? ... Respuesta: 2, siempre
en el supuesto que el RTP lo tienes forzado a través de Asterisk.
Terminal -> G729 -> Asterisk -> G729 -> Terminal B
¿Cuantas? ... Respuesta: 2
Terminal -> G729 -> Asterisk IVR
¿Cuantas? ... Respuesta: 1
Recuerda siempre que Asterisk es un B2BUA
> - Pensando en la putadita de los codecs me surgen un par de dudas:
> A)En la empresa disponemos dos contextos:
> *TelefonÃa interna
> *Pruebas fábrica
> Para las pruebas de fábrica se usa el g711 sà o sÃ
> Para la telefonÃa interna querÃa usar el g711 para llamadas internas y el
> g729 para salientes por VOIP
> Si en telefonÃa interna dejo como primer codec el g729 y quiero llamar de
> telefonÃa interna a fábrica o viceversa habrá transcoding en caso de que la
> comunicación sea a través de Asterisk ¿No? No me quedarÃa más remedio que
> evitar que el tráfico pasara a través de Asterisk en caso de llamadas
> internas si unos terminales trabajan bajo g711 y otros trabajan bajo g729
> con opción de g711
Con la salvedad de que no se establece el codec por 'contexto' ... sino por
SIP-EndPoint ... pues sí ...
> B)Si trato de hacer un paging o una conferencia necesitaré una licencia por
> cada usuario al que realizo el paging o por cada usuario que entra enla
> conferencia ¿No?
Exacto.
Saludos