Hi!
I'm running ser-0.9.6, on FreeBSD 6.1-stable, database backend
is postgresql version 8.1.3.
Today I got errors in logfiles, saying:
messages.2.bz2:May 29 14:35:03 <XXX> /usr/local/sbin/ser[51448]:
ERROR:avpops:dbrow2avp: dbrow contains NULL fields
The similar problem reported in:
http://lists.iptel.org/pipermail/serusers/2005-May/019681.html
with much more detailed description of error, database contents
and config samples.
Patch is trivial, and looks more like a fix to copy'n'paste error:
in mysql/val.c function str2val states:
if (!_s) {
memset(_v, 0, sizeof(db_val_t));
VAL_TYPE(_v) = _t;
VAL_NULL(_v) = 1;
return 0;
}
VAL_NULL(_v) = 0;
and the last line mentions that 'well, that's value is not NULL'.
In postgresql/db_val.c, line 182, function str2valp, the same statement is the:
if (!_s) {
DLOG("str2valp", "got a null value");
VAL_TYPE(_v) = _t;
VAL_NULL(_v) = 1;
return 0;
}
without explicit notification that this is not-NULL value.
More than, nowhere else in this function VAL_NULL(_v) not set to 0.
So, if a value _v.val contained anyting but 0 at the function start,
resulting value will be threated as NULL despite the fact, that _s is NOT NULL.
Patch is obvious, just add VAL_NULL(_v)=0; after cited block (line 188) and
everyting will be ok.
At least for me it's ok for some hours :)
Hi ,
I tried to call from one nokia sip (E61 and other models )phone to another nokia sip phone. The call works fine. The problem comes only when I call from Phone A to Phone B and then immediately cancel the call(from Phone A). The Phone A will hangup the call as it sent CANCEL but the SER will ignore this CANCEL and still send INVITE to Phone B resulting in a ghost call situation.
I tried to capture a log of message and found that Phone A "CANCEL" message is received on SER even before any provisional response from Phone B. Therefor SER doesnot relay this CANCEL request to Phone B. I even checked RFC which clearly says that UAC should not send CANCEL untill it receives any provisional response. I talked to Nokia expert and they said the 100 Trying message from your server is considered as provisional response, therefor behaviour of client is absolutely correct.
Is there any way I can stop 100 Trying message and still run statefull SER, so that I can verify what nokia said. Any ideas suggestions are welcome.
Thanking you all in advance.
Best Regards,
Abdul Qadir
---------------------------------
Don't be flakey. Get Yahoo! Mail for Mobile and
always stay connected to friends.
Hi,
I encountered the following error:
Jun 15 08:57:21 rd ser[12680]: ERROR: slow timer too slow: overflow (7997 - 6974 = 1023)
Jun 15 08:57:24 rd last message repeated 46 times
Could you please point me what could be the reason?
Thanks in advance.
Tomasz
Guys,
thanks to your support (both Bogdan and Daniel), I found out that
there was nothing wrong with the server and t_onreply handling, but
the INVITE was taking another routing three than the one I was
checking and therefore never hit the t_on_reply section I wanted.
This being said, I consider this issue resolved.
Cheers,
Dan
Hi all,
There are modules that are using default values for AVPs.
What will happen if another module is reusing the same AVP?
Or if the AVP is redefined inside the script?
Is this completely orthogonal?
Should I worry about this while using AVPs?
Regards,
Ovidiu Sas
hi guys!
can somebody explain me how SEMS works with SER/OpenSER.
As I conceive proxy sends requests to SEMS via unix socket. Then SEMS
needs constructs reply or new request and ask proxy to send it. But
where reply come to proxy? into onreply_route[0] block? is it possible
to use t_on_reply() function when initial request writing to SEMS to ask
proxy to use specific onreply_route[] block?
Thanks for advise!
--
CU,
Victor Gamov
Hey Everyone,
when i try to load module perl.so, i get this message :
ERROR: load_module: could not open module
</usr/local/lib/openser/modules/perl.so>:
/usr/local/lib/openser/modules/perl.so: undefined symbol: boot_OpenSER
In /usr/local/lib/openser/modules/ i have not only perl.so but also the
lib/perl dir.
openser-1.2.0-tls or openser-1.2.1-tls
Any idea ?
Thanks,
--
Richard Timsit <Richard.Timsit(a)epfl.ch>
EPFL
Hi!
i wonder if there is a timer which controls the timeout for provisional
replies.
E.g. I want to cancel an INVITE and retry another gateway if the gateway
does not respond with 100 (or 180) in a certain time.
regards
klaus
--
Klaus Darilion
nic.at
All,
I am trying to configure SER to work as SIP proxy (not registar and
not redirect). I tried to modify simple ser.cfg which comes with SER
by adding one line in route[0]:
rewritehostport("192.168.1.2:5060");
This unfortunately doesn't work. The message to my SIP server
192.168.1.2 are indeed forwarded. But message comming back from
192.168.1.2 are looped by my SIP proxy (192.168.1.3) back to SIP
server (192.168.1.2).
Can someone help me? Or send a working cfg for SIP proxy, I cannot find any.
This is my complete ser.cfg:
#
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
/* 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/ser_fifo"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
#loadmodule "//lib/ser/modules/mysql.so"
loadmodule "//lib/ser/modules/sl.so"
loadmodule "//lib/ser/modules/tm.so"
loadmodule "//lib/ser/modules/rr.so"
loadmodule "//lib/ser/modules/maxfwd.so"
loadmodule "//lib/ser/modules/usrloc.so"
loadmodule "//lib/ser/modules/registrar.so"
loadmodule "//lib/ser/modules/textops.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "//lib/ser/modules/auth.so"
#loadmodule "//lib/ser/modules/auth_db.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{
# 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");
break;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
break;
};
# 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);
break;
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
break;
};
# 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("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
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
# Dzus
rewritehostport("192.168.1.2:5060");
if (!t_relay()) {
sl_reply_error();
};
}
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
Hi,
recently moved from SER > OpenSER 1.2.0, but after some time when the
server is running OpenSER starts to respond with:
"SIP/2.0 473 Filtered destination (473/TM)." to my INVITEs.
I don't have any blacklists/accesslist configured (the config is from
SER which doesn't support that), why am I seeing this problem?
Br,
/Tobias