Hacer una llamada a una sip URI

409 views
Skip to first unread message

gonzalo

unread,
Jan 7, 2008, 6:11:02 AM1/7/08
to asterisk-es
Hola.
Cuando en alguna web de una empresa aparece la tipica URI sip para
conectar con ellos, en plan sip://sip.miempresa.com ¿como están
haciendo eso? ¿como hacer que una exten de mi asterisk pueda llamar
ahí?
¿no se neceitaría un usuario y un password para lamar?
ando un poco perdido con esto

Iñaki Baz Castillo

unread,
Jan 7, 2008, 6:25:35 AM1/7/08
to aster...@googlegroups.com
On Monday 07 January 2008 12:11:02 gonzalo wrote:
> Hola.
> Cuando en alguna web de una empresa aparece la tipica URI sip para
> conectar con ellos, en plan sip://sip.miempresa.com

Supongo que pondrán algo como:

sip:exte...@sip.miempresa.com

> ¿como están haciendo eso?

No hay nada raro, eso es VoIP SIP pura y dura ;)


> ¿como hacer que una exten de mi asterisk pueda llamar
> ahí?

Bueno, si usas un softphone y no tienes puesto el Outbound proxy a tu Asterisk
(lo cuál con Asterisk no vale de nada) entonces tu softphone enviaría un
INVITE a donde resuelva sip.miempresa.com tam que así:

INVITE sip:exte...@sip.miempresa.com SIP/2.0
From: <sip:mi_usuario@IP_mi_Asterisk;tag=aslkdjalksdjlaksdjlka>
To: < sip:exte...@sip.miempresa.com>

Es decir, ese INVITE irá directo a esa dirección sin pasar por tu asterisk.

Pero claro, aquí te toca pelearte con los problemas de NAT (tal vez si tienes
activado STUN en tu softphone o IP pública...).


> ¿no se neceitaría un usuario y un password para lamar?
> ando un poco perdido con esto

¿Por qué? se supone que es una dirección SIP pública (puesto que la publican).


Saludos.


--
Iñaki Baz Castillo
i...@in.ilimit.es

Alberto Sagredo

unread,
Jan 7, 2008, 9:17:34 AM1/7/08
to asterisk-es
Lo puedes hacer incluso de una manera sencilla, usando una entrada A
en tu dominio, o un cname con una redircción a una ip que tenga el
5060 mapeado al dispositivo que acepte llamads entrantes sin estar
registrado.

Pero como dice Iñaki., Eso es estándar SIP.

gonzalo

unread,
Jan 8, 2008, 11:02:48 AM1/8/08
to asterisk-es
Entiendo. La duda que tenía era que si sip.miempresa.com era
simplemente una ip y veo que si.
Entonces lo único que tienes que hacer es tener los puertos nateados y
en incoming tener un . por pattern matching para que entren todas las
llamadas marquen la extensión que marquen.
Así, si desde otra centralita marcan:
Dial(SIP/${EXTEN}@sip.miempresa.com)

te lo manda a tu context de entrada que tendría que ser algo así:

[incoming]
exetn => .,1,Answer()
etc

no?

Glo

unread,
Jan 9, 2008, 3:55:45 AM1/9/08
to asterisk-es

Otra opción es añadir en el DNS (si puedes...)
un registro de tipo srv donde indicas la máquina que tiene el
servicio de vozip sin necesidad de crear una nueva entrada, con esto
te podrían llamar a e...@miempresa.com (en vez de
e...@sip.miempresa.com)


http://en.wikipedia.org/wiki/SRV_record

On 8 ene, 17:02, gonzalo <gonzalomarc...@gmail.com> wrote:
> Entiendo. La duda que tenía era que si sip.miempresa.com era
> simplemente una ip y veo que si.
> Entonces lo único que tienes que hacer es tener los puertos nateados y
> en incoming tener un . por pattern matching para que entren todas las
> llamadas marquen la extensión que marquen.
> Así, si desde otra centralita marcan:
> Dial(SIP/${EXT...@sip.miempresa.com)

Iñaki Baz Castillo

unread,
Jan 9, 2008, 4:16:10 AM1/9/08
to aster...@googlegroups.com
On Tuesday 08 January 2008 17:02:48 gonzalo wrote:
> Entiendo. La duda que tenía era que si sip.miempresa.com era
> simplemente una ip y veo que si.
> Entonces lo único que tienes que hacer es tener los puertos nateados y
> en incoming tener un . por pattern matching para que entren todas las
> llamadas marquen la extensión que marquen.
> Así, si desde otra centralita marcan:
> Dial(SIP/${EXTEN}@sip.miempresa.com)
>
> te lo manda a tu context de entrada que tendría que ser algo así:
>
> [incoming]
> exetn => .,1,Answer()
> etc
>
> no?


Bueno, eso del . por pattern matching mejor que no. En todo caso sería:
exten => _.,1,loquesea
Pero es altamente perjudicial usar _. puesto que "matchea" también la acción
de colgado, opción inválida en IVR, tiempo agotado...

Nunca uses _. en un "exten".

Además, no es ninguna necesidad la de permitir que desde fuera llamen a todas
las extensiones posibles, mejor definirlas:

[contexto-desde-sip-publico]
include => a-usuarios-locales
include => a-servicios-publicos


Por otra parte, eso de responder con un "Answer" es una putadita, aunque por
alguna extraña razón se ve con demasiada frecuencia.
Contestar con un "Answer" implica responder la llamada automáticamente, ¿por
qué? se supone que si llaman a la extensión 200 y en Asterisk eso implica
llamar al usuario interno SIP/200, entonces no tiene sentido contestar la
llamada automáticamente, deja que suene el tfno 200 y si responde responde, y
si no pues no, no hay ninguna necesidad de ese "Answer".

Además, responder con un Answer implica el inicio de flujo de audio, por lo
que si alguien te llama desde la PSTN le estás haciendo pagar por una llamada
desde el primer instante, cuando luego es muy posible que no se le conteste
realmente (un teléfono interno quiero decir).

gonzalo

unread,
Jan 9, 2008, 6:32:53 AM1/9/08
to asterisk-es
Entiendo perfectamente lo de Answer(). Gracias por la aclaración. Es
una putada cobrar a la gente si al final no puede contactar con el
destino. Revisaré mis dialplans.
Gracias Iñaki.

On Jan 9, 10:16 am, Iñaki Baz Castillo <i...@in.ilimit.es> wrote:
> On Tuesday 08 January 2008 17:02:48 gonzalo wrote:
>
> > Entiendo. La duda que tenía era que si sip.miempresa.com era
> > simplemente una ip y veo que si.
> > Entonces lo único que tienes que hacer es tener los puertos nateados y
> > en incoming tener un . por pattern matching para que entren todas las
> > llamadas marquen la extensión que marquen.
> > Así, si desde otra centralita marcan:
> > Dial(SIP/${EXT...@sip.miempresa.com)

Jonathan GF

unread,
Jan 9, 2008, 7:53:34 AM1/9/08
to aster...@googlegroups.com
Si en el DNS puedes poner una entrada de tipo SRV perfecto. Normalmente no te dan esa opcion e los paneles. No se el porque claramente aunque lo intuyo.

Si tienes una entrada A de tipo

       <dominio.tld > A 111.222.111.222

sin tener un dominio especial para vozip (sip.<dominio.tld>) es el mismo comportamiento. El dialplan seria  como el descrito, sin el sip del dominio:

       Dial(SIP/${EXT...@miempresa.com)

o tambien

       Dial(SIP/${nom...@miempresa.com) <--- las extensiones no tienen porque se solo numericas, pueden ser alfanumericas


Saludos,

Jonathan GF

gonzalo

unread,
Jan 9, 2008, 11:51:11 AM1/9/08
to asterisk-es
Vale. Esto me queda bastante claro.
Pero aun tengo una duda.
Veo que se hace de forma diferente para SIP y para IAX. La sintaxis
es:

Dial(technology/user[:password]@remote_host[:port][/remote_extension])

Pero esto es mas bien para el canal IAX. Para SIP sería, por ejemplo:

Dial(SIP/extensión_remota@ip_remota)

En Iax sin embargo

Dial(IAX2/[usuario:passwd]@ip_remota[:port]/[extensión_remota]))

Si no indicas la extension_remota va a la 's' de el context al que
pertenezca ese usuario.
Si no indicas el usuario:passwd va diractamente al context [incoming-
dundi]
Me he quedao alucinao con esto, porque no lo sabía (con dyndns quien
necesita un nº de tefl?)

En sip por lo que veo, va a context por defecto que se indica en la
seccion [general]
¿Se puede hacer en SIP igual que en IAX?
¿Hacer una llamada a una exten y un contexto?
¿E indicar un usuario?

Todo esto haciendo una llamada VoIP pura, sin tener que poner nada en
el sip.conf ni hacer registers...
> > > Dial(SIP/${EXT...@sip.miempresa.com <SIP/$%7BEXT...@sip.miempresa.com>)
Reply all
Reply to author
Forward
0 new messages