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.
Greger, et. al.,
I like your idea enough to volunteer as a tester + documentation writer.
I do a lot of tech and user writing. Active in VoIP since the beginning.
I am active VoIP engineer and developer. Also PSTN & VoIP network
designer-builder.
I have my own private machines, network, and VoIP gateway resources.
Prefer CentOS or FC*
..mike..
>Hi guys,
>I have been playing with the following idea:
>Create a ready-to-run OS image with everything that is needed for
>iptel.org apps pre-installed + a complete installation of:
>* SER 2.0 (release)
>* rtpproxy
>* SEMS
>* SERweb
>* maybe sipsak, some monitoring tools, etc
>
>
>The idea is to create a small script 'config_iptelorg' for
>configuring the installation to your needs. You should then be able
>to download the ready image, boot it, go through the script and have
>an up and running iptel.org proxy and app server just like the
>iptel.org free SIP service in maybe 10-15 minutes. This way you
>could host a SIP service for your own domain with close to no setup at all.
>
>Some questions to you:
>* Is there any interest for this at all?
>* I was thinking about using Ubuntu 7.10 server as the OS. Any
>thoughts/preferences?
>* Should the image be an Amazon EC3 image (you could use
>http://www.rightscale.com and get it running in no time with 10
>run-hours free) or should it be a VMware appliance to be run with
>free VMware Player?
>* Other suggestions/comments?
>
>I could need some help with this, anyone interested in lending me a
>hand? (could be anything, documentation, testing, installation, etc)
>g-)
Hello,
We have a lots of error log like this, what fills syslog
ERROR:tm:t_forward_nonack: discarding fwd for a cancelled transaction
ERROR:tm:w_t_relay: t_forward_nonack failed
ERROR: t_check_status: cannot check status for a reply which has no
T-state established
Could you tell me how could i avoid this?
I think these are not errors. Shall i just change the debug level for
this logs?
Thanks any help,
Tamas
Greetings,
I have a strange problem using OpenSER 1.3.x with nathelper.
Two ethernet interfaces:
eth0 = 192.168.0.0/24
eth1 = outside.ip/29
For some reason, no matter what I do to mangle the requests with
nathelper's functions, the packet is *always* sent out of eth1 with
the *source address* of the machine's eth0. Obviously, the response
from the far-end SIP peer never gets back.
The packet does physically go over eth1, I know that much from packet
captures. I don't even see how this is possible; when OpenSER issues
a packet, shouldn't it originate according to the machine's routing
table, take the most specific route, and consequently, adopt the right
source address?
What gives?
I have OpenSER 'listening' on both interfaces, and have tried both on and
off with this setting.
Thanks,
--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : +1-678-954-0670
Direct : +1-678-954-0671
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
I have a scenario in which an OpenSER machine distributes load among
several Asterisk machines for outgoing PSTN. I use an external program
which I call through exec_dset() to select which server a call goes to.
I use record_route().
All calls are completed OK, but when I dial from some SIP user-agents
and hang up from the caller side, OpenSER gets crazy and doesn't know
where to route the BYE to. Here's the reason:
Good scenario:
- I make a call to <5551234@mydomain>
- OpenSER calls exec_dset, which turns it into
<providercode#5551234@chosenserver>
- Call is answered
- I hang up
- My UA sends a BYE like this: "BYE
sip:providercode#5551234@chosenserver SIP/2.0"
- I get an OK back, all is well.
(Sometimes the # in the uri above is sent as %23, but it works either way)
Bad scenario:
- I make a call to <5551234@mydomain>
- OpenSER calls exec_dset, which turns it into
<providercode#5551234@chosenserver>
- Call is answered
- I hang up
- My UA sends a BYE like this: "BYE sip:5551234@mydomain SIP/2.0"
- My openser.cfg doesn't know how to handle that and I get a "Loop
Detected" back. The destination never gets a hangup signal.
Is the second UA from the "bad" scenario disrespecting the RFC? Do I
have any recourse to route a BYE that comes like that to the right
Asterisk server?
Thanks,
Juan
Hi
Is it possible to put Openser + Mediaproxy behind NAT while serving
internal phones and external phones ?
Internal phone <-> Openser+MediaProxy <-> NAT <-> external phone
(maybe behind nat also)
Openser is act as a registrar in this case.
If you have successful story with this setting, please share. Thank you so much
Regards,
Halomoan
Hi,
how do I run ser/openser on multiple ports. ?
I've configured my ser with two listen stat.
listen = ip:5060
listen = ip:5070
UA:5070 -------> Cisco (Blocked 5060) --------> SER -------------> UB:5060
UA is able to call UB, but UB is not able to call UA, I know 5060 is blocked
but it should goto 5070 ? please guide on this ?
Thanks,
Arun
Hi Lazer,
>i need a simple config that achieves the following (w/ out a db)
>
>if a user is not registered then all calls should go to a default gw
>192.168.10.1
>
>the default gw will only respond w/ a 302 or a 404
>
>if a 302 is received then openser should forward the call on to the
>new gw listed in the reply
>
>if a 404 is received the call should be forwarded to a different gw
172.16.20.1
>
>if the send gw is done then the call should die.
Try with somehting like this (not tested):
if (!lookup("location")) {
route(5);
exit;
}
route[5] {
rewritehostport("192.168.10.1:5060");
t_on_failure("1");
route(1);
exit;
}
route[1] {
if (!t_relay()) {
sl_reply_error();
};
exit;
}
failure_route[1] {
if (t_check_status("404")) {
rewritehostport("172.16.20.1:5060");
append_branch();
t_relay();
} else {
get_redirects("*");
t_relay();
}
}
Saludos
JesusR.
>here is what i was thinking of but as a newbie i may be off my rocker
>i seem to get an error
>
> ERROR: t_check_status: cannot check status for a reply which has no
>T-state established
>
>but again my whole approach may be wrong.
>
>
> if (!lookup("location")) {
>
>rewritehostport ("192.168.10.1:5060");
>if (t_check_status("(404)|(480)")) {
> log("404 or 480 negative reply\n");
>rewritehostport ("172.16.20.1:5060");
>}
>else{
>t_on_failure("1");
> t_relay();
>}
>
>
> failure_route[1] {
>
> get_redirects("*");
> t_relay();
>}
> }
Saludos
JesusR.
------------------------------------
Jesus Rodriguez
VozTelecom Sistemas, S.L.
jesusr(a)voztele.com
http://www.voztele.com
Tel. 902360305
-------------------------------------