To those of you who have developed code you are evaluating whether to commit to cvs, here is information found in the new HACKING file found in the experimental cvs directory. If you have any immediate questions or comments, I'm all ears!
g-)
HACKING SER
===========
This information is for people who have or would like to develop a
module or code for SER and would like to submit the code to the SER
CVS tree. Please first read the README file in the experimental
directory for information about the purpose of the directory and
what type of code you can submit.
If you have decided to go ahead, the information below is what you
need to get started!
Administrator
=============
The administrator of the experimental directories is Greger V. Teigre.
He can be contacted at greger(a)onsip.org. If you have any questions
after reading this or would like to submit code, please send an email!
Registration
============
As a new SER developer you need to register an account at
http://bugs.sip-router.org/ and at
http://developer.berlios.de/account/register.php. Use the same
username for both.
Requesting Access
=================
In order to get write access to the experimental CVS you need to
send information about the module/code to the administrator (see above),
as well as your full name, and the username and email address used for
the above registration. Information about parameters and function calls,
the version of SER the module has been developed for, and one or more
use cased for the code will be of help (unless it's obvious...). You
should also include a 3-5 lines description of the code/module that
you would like to include in the experimental README.
You will then be advised on how to make sure your code is a use for others
and if others are working on/requested submission of similar code. The
purpose of this check is to make submitted code as easily accessible as
possible and avoid overlapping coding efforts.
Once approved, you check out using: cvs co experimental. You will get
all the experimental modules, your module should have an empty directory
where you have write CVS access.
Development Requirements
------------------------
You should read this general info on the SER CVS:
http://www.iptel.org/ser/cvs/
And to understand how SER is organized, you should read the first part of:
http://www.iptel.org/~janakj/ser_cvs.xhtml
We strive to keep the requirements as few as possible (we don't like
overhead more than you do), but there are some rules you must follow:
- You are responsible for maintaining the module for any branches you have
submitted the module in. This includes keeping it updated as HEAD and the
branches are updated
- Bug and issue tracking MUST be kept on http://bugs.sip-router.org/
- If a module is not being maintained, it will be moved to the "attic" and
eventually deleted
- All experimental modules should be checked in with paths as if they live
in the main modules directory
- All experimental modules should have an updated README
- All experimental modules should have #warning directives that will be
shown when making, as well as a LOG(L_ALERT, "WARNING! ..."); in the
initialization function of the module. This warning should also be added to
the README file. Recommended warning template: "This module is experimental
and may crash SER or create unexpected results. You use the module at your
own risk. Please submit bugs at http://bugs.sip-router.org/"
- IF YOUR MODULE REQUIRES PATCHING OF CORE OR OTHER MODULES:
If the module requires a patch to the core tree, the README file and compile
warning should explicitly warn about this and describe how to go about
patching the tree (reference to install.sh below and README). Patch(es)
should be included in a separate sub-directory called patches/. The README
should have instructions on which changes will be made, and the maintainer
should keep an updated install.sh that will apply the patches in the
patches/ directory (assuming that the module is located in the ser modules
directory after checkout by the user). This script may include patching
code in root/other modules, as well as making a new directory in root and
copying files from the modules/modulename/patches/ directory to the root.
IF the contributed code is NOT a module, but a core extension/patch, the
script should make the proper tree modifications, should NOT include a
Makefile (i.e. a module makefile), and should leave its own directory intact
after patching.
- If and when the module has proven its usefulness to a broad range of users
and its stability (and the developer his/her ability to support and maintain
the module), it may be promoted to a standard module status. This is a
decision made by the core developers. An application can be sent to
serdev(a)lists.iptel.org if and when the maintainer finds the module applicable to
such status
FYI here is the newly updated README from the experimental directory. The first section explains the purpose of the directory.
g-)
The Purpose of The Experimental Directory
=========================================
The experimental directory has been created to lower the threshold for adding
new code to SER, while keeping the main code tree robust. Experimental exists
both in CVS head (the main development branch), as well as in release branches
(ex. rel_0_9_0).
In the CVS head, experimental can be used for patches to the main code tree,
as well as for modules that extend SER's functionality. Any code will be
excepted, provided that the code give some generic value and one or more
developers are willing to maintain the code. Code that proves itself popular
and stable will be moved to the main code tree.
In a release branch, experimental can be used to add new functionality to an
already released version. Code will never be allowed into the main code tree
(because the code has been freezed), but people can add experimental features
to the stable release. This way limited functionality can be added without
having to use the CVS head, which will have lots of (possibly untested)
functionality added. Often modules that have been developed for CVS head will
be "backported", i.e. made to work with a previous, stable version. Also, some
developers may use a stable release and have developed a module for that version.
This module can be submitted to experimental of a released version to facilitate
the introduction of the new code into SER. (NOTE that ALL code submitted to a
stable version MUST be ported to also work with CVS head. Allowing a module only
into the experimental directory of a stable release is just time-limited until
porting has been done.)
What You Will Find in Experimental
==================================
The experimental directory may contain three types of code:
1. *Simple modules* that can be dropped into main code tree
2. *Complex modules* that require patching of the main tree
3. *Code patches* (no module) that modify the core to accomplish new functionality
Submitting Bug Reports
======================
For experimental code to enter the main code tree, it needs to be used, tested,
and bugs/feature requests most be reported. If you use code from the experimental
directory,remember that the code maintainer will love to hear about your
experiences! Contact the code maintainer directly (see information below).
If you have found a bug or have a feature request, please use:
http://bugs.sip-router.org/
=============================
Description of Modules:
=============================
path module, simple module
-----------
COMMENT:The path module has been ported into the main code tree by Andreas Granig.
This module will thus be removed as this effort has been finished.
Maintainer: Fermin Galan Marquez <fermin.galan(a)agora-2000.com>
This module implements the Session Initiation Protocol (SIP) Extension
Header Field for Registering Non-Adjacent Contacts, as described in RFC
3327
tls, code patches
----------
Maintainer: Cesc Santasusana <cesc.santa(a)gmail.com>
TLS is an optional part of the core, not a module. TLS, as defined in SIP RFC,
is a mandatory feature for proxies and can be used to secure the SIP signalling
on a hop-by-hop basis (not end-to-end). TLS works on top of TCP (DTLS, or TLS
over UDP is already defined by IETF and may become available in the future).
usrloc-cl module
-----------
COMMENT: This module is currently only found in rel_0_9_0 branch. Work is in
progress to port the module to CVS head.
Maintainer: Andreas Granig <agranig(a)linguin.org>
This is a cacheless implementation of the usrloc API and replaces the original
usrloc module. It provides access to domain tables (like location and aliases)
to other modules. The module exports no functions that could be used directly
from scripts.
The typical use case for this module over the original usrloc module is that
one wants to replicate the tables on the database layer without the need of SIP
replication. This allows better scalability at the cost of performance.
osp module
----------
COMMENT: The maintainer is currently working on packaging the code for
submission to the cvs.
Maintainer: Dmitry Isakbayev <isakdim(a)gmail.com>
This module adds support for the Open Settlement Protocol to SER. The Open
Settlement Protocol (OSP) standard is an operations and billing support
system protocol for IP network applications such as VoIP, video, short
message services (SMS) and content brokering. OSP is an open standard
defined by ETSI - the European Telecommunications Standards Institute. OSP
has been widely deployed by VoIP carriers to enforce secure access control
for peer to peer inter-domain VoIP routing and Call Detail Record (CDR)
collection. For more information see www.etsi.org and search for ETSI TS
101 321.
lcr module
----------
COMMENT: The LCR module of head has a slightly different feature set that
have been difficult to backport to 0.9.x.
Maintainer: Juha Heinanen <jh(a)tutpro.com>
Backported Least Cost Routing module from HEAD.
Hello Friends,
I have installed Ser with MySQl support and Serweb.Wenn I start the Ser
in normal mode - all things are ok and the Ser don't make any failure.
Whenn I turned the fork mode on , and start the Ser a second time, it
show me a connection error with mysql. Ser can't connect to Database ,so
that i can not register any Users with Serweb or so . But serctl work's
fine. The database name and password was ser and heslo.
I'm using Ser Verison 08-09 but ist still the same failure and i doesn't
now, how i can make it better.
I'm using the standard ser.cfg file with the normaly changes of
IP-Adresse and db_mode.
I hope anyone can help me with this problem. I only want to setup a Ser
with Mysql Support and Serweb.
Thanks and greetings,
Dirk
Hi all,
Can you tell me how to uninstall ser0.9.3?
I want to install ser 0.9.4. i try to install ser 0.9.4,
after that ser -V reponds version 0.9.3?
Thank you so much for your instruction
Hi everyone,
I have raised this issue in dev list but got no response, hoping some
one here will be able to answer this.
I have read in RtpProxy that RtpProxy waits for both parties to send
atleast one udp packet and then it fills up both ip:port structures
associated with that call and then it starts relaying.
Call Setup is like this:
--------Media----->
A-Party ----->MG-------->SSW------>SER/RtpProxy------->B-Party
now only B-Party is sending UDP Packets and Ser/RtpProxy sends them to
SSW (signalling entity) instead of MediaGateway. As soon as RtpProxy
receives one udp packet from A-Party then it sends those RTP packets to
MG i.e. it starts relaying following the right path.
how I can solve this ???
Adding to this, now after RTP relay starts successfully. B-Party (if
Dialed number is a FAX) reinvites with T38 and the IP:Port info in SDP
remains same. Now somehow RtpProxy is not recognizing the T38 packets
becuase we are in the same session and RtpProxy start sending those
T38 packets to SSW (signalling entity) instead of sending to MG. Please
remember we are in the same session, and RtpProxy shud send these T38
packets to MG, as it was sending RTP packets before ReInvite.
is it a bug in RTPProxy, should I use MediaProxy instead ???
Please comment, your help will be highly appriciated. I am using CVS
version of SER and RTPProxy.
Thank you
Atif Rasheed
Hi Support,
I have experienced this error, please advice what can be the caused. Thanks.
ERROR: start (AmThread.cpp:85): pthread create failed with code 11
Regards,
Nicky
Hello to everybody that volunteered to build packages,
you can start creating the packages for the distributions you
subscribed. Please take the tarball with the sources from:
http://openser.org/pub/openser/1.0.0/src/
Inside, in the 'packaging' directory you will find the specs for several
distributions. It is very likely that you have to change them a bit (see
my previous post
http://openser.org/pipermail/devel/2005-October/000872.html) and
discover some missing items in the specs. For tls packages you have to
set TLS=1 in the environment.
To submit them, would be good if you have a site from where we can
downloaded via http or ftp, otherwise let me know and I will give you
further details.
If you have some questions, send an email.
Cheers,
Daniel
We are storing cnam (callerid name) values in a mysql database for
use with openser. I have openser pulling the values from the
database using avpops but I need to know how to insert the value into
the from so that it will be passed to my sip user agents. Related
code posed below
modparam
("avpops","db_scheme","cnam_scheme:username_col=phonenumber;table=cnam_c
ache;value_col=cnam;value_type=string")
modparam("avpops", "avp_aliases", "cnam=s:cnam")
avp_db_load("$from/cnam_scheme","cnam/$cnam_scheme"); #sample query
-- select cnam from cnam_cache where phonenumber='13143212222'
this should now store that value in $cnam.
now how do I put that value for example "John Smith" in the from
portion of sip messaging so that it displays on the users sip phone,
or phone attached to an ata?
I am looking for the search feature on the serusers archives, is this
available?
Also, is the SER 0.9.4 red hat RPM available for download as I cannot
find it on iptel.org or the onsip website.
I see the tar binaries itself, but not the RPM.
Thank you for help,
Paul
Hi,
I have a question. Can I put two URI in the same Invite
message?.... My Idea is this
I have a module (MY MODULE), and an external program (MY_PROGRAM) those are
connected by Unix socket
When SER receives an Invite, Mymodule send this to Myprogram, and Myprogram
rewrite de uri of the invite and send to Mymodule.. then
I want to implement Forwarding . That is
A(pedro) --------------------call ---------------------------> B(alice
house)
If B dont answer, i must forward to C(alice office) .. and so on
It could arrive doing 2 Uris in the same invite or I have a branch
structure in the msg message?
Myprogam do Accounting, routing and others
Some Ideas..
Thank in advance,
Ing. Francisco Talavera
Dpto. Investigación y Desarrollo
Conexión S.A.