Autentificacion de Troncal SIP sin REGISTRO con campo username diferente de fromuser

2,133 views
Skip to first unread message

marianojm

unread,
Mar 29, 2011, 12:51:01 PM3/29/11
to asterisk-es
Estimados,
Tengo la siguiente duda: ante el caso de tener un troncal sip entre
dos asterisk ... veamos un caso muy elemental donde Asterisk A tiene
definido un contexto type=peer para hacer llamadas a Asterisk B
(type=user).

sip.conf en Asterisk A (10.0.0.1)

[prueba]
type=peer
secret=123
fromuser=usuario
host=10.0.0.2

sip.conf en Asterisk B (10.0.0.2)

[usuario]
type=user
secret=123
host=10.0.0.1
context=default

Este ejemplo funciona correctamente permitiendo hacer llamadas desde
Asterisk A hacia Asterisk B.

Por ejemplo... desde la extension 101 de Asterisk A se llama a la
extension 202 de Asterisk B, pero ocurre que la extension 202 no
recibe como caller-id el numero 101 sino que recibe obviamente el
campo fromuser que contiene la palabra "usuario". Para evitar esto,
asterisk deberia permitir especificar la autenticacion de los INVITE a
traves de un campo diferente a fromuser (que se usa en Contact). Tenia
entendido que podia emplear el campo username o authname=usuario pero
no funciona! Sigue intentando autenticar con el campo fromuser. Esto
es un bug de Asterisk?

Analizando la traza se ve en Message Header del mensaje INVITE la
siguiente informacion:

Contact: <sip:usu...@10.0.0.1:5060>
Proxy-Authorization: Digest username="usuario", realm="asterisk",
algorithm=MD5, etc etc ...

Donde "usuario" es el contenido del campo fromuser.

Conclusion... como hago para que Asterisk A envie el siguiente INVITE:

Contact: <sip:1...@10.0.0.1:5060>
Proxy-Authorization: Digest username="usuario", realm="asterisk",
algorithm=MD5, etc etc ...

Ya que al eliminar el campo fromuser no me autentica correctamente.

Atte,
Mariano Martin
Villa Maria - Cordoba - Argentina








Saúl Ibarra Corretgé

unread,
Mar 29, 2011, 4:00:22 PM3/29/11
to aster...@googlegroups.com
2011/3/29 marianojm <mari...@gmail.com>:

Tienes un pequenyo error: el fromuser se refiere al usuario que se
pone en la cabecera From, es decir, lo que el otro extremo vera como
el CallerID.

Al haber definido el asterisk A como un _user_ en el AsteriskB, el
match se hara en funcion del From username. Deberias de usar un peer,
para que el matching se haga por IP, y usar el authuser para la
autenticacion.


Saludos,

--
/Saúl
http://saghul.net | http://sipdoc.net

marianojm

unread,
Mar 29, 2011, 9:59:39 PM3/29/11
to asterisk-es
Muchisimas Gracias Raul !

Tenia claro que fromuser se utiliza para la cabecera From,
precisamente no queria usarlo ya que pretendo que From tenga el caller-
id de la extension que esta usando el troncal ... pero no encontraba
forma de autenticar el INVITE (digest username) en el otro Asterisk
correctamente.

Tenia entendido que el type=user se usa para recibir llamadas y el
peer para hacerlas por eso use el type=user en el Asterisk B, pero veo
que el concepto de peer es diferente. Probare por lo tanto el
type=peer para el Asterisk B y usare authuser para la autenticacion.

Tengo experiencia en troncales IAX2 y SIP desde hace tiempo, pero
estoy un poco cansado de aplicar ciertas "recetas" sin justificacion y
pretendia probar diferentes variantes con pequeños ejemplos de
autenticacion analizando la traza de los mensajes SIP para entender
con profundidad como implementa Asterisk su canal SIP.
Sigo probando ...Cualquier problema vuelvo a escribir.

Te agradezco muchisimo.
Saludos
Mariano




On 29 mar, 17:00, Saúl Ibarra Corretgé <sag...@gmail.com> wrote:
> 2011/3/29 marianojm <marian...@gmail.com>:
> > Contact: <sip:usua...@10.0.0.1:5060>

Fernando Villares

unread,
Mar 30, 2011, 10:29:12 AM3/30/11
to aster...@googlegroups.com
amigazo mariano como vas!!!! te paso la receta de iñaki un grande!!.....el libro sip demistyfied!!! y la fucking rfc3261 mas dura que un cascote en el chateau carreras por un partido belgrano-talleres


--
Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)

~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com

Sir Brain Colward

unread,
Mar 31, 2011, 2:01:59 AM3/31/11
to aster...@googlegroups.com, Saúl Ibarra Corretgé
Aún así existe una pequeña pega.
Según recuerdo haber leído (y por desgracia experimentado) aunque el Asterisk haga validación por el authname después comprueba que el username que viene en el from y en la autenticación sean el mismo. Si son diferentes sigue sin autorizar la llamada, lo que a veces es todo un problema.
Corregidme si lo que he dicho no es cierto o solo a medias.

Saludos,

Sir Brain Colward


2011/3/29 Saúl Ibarra Corretgé <sag...@gmail.com>

Tienes un pequenyo error: el fromuser se refiere al usuario que se
pone en la cabecera From, es decir, lo que el otro extremo vera como
el CallerID.

Al haber definido el asterisk A como un _user_ en el AsteriskB, el
match se hara en funcion del From username. Deberias de usar un peer,
para que el matching se haga por IP, y usar el authuser para la
autenticacion.


Saludos,

--
/Saúl
http://saghul.net | http://sipdoc.net

Saúl Ibarra Corretgé

unread,
Mar 31, 2011, 3:21:25 AM3/31/11
to aster...@googlegroups.com
2011/3/31 Sir Brain Colward <col...@gmail.com>:

> Aún así existe una pequeña pega.
> Según recuerdo haber leído (y por desgracia experimentado) aunque el
> Asterisk haga validación por el authname después comprueba que el username
> que viene en el from y en la autenticación sean el mismo. Si son diferentes
> sigue sin autorizar la llamada, lo que a veces es todo un problema.
> Corregidme si lo que he dicho no es cierto o solo a medias.

Que yo sepa, si defines un peer (no un user) y le pones una IP
determinada en el host no se comprueba el user en el From, pero no
puedo garantizar al 100% xD. Cierto es que muchos proveedores no te
van a permitir eso, solo se suele permitir que el From user y el auth
user sean iguales. Aunque en este caso, como se tiene control sobre
ambos servidores...

Reply all
Reply to author
Forward
0 new messages