The two messages I read with the above subject seem to overlook
some important concepts:
a) Like many many servers, openser is a high-level application.
It depends on a complicated under-world of services and protocols.
The operation of it depends on many external elements, all of which
should be in good working order.
b) DNS resource records (RR) have time-to-live (TTL) attributes. Any
application may cache RR up to the length of time specified by the
TTL. When you restart something, you typically blow away the cache
and start over. In general, most applications do not cache general
name lookups, since that is a lower-level function. However, an
application caching the hostname it's on and/or IP addresses to
bind to is standard practice.
>> I have come to realise that it seems as though once loaded into memory
>> and running, openser "caches" the config file and also does not appear
>> to re-check for changes in network conditions
Yes, isn't that great! It shouldn't check until either told to by a human
or when the underlying protocol indicates that it is time for a refresh
(like a DNS TTL expiring).
Regarding this:
> I had to lock-down the network card to 10mbit full-duplex. It was
> autoselecting 100mbit half-duplex.
> Hope that helps someone... sometime...
Autoselecting 100/half probably means that the link auto-negotiation failed,
as that is the default. It might fail because the other side was nailed down,
perhaps to 10/full. That seems like an unlikely choice... but one reason
why it might be nailed at 10mbits is because someone before you couldn't
get it to run well at 100mbits and discovered that setting it to 10
was a "solution." If that was the case, I'ld guess that the cable between
the switch and the server is lengthy and that it was not tied down in the
prescribed order (wO, O, wG, Bl, wBl, G, wBr, Br) [or swap O and G].
I apologize if this email comes across as a little snooty.
This is my first email of the day and I often have trouble
phrasing things in a nice way prior to my coffee kicking in.
-mark
I know, but I want it like this. It is supposed to talk to a remote
mysql server. As configured in openserctlrc file. But after doing some
fiddling around I noticed this error actually occurs because of a
misconfiguration in the config file itself because if I use the default
openser config file it works fine and uses the remote sql server, there
isn't anything I can find in my other config file that would tell it to
use the local one instead of a remote one though.
Nick
-----Original Message-----
From: Bogdan-Andrei Iancu [mailto:bogdan@voice-system.ro]
Sent: October 19, 2006 5:08 PM
To: Nick De Cristofaro
Cc: users(a)openser.org
Subject: Re: FW: [Users] OpenSER config help to talk to PSTN..
maybe there is no local mysql server on your machine......
regards,
bogdan
Nick De Cristofaro wrote:
> Found the issue now, it was an original problem I had but I'm not sure
> how it went away in the first place. There is a problem with the mysql
> connection, which is located on another server.
>
> If I attempt to just run the mysql client manually it still does not
> work..
>
> ERROR 2002 (HY000): Can't connect to local MySQL server through socket
> '/tmp/mysql.sock' (2)
>
> seen this error a million times on google but couldn't really find any
> fixes that worked for me? This error occured earlier on when I first
> configured openser but It went away and I'm not sure how it happened.
>
> I rebooted the machine and i'm guessing this started again due to it
>
> Thanks
> Nick
>
Hi,
According the RFC, it's possible to send a INVITE without any SDP.
In this case, the ACK contains the SDP after the 200 OK (with SDP) send by
the callee.
In this situation, the RTP/RTCP is not dealed correclty by the media proxy
and sems i.e impossible to have the audio.
Do you think this situation is possible ? The RFC can expose some case never
used for example.
Do you know if the RTPProxy daemon is also concerned by this problem ?
Thanks,
Christophe
below is my config file i modified it a bit.. still pretty basic. trying to get basic connectivity to a PSTN gateway. I modified an example file.
errors I get are:
bash-3.00# openser -c
0(6841) parse error (98,21-28): parse error
0(6841) parse error (98,29-30): bad arguments
0(6841) parse error (121,33-36): parse error
0(6841) parse error (121,51-52): bad forwardargument
0(6841) parse error (139,55-56): unknown command, missing loadmodule?
0(6841) parse error (145,55-56): unknown command, missing loadmodule?
0(6841) parse error (151,55-56): unknown command, missing loadmodule?
0(6841) parse error (163,10-11): parse error
0(6841) parse error (163,10-11):
ERROR: bad config file (9 errors)
#
# $Id: openser.cfg,v 1.6.2.1 2006/07/17 15:51:03 klaus_darilion Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
alias=ip
/* Uncomment these lines to enter debugging mode
fork=no
log_stderror=yes
*/
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
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 ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/usr/local/lib/openser/modules/mysql.so"
loadmodule "/usr/local/lib/openser/modules/sl.so"
loadmodule "/usr/local/lib/openser/modules/tm.so"
loadmodule "/usr/local/lib/openser/modules/rr.so"
loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
loadmodule "/usr/local/lib/openser/modules/usrloc.so"
loadmodule "/usr/local/lib/openser/modules/registrar.so"
loadmodule "/usr/local/lib/openser/modules/textops.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/local/lib/openser/modules/auth.so"
#loadmodule "/usr/local/lib/openser/modules/auth_db.so"
# ------------------ logs -------------------------------------------
log_facility=LOG_LOCAL7
#Add the xlog module:
loadmodule "/usr/local/lib/openser/modules/xlog.so"
# ----------------- setting module-specific parameters ---------------
# -- 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{
/* ********* ROUTINE CHECKS ********************************** */
# filter too old messages
if (!mf_process_maxfwd_header("10")) {
log("LOG: Too many hops\n");
sl_send_reply("483","Too Many Hops");
return;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Wow -- Message too large");
return;
};
/* ********* RR ********************************** */
/* grant Route routing if route headers present */
if (loose_route()) { t_relay(); return; };
/* record-route INVITEs -- all subsequent requests must visit us */
if (method=="INVITE") {
record_route();
};
# now check if it really is a PSTN destination which should be handled
# by our gateway; if not, and the request is an invitation, drop it --
# we cannot terminate it in PSTN; relay non-INVITE requests -- it may
# be for example BYEs sent by gateway to call originator
if (!uri=~"sip:\+?[0-9]+@.*") {
if (method=="INVITE") {
sl_send_reply("403", "Call cannot be served here");
} else {
forward(uri:host, uri:port);
};
return;
};
# account completed transactions via syslog
setflag(1);
# authorize only for INVITEs -- RR/Contact may result in weird
# things showing up in d-uri that would return our logic; our
# major concern is INVITE which causes PSTN costs
if (method=="INVITE") {
# does the authenticated user have a permission for local
# calls (destinations beginning with a single zero)?
# (i.e., is he in the "local" group?)
if (uri=~"sip:0[1-9][0-9]+@.*") {
if (!is_user_in("credentials", "local")) {
sl_send_reply("403", "No permission for local calls");
return;
};
# the same for long-distance (destinations begin with two zeros")
} else if (uri=~"sip:00[1-9][0-9]+@.*") {
if (!is_user_in("credentials", "ld")) {
sl_send_reply("403", " no permission for LD ");
return;
};
# the same for international calls (three zeros)
} else if (uri=~"sip:000[1-9][0-9]+@.*") {
if (!is_user_in("credentials", "int")) {
sl_send_reply("403", "International permissions needed");
return;
};
# everything else ( e.g., interplanetary calls) is denied
} else {
sl_send_reply("403", "Forbidden");
return;
};
}; # INVITE to authorized PSTN
}; # authorized PSTN
# if you have passed through all the checks, let your call go to GW!
rewritehostport("ip:5060");
# forward the request now
if (!t_relay()) {
sl_reply_error();
return;
};
}
bash-3.00#
I read in the recent archives and I say some talk on this, but then I found
this.
[Devel] [ openser-Bugs-1493632 ] ERROR:registry:update_contacts: invalid
cseq for aor
http://lnk4.us/PeLQ
I got the newest version out of CVS and my polycomm phone still has this
problem.
0(25130) ERROR:registrar:update_contacts: invalid cseq for aor <2012033002>
Natambu Obleton
Network Engineer
FastTrack Communications
nobleton(a)fasttrackcomm.net
(970) 247-3366 office
(970) 247-2426 fax
At 07:40 19/10/2006, Kamal.Mann(a)t-systems.com wrote:
>Hi All
>Do SER supports 'rfc 3262 Reliability of Provisional Responses in SIP'?
Of course. (SER supports all end-device features it doesn't care of, including
INFO, video, gaming, colorful displays, etc.)
>Is there any list of standards supported by SER available??
RFC3261, 3263,3265,3325,RFC4028,3581,3428,3903.
some of those are implemented as a scripting feature.
+ possibly parts of some additiional ones.
-jiri
Hi list,
I checked the OpenSER core cookbook, but I am unsure how to
handle the "received" and "rport" parameters in the "Via"
header. Is it used automatically ?
For now, I am using the registrar module to save the location,
but I think I can get rid of it and simply use the above
parameters.
Thank you.
Regards,
--
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >
Hello,
We have been using OpenSER for almost a year in a production system. So
far the only problem is that sometimes it stops processing the requests.
It does not happen very frequently, maybe every 10-15 days, sometimes it
is more, sometimes it is less. When it happens, the process is still
running, I can see it when I do "ps". Also netstat shows that it is
listening on port 5060. So everything looks normal, except that OpenSER
does not seem to process the requests. I use ngrep and I see that there
isn't a single packet being sent out. At that point the only thing that
cures the problem is to kill the process and start it again.
A couple of weeks ago, in an effort to solve the problem I upgraded from
1.0 to 1.1. It ran fine for several days but eventually the same thing
happened. I have no idea what to check for. Has anyone else seen this
problem? Is there anything I can do to figure this out?
The only solution that I can think of is to have OpenSER restarted every
24 hour or so. But I really do not want to end up there.
Thank you for any help
George
Disclaimer
The information in this e-mail and any attachments is confidential. It is intended solely for the attention and use of the named addressee(s). If you are not the intended recipient, or person responsible for delivering this information to the intended recipient, please notify the sender immediately. Unless you are the intended recipient or his/her representative you are not authorized to, and must not, read, copy, distribute, use or retain this message or any part of it. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses.
Dear All,
Here is very basic question from me.
I have installed openser 1.1.0. I want to record the CDR / Accounts of
calles and messages being processed. I have acc module in my opense.cfg
and parameter setting is as follows
# ----------------- SETTING MODULE-SPECIFIC PARAMETERS ---------------
## - - - - - - - - - - XLOG PARAMETERS - - - - - - - - - - - - - - -
modparam("xlog", "force_color", 0)
# - - - - - - - - - USRLOC PARAMS - - - - - - - - - - - - - - - - - -
#modparam("usrloc", "db_mode", 1)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://openser:openserrw@localhost/openser")
# - - - - - - 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")
#modparam("alias_db", "user_column", "username")
modparam("auth_db", "password_column", "password")
## - - - - - AUTH RADIUS - - - - -
#modparam("auth_radius", "radius_config",
"/usr/local/etc/radiusclient-ng/radiusclient.conf")
#modparam("auth_radius", "service_type", 15)
## - - - - - RR MODULE PARAMETERS - - - - -
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("rr", "append_fromtag", 1)
modparam("rr", "enable_double_rr", 1)
modparam("rr", "add_username", 1)
## - - - - - ACCOUNTING PARAMETERS - - - - - - - -
modparam("acc", "detect_direction", 1)
modparam("acc", "failed_transaction_flag", 1)
modparam("acc", "report_cancels",1)
modparam("acc", "report_ack", 1)
modparam("acc", "early_media", 1)
modparam("acc", "detect_direction", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 1)
#modparam("acc", "log_extra", "ua=$hdr(User-Agent);uuid=$avp(i:123)")
modparam("acc", "service_type", 15) # user 16 to set to Radius
modparam("acc", "db_flag", 2)
modparam("acc", "db_missed_flag", 3)
modparam("acc", "db_url", "mysql://openser:openserrw@localhost/openser")
modparam("acc", "db_table_acc", "acc")
modparam("acc", "db_table_missed_calls", "missed_calls")
modparam("acc", "db_missed_flag", 3)
modparam("acc", "acc_sip_method_column", "sip_method")
modparam("acc", "acc_from_uri_column", "from_uri")
modparam("acc", "acc_fromtag_column", "fromtag")
modparam("acc", "acc_to_uri_column", "to_uri")
modparam("acc", "acc_totag_column", "totag")
#modparam("acc", "acc_cseqno_column", "cseq_no")
modparam("acc", "acc_sip_callid_column", "sip_callid")
modparam("acc", "acc_time_column", "time")
# for mysql-based accouting, use the names of the columns
# for RADIUS-based accouting, use the names of the RADIUS AVPs
#modparam("acc",
"multi_leg_info","RAD_LEG_SRC=$avp(src);RAD_LEG_SRC=$avp(dst)")
#modparam("acc", "multi_leg_info","leg_src=$avp(src);leg_dst=$avp(dst)")
#modparam("avpops", "avp_aliases", "uuid=I:50")
modparam("acc", "radius_config",
"/usr/local/etc/radiusclient-ng/radiusclient.conf")
#modparam("acc", "radius_config", "/etc/openser/radius/client.conf")
#modparam("acc", "radius_flag", 2)
#modparam("acc", "diameter_missed_flag", 3)
#modparam("acc", "radius_extra", "Sip-RPid=$avp(s:rpid)
Source-IP=$si; Source-Port=$sp"
# Canonical-URI=$avp($can_uri); \
# Billing-Party=$avp($billing_party); \
# Divert-Reason=$avp(s:divert_reason); \
# X-RTP-Stat=$avp(s:rtp_statistics);
\
# From-Header=$hdr(from); \
# User-Agent=$hdr(user-agent); \
# Contact=$hdr(contact); \
# Event=$hdr(event)")
## - - - - - - JABBER SERVER CONFIGURATION - - - - - - - - -
modparam("jabber", "jdomain", "jabber.sipserver.com=*")
modparam("jabber", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("jabber", "jdomain", "sipx.vshodc.lntinfotech.com")
## - - - - - - - - - - - SIPTRACE MODULES PARAMETERS - - - - - - - - -
modparam("siptrace", "trace_flag", 0)
modparam("siptrace", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "table", "sip_trace")
modparam("siptrace", "duplicate_uri", "sip:172.17.85.51:5888")
# ------------------------- request routing logic -------------------
# main routing logic
route{
## ADDED BY MADHUSUDAN
# avp_write("caller_id", $avp(name); #"$uuid");
# avp_printf("i:20", "$avp($uuid): $fu");
# xdbg("$Cbgi:20$Cxx [$avp(i:20)] $Cbrcseq$Cxx=[$hdr(cseq)]\n");
# setflag(1); /* set for accounting (the same value as in log_flag!)*/
# t_relay(); /* enter stateful mode now */
##
sip_trace();
# xlog("L_ERR", "time [$Tf] method <$rm> r-uri <$ru> 2nd via
<$hdr(via[1])>\n");
# setflag(1); /* set for accounting (the same value as in
log_flag!)*/
# t_relay(); /* enter stateful mode now */
# if (t_newtran()) {
# log("UAS logic");
# t_reply("999","hello");
# } else sl_reply_error();
################
if (t_local_replied("all")) {
log ("no reply received\n");
}
# 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;
};
# 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;
}
onreply_route[1] {
if (t_check_status("1[0-9][0-9]")) {
setflag(1);
log("provisional reply received\n");
if (t_check_status("183"))
drop;
}
if (t_was_cancelled()) {
log("transaction was cancelled by UAC\n");
}
}
###################################################################
My need is to get the CDRs for events and volume like MESSAGES and
download/file transfer respectively.
Please help
______________________________________________________________________
Hello everybody,
we are now one week and a half since the registration to OpenSER summit
opened and two weeks and a half to the start of event. At this moment we
have more than 60 registered people and special guests. The numbers
promise a successful event, having there people from all categories of
VoIP business: developers, service providers, device vendors, investors
and standardization bodies.
The agenda is now in very goos shape, covering many aspects of VoIP and
OpenSER, Please have a loot at:
http://www.openser.org/index.php?option=com_content&task=view&id=60&Itemid=…
Day by day new special guests join the event. Update list is published at:
http://www.openser.org/index.php?option=com_content&task=view&id=61&Itemid=…
Within the summit will be launched a bunch of new services, applications
and extensions. We will keep you updated with these events in the next
days. Because of the logistics and materials we have to prepare, is very
likely that the registration will close several days before the event.
The ones that decide to come afterwards will not benefit of the event's
offerings (meals, brochures, CDs...), but they can attend.
To register, fill and submit the form at:
http://www.openser.org/index.php?option=com_content&task=view&id=57&Itemid=…
There is no charge to attend the event. More details on:
http://www.openser.org
Cheers,
Daniel