I load the auth.so and the default config.
Uncomment those to use auth.so
But when I call up two user agents not register in the database.
The only difference is there a warning for registration.
They are still calling each other. Why?
Has anybody started on support for Postgres?
I've checked out the layering and it seems
to be a fairly modular project. I haven't coded
in C for quite some time, but I think I can handle
it. Any hints? Should I even try?
The only thing I can see having problems with is
the build/configure system. How do I hook in a new
module? How are include directories and new libraries
added? I was pretty good with make, gmake, imake in my day
but I can't seem to find the head of the Make tree!
---greg
Greg Fausak
I'm trying to understand stateful vs. stateless transactions.
A stateless 'transaction' simply lasts as long as it takes to process
the current sip request. It is then forgotten.
However, a stateful transaction I'm having a little problem grasping.
For instance, if I t_relay() an INVITE, logically the transaction is
started....so when the response comes it isn't delivered to the main
route {} block, but instead it is delivered to the awaiting stateful
t_relay(), probably keyed by callid. So, for instance:
INVITE <-
401 Unauthorized ->
Is this entire sequence a transaction? Right after this the UA sends
an ACK, this is a transaction unto itself?
ACK <-
The UA then sends :
INVITE <-
100 Trying ->
180 Ringing ->
200 OK ->
All of these messages are a 'transaction' handled by t_relay()? The next
transaction is:
ACK <-
Finally, the last transaction would be (as an example):
BYE <-
200 OK ->
So the ser route{} block would need to recognize and handle
INVITE
ACK
BYE
in this context. Is that correct? If I was running 'statelessly'
I would need to handle and send every single message listed?
---greg
Thanks a lot. It seems that the log line
> 5(391) authorize(): Invalid nonce value received, very suspicious !
is the key -- Jan will probably handle that better than myself.
Are you sure you applied the solaris/digest patch?
(See nonce validation in ISSUES on SER's website. See also
the topmost solaris-specific issue -- better take SER sources
and recompile them without DBG_QM_MALLOC in Makefile.defs)
If things don't work then, send me please captured SIP messages too.
(Use tools like "ngrep port 5060" to record them.)
Thanks,
-Jiri
Hi,
A bit offtopic perhaps, but are there any good win32 sip ua's out there?
I'm interested in both commercial and opensource software (my friends
doesn't seem to whant to buy Cisco 7960's ... wonder why :)
/ Tomas
This is probably a very simple question. I'm trying to create a very
simplistic configuration that simply forwards the call to one of two
fixed destinations. Essentially, it forwards all calls to server A and
if that fails, forwards the call to server B. Forwarding to server A is
no problem. Within route, I simply have:
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
rewriteFromRoute();
if (!forward("192.168.1.1")) {
sl_reply_error();
};
This works perfectly, but only forwards to one server. I tried changing
the last bit to:
if (!forward("192.168.1.1")) {
if (!forward("192.168.0.1")) {
sl_reply_error();
};
};
However, this results in "ERROR: bad config file (5 errors)".
Any suggestions? Is something like this possible?
--
Jamin W. Collins
Dear Jiri,
I have successfully compile the acc.so with SQL support.
And I run a number of testing on it.
It seems works fine but I encounter the following error which crach the ser.
===========================================================
[root@md benny]# 0(3545) mod_init(): Database connection opened successfuly
Maxfwd module- initializing
rr - initializing
acc - initializing
stateless - initializing
mysql - initializing
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
0(0) INFO: udp_init: SO_RCVBUF is initially 65535
0(0) INFO: udp_init: SO_RCVBUF is finally 131070
9(3565) INFO: fifo process starting: 3565
9(3565) SER: open_uac_fifo: fifo server up at /tmp/ser_fifo...
10(3574) ACC: transaction answered: method=INVITE,
i-uri=sip:1000@md.com;user=ph
one, o-uri=sip:1000@192.168.10.18:5000;user=phone, call_id=
426a69eafe94e7923666
1278d86d5024(a)192.168.10.18, from=
UserAgent-1<sip:1000@192.168.10.18:5000;user=p
hone>, code=408
10(3574) use_table(): Invalid parameter value
0(3545) child process 3574 exited by a signal 11
0(3545) core was not generated
0(3545) INFO: terminating due to SIGCHLD
=========================================================================
It seems to be a crash on use_table() when code=408,
I tried to unanswer to call or call to itself, and this problem generated.
Benny
-----Original Message-----
From: Jiri Kuthan [mailto:jiri@iptel.org]
Sent: Monday, February 24, 2003 6:30 PM
To: Benny Ho
Subject: RE: [Serusers] problem in using acc.so and radius_acc.so and
auth.so
First of all, note well:
http://lists.iptel.org/pipermail/serusers/2003-February/000493.html
At 04:36 AM 2/24/2003, Benny Ho wrote:
>Could you tell me how to enable SQL_ACC def? and setting teh db_url
>parameter?
uncomment the "#DEFS+=-DSQL_ACC" line in modules/acc/Makefile
>I cannot find any doc for mysql modules.
mysql module is not used from ser scripts directly -- modules which
rely on mysql use it internally. acc w/mysql has not been released
yet, it is work in progress on CVS and it has not been documented.
-jiri
I'm currently working with SNOM to get this issue
fixed. I'll report when I know something. It might
not hurt if someone else reported it to them!
---greg
Greg Fausak
>
>At 09:34 PM 2/24/2003, Jamin W. Collins wrote:
>>On Mon, Feb 24, 2003 at 08:54:00PM +0100, Jiri Kuthan wrote:
>>> What is CIC?
>>
>>A PBX made by I3 (www.inin.com)
>>
>>> Send us network dumps please -- that will make it easier to understand
>>> for us. You can for example use "ngrep port 5060".
>>
>>Network dump from the SER server is attached.
>
>snom phone is a common suspect again.
>
>The first signaling transaction looks ok. The only unusual thing is that
>for some reason, the ININ server advertises 192.168.0.9 as media receiver
>whereas its signaling lives at 192.168.1.16. Is media decomposed?
>
>The really suspicious is the second transaction. The snom phone sitting
>at .36 advertises contacts with .34 in its replies. That makes the
>caller (ININ) to send an ACK to .34. Snom does not received it and
>keeps soliciting it by retransmitting 200s.
>
>-Jiri
>
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
Hi,
I've been looking at ser for a couple of days now and there some things I
can't find in the documentation.
.1. Logging funktionality
I'm used to being able to log more detail than what I can get out
ser. I'm problably missing something in the documentation, but
what I want is something like the following
timestamp ser[pid] Incoming packet from ip:port
[dump of packet (only the sip header/body)]
timestamp ser[pid] Invite from [] to []
timestamp ser[pid] After rewrite: from [] to []
timestamp ser[pid] Relaying packet to [pstn-gw/other sip server]
/
timestamp ser[pid] Handling request for local user []
Can you send arguments to the log() function in the configuration
file for example log(1,"Call from %s", uri:from); ??
.2. Rewrite rules
Is it possible to rewrite the from uri?
For example when I [sip:tomas@krixor.xy.org] want to call a pstn
number I must rewrite the from address to
[sip:myphonenumber@krixor.xy.org] before I send the request to
the pstn gateway
And when a incoming call comes from the pstn gateway I want to
rewrite the from address from [<sip:number@ip-of-pstn-gateway>]
to {"PSTN Luser" <sip:number@pstn-gw.mydomain.com>]
I haven't looked at the source in the CVS yet, but I aim to do so soon, I
saw in the list archive that you have lots of nice new features planned
for the next release. ENUM support is one of the better ones :)
Anyway, looking forward to trying to help with the development of this
software.
Best regards,
Thomas Björklund
Folks,
I need an advise on how to better implement one feature, which isn't
currently present in SER. We need to allow UAs behind NAT properly
register with the registrar - by "properly" I mean that host:port portion
of URI in Contact field should not be used, but host:port the request
came from should be used instead. By definition we know that those UAs
will support symmetric SIP signalling, so that this scheme will work just
fine.
In my opinion there are two ways to do it: either add new rewritecontact*
family of functions similar to rewritehost ones. or add a new flag for
the save() function. This is where I need your help - which implementation
looks better for you (or maybe you have even some better idea), since
we are really interested in inclusion of our changes into the mainline to
reduce our local hacks.
Regards,
Maxim
Folks,
Attached please find several patches for ser 0.8.10. They do the following:
1. Removes hardcoded `/usr/local' from Makefiles and replaces it with
LOCALBASE variable setable in the top Makefile.defs. This should make
life of packagers easier.
2. Allows to override PREFIX variable with something else from environment.
3. Adds support for FreeBSD doc/man directories layout.
4. Adds some missed -I's into radius modules.
5. Fixes radius modules to use the same symbolic avp names as in dictionary.
6. Adds support for recording source port in msg structure and adds it
in "Noisy feedback". This should be extremely useful for debugging various
SIP&NAT scenarios and later could be re-used to implement `rport' support
described in my previous message.
It would be nice to have those patches integrated into the next release.
Thanks!
-Maxim
I've got a packet that looks like:
#
U 2003/02/24 07:56:52.503535 216.87.144.203:5060 -> 216.87.145.22:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 216.87.145.22:5060;branch=z9hG4bK-ng5tokyx448r.
From: "snom man" <sip:4695461245@augustvoice.net>;tag=8u6ju8wxuc.
To: <sip:2143357976@augustvoice.net;user=phone>;tag=3CBB0360-532.
Date: Mon, 24 Feb 2003 13:56:43 GMT.
Call-ID: 3c267202b6a8-lgseu8olovlp(a)216.87.145.22.
Server: Cisco-SIPGateway/IOS-12.x.
CSeq: 2 INVITE.
Session-Expires: 7200;refresher=uac.
Require: timer.
Allow-Events: telephone-event.
Contact: <sip:92143357976@216.87.144.196:5060;user=phone>.
Record-Route: <sip:2143357976@216.87.144.203;ftag=8u6ju8wxuc;lr>.
Content-Type: application/sdp.
Content-Length: 209.
.
v=0.
o=CiscoSystemsSIP-GW-UserAgent 7543 5694 IN IP4 216.87.144.196.
s=SIP Call.
c=IN IP4 216.87.144.196.
t=0 0.
m=audio 16632 RTP/AVP 0 100.
a=rtpmap:0 PCMU/8000.
a=rtpmap:100 X-NSE/8000.
a=fmtp:100 192-194.
The main thing to note is the packet is sent to a SNOM phone from
my PROXY server. Curious, when the SNOM phone responds it is
responding to 216.87.144.196, which is my GATEWAY. My GATEWAY is
configured to only listen to the PROXY server, so it drops the packet.
In the packet above, the Record-route line indicates that 216.87.144.203
should be responded to, which is my PROXY.
Also in the packet above, there is a 'Contact:' line that indicates
the GATEWAY at 216.87.144.196 should be contacted.
Obviously the SNOM phone is getting the address from the Contact:
line (or maybe the SDP) rather than the Record-route: line.
Is it doing so incorrectly, or do I have a bug in my GATEWAY, or
does the PROXY need to strip out the Contact: line?
Hi!
I was just wondering if you had some benchmark for the SER parser... as
SER does not seem to offer a libser, it makes it more difficult to write
benchmarking programs :/
TIA,
-- Sebastien
Thanks Jiri,
I'll have a look at the CVS version. I'm sure there will be more hacking to do
only to make it compile.... :(
However, got the replacement of the "c=.." part working. I'll test this as soon
as I can.
Jaime
Jiri Kuthan <jiri(a)iptel.org> on 24/02/2003 13:20:00
To: Jaime GILL/EN/HTLUK@HTLUK
Nils Ohlmeier <nils(a)ohlmeier.de>
cc: Jan Janak <J.Janak(a)sh.cvut.cz>
serusers(a)lists.iptel.org
Subject: Re: [Serusers] FCP support in SER: Modifying SDP
At 12:50 PM 2/24/2003, jaime.gill(a)orange.co.uk wrote:
[...]
>It think the problem is in the replacement of the SDP information. The first
>occurrence of the IP address in "v= " and the port in "m= " in the SDP get
>replaced, but the second IP in "c=" is not.
nit: it's not the "v=" line, but "o=" ('owner') line which you are replacing.
However, you are not probably worried so much about this one -- it maintains
primarily a (not widely utilizied) identification purpose. All "c=" occurences
do matter. (In addition to port numbers in "m=" lines.)
[...]
>I have been trying to understand how the proxy builds the forwarded message
from
>the old one, and realised that for the Via replacement (or adding of more
>params), I need to be using a string called add_to_branch_s and
>add_to_branch_len (so ignore the replace_via implementation in the current
>tar.gz).
I suggest you used the mhomed option (available only on CVS). The issue is
you need to print the correct IP address in Via on multihomed host. With
mhomed enabled, IP routing is utilized to determine the right IP address.
Let me know if you need something more for getting Via right.
>But for the SDP, whenever I work with get_body, it does not modify it
>appropriately. So currently, I'm using msg->orig to get to the initial message,
>search for certain IP4 and audio strings and replace them with the information
>provided by the fcp server. That means, in the case of the SDP, 2 IP address
>replacements (in v=.. and c=..) and 1 port replacement (in m=..). As I
mentioned
>before, I only manged to change the v=.. and m=... Whenever I try to replace
>more than one appearance, strange things happen, like strings in non expected
>places, like Via, and cannot work out why. So my question is an open one:):
what
>is the best way to change the SDP part?
I suggest here too -- use the CVS version. It has departed from the use of
the buffers (orig and buf) -- we have now just one buffer (buf) without any
zero termination. Previously, the two buffers and 0-termination caused lot
of issues, some of them possibly annoying you right now. Look at the
textops/replace_all action (only on CVS too) to see how to replace multiple
occurences of a string in SIP messages. (Caution: you will eventually need
to calculate new SDP body size and change content-length too.)
>The other of my questions is whether all this mess with NAT's will get solved
>when the proxy supports TCP,
The major problem is media, which will keep using UDP.
>and whether this is the best approach to solve the
>SIP through NAT/FW problem.
As all NAT traversal methods -- none of them is perfect, each has cons and pros.
The benefit of FCP is that once fcpd works, maintenance of the SIP code is
easier
in user space. Also, you can better couple your pinhole policy with SER's
SIP-layer policy.
>For example, how about a nathelper module for
>netfilter/iptables that gets this working, in the same manner as IRC or ftp
>currently? Does anybody know about any work progressing this for linux/FreeBSD?
I'm not aware of such. There is Billy Biggs masquerading module, but it is
pretty old and no longer maintained.
-Jiri
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
*******************************************************************************
Important.
Confidentiality: This communication is intended for the above-named person and
may be confidential and/or legally privileged. Any opinions expressed in this
communication are not necessarily those of the company. If it has come to you
in error you must take no action based on it, nor must you copy or show it to
anyone; please delete/destroy and inform the sender immediately.
Monitoring/Viruses
Orange may monitor all incoming and outgoing emails in line with current
legislation. Although we have taken steps to ensure that this email and
attachments are free from any virus, we advise that in keeping with good
computing practice the recipient should ensure they are actually virus free.
Orange PCS Limited is a subsidiary of Orange SA and is registered in England No
2178917, with its address at St James Court, Great Park Road, Almondsbury Park,
Bradley Stoke, Bristol BS32 4QJ.
*******************************************************************************
Hi Nils,
Once again I'm writing to ask about more things and to give you an update on
what is happening with the FCP tests...
We have set up a simple scenario with 2 proxies separated by a firewall/NAT, and
2 UA, one within (UA1) and another outside the firewall (UA2). One UA registers
with the natted proxy (UA1), the other with the "public" proxy (UA2).
At the moment, SIP messages go forwards and backwards without problems, but
media is not flowing across the firewall.
It think the problem is in the replacement of the SDP information. The first
occurrence of the IP address in "v= " and the port in "m= " in the SDP get
replaced, but the second IP in "c=" is not. I have been trying all sorts of
things, but no joy :( . Here are the INVITE messages in more detail. I also
include the latest fcp module for you to play with it.
---------- UA1 to proxy message ------------------
U 172.21.68.78:1129 -> 192.168.6.153:5060
INVITE sip:jaime@asereje.orange.co.uk SIP/2.0
Call-ID: 5812832001907970791(a)172.21.68.78
Content-Length: 121
Content-Type: application/sdp
To: sip:jaime@asereje.orange.co.uk
From: sip:pepe@asereje.orange.co.uk;tag=-779729009
Contact: sip:pepe@172.21.68.78:5061
CSeq: 1 INVITE
Via: SIP/2.0/UDP 172.21.68.78:5061;branch=AC15444E13C5000000F38F819DE5-2*0
v=0..o=- 1046084768435 1046084768465 IN IP4 172.21.68.78
s=-
c=IN IP4 172.21.68.78
t=0 0
m=audio 5006 RTP/AVP 8 3 0
---------- End of UA1 to proxy message -----------------
-------- Proxy to UA2 message ---------------------
U 192.168.6.153:5060 -> 172.21.68.78:15592
INVITE sip:172.21.68.78:15592 SIP/2.0
Call-ID: 5812832001907970791(a)172.21.68.78
Content-Length: 121
Content-Type: application/sdp
To: sip:jaime@asereje.orange.co.uk
From: sip:pepe@asereje.orange.co.uk;tag=-779729009
Contact:<sip:192.168.0.1:33240>
CSeq: 1 INVITE..Via: SIP/2.0/UDP 192.168.6.153;branch=z9hG4bK1019.21c52996.0
Via: SIP/2.0/UDP 172.21.68.78:5061;branch=AC15444E13C5000000F38F819DE5-2*0
v=0..o=- 1046084768435 1046084768465 IN IP4 192.168.0.1
s=-
c=IN IP4 172.21.68.78 <--- Need to change this as well!!!
t=0 0
m=audio 33240 RTP/AVP 8 3 0
------------ End of Proxy to UA2 message -------------------
(See attached file: fcp-module210203.tar.gz)
I have been trying to understand how the proxy builds the forwarded message from
the old one, and realised that for the Via replacement (or adding of more
params), I need to be using a string called add_to_branch_s and
add_to_branch_len (so ignore the replace_via implementation in the current
tar.gz). But for the SDP, whenever I work with get_body, it does not modify it
appropriately. So currently, I'm using msg->orig to get to the initial message,
search for certain IP4 and audio strings and replace them with the information
provided by the fcp server. That means, in the case of the SDP, 2 IP address
replacements (in v=.. and c=..) and 1 port replacement (in m=..). As I mentioned
before, I only manged to change the v=.. and m=... Whenever I try to replace
more than one appearance, strange things happen, like strings in non expected
places, like Via, and cannot work out why. So my question is an open one:): what
is the best way to change the SDP part?
The other of my questions is whether all this mess with NAT's will get solved
when the proxy supports TCP, and whether this is the best approach to solve the
SIP through NAT/FW problem. For example, how about a nathelper module for
netfilter/iptables that gets this working, in the same manner as IRC or ftp
currently? Does anybody know about any work progressing this for linux/FreeBSD?
Greetings,
Jaime
Nils Ohlmeier <nils(a)ohlmeier.de> on 18/02/2003 02:58:47
To: Jaime GILL/EN/HTLUK@HTLUK
cc: Jan Janak <J.Janak(a)sh.cvut.cz>
Jiri Kuthan <jiri(a)iptel.org>
Subject: Re: [Serusers] FCP support in SER: Modifying SDP
Hi Jaime,
debugging without the code is really hard :-)
But maybe your problme with SDP is correlated to a bug in the Via header which
i marked below.
Greetings
Nils
On Monday 17 February 2003 11:58, jaime.gill(a)orange.co.uk wrote:
> U 192.168.6.153:5060 -> 172.21.68.78:5061
> INVITE sip:pepe@172.21.68.78:5061 SIP/2.0..Via: SIP/2.0/UDP
> 192.168.6.153;b ranch=z9hG4bKb848.8a014f84.0..Via: SIP/2.0/UDP
> 192.168.0.1192.168.0.1:9439. .From: "jaime"
^^^^^^^^^^^^^^^^^^^^^^
Here you inserted the external IP twice.
Maybe your SDP replacer did this?
> <sip:jaime@asereje.orange.co.uk>;tag=8c20540f-4259-11d7-9cc5
> -00065b4c11cb..To: <sip:pepe@asereje.orange.co.uk>..Call-ID: 8c205410-4259-
> 11d7-9cc5-00065b4c11cb@172.21.68.78..CSeq: 1 INVITE..Contact:<sip:192.168.0
> .1:33186>.User-Agent: Windows RTC/1.0..Content-Type: application/sdp..Conte
> nt-Length: 211....v=0..o=gill_j 0 0 IN IP4 172.21.68.78..s=session..c=IN IP
> 4 172.21.68.78..b=CT:1000..t=0 0..m=audio 33186 RTP/AVP 97 0 8 4..a=rtpmap:
> 97 red/8000..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:4 G723/80
> 00..
--
gpg-key: http://www.ohlmeier.org/public_key.asc
*******************************************************************************
Important.
Confidentiality: This communication is intended for the above-named person and
may be confidential and/or legally privileged. Any opinions expressed in this
communication are not necessarily those of the company. If it has come to you
in error you must take no action based on it, nor must you copy or show it to
anyone; please delete/destroy and inform the sender immediately.
Monitoring/Viruses
Orange may monitor all incoming and outgoing emails in line with current
legislation. Although we have taken steps to ensure that this email and
attachments are free from any virus, we advise that in keeping with good
computing practice the recipient should ensure they are actually virus free.
Orange PCS Limited is a subsidiary of Orange SA and is registered in England No
2178917, with its address at St James Court, Great Park Road, Almondsbury Park,
Bradley Stoke, Bristol BS32 4QJ.
*******************************************************************************
I have turned on mysql authentication, and was able to add users, but
aliases complain that "table" doesn't exist:
$ serctl add lenny abcdef lenny(a)voiping.com
MySql Password:
new user added
$ serctl alias add 1234 sip:lenny@voiping.com
sip:lenny@voiping.com
400 Table 'aliases' Not Found
$ mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 243 to server version: 3.23.53
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> connect ser;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Connection id: 244
Current database: ser
mysql> show tables;
+-----------------+
| Tables_in_ser |
+-----------------+
| acc |
| active_sessions |
| aliases |
| config |
| event |
| grp |
| location |
| missed_calls |
| pending |
| phonebook |
| reserved |
| silo |
| subscriber |
| version |
+-----------------+
14 rows in set (0.00 sec)
mysql>
---
Lenny Tropiano E-mail: lenny(a)voiping.com
Partner, Networking Specialist Pager: pager-lenny(a)voiping.com
VoIPing, LLC URL: http://www.voiping.com/
PO Box 867, Cedar Park, TX 78630-0867 Mobile: 512-698-VOIP [8647]
I'm observing increasing number of downloads from CVS and would
like to issue few disclaimers to prevent any disappointments.
The CVS code is work in progress -- it has not been integrated,
tested, it is not complete and we cannot provide help on
incomplete software.
Also, folks should know that compilation of one of the most
frequently asked features, Radius support, is disabled on
purpose. It is an external contribution which deserves
a clean-up, we are working on it but we are not there yet.
My previous forecast for the upcoming release is turning out to
be too optimistic. We decided to carry out some more clean-ups
and the work takes time. Anyway, we think it is better to
clean up now than later -- interest in ser is growing, and
we need to keep the codebase sane despite all the new features.
-Jiri
--
Jiri Kuthan http://iptel.org/~jiri/
Dear all,
after days of trial, I finally load radius_acc.so in my ser.
But when I testing the modules with the new routing config.
Nothing happen. I follow the sample config in the CVS as follow.
I check the radius server with radius -x, no packet seem to send to radius
server.
I also check the Mysql database, no entry is wrote to acc table. Why?
Can anyone tell me what's wrong?
==================
[benny@md benny]$ more /etc/ser/ser.cfg
#
# $Id: ser.cfg,v 1.12 2002/10/21 02:40:06 jiri Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
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 "//usr/lib/ser/modules/mysql.so"
[benny@md benny]$ cat /etc/ser/ser.cfg
#
# $Id: ser.cfg,v 1.12 2002/10/21 02:40:06 jiri Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
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 "//usr/lib/ser/modules/mysql.so"
# Uncomment this to use radius for accounting
loadmodule "/usr/lib/ser/modules/radius_acc.so"
loadmodule "//usr/lib/ser/modules/acc.so"
#--- radius_ acc.so params ---
modparam("radius_acc","log_level",1)
modparam("radius_acc","acc_flag",1)
modparam("radius_acc","report_ack",1)
modparam("radius_acc","early_media",0)
modparam("radius_acc","failed_transactions",0)
#--- acc.so params ---
modparam("acc","log_level",1)
modparam("acc","acc_flag",1)
modparam("acc","report_ack",1)
modparam("acc","early_media",1)
modparam("acc","failed_transactions",1)
loadmodule "//usr/lib/ser/modules/sl.so"
loadmodule "//usr/lib/ser/modules/tm.so"
loadmodule "//usr/lib/ser/modules/rr.so"
loadmodule "//usr/lib/ser/modules/maxfwd.so"
loadmodule "//usr/lib/ser/modules/usrloc.so"
loadmodule "//usr/lib/ser/modules/registrar.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "//usr/lib/ser/modules/auth.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", "secret", "alsdkhglaksdhfkloiwr")
#modparam("auth", "calculate_ha1", yes)
#modparam("auth", "calculate_ha1", no)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#modparam("auth", "password_column", "password")
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwars==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
# Do strict routing if pre-loaded route headers present
# rewriteFromRoute();
#if (method=="INVITE") {
addRecordRoute();
#} else {
rewriteFromRoute();
#};
# 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;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
#labeled all transaction for accouting
setflag(1);
#record-route INVITES to make sure BYEs will visit our server too
#if (method=="INVITE") addRecordRoute();
# forward to current uri now
if (!t_relay()) {
sl_reply_error();
};
}
[benny@md benny]$
==================================
Folks,
please help me -- share with me techniques for NAT traversal you
use and have hands-on experience with. People repeatedly ask
about it, and I'd like to create an FAQ that reflects deployment
experience and as wide user feed-back as possible. Just tell me the
technique you use, its requirements, limitations, the devices it
is known (not) to work with, why you prefer one method over the
other, etc. I'll then try to compile it in an FAQ.
So please send me an e-mail, an example is attached. I will appreciate
any practical details.
Thank you,
-Jiri
----------------------------------------------------------------
technique: using symmetric communication
requirements: phone devices that support symmetric communication;
existing species: Cisco's ATA
configuration
practice: ATAs need to be configured to advertise public address
in signaling, or learn it from REGISTER replies;
alternatively, one can rewrite signaling using ser's
nethelper module; one needs to rewrite SIP anyway
because ATAs don't advertise their symmetricity;
see www.foo.bar for info on configuring ATA...
limitations: non-symmetric devices, like Messenger don't work;
misc: ATA has no display, that's why I am anxiously
waiting for more vendors to support symmetric
signaling
----------------------------------------------------------------
technique: UPnP
requirements: NATs and phones with UPnP support; Messenger and
snom are known to support UPnP; there is linux
support for it
configuration
practice: of course, upnp requires by definition no configuration ;-)
(I'm not serious -- anyone actually tried it?)
----------------------------------------------------------------
technique: geek tweaks: set-up port forwading manually
configuration
practice: you need to configure NATs to split its public-side port
numbers accross your private-side phones, and configure
the phones (if they allows so) to use these port numbers;
also, phones need to be configured to use publicly
reachable address in their payloads
requriements: configurable NATs (many residental NATs are configurable)
and configurable phones (ATAs do that, I heard pingtel did
it too)
----------------------------------------------------------------
technique: ALG
requirements: SIP-capable NAT (like Intertex or Cisco/PIX)
issues: intertex freezes my ssh connections after some time on-line
and elderly models don't like all Ethernet devices;
when things don't work, the red-button off-on helps
sometimes
----------------------------------------------------------------
technique: STUN
requirements: STUN-enabled phone (like k-phone, snom)
limitations: doesn't work over symmetric NATs (words-of-mouth propaganda
has been telling me that many residential NATs are fortunately
not symmetric, but I don't know how objective this information
really is)
----------------------------------------------------------------
--
Jiri Kuthan http://iptel.org/~jiri/
Hi-
I am a very Junior designer, and as part of my efforts to impress my boss, I am trying to create a simple email to sms application. Sadly, here in South Africa, the cellular service providers do not provide an sms gateway to the public, and so I am researching the iptel.org SIP Express Router.
I need to know the following: after reading the iptel.org website, I would like to know whether it is possible to install the application on a Windows 2000 server, and run the gateway. From what I read, apparently only the core application can be installed... and this does not appear to include the gateway?
Obviously, I will pass the project on to a programmer who knows more, so you will not be plagued by too-simple questions from an inexperienced designer... but I would appreciate any assistance/info that will allow me to convince my boss.
Thank you!
ph (021) 685 6499
anthony_buckland(a)yahoo.co.uk
70 Strubens Rd, Observatory, Cape Town
---------------------------------
With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs
Hi all,
This message is somewhat related to a preceding one (Simple SER Use
Case), because I realised I did not ask the right question.
Here it is: I want to make a proxy that will try to locate the callee by
sequentially trying n different UA, by sending an INVITE and waiting for
either OK or timeout to occur. On timeout, the proxy will try the next
UA.
The detail here is that the proxy sends a "100 Trying" to the caller
*before* contacting the various UA, and that *no more* "100 Trying" are
forwarded by the proxy, which absorbs those responses from contacted UA.
Jiri indicated that the configuration presented in
<http://www.iptel.org/ser/doc/seruser-html/x510.html#AEN616> realised
the scenario I was mentioning... but it seems to me that the proxy does
not send and then absorb "100" responses, but rather relays this
responses to the caller. This would lead to the caller receiving as many
"100" responses as contacted UAs.
Is it possible to do this with SER ?
TIA,
-- Sebastien
I had the same error msgs when I load the radius_acc modules
the following is the error msgs
[root@md benny]# /usr/sbin/ser restart
0(3699) ERROR: load_module: could not open module
</usr/lib/ser/modules/radius_
acc.so>: libradiusclient.so.0: cannot open shared object file: No such file
or d
irectory
0(3699) parse error (25,13-48): failed to load module
ERROR: bad config file (1 errors)
[root@md benny]#
and I check that the radius_acc.so is in /usr/lib/ser/modules
and the libradiusclient.so.0 is also in /usr/local/lib as it is stated in
the Makefile.
Where is the error came from? Have any one successfully implement it?
Hi Benny,
I had the same problem as you. After I statically linked the radiusclient library in the both radius modules this problem seems to be resolved.
http://lists.iptel.org/pipermail/serusers/2003-February/000419.html
However radius authentication still doesn't work and the developer said:
"the path is not staticaly linked, it should be resolved by you
dynamic linker, I don't know where is the problem, it seems to me that
there is some problem with radiusclient libraries on your system, "
I use Solaris 8. Now I am trying to recompile and reinstall radiusclient library. If I find out something, I'll tell you.
regards, yang
pass_fd.c: added #include <sys/uio.h>
tcp_main.c: moved #include <sys/select.h> underneath #include
<sys/types.h.>
Still getting this:
$ gmake
Makefile.defs:331: Old gcc detected (2.9x), use gcc >= 3.1 for better
results
gcc -g -O9 -funroll-loops -Wcast-align -Wall -m486 -malign-loops=4
-DNAME='"ser"' -DVERSION='"0.8.11pre6-tcp5-tm"' -DARCH='"i386"'
-DOS='"freebsd"' -DCOMPILER='"gcc 2.95"' -D__CPU_i386
-DCFG_DIR='"/usr/local/etc/ser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP
-DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DDNS_IP_HACK -DUSE_IPV6
-DVOICE_MAIL -D_TOTAG -DUSE_TCP -DFAST_LOCK -DHAVE_SOCKADDR_SA_LEN
-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -c
tcp_main.c -o tcp_main.o
tcp_main.c: In function `tcp_send':
tcp_main.c:351: `MSG_NOSIGNAL' undeclared (first use in this function)
tcp_main.c:351: (Each undeclared identifier is reported only once
tcp_main.c:351: for each function it appears in.)
gmake: *** [tcp_main.o] Error 1
Cannot find proper #define for MSG_NOSIGNAL
The flags, according to "send()" man page is:
The flags parameter may include one or more of the following:
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_PEEK 0x2 /* peek at incoming message */
#define MSG_DONTROUTE 0x4 /* bypass routing, use direct
interface */
#define MSG_EOR 0x8 /* data completes record */
#define MSG_EOF 0x100 /* data completes transaction */
The flag MSG_OOB is used to send ``out-of-band'' data on sockets
that
support this notion (e.g. SOCK_STREAM); the underlying protocol
must also
support ``out-of-band'' data. MSG_EOR is used to indicate a record
mark
for protocols which support the concept. MSG_EOF requests that the
sender side of a socket be shut down, and that an appropriate
indication
be sent at the end of the specified data; this flag is only
implemented
for SOCK_STREAM sockets in the PF_INET protocol family, and is used
to
implement Transaction TCP (see ttcp(4)). MSG_DONTROUTE is usually
used
only by diagnostic or routing programs.
---
Lenny Tropiano E-mail: lenny(a)voiping.com
Partner, Networking Specialist Pager: pager-lenny(a)voiping.com
VoIPing, LLC URL: http://www.voiping.com/
PO Box 867, Cedar Park, TX 78630-0867 Mobile: 512-698-VOIP [8647]
This is a protocol question, I don't know if it is directly related
to ser. Concerning the Via tags, should any proxy/gateway modify tags
that don't belong to it, or should they simply be copied verbatum?
For example, I have a situation where I send an INVITE message, and the
TRYING response I receive modifies one of the Via: tags. I don't think
this is right. Here are the two packets in question:
#
U 2003/02/19 18:36:20.276844 164.9.42.25:5060 -> 184.294.324.2:5060
INVITE sip:12143357976@184.294.324.2:5060 SIP/2.0.
Max-Forwards: 10.
Record-Route: <sip:12143357976@164.9.42.25;branch=0>.
From: <sip:8178863582@216.87.145.22> ;tag=d8579116-fdc-3e542303-23d34-4a84.
To: <sip:12143357976@augustvoice.net> ;user=phone.
Call-ID: 59fd88-d8579116-fdc-3e542303-23d2f-3897(a)216.87.145.22.
CSeq: 2 INVITE.
Via: SIP/2.0/UDP 164.9.42.25;branch=z9hG4bKcc26.d3c125d.0.
Via: SIP/2.0/UDP 216.87.145.22:4060 ;branch=z9hG4bK-3e542304-23dfc-ea2.
Contact: <sip:8178863582@216.87.145.22:4060>.
User-Agent: FXS_GW (sip1028a.bin).
Content-Type: application/SDP.
Content-Length:291.
P-hint: LD GATEWAY.
.
v=0.
o=FXS_GW 12367 0 IN IP4 216.87.145.22.
s=Audio Session.
i=Audio Session.
c=IN IP4 216.87.145.22.
t=0 0.
m=audio 16384 RTP/AVP 0 18 4 8 96.
a=fmtp:96 0-11.
a=rtpmap:0 PCMU/8000/1.
a=rtpmap:18 G729/8000/1.
a=rtpmap:4 G723/8000/1.
a=rtpmap:8 PCMA/8000/1.
a=rtpmap:96 telephone-event/8000.
And your response is:
#
U 2003/02/19 18:36:20.902858 184.294.324.2:5060 -> 164.9.42.25:5060
SIP/2.0 100 Trying .
Via: SIP/2.0/UDP 164.9.42.25;branch=z9hG4bKcc26.d3c125d.0.
Via: SIP/2.0/UDP 216.87.145.22:4060.
From: <sip:8178863582@216.87.145.22> ;tag=d8579116-fdc-3e542303-23d34-4a84.
To: <sip:12143357976@augustvoice.net> ;user=phone;tag=27DC1DCC-F61.
Date: Thu, 20 Feb 2003 00:36:20 GMT.
Call-ID: 59fd88-d8579116-fdc-3e542303-23d2f-3897(a)216.87.145.22.
Server: Cisco-SIPGateway/IOS-12.x.
CSeq: 2 INVITE.
Allow-Events: telephone-event.
Content-Length: 0.
.
See how the :
Via: SIP/2.0/UDP 216.87.145.22:4060 ;branch=z9hG4bK-3e542304-23dfc-ea2.
Has been changed to:
Via: SIP/2.0/UDP 216.87.145.22:4060.
Does anyone have any perl script to take a ngrep protocol dump
and print it out in a pretty way?
---greg
Greg Fausak
August.Net Services, LLC
Hi,
I would add a user to subsriber table by sql command in my application (not
using serctl script).
What text strings I must use to calculate HA1 (=phplib_id) and ha1b values
if USER_ID=ivan,PASSWORD=ivanpswd and REALM=192.168.11.237 ?
Thanks in advance.
Regards,
Ivan Vignola.
_________________________________________________________________
Vinci la nuova Nissan Micra con MSN Messenger! http://www.msn.it/messenger/
bet i missed reading something, again :-/
but wasting too much time on this..
i get on solaris 8 the following:
# echo $SIP_DOMAIN
myser.my.net
# echo $PW
heslo
# serctl add user1 hispw user1(a)my.net
usage: tail [+/-[n][lbc][f]] [file]
tail [+/-[n][l][r|f]] [file]
new user added
# serctl passwd user1 newpw
usage: tail [+/-[n][lbc][f]] [file]
tail [+/-[n][l][r|f]] [file]
non-existent user
of course the user has been added to the database...
anyone came accross that before?
tia
-k
Hi again,
Here is how to get a segfault:
<snip>
#Load modules required by a stateful User Agent Service
loadmodule "modules/tm.so"
#SER timer parameters
modparam("tm", "fr_inv_timer", "10");
modparam("tm", "fr_timer", "10");
</snip>
This happened after quoting the numbers in the modparam.
Tested with ser-0.8.10 on Linux RH 8.0
-- Sebastien
Hi all,
I finally found solutions to my problem:
1) It is easier when setting "fork=no" because then ser does not
daemonise and stderr is then attached to the terminal in which I started
ser
2) The configuration file should set a debugging level ("set debug=1"),
and use a number equal or lower to the debug level in the log, like
'log(0, "Hello World")'
So my HelloWorld.cfg is as follows:
<snip>
debug=0
log_stderror=yes
fork=no
route[0]
{
log(0, "Hello World!");
}
</snip>
And it works with "ser -f HelloWorld.cfg"
Cheers,
-- Sebastien
Hi all,
I am trying to implement a very simple call forwarding use case with
SER. This use case is directly taken from a book entitled "Internet
Applications with SIP".
Here are the actors:
- SIP caller, wants to call <alice@domain>
- Proxy server of <domain>
- SIP phone which is default terminal for <alice(a)domain.com>
- Voicemail server
Here is the scenario:
0) SIP caller INVITEs <alice@domain>
1) Proxy receives INVITE
2) Proxy forwards INVITE to alice default SIP phone
3) Proxy responses 100 TRYING to SIP caller
4) SIP phone responses 100 TRYING to proxy
5) SIP phone responses 180 RINGING to proxy
6) Proxy reponses 180 RINGING to caller
7) After timeout, proxy send CANCEL to default SIP phone
8) SIP phone responses OK to proxy...
...
X) Proxy forward original INVITE to voice mail server...
The fact is that the proxy first notifies the caller that it is trying
to locate alice, listens for "180 RINGING" and forward it to the caller,
then cancels on the SIP phone side because of a timeout -- then the
proxy forwards the INVITE to the voice mail.
I have tried some configurations, but I did not see how to listen for
the 180 RINGING and forward them to the caller... is there a way to bind
a "route" to a provisional response like:
route[0]
{
...
#In case a 180 occur, we execute route[1]
t_on_provisional("180", "1");
#But we're also waiting for an OK or a timer
#event to arrive
t_on_negative("2");
t_relay();
...
}
route[1]
{
#Forwards the 180 Ringing from the SIP phone to
#the caller
t_relay();
}
BTW, I was wondering if t_on_negative is a *blocking* action ?
TIA,
-- Sebastien
Hello,
check your php.ini file if you have:
register_globals = On
Karel
>
> >Hi,
> >
> >I' ve installed SERWEB.....But when I try to register or login...nothing happens... the page is reload. The Apache server is working. Anyone had this same problem?
> >
> >Thanks,
> >
> >Adriana Simizo
> >Telefonica Brasil - Telecomunicaçőes de Săo Paulo S. A.
> >
>
> --
> Jiri Kuthan http://iptel.org/~jiri/
I have resolved this problem. The radiusclient library was not
included in the both radius modules, somehow. After I statically
linked the radiusclient library with the option -lradiusclient when
compiling, it works.
regards
yang
-------------------
> The modules need radiusclient library but linker is unable to find
> symbols from the library. Do you have the radiusclient library
installed
> correctly ?
>
> regards, Jan.
>
> On 14-02 14:35, Yang Xiang wrote:
> > Hi,
> >
> > I get the same error.
> >
> > I have compiled the whole server and try to load modules on the
host where
> > the server was compiled. Unfortunatelly it doesn't work. I get the
same
> > error message as before.
> >
> > What should I do????
> >
> > Regards
> >
> > Yang
> >
> >
> > ----- Original Message -----
> > From: "Jan Janak" <J.Janak(a)sh.cvut.cz>
> > To: "Yang Xiang" <yang.xiang(a)iitb.fraunhofer.de>
> > Sent: Friday, February 14, 2003 2:03 PM
> > Subject: Re: [Serusers] problem with loading compiled radius
modules
> >
> >
> > > Recompile the whole server if you can. As you said you use
precomplied
> > > binaries and it is possible that it was compiled using a
different
> > > compiler.
> > >
> > > regards, Jan.
> > >
> > > On 14-02 13:56, Yang Xiang wrote:
> > > > Hi,
> > > >
> > > > Now I get more error messages:
> > > >
> > > > 0(22528) ERROR: load_module: could not open module
> > > > </usr/local/lib/ser/modules/radius_acc.so>: ld.so.1: ser:
fatal:
> > relocation
> > > > error: file /usr/local/lib/ser/modules/radius_acc.so: symbol
> > rc_avpair_add:
> > > > referenced symbol not found
> > > > 0(22528) parse error (30,13-54): failed to load module
> > > > 0(22528) ERROR: load_module: could not open module
> > > > </usr/local/lib/ser/modules/radius_auth.so>: ld.so.1: ser:
fatal:
> > relocation
> > > > error: file /usr/local/lib/ser/modules/radius_auth.so: symbol
> > > > rc_read_config: referenced symbol not found
> > > > 0(22528) parse error (31,13-55): failed to load module
> > > > ERROR: bad config file (2 errors)
> > > >
> > > > What is wrong? In acc_mod.c and auth_mod.c I changed the
definition of
> > > > CONFIG_FILE and let it point to an absolute path
> > > > "/usr/local/etc/radiusclient/radiusclient.conf". By the way, I
compiled
> > the
> > > > modiles on another mashine and copied them to the mashine
where ser
> > runs. Is
> > > > that right?
> > > >
> > > > regards,
> > > >
> > > > yang
> > > >
> > >
> > >
> >
>
>
Folks,
Our company mostly finished development of the SIP VoIP system that
consists of the SER for registration, de-NATifying, and routing and
B2BUA for debit applications. Now we would like to test performance of
the whole system under the load. In the SER's documentation I saw very
impressive performance numbers and wonder how they were obtained. Are
there any freely-available tools for creating huge number of SIP
sessions simulateneously and if yes, how they can be obtained?
Any pointers are greatly appreciated.
Thanks!
-Maxim
Hi,
> simply use fi_check() in the configuration script. That will call your
> function.
Thats what I thought also, but unfortunately, SER does not run when. If
I run it with a call fi_check() in the ser.cfg file it logs a parse error:
Feb 14 14:15:00 DISCUS ser: parse error (39,1-9): parse error
Feb 14 14:15:00 DISCUS ser: parse error (39,1-9):
I have attached the complete cfg file. But if I remove that fi_check()
call, ser runs fine. Have I messed something up with parameters????
Thanks for your help!
Mario
--
Mario Kolberg phone: +44 (0)1786 46 7440
Lecturer in Computing Science fax : +44 (0)1786 46 4551
email: mko(a)cs.stir.ac.uk
Department of Computing Science and Mathematics
University of Stirling
Stirling FK9 4LA
Scotland, UK
--
The University of Stirling is a university established in Scotland by
charter at Stirling, FK9 4LA. Privileged/Confidential Information may
be contained in this message. If you are not the addressee indicated
in this message (or responsible for delivery of the message to such
person), you may not disclose, copy or deliver this message to anyone
and any action taken or omitted to be taken in reliance on it, is
prohibited and may be unlawful. In such case, you should destroy this
message and kindly notify the sender by reply email. Please advise
immediately if you or your employer do not consent to Internet email
for messages of this kind. Opinions, conclusions and other
information in this message that do not relate to the official
business of the University of Stirling shall be understood as neither
given nor endorsed by it.
#
# $Id: ser.cfg,v 1.12 2002/10/21 02:40:06 jiri Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
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"
alias="cs.stir.ac.uk"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
#mario
loadmodule "//usr/lib/ser/modules/mysql.so"
loadmodule "//usr/lib/ser/modules/sl.so"
loadmodule "//usr/lib/ser/modules/tm.so"
loadmodule "//usr/lib/ser/modules/rr.so"
loadmodule "//usr/lib/ser/modules/maxfwd.so"
loadmodule "//usr/lib/ser/modules/usrloc.so"
loadmodule "//usr/lib/ser/modules/registrar.so"
loadmodule "//usr/lib/ser/modules/fi.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#mario
loadmodule "//usr/lib/ser/modules/auth.so"
fi_check();
# ----------------- 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
#mario
modparam("usrloc", "db_mode", 2)
# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth", "secret", "alsdkhglaksdhfkloiwr")
#mario
modparam("auth", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#mario
modparam("auth", "password_column", "password")
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwars==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
# Do strict routing if pre-loaded route headers present
rewriteFromRoute();
# 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
#mario
if (!www_authorize("cs.stir.ac.uk", "subscriber")) {
www_challenge("cs.stir.ac.uk", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now
if (!t_relay()) {
sl_reply_error();
};
}
Hi,
I am trying to write a module for SER. I managed to write a tiny test
module ("hello world") and it compiles fine (the source is attached).
However, I'm not quite sure I fully understood how to execute the
functions defined in the module.
I included the module to sr_modules.c and also a line 'loadmodule' in
the ser.cfg. But how do I actually execute the function in the module
every time a (INVITE) message is received by the server?
The docs couldn't really help ...
Thanks very much!
Regards,
Mario
--
Mario Kolberg phone: +44 (0)1786 46 7440
Lecturer in Computing Science fax : +44 (0)1786 46 4551
email: mko(a)cs.stir.ac.uk
Department of Computing Science and Mathematics
University of Stirling
Stirling FK9 4LA
Scotland, UK
--
The University of Stirling is a university established in Scotland by
charter at Stirling, FK9 4LA. Privileged/Confidential Information may
be contained in this message. If you are not the addressee indicated
in this message (or responsible for delivery of the message to such
person), you may not disclose, copy or deliver this message to anyone
and any action taken or omitted to be taken in reliance on it, is
prohibited and may be unlawful. In such case, you should destroy this
message and kindly notify the sender by reply email. Please advise
immediately if you or your employer do not consent to Internet email
for messages of this kind. Opinions, conclusions and other
information in this message that do not relate to the official
business of the University of Stirling shall be understood as neither
given nor endorsed by it.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "../../sr_module.h"
#include "../../dprint.h"
#include "../../error.h"
#include "../../ut.h"
static int fi_check(struct sip_msg* msg,char* str,char* str2);
static int mod_init(void);
#ifdef STATIC_FI
struct module_exports fi_exports = {
#else
struct module_exports exports= {
#endif
"fi_module",
(char*[]){
"fi_check"
},
(cmd_function[]){
fi_check
},
(int[]){
0
},
(fixup_function[]){
0
},
1, NULL, NULL, NULL, 0,
mod_init,
(response_function) 0,
(destroy_function) 0,
0,
0
};
static int mod_init(void)
{
printf("FI module initializing\n");
return 0;
}
static int fi_check(struct sip_msg* msg, char* str1,char* str2)
{
printf("FI module executing\n");
return 1;
}
/* digging through the archives to make sure I haven't missed anything
while I was off-line last weeks ...
*/
I actually think that is a backwards compatibility issue in SIP.
Loose-routing works correctly if sender knows whether the next-hop
is loose or strict router. That is a correct assumption as long as
the routing information collected automatically in record-route
tells you that. If you use pre-configured Route along with an
outbound proxy, you configure this strict/loose on your own and
you need to get it right. Hence, when you configure loose routing
for use with a strict outbound router, things will fail.
Anyway, with lr support in next ser release, it should not matter
any more. We've had the same issue with kphone previouly, it works
since an option has been introduce to enforce use of strict routing.
see http://www.ietf.org/mail-archive/working-groups/sipping/current/msg03451.ht…
-Jiri
At 11:18 AM 2/5/2003, Klaus Darilion wrote:
>Hello!
>
>I've installed ser (sip:obelix.ict.tuwien.ac.at) und want'ed to use it
>with linphone, so I configured linphone to use ser as outbound proxy and
>registrar. The registration works fine but not the INVITEs. ser answers
>to an INVITE from linphone with a 404 Not Found and I found out that the
>problem is the "Route" header in the INVITE from linphone.
>
>Route: <sip:obelix.ict.tuwien.ac.at;lr>
>
>When I remove the header from the invite and send it manually (sipsak)
>the ser proxy accepts the invite and forwards it. I think ser reacts
>wrong because if an RFC3261 proxy gets an request with a route header
>which points to itself it should remove the header and forward the
>request.
>
>Than I tried the same with an different proxy in the route header:
>
>Route: <sip:iptel.org;lr>
>
>Now, my ser proxy (sip:obelix.ict.tuwien.ac.at) accepts the request and
>forwards it to iptel.org, but it rewrites the invite to:
>INVITE sip:iptel.org;lr SIP/2.0
>
>Thats what an RFC2543 proxy would do, but not an RFC3261 proxy, which
>only is allowed to do that if the route header has no "lr" parameter or
>if he is responsible for the domain in the request URI. If there is an
>"lr" parameter the proxy must not change the request URI.
>
>If I'm wrong please let me know.
>
>I use ser 0.8.10 with the standard config file and linphone 0.9.1 &
>0.10.0
>
>Regards,
>Klaus
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
--
Jiri Kuthan http://iptel.org/~jiri/
Hello,
I installed SER, I have started the services.
I haven't set up the mysql part yet, I wanted to test it working at all.
With bone phone I have tried connecting but gotten:
"java.net.BindException: Address already in use"
The SER documentation makes out that SER can be used without the mysql
parts to make calls with microsoft messenger > version 4.6 ut I've been
unable to connect with this either.
What now?
Jaime.
Folks,
sip_dictionary buindled with ser doesn't include Vendor-Specific
attribute. Attached patch should fix it, it would be nice to have it
included into the next release.
Thanks!
-Maxim
$FreeBSD$
--- etc/sip_dictionary 2003/01/27 14:13:18 1.1
+++ etc/sip_dictionary 2003/01/27 14:13:39
@@ -48,6 +48,7 @@
ATTRIBUTE Framed-Route 22 string
ATTRIBUTE Framed-IPX-Network 23 ipaddr
ATTRIBUTE State 24 string
+ATTRIBUTE Vendor-Specific 26 string
ATTRIBUTE Session-Timeout 27 integer
ATTRIBUTE Idle-Timeout 28 integer
ATTRIBUTE Termination-Action 29 integer
Hi,
thank you for your replies.
I need be sure that user 'ivan', with password 'ivanpswd', registers himself
typing 'sip:ivan.vignola@192.168.11.237' and not typing
'silvio.berlusconi(a)192.168.11.237'.
Regards.
Ivan.
>From: Jiri Kuthan <jiri(a)iptel.org>
>To: "Ivan Vignola" <ivanvignola(a)hotmail.com>, serusers(a)lists.iptel.org
>Subject: Re: [Serusers] User permission question.
>Date: Fri, 14 Feb 2003 11:45:37 +0100
>
>I'm not sure what it means "authenticate by his uri". There are quite
>many URIs in each request, which BTW have very low security value.
>Can you give more details?
>
>Thanks,
>
>-Jiri
>
>At 10:29 AM 2/14/2003, Ivan Vignola wrote:
> >Hi,
> >
> >in my tests user can authenticate himself using user_id, password and any
>sip uri. I need user authenticating himself only by his associated uri. How
>can I do that?
> >
> >Thanks in advance.
> >
> >Ivan Vignola.
> >
> >
> >
> >
> >
> >_________________________________________________________________
> >Vinci la nuova Nissan Micra con MSN Messenger!
>http://www.msn.it/messenger/
> >
> >_______________________________________________
> >Serusers mailing list
> >serusers(a)lists.iptel.org
> >http://lists.iptel.org/mailman/listinfo/serusers
>
>--
>Jiri Kuthan http://iptel.org/~jiri/
>
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
_________________________________________________________________
MSN Foto: condividi, ritocca e stampa le tue foto online
http://photos.msn.it
Hi,
in my tests user can authenticate himself using user_id, password and any
sip uri. I need user authenticating himself only by his associated uri. How
can I do that?
Thanks in advance.
Ivan Vignola.
_________________________________________________________________
Vinci la nuova Nissan Micra con MSN Messenger! http://www.msn.it/messenger/
Hi Jan,
I have successfully compiled the radius modules radius_acc.so and radius_auth.so. But when I try to load the both modules ser tells me:
ERROR: bad config file (2 errors)
I use the solaris binary package from iptel and have compiled myself only the both radius modules. Is there any incompability? How can I get mor debug information?
Regards,
Yang
-----------------------------------
My config file:
debug=7 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
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 "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/radius_acc.so"
loadmodule "/usr/local/lib/ser/modules/radius_auth.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/local/lib/ser/modules/auth.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", "secret", "alsdkhglaksdhfkloiwr")
#modparam("auth", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#modparam("auth", "password_column", "password")
# ------------------------- request routing logic -------------------
# main routing logic
alias="pix-demo.fhg.de"
route{
# initial sanity checks -- messages with
# max_forwars==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
# Do strict routing if pre-loaded route headers present
rewriteFromRoute();
# 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;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now
if (!t_relay()) {
sl_reply_error();
};
}
Hi,
How could I integrate SIP and H323 together?
I would like to h323 endpoint call sip endpoint.
Is it possible using SER?
My config is Cisco AS5300, gnu gatekeeper and SER.
Hi,
I' ve installed SERWEB.....But when I try to register or login...nothing
happens... the page is reload. The Apache server is working. Anyone had
this same problem?
Thanks,
Adriana Simizo
Telefonica Brasil - Telecomunicações de São Paulo S. A.