hola lista , tengo un par de preguntas que hacer , estoy tratando de conectar mi openser con asterisk para hacer llamadas a la pstn y poder recibir llamadas , los dos están en la misma caja uno escuchando el 5060 (openser) y el otro en el 5070 (asterisk) , lo que no tengo bien claro es lo siguiente al decirle que cuando haga una llamada de mas de 7 dígitos la mande al asterisk osea un INVITE y que comience con 2 o 9 . osea para llamadas locales , usando el modulo group , osea si no esta en ese grupo no puede hacer llamadas a la pstn.
route[4] { rewritehostport("192.168.10.1:5070"); t_relay(); route(1); }
route[10] { append_hf("P-hint: inbound->inbound \r\n"); if (uri=~"^sip:[29][0-9]{7}@") { if (is_user_in("credentials","local")) { route(4); exit;
} else { sl_send_reply("403", "No tienes permitido hacer llamadas locales"); exit; };
ahora , hay ciertas extensiones que solo harán llamadas entre internos no locales ni internacionales
}; if (uri=~"^sip:1[2-9][1-9]{3}@") { if (is_user_in("credentials","int")) { route(4); exit; } else { sl_send_reply("403", " No tienes permiso para llamadas internas"); exit; }; };
if (uri=~"^sip:011[0-9]*@") { if (is_user_in("credentials","international")) { route(4); exit; } else { sl_send_reply("403", "No tienes permiso para llamadas internacionales"); }; };
esto ultimo no lo he probado a cavalidad , porque en la db de openser , hay una tabla llamada grp , segun la teoría es la tabla group , pero no encuentro como agregar los grupos a la db? ,
local int international
en esperas de sus comentario
rickygm
El Tuesday 15 July 2008 08:28:03 troxlinux escribió:
esto ultimo no lo he probado a cavalidad , porque en la db de openser , hay una tabla llamada grp , segun la teoría es la tabla group , pero no encuentro como agregar los grupos a la db? ,
Lee la doc del módulo "group": http://www.openser.org/docs/modules/1.3.x/group.html
Viene explicado cómo se llama la tabla y cómo se rellena con usuario, dominio y grupo.
Saludos.
Iñaki gran ayuda la que me enviaste , pero ya pase por ahí , y realmente no me queda claro todavía como rellenar, por eso realice la pregunta , a ver si alguien de la lista me daba un empujón extra , pero por lo visto veo que solo mandan a la url en la lista ...
saludoss
El día 15 de julio de 2008 2:58, Iñaki Baz Castillo ibc@in.ilimit.es escribió:
Lee la doc del módulo "group": http://www.openser.org/docs/modules/1.3.x/group.html
Viene explicado cómo se llama la tabla y cómo se rellena con usuario, dominio y grupo.
en realidad no CREAS grupos, si no que le das a ciertos clientes credenciales que después chequeas en el script de openser, por ejemplo:
openserctl acl grant <username> <group> openserctl acl grant 1000 bobo
y luego chequeas en el openser si el cliente que llama es parte de bobo (que es el group o descripción que le has dado)
if (is_user_in("credentials","bobo")) { sl_reply("404","Es usted bobo"); exit;
yo creo que así se entiende mejor.
El tema es que chequeas si en la tabla grp existe el usuario que llama con esa palabra en el campo "grp"
saludos
david
2008/7/15 troxlinux xserverlinux@gmail.com:
Iñaki gran ayuda la que me enviaste , pero ya pase por ahí , y realmente no me queda claro todavía como rellenar, por eso realice la pregunta , a ver si alguien de la lista me daba un empujón extra , pero por lo visto veo que solo mandan a la url en la lista ...
saludoss
El día 15 de julio de 2008 2:58, Iñaki Baz Castillo ibc@in.ilimit.es escribió:
Lee la doc del módulo "group": http://www.openser.org/docs/modules/1.3.x/group.html
Viene explicado cómo se llama la tabla y cómo se rellena con usuario,
dominio
y grupo.
Users-es mailing list Users-es@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
El día 15 de julio de 2008 12:26, David Villasmil david.villasmil.work@gmail.com escribió:
en realidad no CREAS grupos, si no que le das a ciertos clientes credenciales que después chequeas en el script de openser, por ejemplo:
openserctl acl grant <username> <group> openserctl acl grant 1000 bobo
y luego chequeas en el openser si el cliente que llama es parte de bobo (que es el group o descripción que le has dado)
if (is_user_in("credentials","bobo")) { sl_reply("404","Es usted bobo"); exit;
yo creo que así se entiende mejor.
El tema es que chequeas si en la tabla grp existe el usuario que llama con esa palabra en el campo "grp"
ok ya voy agarrando , veo que cuando le doy permisos por ejemplo a la extensión 110 para llamadas locales, dentro de la tabla grp veo que añadió digamos el grupo local en el campo grp , pero los otros campos están vacíos es esto correcto? anexo un screenshot
cuando realizo la llamada a la pstn , me tira un mensaje Proxy Authentication Required...
rarop porque estoy dentro del grupo local
anexo mi log
U +0.000187 192.168.10.1:5060 -> 192.168.10.19:5060 SIP/2.0 407 Proxy Authentication Required Via: SIP/2.0/UDP 192.168.10.19:5060;branch=z9hG4bK-72f42c9b From: sip:110@192.168.10.1;tag=351b5874f239a33o0 To: sip:2650221@192.168.10.1;tag=d7e793d797690be5ce5420203095040f.e574 Call-ID: 7c18d248-d1364a6f@192.168.10.19 CSeq: 101 INVITE Proxy-Authenticate: Digest realm="192.168.10.1", nonce="487d08914aad36e5d7f357e53531907f2ffd0706", qop="auth" Server: OpenSER (1.3.2-notls (i386/linux)) Content-Length: 0
# U +0.005448 192.168.10.19:5060 -> 192.168.10.1:5060 ACK sip:2650221@192.168.10.1 SIP/2.0 Via: SIP/2.0/UDP 192.168.10.19:5060;branch=z9hG4bK-72f42c9b From: sip:110@192.168.10.1;tag=351b5874f239a33o0 To: sip:2650221@192.168.10.1;tag=d7e793d797690be5ce5420203095040f.e574 Call-ID: 7c18d248-d1364a6f@192.168.10.19 CSeq: 101 ACK Max-Forwards: 70 Contact: sip:110@192.168.10.19:5060 User-Agent: Linksys/SPA942-5.2.8 Content-Length: 0
# U +0.004605 192.168.10.19:5060 -> 192.168.10.1:5060 INVITE sip:2650221@192.168.10.1 SIP/2.0 Via: SIP/2.0/UDP 192.168.10.19:5060;branch=z9hG4bK-687a4133 From: sip:110@192.168.10.1;tag=351b5874f239a33o0 To: sip:2650221@192.168.10.1 Call-ID: 7c18d248-d1364a6f@192.168.10.19 CSeq: 102 INVITE Max-Forwards: 70 Proxy-Authorization: Digest username="110",realm="192.168.10.1",nonce="487d08914aad36e5d7f357e53531907f2ffd0706",uri="sip:2650221@192.168.10.1",algorithm=MD5,response="ccbabe14d561f9a625dfaccd8ba3bc53",qop=auth,nc=00000001,cnonce="5424fc39" Contact: sip:110@192.168.10.19:5060 Expires: 240 User-Agent: Linksys/SPA942-5.2.8 Content-Length: 395 Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER Supported: replaces Content-Type: application/sdp
v=0 o=- 66968 66968 IN IP4 192.168.10.19 s=- c=IN IP4 192.168.10.19 t=0 0 m=audio 16458 RTP/AVP 0 8 2 4 18 96 97 98 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:2 G726-32/8000 a=rtpmap:4 G723/8000 a=rtpmap:18 G729a/8000 a=rtpmap:96 G726-40/8000 a=rtpmap:97 G726-24/8000 a=rtpmap:98 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:30 a=sendrecv
# U +0.000727 192.168.10.1:5060 -> 192.168.10.19:5060 SIP/2.0 404 Not Found Via: SIP/2.0/UDP 192.168.10.19:5060;branch=z9hG4bK-687a4133 From: sip:110@192.168.10.1;tag=351b5874f239a33o0 To: sip:2650221@192.168.10.1;tag=d7e793d797690be5ce5420203095040f.77bf Call-ID: 7c18d248-d1364a6f@192.168.10.19 CSeq: 102 INVITE Server: OpenSER (1.3.2-notls (i386/linux)) Content-Length: 0
en el sip.conf de asterisk tengo el usuario openser creado
[openser] type=friend context=cyber insecure=port,invite host=localhost disallow=all allow=alaw allow=g729
en el extensions.conf (ojo tengo una TDM ) no se si esta parte la tengo correcta
[cyber] exten => _XXXXXXX,1,Dial(SIP/${EXTEN},openser) exten => _XXXXXXX,n,Hangup
gracias por la gran ayuda dada
rickygm
sr-users-es@lists.kamailio.org