-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNEWS
More file actions
675 lines (618 loc) · 31.6 KB
/
NEWS
File metadata and controls
675 lines (618 loc) · 31.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
Release notes for SIP Express Router (ser)
***********************************************
$Id: NEWS 166 2007-03-02 19:28:23Z vingarzan $
0.10.99-dev changes
new archs:
modules:
- tls - new module that enables tls support (set enable_tls=yes
in the config file and load the tls module)
- ctl - new fifo/unixsocket/xmlrpc like module, using a space
efficient binary encoding for the requests.
It supports multiple clients on tcp, udp, unix stream or
unix datagram modes. By default (no modparams) it opens
one unix stream control socket in /tmp/ser_ctl.
It also includes extended fifo support: multiple fifos,
fifo over tcp, udp and unix sockets (see ctl/ctl.cfg).
Use utils/sercmd/sercmd to send commands to it.
- dispatcher - added hashing after request uri and to uri
- added a new flag parameter which can be used (for now) to
select only the username or the username, host and port when
hashing after an uri (to, from or request uri)
- improved uri hashing (password is ignored, port is used only
if != 5060 or 5061)
- tm - aggregate challenges (WWW/Proxy-Authenticate) from all the
401 & 407 if the final reply is a 401/407. To turn this off
and fall back to the old behaviour set tm aggregate_challenges
parameter to 0.
- if a relayed 503 is the final reply, replace it by a 500
- if a 503 reply is received try the dns based failover
(forward to another ip if the original destination uri
resolved to several SRV, A or AAAA records)
- on 6xx immediately cancel all the branches for which a
provisional response was received and wait for all the
branches to finish (either timeout, the 487 from the CANCEL
or a final response still on the wire in the moment the
CANCEL was sent)
- better final reply selection: 6xx is preferred over other
negative replies; from several 4xx prefer 401, 407, 415, 420,
484 (in this order). For all the other cases, return the lowest
code (as before)
- special functions for checking for timeout, if a reply was
received or if the current transaction was canceled
- dns failover and dst blacklist support
- migrated to the new timers (tm timers completely rewritten)
- improved speed and less memory usage
- much more precise retransmissions timing
- params: - retr_timer1p1, retr_timer1p2, retr_timer1p3 removed
and replaced by retr_timer1 and retr_timer2
- all timer values are now expressed in milliseconds
(they were in seconds before).
Affected params: fr_timer, fr_inv_timer, wt_timer,
delete_timer, retr_timer1, retr_timer2
- retr_timer1 (first retransmission) changed to 500 ms
- delete_timer changed to 200 ms
- unix_tx_timeout expressed now in milliseconds; default
value changed to 500 ms
- functions:
- t_branch_timeout() -- returns true if the failure
route is executed for a branch that did timeout
(failure_route only).
- t_branch_replied() -- returns true if the failure
route is executed for a branch that did receive at
least one reply in the past (the current reply
is not taken into account). It can be used
together with t_branch_timeout() to distinguish
between a remote side that doesn't respond (some
provisional reply received) and one that is completely
dead. (failure_route only)
- t_any_timeout() -- returns true if any of the current
transaction branches did timeout.
- t_any_replied() -- returns true if at least one branch
of the current transaction received one reply in the
past. If called from a failure_route or an
onreply_route, the "current" reply is not taken into
account.
- t_is_canceled() -- returns true if the current
transaction has been canceled.
- new t_set_fr(timeout_fr_inv, timeout_fr) -- allows
changing the transaction timer from script, even if
the transaction was already created (see tm docs for
more).
- t_relay will not stop script execution anymore in case of
send error
- textops - search() can be used in the onsend_route where it will search
on the "new" message (after applying all script changes, adding
Vias a.s.o) and not on the original message
core:
- compiled by default with tls hooks support (so that no recompile is
needed before loading the tls module and enabling the tls support)
- enable_tls config option added (the reverse of disable_tls)
- added STUN keep-alive functionality in accordance with
draft-ietf-behave-rfc3489bis-04.txt
- dns cache and dns failover support added (see doc/dns.txt)
- destination blacklist added -- destinations to which forwarding fails
(send error, tm timeout a.s.o) are temporarily added to a blacklist which
is consulted before each send => faster send error detection
in the near future (see doc/dst_blacklist.txt)
- default log level switched to 0 (only messages < L_WARN will be printed
by default)
- separate memdbg log level which controls the memory/malloc related
debug messages (to see them ser must be compiled with malloc debuging:
-DDBG_QM_MALLOC or -DDBG_FM_MALLOC and memdbg must be <= debug )
- added named routes: names can be used instead of numbers in all the
route commads or route declarations. route(number) is equivalent to
route("number").
Example:
route("test");
route["test"]{
...
}
- added named flags, declared at the beginning of the config file with:
flags flag1_name[:position], flag2_name ...
Example:
flags test, a:1, b:2 ;
route{
setflag(test);
if (isflagset(a)){ # equiv. to isflagset(1)
....
}
resetflag(b); # equiv. to resetflag(2)
- added return [val] which returns from a route. if no value is specified, or
a route reaches its end without executing a return statement, it returns 1.
If return is used in the top level route is equivalent with exit [val].
- drop /exit [n] now will end the script execution
exit n will exit with code n (usefull in onreply/onsend routes where
if script code !=0 a reply is generated/the message is sent or to force
script errors)
- added $? which can be used to check the return code of the last executed
route{} (e.g. route(1); if ($?==1){ /* ... */}else if ($?==2) ... )
- onsend_route added: special route executed before a request is sent.
Only a limited number of commands are allowed (drop, if
+ all the checks, msg flag manipulations, send(), log(),
textops::search()). In this route the final destination
of the message is available an can be checked (with
snd_ip, snd_port, to_ip, to_port, snd_proto, snd_af).
This route is executed only when forwarding requests.
It's not executed for replies, retransmissions, or
locally generated messages (e.g. via fifo uac).
short example:
onsend_route{ if(to_ip==1.2.3.4 && !isflagset(12)){
log(1, "message blocked\n");
drop;
}
}
- onsend_route specific checks:
- snd_ip, snd_port - behave like src_ip/src_port, but contain the
ip/port ser will use to send the message
- to_ip, to_port - like above, but contain the ip/port the message will
be sent to (not to be confused with dst_ip/dst-port, which are the
destination of the original message: ser's ip and port on which the
message was received)
- snd_proto, snd_af - behave like proto/af but contain the
protocol/address family that ser will use to send the message
- msg:len - when used in an onsend_route, msg:len will contain the length
of the message on the wire (after all the changes in the script are
applied, Vias are added a.s.o) and not the lentgh of the original
message
- timer: - improved performance/precision, new api, see doc/timers.txt
- tcp: - improved performance (io event handling), using OS specific
optimizations
- 1024 connections limit removed (see tcp_max_connections)
- resolver: - timeouts, retries a.s.o can now be set from ser.cfg
(see below dns_* and man resolv.conf(6)).
The maximum time a dns request can take (before failing) is:
(dns_retr_time*dns_retr_no)*(search_list_domains)
If dns_try_ipv6 is yes, mutliply it again by 2.
The fastest possible dns config (max 1s):
dns_try_ipv6=no
dns_retr_time=1
dns_retr_no=1
dns_use_search_list=no
- default on reply route added: onreply_route {.. } will add a default
onreply route that will be executed for any reply (usefull to catch
replies without using tm)
- branch_routes added (tm triggered), only a very limited number of commands
are available (see tm docs)
- avps directly accessible from script with %avp_name (variable style)
new config variables:
enable_tls/disable_tls = enable/disable tls support, default disable.
Note: a tls "engine" is still needed (e.g. the tls module must
be loaded, enable_tls by itself is not enough).
exit_timeout = seconds - how much time ser will wait for all the shutdown
procedures to complete. If this time is exceeded, all the remaining
processes are immediately killed and ser exits immediately (it might
also generate a core dump if the cleanup part takes too long).
Default: 60 s. Use 0 to disable.
stun_refresh_interval = number in millisecond (default 0); value for
attribute REFRESH INTERVAL
stun_allow_stun = 0 | 1 (off | on - default 1); use STUN or not if compiled
stun_allow_fp = 0 | 1 (off | on - default 1); use FINGERPRINT attribute
use_dns_cache = on | off (default on)
use_dns_failover = on | off (default off)
dns_cache_flags = number (default 0)
dns_cache_negative_ttl = number in seconds (default 60)
dns_cache_min_ttl = time in seconds (default 0)
dns_cache_max_ttl = time in seconds (default MAXINT)
dns_cache_mem = maximum memory used for the dns cache in Kb (default 500 K)
dns_cache_gc_interval = interval in seconds after which the dns cache is
garbage collected (default: 120 s)
use_dst_blacklist = on | off (default off)
dst_blacklist_expire = time in s (default 60)
dst_blacklist_mem = maximum memory used for the blacklist in Kb (default 250
K)
dst_blacklist_gc_interval = interval in seconds after which the destination
blacklist is garbage collected (default 60)
tos = number - ip type of service (TOS) value
dns_try_ipv6 = yes/no - if yes and a dns lookup fails, it will retry it
for ipv6 (AAAA record). Default: yes
dns_retr_time = time - time in s before retrying a dns request.
Default: system specific, depends also on the/etc/resolv.conf content
(usually 5s).
dns_retr_no = no. - number of dns retransmissions before giving up.
Default: see above (usually 4)
dns_servers_no = no. - how many dns servers from the ones defined in
/etc/resolv.conf will be used. Default: all of them.
dns_use_search_list= yes/no - if no, the search list in /etc/resolv.conf
will be ignored (=> fewer lookups => gives up faster). Default: yes.
HINT: even if you don't have a search list defined, setting this option
to "no" will still be "faster", because an empty search list is in
fact search "" (so even if the search list is empty/missing there will
still be 2 dns queries, eg. foo+'.' and foo+""+'.')
tcp_connection_lifetime = value (s) - how long the lifetime of a
tcp connection will be exteneded after an IO event (accept, connect,
read, write). Default: 120 s.
tcp_poll_method = poll|select|epoll_et|epoll-lt|kqueue|devpoll - poll
method used (by default the best one for the current OS is selected)
tcp_max_connections = no. - maximum number of tcp connections (if the number
is exceeded no new tcp connections will be accepted). Default: 2048.
tools:
utils/sercmd - command line serctl like tool for interrogating ser ctl
module (uses the binrpc encoding). Supports various
connection methods (udp, tcp, unix stream & datagram sockets),
reply formating (see -f, e.g. sercmd -f "pid:%v %v\n" core.ps)
, interactive mode, command line completion (if compiled with
libreadline) a.s.o.
WARNING: - older 0.10.99-dev version (< 0.10.99-dev46) returned a 480 reply
on invite transaction timeout, if a provisional reply was received. Newer
versions reverted to returning 408 on all timeouts (one can use
t_branch_timeout() and t_branch_replied() to distinguish between the two
timeout types)
0.9.4 fixes/improvements (0.9.4 is a bug fix release for 0.9.3)
general:
- gcc 4.0 support
- mutlicast options are set for all the sockets
- mediaproxy: memory leak, unchecked memory allocations
- postgress: some bugs and cleanups (compiles cleanly now)
- tm: shm cloned lumps (SER-55)
- tm: t_fifo: 64-bit fix
- tm: dst_uri clone fix
- tm: t_newtran/t_restransmit* races (!)
- usloc: memory leak
solaris:
- serctl, better ISA detection, signals
*bsd:
- multicast options are properly set
openbsd:
- tcp 64 bit fix
0.9.3 changes
new archs:
- alpha experimental support
- mips2/cobalt experimental support
- x86_64 support
- OS X (darwin) support
- sparc32 single cpu highly experimental support
- ppc64 support
modules:
- enum - support for more than one NAPTR
- msilo - explicit multidomain support -- recipient's user ID is stored in
the columns username and domain -- r_uri column kept for compatibility
reasons (will be removed in future) but not filled by this version of
module
- mysql - implements a connection pool, all modules will use same connection
to access the database
- nathelper received port test (flag 16 for nat_uac_test): compares the
source port of the message with sip port in the first Via and returns
true if different.
- permsions - support for multiple allow/deny files, allow_register function
- TM has a new parameter: restart_fr_on_each_reply. If set (default)
fr_inv timer will be restarted for each provisional reply, if not set
it will be restarted only for the first reply and for replies >=180
(but only if increasing, eg.: 180, 181 ...). Usefull when dealing with bad
UAs that re-transmit 180s.
- TM saves the avp list into transactions, and make it available into
callbacks, failure and reply routes.
- TM contains new command - t_write_unix("/tmp/sems.sock", "announcement")
sends a message using unix socket interface instead of FIFO interface.
- TM contains new config variable - unix_tx_timeout -- it specifies the
transmit timeout of t_write_sock
- VM functionality was transfered into TM module. Instead of fetching the
email value from DB (as VM), TM looks for the "email" attribute to get the
value.
vm() function was replaced with t_write_req()
vm_reply() fifo functions was replcated by TM with t_reply() fifo function
NOTE!! because current version of SEMS/AA try to send reply via vm_reply,
it will not work with the TM version.
- xlog - printing the body of any header by specifying the name; new
specifiers for user-agent, message buffer, message length, message's flags,
message id.
new modules:
- avp / avp_db / avp_radius - load and check avps per caller or callee
- avpops - flexible module for operations with avps and database, introducing
a pseudo-varible support in SER configuration file
- cpl-c - implementation of Call Processing Language
- dispatcher - implements a dispatcher for incoming requests using hashes
over parts of the request to select the destination
- diversion - implements the Diversion extensions as per
draft-levy-sip-diversion-08
- flatstore - simple module that implements very fast inserts for accounting
purposes
- gflags - keeps a bitmap of flags in shared memory and may be used to change
behaviour of server based on value of the flags
- options - answer server options requests
- speeddial - provides on-server speed dial facilities
- uri_db - split from uri module, performs various checks related to SIP URI
over database fields
removed modules:
- vm - the functionality was transfered to tm module (see t_write_req(...)
method)
core:
- new parts:
UNIX domain socket server implemented
- changes:
- command line: removed -p port and extended -l:
-l [proto:]addr[:port] , where proto=udp|tcp and
addr= host|ip_address|interface_name. The format is the same
as for listen in the config file. ipv6 addresses must be enclosed in
[].
- added from_uri & to_uri: behave exactly like uri but use the
"From:"/"To:" uris
(e.g.: if (from_uri==myself) ..., if (to_uri=~"^sip:test@")... )
- config: better escape support in strings (e.g. \", \<cr>, \x0a, \012)
- bad network addresses are now automatically fixed
(e.g. 192.168.1.80/27 => 192.168.1.64/27)
- avp (Attribute-Value Pair) support added
- avp alias support added
- multicast support added (see mcast_loopback & mcast_ttl)
- saving of procces group id enabled, if the -G option is specified
(a safe way to quickly kill all ser processes)
- core dump-ing is enabled by default, see also disable_core_dump
- protocol and port can be specified in the alias and listen lines, e.g.:
alias= tcp:foo.bar:* udp:test.bar:5080 foo.com
listen= eth0 tcp:eth0:5065 udp:127.0.0.1 [3ffe::1]
- multiple operator support: ==, != for special operations (e.g myself, ip)
==, !=, ~= for strings
==, !=, >, <, >=, <= for integers
- database api changed to support usage of different drivers
simultaneously. The database URL must start now with the name of the
driver (module). Example: for mysql the DB URL
'sql://user:password@dbhost:port/database' must be specified now as
'mysql://user:password@dbhost:port/database'
- new config variables:
mcast_loopback = <yes/no> - loopback sent multicast datagram, default no.
mcast_ttl = number - set multicast ttl, default OS specific (usually 1).
sock_mode = <permissions> (e.g. sock_mode=0600: default value = 0660)
ser unix sockets and fifo will be created with this permissions
(old name fifo_mode is still supported, but deprecated)
sock_user = username|"uid"
sock_group = groupname|"gid"
change the owner and/or group of the ser unix sockets or fifo
Short example config snippet:
sock_mode=0600 # ser socket/fifo mode
sock_user="www-data" # ser socket/fifo owner
sock_group=nogroup
user=nobody # ser user (ser will suid to it)
disable_core_dump= yes|no
by default core dump limits are set to unlimited or a high enough
value, set this config variable o yes to disable core dump-ing
(will set core limits to 0)
open_files_limit= number
if set and bigger than the current open file limit, ser will try
to increase its open file limit to this number. Note: ser must be
started as root to be able to increase a limit past the hard limit
(which, for open files, is 1024 on most systems)
tcp_connect_timeout= seconds
time before an ongoing connect will be aborted
tcp_send_timeout= seconds
time after a tcp connection will be closed if it is not available
for writing in this interval (and ser wants to send something on it)
tcp_accept_aliases= yes|no
if a message received over a tcp connection has "alias" in its via
a new tcp alias port will be created for the connection the message
came from (the alias port will be set to the via one).
Based on draft-ietf-sip-connect-reuse-00.txt, but using only the port
(host aliases are too dangerous IMHO, involve extra DNS
lookups and the need for them is questionable)
See force_tcp_alias for more details.
log_facility = LOG_LOCAL0
if ser logs to syslog, you can control the facility for logging. Very
useful when you want to divert all ser logs to a different log file.
See man page syslog(3) for more detailes.
unix_sock = "/tmp/ser.sock"
The name of the socket the unixsock server should listen on.
unix_sock_children = 1
The number of children that will listen on the unix domain socket.
unix_tx_timeout = 2000
Timeout (in ms) used when sending replies through unix sockets.
- new script commands:
force_send_socket([proto:]address[:port])
sends the message from the specified socket (it _must_ be one of the
sockets ser listens on). If the protocol doesn't match (e.g. udp
message "forced" to a tcp socket) the closest socket of the same
protocol is used.
force_tcp_alias()
force_tcp_alias(port)
adds a tcp port alias for the current connection (if tcp).
Usefull if you want to send all the trafic to port_alias through
the same connection this request came from [it could help
for firewall or nat traversal].
With no parameters adds the port from the message via as the alias.
When the "aliased" connection is closed (e.g. it's idle for too
much time), all the port aliases are removed.
Note: by default ser closes idle connection after 3 minutes (stable)
or 1 minute (unstable) so to take full advantage of tcp aliases for
things like firewall and nat traversal, redefine TCP_CON_*TIMEOUT
in tcp_conn.h and recompile. Also right now there can be maximum
3 port aliases to a connection (you shouldn't need more than one).
To change this redefine TCP_CON_MAX_ALIASES in the same file
(set it to you desired value + 1; 1 is needed for the real port).
utilities:
- ngrep patch for displaying new lines in captured SIP messages is no longer
needed; use ngrep V 1.42 with the option "-W byline"
***********************************************
* Changes/fixes introduced in 0.8.12
***********************************************
+--------------------------------------------------------+
| WARNING: if you want to use a 0.8.11 config script |
| with 0.8.12, replace if ( len_gt(number) ) with: |
| if ( msg:len > bumber ) |
+--------------------------------------------------------+
New Features
============
texops:
- subst('s/re/repl/flags') support
core:
- added switch to check the config file (-c)
- changes: removed len_gt() and replaced with if (msg:len op number|max_len)
- multiple operator support: ==, != for special operations (e.g myself, ip)
==, !=, ~= for strings
==, !=, >, <, >=, <= for integers
- new config variables:
advertised_address= ip | string
address advertised in via and in the DST_* lumps (e.g RR)
This is the default value, if empty (default) the socket
address will be used.
WARNING: - don't set it unless you know what you are doing
(e.g. nat traversal)
- you can set anything here, no check is made
(e.g. foo.bar will be accepted even if
foo.bar doesn't exist)
advertised_port= no
port advertised in via and in the DST_*lumps (e.g. RR)
This is the default value, if empty (default) the socket
port will be used.
Same warnings as above.
- new script commands:
set_advertised_address(ip|string)
same as advertised_address but it affects only the current message:
Message host/lump address= the set_advertised one if
present, else advertised_address else socket address.
set_advertised_port(no)
same as advertised_port but it affects only the current
message; see set_advertised_address & s/address/port/g
usrloc:
- usernames are case insensitive
registrar:
- lookup function succeeds when appending of a branch failed
auth_db:
- support for rpid stored in database (thanks to Jakob Schlyter)
Bug fixes
=========
- memory leak in digest credentials parser fixed
- authenticathion ha1 didn't include domain if username was of the form
user@domain and calculate_ha1 was set to yes (modules/auth_db)
- tm reply processing race condition (modules/tm), special thanks go to
Dong Liu
- Many bugs in pa module fixed, works with registrar again.
Security updates
================
- fifo processing code will write responses only to other
fifos and only if they are not hard-linked, also default
ser fifo persmissions were changed to 0600.
Performance improvements
========================
- tuned internal malloc implementation parameters to better reflect the
actual workload (malloc is a little bit faster now)
***********************************************
* Changes introduced in 0.8.11
***********************************************
+--------------------------------------------------------+
| CAUTION: the 0.8.11 release include changes which |
| are incompatible with scripts and databases used |
| in previous versions. Care is advised when upgrading |
| from previous releases to 0.8.11. |
+--------------------------------------------------------+
New features
=============
- RFC3261 support
- TCP support and cross-transport forwarding [core]
- loose routing support [rr module]
- New modules
- vm -- voicemail interface [vm]
- ENUM support [enum]
- presence agent [pa]
- dynamic domain management -- allows to manipulate
hosting of multiple domains in run-time [module]
- flat-text-file database support [dbtext]
- rich access control lists [permissions]
- Feature Improvements
- click-to-dial, which is based on improved tm/FIFO
that better supports external applications [tm module]
- web accounting -- acc module can report to serweb
on placed calls [acc module]
- improved exec module (header fields passed now
as environment variables to scripts) [exec module]
- Architectural Improvements
- powerpc fast locking support
- netbsd support
- 64 bits arch. support (e.g. netbsd/sparc64).
- New Experimental Features (not tested at all yet)
- nathelper utility for Cisco/ATA NAT traversal [nathelper]
- another NAT traversal utility [mangler]
- postgress support [postgress]
- fcp module [fcp]
- pdt module (prefix2domain) [pdt]
Changes to use of ser scripts
=============================
About Multiple Transport Support
--------------------------------
SER now suports multiple transport protocols: UDP and TCP. As there
may be UAs which support only either protocol and cannot speak to
each other directly, we recommend to alway record-route SIP requests,
to keep the transport-translating SER in path. Also, if a destination
transport is not known, stateful forwarding is recommended -- use of
stateless forwarding for TCP2UDP would result in loss of reliability.
core
----
- reply_route has been renamed to failure_route -- the old name caused
too much confusion
- forward_tcp and forward_udp can force SER to forward via specific
transport protocol
acc module:
-----------
- radius and sql support integrated in this module; you need to
recompile to enable it
- acc_flag is now called log_flag to better reflect it relates
to the syslog mode (as opposed to sql/radius); for the same
reasons, the accounting action is now called "acc_log_request"
and the option for missed calls "log_missed_calls"
- log_fmt allows now to specify what will be printed to syslog
auth module:
------------
- auth module has been split in auth, auth_db, auth_radius, group
group_radius, uri and uri_radius
- all the parameters that were part of former auth module are now
part of auth_db module
- auth_db module contains all functions needed for database
authentication
- auth_radius contains functions needed for radius authentication
- group module contains group membership checking functions
- group_radius contains radius group membeship checking functions
- is_in_group has been renamed to is_user_in and places to groups
module
- check_to and check_from have been moved to the uri module
im module:
----------
- im is no longer used and has been obsoleted by TM
exec module:
------------
- exec_uri and exec_user have been obsoleted by exec_dset;
exec_dset is identical to exec_uri in capabilities; it
additionaly passes content of request elements (header
fields and URI parts) in environment variables; users of
exec_user can use exec_dset now and use the "URI_USER"
variable to learn user part of URI
- exec_dset and exec_msg return false, if return value of
script does not euqal zero
- exec_dset takes an additional parameter, which enables
validation of SIP URIs returned by external application
jabber module:
--------------
- presence support for Jabber users is enabled loading the PA
module and using handle_subscribe("jabber") for SUBSCRIBE
requests to jabber user
msilo module:
-------------
- m_store has now a parameter to set what should be considered
for storing as destination uri. This enables support for saving
the messages on negative replies.
radius_acc module:
------------------
- radius_acc module has been removed and radius accounting
is now part of acc module
registrar/usrloc modules:
-------------------------
- multi domain support, the modules user username@domain as AOR
if enabled
- descent modification time ordering of contacts
- case sensitive/insensitive comparison of URI can be enabled
rr module:
----------
- addRecordRoute has been replaced with record_route
- rewriteFromRoute has been replaced with loose_route()
- a new option, "enable_full_lr" can be set to make life
with misimplemented UAs easier and put LR in from "lr=on"
- rr module can insert two Record-Route header fields when
necesarry (disconnected networks, UDP->TCP and so on)
tm module:
----------
- t_reply_unsafe, used in former versions within reply_routes,
is deprecated; now t_reply is used from any places in script
- t_on_negative is renamed to t_on_failure -- the old name just
caused too much confusion
- FIFO t_uac used by some applications (like serweb) has been
replaced with t_uac_dlg (which allows easier use by dialog-
oriented applications, like click-to-dial)
- if you wish to do forward to another destination from
failure_route (reply_route formerly), you need to call t_relay
or t_relay_to explicitely now
- t_relay_to has been replaced with t_relay_to_udp and t_relay_to_tcp