Hi...
Anybody could me help, to install perl module as is explained in 1.2 item of
the variables enviroments would have put the output this cmds....into "
Makefile.deps -> CROSS_COMPILE ?=" <output cmd "perl -MExtUtils::Embed -e
ldopts">, <"perl -MExtUtils::Embed -e ccopts"> and <"echo "`perl -MConfig -e
'print $Config{installprivlib}'`/ExtUtils/typemap"> ???
or just put the output of these cmds into environments variables :
PERLLDOPTS:, PERLCCOPTS: and TYPEMAP: and run the Makefile.....???
Does anyone know how...?
Any hints.....??
thx...
Hello,
I have been unsuccessfully trying to setup OpenSER as a basic server in
my private network. The idea is that clients can register to the virtual
domain "sipserver.apt.local" and from then, INVITES will be sent to the
appropiate address.
I use the following openser.cfg
# ----------- global configuration parameters ------------------------
debug=5 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
children=4
log_facility=LOG_LOCAL7
# Uncomment these lines to enter debugging mode
#fork=no
#log_stderror=yes
#
port=5060
listen=udp:192.168.100.244:5060
listen=udp:sipserver.apt.local:5060
alias="sipserver.apt.local:5060"
sip_warning=yes
# 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 = "/etc/openser/tls/user/user-cert.pem"
#tls_private_key = "/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
#set module path
mpath="/usr/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 "xlog.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)
# ------------------------- 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 >= max_len ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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;
#};
xlog("L_INFO","[ACHTUNG]
saved $ru");
save("location");
exit;
};
xlog("L_INFO","[ACHTUNG]request from $ru");
#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;
}
I can register fine, however, on INVITE, openSER forwards it internally
instead of fw to the client registered until max_fw reaches 0 and an
error "too many hops" is the final response. Log below:
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: [ACHTUNG] saved
sip:192.168.100.244
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=8000000
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: build_contact():
Created Contact HF: Contact:
<sip:oslo_2_Route_1@sipserver.apt.local:5060>;expires=3600^M
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]:
check_via_address(192.168.100.238, sipserver.apt.local, 0)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]:
DEBUG:destroy_avp_list: destroying list (nil)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: receive_msg: cleaning
up
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: SIP Request:
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: method: <INVITE>
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: uri:
<sip:oslo@sipserver.apt.local>
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: version: <SIP/2.0>
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=2
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: Found param type 232,
<branch> = <z9hG4bK4211644481>; state=16
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: end of header
reached, state=5
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers: Via
found, flags=2
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers: this
is the first via
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: After parse_msg...
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: preparing to run
routing scripts...
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=100
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:parse_to:end of
header reached, state=10
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DBUG:parse_to:
display={}, ruri={sip:oslo@sipserver.apt.local}
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: get_hdr_field:
<t> [32]; uri=[sip:oslo@sipserver.apt.local]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: to body
[<sip:oslo@sipserver.apt.local>^M ]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_hdr_field: cseq
<CSeq>: <985859914> <INVITE>
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:maxfwd:is_maxfwd_present: value = 70
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: add_param:
tag=3326383385
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:parse_to:end of
header reached, state=29
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DBUG:parse_to:
display={}, ruri={sip:oslo_2_Route_1@sipserver.apt.local}
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=200
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: get_hdr_body :
content_length=202
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: found end of header
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: find_first_route: No
Route headers found
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: loose_route: There is
no Route HF
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==15 && [sipserver.apt.local] ==
[192.168.100.244]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==19 && [sipserver.apt.local] ==
[sipserver.apt.local]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==15 && [sipserver.apt.local] ==
[192.168.100.244]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==19 && [sipserver.apt.local] ==
[sipserver.apt.local]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: [ACHTUNG]request from
sip:oslo@sipserver.apt.local
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: t_newtran: T
on entrance=0xffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=ffffffffffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=78
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: t_lookup_request:
start searching: hash=45820, isACK=0
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: RFC3261
transaction matching failed
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
t_lookup_request: no transaction found
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=ffffffffffffffff
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
check_via_address(192.168.100.238, sipserver.apt.local, 0)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: WARNING:vqm_resize:
resize(0) called
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:_reply_light: reply sent out. buf=0x813efd8: SIP/2.0 1...,
shmem=0xb3e5d980: SIP/2.0 1
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:_reply_light: finished
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: mk_proxy:
doing DNS lookup...
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no port, no proto -> do NAPTR lookup!
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_record:
lookup(sipserver.apt.local, 35) failed
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no valid NAPTR record found for
sipserver.apt.local, trying direct SRV lookup...
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_record:
lookup(_sip._udp.sipserver.apt.local, 33) failed
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no valid SRV record found for
_sip._udp.sipserver.apt.local, trying A record lookup...
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
check_via_address(192.168.100.238, sipserver.apt.local, 0)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DBG:check_against_rule_list: using list dns
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:set_timer:
relative timeout is 500000
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
add_to_tail_of_timer[4]: 0xb4091bac (104400000)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:set_timer:
relative timeout is 30
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
add_to_tail_of_timer[0]: 0xb4091bc8 (133)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:t_relay_to:
new transaction fwd'ed
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:UNREF_UNSAFE: after is 0
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:destroy_avp_list: destroying list (nil)
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: receive_msg: cleaning
up
What is necessary so the INVITES are sent to the client and not to the
server?
Regards,
Hello everybody,
I write to you because I have an error with my presence module.
I try to integrate a xcap server (openxcap) with my openser.
I have configured my openser with module presence, presence_xml and
mi_xmlrpc but i have theses error messages :
ERROR:presence:mi_refreshWatchers: getting rules doc
Apr 23 11:41:54 [7867] ERROR:mi_xmlrpc:default_method: command
(refreshWatchers) processing failed.
My openser.cfg contains :
# -- mi_xmlrpc params --
modparam("mi_xmlrpc", "log_file", "/var/log/openser-xmlrpc.log")
modparam("mi_xmlrpc", "port", 8080)
# -- presence params --
modparam("presence", "db_url", "mysql://openser:openserrw@localhost
/openser")
modparam("presence", "server_address", "sip:10.24.247.59.:5060")
modparam("presence", "fallback2db", 1)
# -- presence_xml params --
modparam("presence_xml", "db_url", "mysql://openser:openserrw@localhost
/openser")
modparam("presence_xml", "force_active", 1)
modparam("presence_xml", "xcap_table", "xcap")
modparam("presence_xml", "pidf_manipulation", 1)
modparam("presence_xml", "integrated_xcap_server", 1)
# -- xcap_client params --
modparam("xcap_client", "db_url", "mysql://openser:openserrw@localhost
/openser")
modparam("xcap_client", "xcap_table", "xcap")
modparam("xcap_client", "periodical_query", 1)
modparam("xcap_client", "query_period", 50)
I can't find why i have error ? Someone can help me or have already have
this problem ?
Thanks !
Thomas
Hello everybody,
I work on a IMS prototype architecture.
I have install a openser 1.3.1 and openxcap 0.9.9. I try to use openser
with the XCAP server openxcap.
I have follow the instruction on the openxcap homepage but I have already
many problems.
I have the error message :
Apr 22 17:25:38 [12220] ERROR:presence:handle_subscribe: Missing or
unsupported event header field value
Apr 22 17:25:38 [12220] ERROR:presence:handle_subscribe: event=
ua-profile
Apr 22 17:25:38 [12220] ERROR:tm:t_newtran: transaction already in process
0xb5a073b0
I think i have errors in my config file openser.cfg but i can't found where.
I understand that my openser don't support le event ua-profile but i can't
found how to support it ?
I precise that i have configured my eyebeam with :
http://10.24.247.59:8000/xcap-root@mydomain
Someone can help me please ?
Thanks
Thomas
Hi,
I have a setup where in Openser is acting as the registrar and Asterisk
handles the media. i.e. the INVITEs are relayed to the Asterisk server
by Openser.
When I try to make a call from an unregistered user the call goes thru.
The user is present in the subscriber table but is not registered with
Openser at that instant.
Is this an expected behavior? If not what needs to be done so that an
unregistered user is prohibited from making any calls.
Any help would be appreciated.
Thanks in advance.
Regards,
Aadil
Hello list,
I have several questions about the support of TCP in OpenSER in
general, and about the switch/ failover from UDP to TCP in particular.
In my setup, I have several SIP clients registered to a single
OpenSER, and they exchange presence messages on a peer-to-peer basis.
When the presence document is complex, the size of the message sent
exceeds a given limit, and I want my message to be sent over TCP. My
clients are registered on the OpenSER, and the REGISTER has been sent
over UDP. From now, when client A sends a NOTIFY using TCP to client
B, the message is transported over TCP from A to the OpenSER, and is
transported over UDP from the OpenSER to B.
So here are my questions :
- How can I tell OpenSER to relay the message to B using TCP ?
- Do I have something particular to do while registering to tell
OpenSER that the client is listening in UDP and TCP ?
Thank you in advance for your answers,
Antoine
Hi,
When Openser receives a malformed INVITE with SIP version set to 10.0 in
the Request Line, it just processes it as a normal INVITE.
The Request Line of the INVITE message received looks like this:
INVITE sip:ua1@domain.com SIP/10.0
According to RFC 3261, the Requests should contain SIP/2.0. Hence
Openser should drop this request with an appropriate 4xx reponse.
But this behavior is not seen.
Do I have to modify my openser.cfg for validating the above INVITE?
Any help would be appreciated.
Thanks,
Aadil
Hello list users,
i want to use ser as a load balancing proxy for some PSTN
gateways that I have in use.
My idea is to use the rewritehost() core function and DNS SRV
entries to accomplish this. But it seems that ser is doing a
A record lookup if I simply replace the host with my domain
"mynet.interx":
if ( ... ) {
rewritehost("mynet.interx");
t_relay();
}
Ser is running on the same host (89.49.16.54) as the authorative
nameserver for the mynet.interx domain.
dig shows that the DNS files are configured in the right way for
load balancing, but I just can't find a way to make ser as a dns client
work like dig.
If I use "_sip._udp.mynet.interx" it will complain about a bad name.
Well he is partly right, underscores are not allowed in domain names.
And if I use only the domain in the rewrite command it will contact
the IP of the nameserver of this domain. Or in other words it will send
the messages to itself.
Using directly rewritehost("sip1.mynet.interx") doesn't help me,
because it wouldn't do load balancing.
How can I convince ser (version 0.9.6) to use the correct lookup
method for the DNS?
Any hints are appreciated ...
Thanks, Rolf.
----------------------------------------------------------------
; <<>> DiG 9.2.4 <<>> -t SRV _sip._udp.mynet.interx
;; QUESTION SECTION:
;_sip._udp.mynet.interx. IN SRV
;; ANSWER SECTION:
_sip._udp.mynet.interx. 21600 IN SRV 0 50 5060 sip3.mynet.interx.
_sip._udp.mynet.interx. 21600 IN SRV 0 50 5060 sip1.mynet.interx.
;; AUTHORITY SECTION:
mynet.interx. 21600 IN NS mynet.interx.
;; ADDITIONAL SECTION:
sip1.mynet.interx. 21600 IN A 89.49.16.50
sip3.mynet.interx. 21600 IN A 89.49.16.51
mynet.interx. 21600 IN A 89.49.16.54
Dear all,
I wounder if anyone successfully uses openSER 1.3.x with LDAP server
(openLDAP). For me I work fine with Authenticating the uses while REGISTER
request. However, I could not configure it to Authenticate call setup. in
other words, an non register user can make a call setup. what comes to my
mind is to use the same idea of authentication when RIGISTER request was
issues with some modefications but when SIP proxy server send "407 Proxy
Authentication Required" the client send ACK and stop.
=================================================
# account only INVITEs
if (is_method("INVITE")) {
xlog("L_NOTICE","Processing by INVITE handler ...\n");
route(4);
exit;
#setflag(1); # do accouting
}
.....
route[1] {
if (!t_relay()) {
sl_reply_error();
};
exit;
}
..........
rout[4]
{
if(is_present_hf("Authorization"))
{
# ldap search
if
(!ldap_search("ldap://sipaccounts/ou=sip,dc=mysip,dc=com?sn,userPassword?one?(cn=$fU)"))
{
switch ($retcode)
{
case -1:
# no LDAP entry found
sl_send_reply("404", "User Not Found");
exit;
case -2:
# internal error
sl_send_reply("500", "Internal server error");
exit;
default:
exit;
}
}
ldap_result("sn/$avp(s:username)");
ldap_result("userPassword/$avp(s:password)");
if(!pv_proxy_authorize(""))
{
proxy_challenge(""/*realm*/,"0"/*qop*/);
exit;
}
route(1);
} else {
proxy_challenge("","1");
exit;
}
=================================================
do any one know how to authenticate call setup? do you think using RADIUS
is better for authentication instead of LDAP authentication?
regards,
Ahmed ALALI