Hi!
I have load the XMPP module to my openser configuration to integrate
GTALK in my SIP system designed with Openser.
The XMPP module works in the 'component' mode. I have added the server
Jabberd 2 to my system and I have checked that it works correctly with
different Jabber clients.
When I start Openser and try to connect GTALK to it I get the following
error:
10(8016) ERROR:parse_first_line: error parsing the method
10(8016) ERROR:parse_first_line: bad message
10(8016) ERROR: parse_msg: message=<CONNECT www.google.com:443 HTTP/1.0
User-Agent: Google Talk
Host: www.google.com
Content-Length: 0
Proxy-Connection: Keep-Alive
>
10(8016) ERROR: receive_msg: parse_msg failed
10(8016) ERROR: receive_msg: no via found in request
10(8016) ERROR: receive_msg: no via found in request
Any idea of what it's wrong?
Thanks in advance!
Izortze.
P.D= This is my openser.cfg file:
$Id: openser.cfg 1676 2007-02-21 13:16:34Z bogdan_iancu $
#
# simple quick-start config script
# Please refer to the Core CookBook at
http://www.openser.org/dokuwiki/doku.php
# for a explanation of possible statements, functions and parameters.
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
#log_stderror=no # (cmd line: -E)
children=4
# Uncomment these lines to enter debugging mode
#fork=no
log_stderror=yes
#
check_via=no
rev_dns=no
dns=no
port=5060
#fifo='/tmp/openser_fifo'
# uncomment the following lines for TLS support
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/local/etc/openser/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
#set module path
mpath="/usr/local/lib/openser/modules/"
# Uncomment this if you want to use SQL database
loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "xmpp.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "auth.so"
#loadmodule "auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- mi_fifo params --
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#modparam("auth_db", "password_column", "password")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
#-- xmpp module parameters --
modparam("xmpp","backend","component")
modparam("xmpp","domain_separator","*")
modparam("xmpp","gateway_domain","b001948.bi.ehu.es")
modparam("xmpp","xmpp_domain","b001948.bi.ehu.es")
modparam("xmpp","xmpp_password","secret")
modparam("xmpp","xmpp_host","b001948.bi.ehu.es")
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# filter XMPP destinations
if (uri =~ "sip:.+\*b001948.bi.ehu.es@b001948.bi.ehu.es") {
# absorb retransmissions
if (!t_newtran()) {
sl_reply_error();
exit;
}
# handle IM
if (is_method("MESSAGE")) {
log("message to XMPP: from <$fu> to <$ru>\n");
if (xmpp_send_message()) {
sl_send_reply("202", "Accepted");
} else {
sl_send_reply("404", "Not found");
}
exit;
}
# unsupported type of SIP message
log("message to XMPP: method <$rm> not supported yet\n");
sl_send_reply("503", "Service unavailable");
exit;
}
else {
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
if (!method=="REGISTER")
record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use
digest authentication
#if (!www_authorize("openser.org",
"subscriber")) {
# www_challenge("openser.org", "0");
# exit;
#};
save("location");
exit;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our
USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
};
route(1);
};
}
route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
exit;
}
Hi, I want to mantain independent domains in OpenSer. In my case I've a
OpenSer with a single DNS A record and various CNAME (I still don't want to
play with SRV and so).
so:
DNS A = openser.domain.org
CNAME = sip1.domain.org
CNAME = sip2.domain.org
And I want users of sip1.domain.org and sip2.domain.org, as independent
groups.
I just want to avoid SIP interdomain messages, so 200(a)sip1.domain.org CAN'T
invite 300(a)sip2.domain.org even if he does authentication.
I've loaded "domain" module and use "is_uri_host_local()"
and "is_from_local()" functions, but for now I only used one domain.
My question is very general: for implement (or avoid) interdomain
comunication, do I need to use the "domainpolicy" [1] module? I've read its
doc and know it's based in 3 drafts [2][3][4], but all of them seems to be
based in the complex NAPTR record and so. Is it the way?
I think I could just compare the FROM domain with the TO domain in order to
avoid interdomain communication, but of course I'd like in the future the
possiblity of allowing some domains to contact some other domains. Is
then "domainpolicy" the solution I should learn?
Any other doc about it?
Thanks for any help.
[1] http://www.openser.org/docs/modules/1.2.x/domainpolicy.html
[2] http://tools.ietf.org/id/draft-lendl-domain-policy-ddds-02.txt
[3] http://tools.ietf.org/id/draft-lendl-speermint-federations-02.txt
[4] http://tools.ietf.org/html/draft-lendl-speermint-technical-policy-00
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
I just see the option to login but not register, is not possible?
Anyway it allows anonymous edit.
PD: This is because I see an error in:
http://www.openser.org/dokuwiki/doku.php/pseudovariables:1.2.x#domain_of_de…
There was:
Domain of destination URI
$dd - reference to domain of destination uri
but that is not correct at least in 1.2.1 version. I've changed that to $fd.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
Hi, I've configured a multidomain OpenSer but "openserctl online" just shows
the usernames and not the domain. Is it possible to get a list of registered
user with syntax "user@domain"?
Thanks.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
Hello,
I'm confused with the callback data parameter of request function of TM
module: does TM takes the ownership of the callback data? I've seen that, if
there is an error, t_request function frees the callback data. Also, I've
seen empty_tmcb_list function that free that callback data, too.
I've checked other modules, to see how do they use this parameter, and I've
got even more confused.
msilo.c : it initialize the pointer from an int; there is a problem in
request function from uac.c file, after the 'err:' label, when 'if (cp)
shm_free(cp)' is executed.
pua.c and send_publish.c: the callback functions free the callback data
parameter; if the TM took the ownership, then that memory is freed twice.
So, what is the right way to handle the memory pointed by callback data?
Thank you
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
Hi
what do i have to do to forward only 1 user to a spezific IP address on
INVITE?
if(method=="INVITE")
{
if (uri=~"^sip:\200" || src_ip == xxx.xxx.xxx.xxx) {
???????
it should be forwarded on fixed ip yyy.yyy.yyy.yyy:5060
}
};
i think its very easy but i'm a greenhorn ;)
Thanks
Andy
Respected All,
right now i had installed the openser-1.0.1 in my /usr/local/src/openser
diectory,
so i want to know which one is my main configuraion file, [i.e., openser.cfg]
as i am finding that file at two places,
and they are
[1] /usr/local/etc/openser/openser.cfg
[2] /usr/local/src/openser/openser-1.0.1/etc/openser.cfg
Now i want to know, when we start openser, which file will be called ?
As i had check both of those files, and there is no difference between them.
so i want to understand that, which file is called first?
Thanks.
Best Regards,
Ashish Barot.
Thanks to you, my openser is working well with freeradius!!
I still have a few questions:
* the function radius_is_user_in("From","my_group") always returns false.
modparam("group_radius", "radius_config",
"/etc/radiusclient-ng/radiusclient.conf")
modparam("group_radius", "use_domain", 1)
if(is_method("INVITE")) {
if (!radius_is_user_in("From","voip")) {
xlog("L_DBG","NOT IN THE voip GROUP \r\n");
sl_send_reply("403", "Forbidden - Not in the voip
group");
} else {
xlog("L_DBG","IN THE voip GROUP\r\n");
};
};
I've monitored the mysql.log file, and no requests is sent to the sql
server to know if the user is owned by the voip group..
I you have any idea, I would be very grateful
Hello,
thanks to Henning Westerholt efforts to develop the new db xml schema,
the description of OpenSER database for devel version is automatically
generated in HTML format and uploaded at:
http://www.openser.org/docs/db-tables/openser-db-devel.html
The update is done on a daily base (hopefully), only when something
changes in db schema. Links from dokuwiki and docs index were added.
Cheers,
Daniel