Hi guys,
I'd like to propose another possibility for a highly-available and
scalable system design based on SER:
The problems I've encountered for scalable systems are:
- Distribution of the user location and alias location among the nodes
(user location is based on registrations, alias location comes from
web interfaces and is used for call forwarding).
- Reloading up to date location tables after breakdown and recovery of a
node
So I'm just thinking loud about the following provisioning system:
- Write a client which fulfills the this demands:
- Receive one or more locations from SER via a SER module or from a
web application and distribute them to other
known clients. Take care of retransmissions if a client isn't
reachable or reports a temporary failure.
- Receive one or more locations from other clients and write
them into the SER FIFO. If writing into the FIFO fails, try to
write directly into the database (location-table, alias-table etc.).
Report a temporary failure if this also fails.
Maybe a centralized server should be used which receives the locations
from the clients and distributes them to other clients, so that the
nodes just know about the server and nothing about other nodes. This
would make integration of new nodes easy.
On the other hand, it's another single point of failure, so a
decentralized solution should be considered. But that would mean that
you've to inform every node about the existence of a new node.
The protocol used between the nodes should be simple and fast. So I
think SOAP drops out here. Maybe XMLRPC or ICE
(http://www.zeroc.com/ice.html) could be used.
One might think now why not just use replication on SIP layer, but
t_replicate only supports one peer and you've no possibility to get
locations on a node while it's down. Replication of other location
tables like the alias-table is also not possible.
I'd be willing to release these parts as GPL for creating an open
framework for carrier-grade SER integration, so any feedback,
improvements or flames are highly welcome.
Cheers,
Andy
I am relatively new to SER. My SIP service provider requires me to
present the ANI in the "From" field in my INVITE message header in E.164
format. I am currently sending this information as follows:
From: "2125551212" <sip:2125551212@xxx.xxx.xxx.xxx>
They want it in E.164 format as follows:
From: "+12125551212" <sip:+12125551212@xxx.xxx.xxx.xxx>
I see function only to modify the SIP URI but not the other header or
SDP fields.
Could someone help me with a code snippet that I can use in ser.cfg to
do this conversion?
Regards,
SCM
Does anyone know if there is a way to authenticate SER to MS Active
Directory? I'd like to use an existing user database instead of
having to manage users myself, and most of our users are in Active
Directory.
Has anyone tried this?
What are most SER users using for authentication? Is anyone here
tying into any kind of existing organization user database?
Hi to everybody!
Im currently trying to setup an outbound proxy using ser. Im still a
newbie with this ser and im not yet that good with the scripting.
Could anyone tell me how to configure ser for outbound proxy only
using rtpproxy? There are samples files in the Getting started manual
but im having troubles eliminating the authentication/mysql part in
script since im not yet familiar which modules depends on which. A
striped down version of the nat-rtpproxy.cfg file would be really
appreciated. Thanks in advance.
_jeff
Hi All.
I'm using t_check_status() to do call forwarding on 486 Busy responses. I
have an odd thing happening where SER receives the 486 Busy message (for
which SER properly sends an ACK response) and then the failure_route calls
append_branch() and t_relay() to try another destination.
After the new leg of the call is setup and then torn down, the original 486
Busy seems to be hung in the tm module, because it magically appears in
ngrep, which shows it being sent back to the caller as if the
append_branch() never took place.
Is there anything special that I should be doing to "swallow" the 486 Busy
response to prevent it from being sent to the caller UA?
Regards,
Paul
Hi
I just installed ser v0.8.14 from the *.tar.gz distribution and when I
try to run serctl moni it gives me an error saying:
Error opening ser's FIFO /tmp/ser_fifo
Make sure you have line fifo=/tmp/ser_fifo in your config
in the ser.cfg file the line
fifo="/tmp/ser_fifo"
is uncommented.
what am I doing wrong
We are using SER with the PostgreSQL module, so that SER and our
Asterisk PSTN gateway and voice mail system can use the same back-end
database for user records. (Anyone who's interested in how we did this,
let me know -- it's still a little shaky, but it pretty much works.)
Recently we have encountered a problem: it seems that if any database
error occurs, SER hangs or crashes. We have so far been able to mostly
work around these conditions by being Really Careful with the database,
but it is a little unsettling.
The database schema we're working from is practically identical to the
MySQL schema that ships with SER. Notably for this problem the lengths
of all CHARACTER VARYING fields are the same. The User-Agent field is
CHARACTER VARYING(50), for instance.
So ... today boss got a copy of Xten's "eyeBeam" software, set it up
to register to our SER ... and SER promptly locked up. I looked in the
PostgreSQL database log and found this:
Feb 10 13:39:32 mabell postgres[13058]: [267] ERROR: value too long for
type character varying(50)
Whoops. SER tried to insert eyeBeam's User-Agent data, PostgreSQL
returned a data integrity error, and SER went bye-bye.
So I did a little ALTER TABLE and adjusted the field to length 128 ...
then put this in ser.cfg:
# Disallow long user-agent
if (search("^User-Agent: .{100,}") ) {
log(1, "LOG: User agent too long\n");
sl_send_reply("479", "User agent too long!");
break;
};
But this is obviously a kludge ... and doesn't fix the problem of one of
the *other* fields being over-long.
Anyone have any thoughts on this? Robustness patches for the PostgreSQL
module or usrloc? Better ser.cfg workarounds to protect the world from
malformed or over-long SIP header fields? Should I just change all the
database fields to TEXT instead of CHARACTER VARYING(whatever) ?
--
Karl A. Krueger <kkrueger(a)whoi.edu>
Network Security -- Linux/Unix Systems Support -- Etc.
Woods Hole Oceanographic Institution
ser 0.9.3 has just been released. This is the new ser stable version.
The cvs stable branch is now rel_0_9_0.
The new release can be downloaded from:
ftp://ftp.berlios.de/pub/ser/0.9.3 ("official" source code, pre-compiled
binaries for various architectures, packages for various operating
systems; for more information see
ftp://ftp.berlios.de/pub/ser/0.9.3/README).
Before upgrading from an older version, please read
ftp://ftp.berlios.de/doc/NEWS (or sip_router/doc/NEWS if you use cvs).
If you use Debian, Jan has setup a ser apt repository. He will send a
mail shortly with more details.
Andrei
Dear SER Users,
What is the best document to use to help me install SERWEB? Where might I
find these documents? I already have SER running with MySQL.
Leo Papadopoulos
E-mail: leo(a)telecomCTO.com
Web site: www.telecomCTO.com <http://www.telecomcto.com/>
hi,
i know this might be the wrong list for that question, but i know
there are many good people in here using ser and sipura atas. i am
trying to send a NOTIFY message to a sipura ata, containing a resync
request. i do this via sipsak and a textfile containing the NOTIFY
message with an event of resync;tftp ... blah.
i then get, as mentioned on sipura website a 401 unauthorized
challenge back from the box. now i am supposed to send account
password computed with md5.
questions: which account password? the one for the account
configured on the box? or the admin password of the box? and how do
i send that to the box after the challenge arrived? don't i have to
set the correct message-ids and stuff?
does someone have a working example of messages and commands to get a
sipura nbox to resync its profile?
any help would be appreciated.
Brgds,
Gerd