register(k): pack contact info based on header for searching existing ul records
[sip-router] / README-MODULES
index 23f184f..8861ec6 100644 (file)
-# $Id$
 
-'Owner' field contains a developers CVS username, see file
-AUTHORS for more details.
 
-'Use' tells how deployable a module is. Regular indicates
-we deploy and use this feature in our infrastructure.
-Experimental tells we are still gaining operation experience.
-Temporary labels modules which momentarily fix some
-bugs/lacks and will disappear later. Example modules
-are primarily useful as educational source code for
-ser programmers.
-
-'Maturity' is label as stable if a module has been deployed
-for longer time, alpha if it is still being developed and
-beta if it is under test.
-
-'Depends on' field tells which modules the module needs. 
-
-Modules underway include firewall control, and more. 
-If you are interested in any of these or other modules, 
-write us to info@iptel.org.
-
-List of currently available ser modules:
-
-Name:       acc
-Owner:      jiri
-Use:        regular
-Maturity:   stable
-Depends on: tm
-Purpose:    Transaction accounting/example (the module server also as an
-            example of how to bind to transaction management)
-
-Name:       auth
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: sl mysql
-Purpose:    Digest authentication and related things
-
-Name:       cpl
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Call Processing Language
-
-Name:       domain
-Owner:      jih
-Use:        experimental
-Maturity:   beta
-Depends on: mysql
-Purpose:    Local domain lists and related functions
-
-Name:       enum
-Owner:      jih
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Enum support
-
-Name:       ext
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Execution of external URI processing logic
-
-Name:       exec
-Owner:      jiri
-Use:        experimental
-Maturity:   beta
-Depends on: -
-Purpose:    Execution of external URI processing logic
-
-Name:       jabber
-Owner:      dcm
-Use:        experimental
-Maturity:   beta
-Depends on: mysql tm
-Purpose:    SIMPLE 2 Jabber gateway
-
-Name:       maxfwd
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Max-Forwards check
-
-Name:       msilo
-Owner:      dcm
-Use:        experimental
-Maturity:   beta
-Depends on: mysql tm
-Purpose:    Message store
-
-Name:       mysql
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    supporting MySQL interface
-
-Name:       pa
-Owner:      janakj
-Use:        experimental
-Maturity:   alpha
-Depends on: tm (usrloc jabber)
-Purpose:    Presence agent
-
-Name:       pike
-Owner:      bogdan
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    Excessive load detection
-
-Name:       print
-Owner:      andrei
-Use:        example
-Maturity:   stable
-Depends on: -
-Purpose:    Printing messages to stdout
-
-Name:       radius_acc
-Owner:      ssi
-Use:        experimental
-Maturity:   beta
-Depends on: tm
-Purpose:    radius accounting
-
-Name:       radius_auth
-Owner:      ssi
-Use:        experimental
-Maturity:   beta
-Depends on: auth
-Purpose:    radius authentication
-
-Name:       registrar
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: usrloc sl
-Purpose:    Registrar
-
-Name:       rr
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Routing and Record-Routing
-
-Name:       sl
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Stateless replies
-
-Name:       snmp
-Owner:      ric
-Use:        experimental
-Maturity:   alpha
-Depends on: -
-Purpose:    SNMP Management
-
-Name:       sms
-Owner:      bogdan
-Use:        regular
-Maturity:   stable
-Depends on: tm
-Purpose:    SMS gateway
-
-Name:       textops
-Owner:      andrei
-Use:        regular
-Maturity:   stable
-Depends on: -
-Purpose:    Message Textual Operations
-
-Name:       tm
-Owner:      jiri
-Use:        regular
-Maturity:   beta
-Depends on: -
-Purpose:    Transaction Management
-
-Name:       usrloc
-Owner:      janakj
-Use:        regular
-Maturity:   stable
-Depends on: mysql sl
-Purpose:    User location support
+SIP-ROUTER modules
+==================
+
+This is the first release of the combined project. In order to be able to support
+an upgrade path for both Kamailio/OpenSER and SER current users, we have been forced to
+provide some modules in two versions, which means that we have three set of modules:
+
+ - modules:    the SIP router modules
+ - modules_k:  Kamailio modules
+ - modules_s:  SER modules
+
+All modules are compatible with the core, so regardless if you are a new user or 
+an existing, you are free to make a choice between the three sets as well as
+mix and match between them.
+
+Note that if you are currently using one product, you want to select the module
+that exists in the K/S directories first to get a smooth upgrade path.
+
+As sip-router development progress, we will move as many modules as possible
+into the core and only keep k/s modules for backwards compatibility when required.
+
+What is a module?
+=================
+A module consists of a lot of functions that enhance the core. Some of the modules
+depends on other modules. It's all properly documented in the README that belongs
+to each module (available as web pages on the sip-router.org web site).
+
+A module providers up to three different APIs:
+
+- Enhancements to the core SIP-router routing script (functions)
+- Commands for the management interface (MI)
+- Development interface for other modules
+
+A single module may provide a selection of this, maybe only one of them.
+
+Why do we have two modules with the same name?
+==============================================
+Some modules exists both in modules_k and modules_s - like xlog. If you are
+upgrading from Kamailio, we recommend using the one in modules_k for backwards
+compatibility, if you are using SER then select the one in modules_s.
+In the future the development team will try to integrate modules that are
+split like this into one integrated module.
+
+Core modules
+------------
+auth_identity          SIP Identity support (RFC 4474)
+auth_radius            Radius authentication
+avpops                 Attribute-value pair operations ("variables")
+carrierroute           A telephony routing module
+cfg_db                 Database driver for configuration API
+cfg_rpc
+ctl
+db_berkeley            Database :: Berkeley DB (Oracle)
+db_flatstore           Database :: Flatstore
+db_mysql               Database :: Mysql
+db_postgres            Database :: PostgreSQL
+dialplan               Dialplan management
+enum                   Enum support
+iptrtpproxy            NAT traversal :: Kernel based RTP proxy
+lcr                    Least cost routing
+mediaproxy             Nat traversal :: Mediaproxy (AG projects)
+mi_rpc                 Management Interface :: XML RPC support
+misc_radius            Various Radius functions
+pdb                    Number portabilityusing external server
+peering                        SIP peering between service providers
+tls                    SSL/TLS support
+tm                     SIP transaction support (stateful proxy)
+topoh                  Topology hinding
+utils                  Various utilities (http query, xcap status)
+xmlrpc
+
+Kamailio modules
+----------------
+acc                    Accounting
+alias_db               Alias management in database modules
+auth                   MD5 digest authentication support
+auth_db                        Authentication using a database module
+auth_diameter          Authentication based on Diameter
+benchmark              Development benchmark module
+call_control           Call timeouts and management (depends on Dialog module)
+cfgutils               Various configuration utilities
+cpl-c                  Implementation of SIP Call Processing Language (RFC 3880)
+db_oracle              Database :: Oracle support
+db_text                        Database :: Text support
+db_unixodbc            Database :: Unix ODBC support
+dialog                 Dialog ("call") state module
+dispatcher             Load balancing and failover
+diversion              Call redirect support (SIP Diversion: header)
+domain                 Proxy :: Multiple domain support using databases
+domainpolicy           Proxy :: Obsolete module - This module is no longer maintained
+drouting               Proxy :: Dynamic routing
+exec                   External exec module
+group                  Utils :: Group membership checking
+h350                   LDAP/ITU H.350 multimedia schema support
+htable                 Utils :: Hash table support
+imc                    IM :: Instant messaging conference
+jabber                 IM :: Jabber gateway
+kex                    Proxy :: Kamailio core functions (backwards compatibility)
+ldap                   LDAP Directory access
+maxfwd                 SIP loop detection prevention (max-forwards header - "ttl")
+memcached              Utils :: In-memory caching support (memcached)
+mi_datagram            Management interface :: UDP
+mi_fifo                        Management Interface :: Unix FIFO
+mi_xmlrpc              Management Interface :: XML-rpc
+msilo                  Text message storage
+nat_traversal          NAT :: NAT traversal module
+nathelper              NAT :: NAT traversal module :: RTPproxy (SIPPY software)
+osp                    Open Settlement Protocol support
+path                   Path: header support
+pdt                    Proxy :: Routing based on numeric prefix
+perl                   Perl-based module interface
+perlvdb                        Database :: Use perl database functions
+permissions            Security :: TCP-wrapper-like ACL functions
+pike                   Security :: DOS-attack prevention
+presence               Presence :: Core presence module
+presence_dialoginfo    Presence :: Dialog info
+presence_mwi           Presence :: Message waiting indication
+presence_xml           Presence :: XML handler
+pua                    Presence :: Common module
+pua_bla                        Presence :: BLA
+pua_dialoginfo         Presence :: Dialog Info support
+pua_mi                 Presence :: Management interface
+pua_usrloc             Presence :: USRLOC integration
+pua_xmpp               Presence :: XMPP/Jabber gateway
+purple                 Presence :: Libpurple support
+pv                     Pseudo-variable implementation
+qos                    Dialogs :: SDP management 
+ratelimit              Security :: Rate limit
+regex                  Regular expression support
+registrar              Registrar/location server support
+rls                    Presence :: Resource list server
+rr                     Proxy :: Record routing
+rtimer                 Utils :: Timer based routing script processing
+sanity                 Syntax checking for incoming SIP requests
+seas                   Application server interface
+siptrace               Store SIP messages in database
+siputils               Various utilities for SIP call handling
+sl                     Proxy :: Stateless handling of SIP messages
+sms                    SMS gateway support
+snmpstats              SNMP support (net-snmp agentx)
+speeddial              Per-user speed-dial controller module
+sqlops                 SQL operations
+sst                    SIP Session Timers implementation
+statistics             Script statistics support
+textops                        Text operations
+tmx                    Proxy :: Kamailio transaction extensions (TM module)
+uac                    UAC functions (From: mangling and UAC auth)
+uac_redirect           UAC redirection support
+uri_db                 URI operation with database support
+userblacklist          User-specific blacklists
+usrloc                 Proxy :: Location server
+xcap_client            Presence :: XCAP support
+xlog                   Utils :: Extended logging support
+xmpp                   Presence/IM :: XMPP/jabber gateway
+
+SER modules
+-----------
+acc_db                 Authentication :: acc module is used to report on transactions to database
+acc_radius             Authentication :: acc module is used to report on transactions to RADIUS.
+acc_syslog             Authentication :: acc module is used to report on transactions to syslog
+auth                   Authentication backend (needs additional modules)
+auth_db                        Database authentication
+avp                    functions used to manipulate the contents of Attribute-Value pairs
+avp_db                 Attribute-value pairs in database
+bdb                    Database :: Berkeley DB (Oracle)
+blst                   Blacklist management
+cpl-c                  CPL support in SIP-router
+db_ops                 Database :: SQL operations from configurtion script
+dbg                    Debugging support
+dbtext                 Database :: Text
+dialog
+dispatcher             Load balancing ::  a dispatcher for destination addresses
+diversion              Proxy :: Call redirection support (Diversion: header)
+domain                 Proxy :: Multiple domain support
+eval                   implements expression evaluation in route script
+exec                   Proxy :: External script support (modify route set)
+fifo                   Obsolete :: This module is replaced by the modules/ctl module
+gflags                 Proxy :: Global flags
+jabber                 IM :: Jabber gateway
+ldap                   LDAP directory server support
+mangler                        SDP mangling
+maxfwd                 Proxy :: Loop prevention (max-forwards header)
+msilo                  Offline message storage
+nathelper              NAT traversal :: RTP proxy (SIPPY software)
+options                        Proxy :: Support for SIP OPTION request
+oracle                 Database :: Oracle
+osp                    Open Settlement Protocol
+pa                     Presence :: server
+pdt                    Proxy :: Simple routing on number prefixes
+permissions            Security :: ACL support like TCP wrappers
+pike                   Security :: Rate limit control
+prefix_route           Proxy :: Routing based on a set of prefixes from the database
+presence_b2b           Presence :: Back2back UA
+print                  Example module for developers
+print_lib              Example module for developers
+ratelimit              Security :: Rate limit of SIP requests
+registrar              Registrar (for REGISTER requests)
+rls                    Resource list server (for presence)
+rr                     Proxy :: Record routing logic
+sanity                 Implement several sanity checks on incoming requests
+sl                     Proxy :: Stateless replies
+sms                    SMS gateway
+speeddial              Proxy :: Speed dialing for users
+textops                        Text operations (search, replace)
+timer                  triggering specific route block on timer
+tls                    TLS module * DEPRECATED * Use the modules/tls module instead
+uac                    User agent client
+unixsock               Obsolete :: This module is replaced by the modules/ctl module
+uri                    URI checks
+uri_db                 URI checks with database support
+usrloc                 Location server
+xcap                   Presence :: XCAP integration
+xlog                   Extended logging support