# $Id$ # # sems.conf.sample # # Sip Express Media Server (sems) # # sample configuration file # # # whitespaces (spaces and tabs) are ignored # comments start with a "#" and may be used inline # # example: option=value # i like this option # # @filename includes mod_config_path/filename # @/absolute/path/to/file includes file ############################################################ # Network configuration # optional parameter: media_ip=| # # - this informs SEMS about the IP address or interface that # SEMS uses to send and receive media. # - If neither 'media_ip' nor 'sip_ip' are set, defaults # to first non-loopback interface. If 'sip_ip' is set, # 'media_ip' defaults to 'sip_ip. # # Examples: # media_ip=10.0.0.34 # media_ip=eth0 # optional parameter: sip_ip=| # # - this informs SEMS about the SIP IP where its SIP stack is # bound to or should be bound to. This also sets # the value used for contact header in outgoing calls and # registrations. # - If neither 'media_ip' nor 'sip_ip' are set, defaults # to first non-loopback interface. If 'media_ip' is set, # 'sip_ip' defaults to 'media_ip. # # Example: # sip_ip=10.0.0.34 # sip_ip=en0 # # optional parameter: public_ip= # # - when running SEMS behind certain simple NAT configurations, # you can use this parameter to inform SEMS of its public IP # address. If this parameter is set, SEMS will write this value # into SDP bodies. # If this parameter is not set, the local IP address is used. # N.B., there is no support for port translation; the local # RTP port is advertised in SDP in either case. # # Example: # public_ip=75.101.219.48 # # optional parameter: sip_port= # # - this informs SEMS about the port where its SIP stack is # bound to or should be bound to. SEMS needs this information # to correctly set the contact header in outgoing calls # and registrations. Should be set to equal the 'port' # configuration option in ser_sems.cfg. # # default: 5060 # sip_port=5080 # optional parameter: outbound_proxy=uri # # - this sets an outbound proxy for calls and registrations initiated # by SEMS. This does not apply to requests in a dialog that # is initiated by someone else and incoming to SEMS. # If this is not set (default setting), then for dialogs # initiated by SEMS the r-uri is resolved and the request # is sent there directly. # This is resolved by the SIP stack with DNS if a name is given. # Warning: If the value set here can not be resolved, no # requests will be sent out at all! # # default: empty # # Example: # outbound_proxy=sip:proxy.mydomain.net # optional parameter: force_outbound_proxy={yes|no} # # - forces SEMS to send any request to the outbound proxy in any # situation, by adding an extra first Route to the outbound_proxy. # This option will only have an effect if the outbound_proxy # option has been set, and it will break 3261 compatibility # in some cases; better use next_hop_ip/next_hop_port. # # default: no # # Example: # force_outbound_proxy=yes # optional parameter: next_hop_ip # - if this is set, all outgoing requests will be sent to # this IP, regardless of R-URI etc. # #next_hop_ip=192.168.5.106 # optional parameter: next_hop_port # defaults to 5060 #next_hop_port=5060 # optional parameter:next_hop_for_replies # - use next_hop for replies, too? # #next_hop_for_replies=yes # optional parameter: rtp_low_port= # # - sets lowest for RTP used port rtp_low_port=10000 # optional parameter: rtp_high_port= # # - sets highest for RTP used port rtp_high_port=60000 # Additional IFs (optional): # additional_interfaces = # # additional_interfaces must be set if more than one # interface is to be used for the same purpose (e.g. # more than one interface for SIP). Configure additional # interfaces if networks should be bridged or separate # networks should be served. # # For each additional interface, a set of parameters # suffixed with the interface name should be listed # with the 'additional_interfaces' parameter. # # Please note that for each additional interface, # 'sip_ip_[if_name]' is mandatory. The other # parameters are optional. 'media_ip_[if_name]' # is derived from 'sip_ip_[if_name]' if not set. # 'public_ip_[ip_name]' is also based on 'sip_ip_[if_name]' # if not set explicitly. # # Example: # additional_interfaces=intern,extern # # sip_ip_intern=192.168.0.5 # sip_port_intern=5060 # media_ip_intern=192.168.10.5 # rtp_low_port_intern=2000 # rtp_high_port_intern=5000 # # sip_ip_extern=213.192.59.73 # sip_port_extern=5060 # media_ip_extern=213.192.59.73 # rtp_low_port_extern=2000 # rtp_high_port_extern=5000 # public_ip_extern=213.192.35.73 # ############################################################ # modules and application configuration # # Configuration of plugin (module) loading: # - if load_plugins is set, only those are loaded. # - if load_plugins is not set, all modules in the plugin_path # directory are loaded, except those which are listed # in exclude_plugins. # # optional parameter: plugin_path= # # - sets the path to the plug-ins' binaries # - may be absolute or relative to CWD plugin_path=/usr/local/lib/sems/plug-in/ # optional parameter: load_plugins= # # semicolon-separated list of modules to load. # If empty, all modules in plugin_path are loaded. # # example for announcement with only g711 and ilbc codecs # load_plugins=wav;ilbc;announcement # optional parameter: exclude_plugins= # # semicolon-separated list of modules to exclude from loading # ('blacklist'). If empty, all modules in plugin_path are loaded. # This has only effect it load_plugins is not set. # # o precoded_announce: no precoded sample files present # o py_sems: conflicts with ivr (in some cases) exclude_plugins=precoded_announce;py_sems # optional parameter: application # # This controls which application is to be executed if there # is no explicit application requested from the SIP stack # (i.e. unixsockctrl and second parameter of t_write_unix). # # This can be one of # $(ruri.user) - user part of ruri is taken as application, # e.g. sip:announcement@host # $(ruri.param) - uri parameter "app", e.g. # sip:joe@host.net;app=announcement # $(apphdr) - the value of the P-App-Name header is used # # $(mapping) - regex=>application mapping is read from # app_mapping.conf (see app_mapping.conf) # - application name configured here, e.g. # application=announcement # # examples: # application = conference # application = $(mapping) # application = $(ruri.user) # application = $(ruri.param) application = $(apphdr) # parameter: plugin_config_path= # # - in this path configuration files of the applications # (e.g. announcement.conf) are searched plugin_config_path=/usr/local/etc/sems/etc/ # optional parameter: exclude_payloads= # # semicolon-separated list of payloads to exclude from loading # ('blacklist'). # # For example, to only use low bandwidth codecs: # exclude_payloads=PCMU;PCMA;G726-40;G726-32;G721;L16 # or, to use only codecs which are not CPU-intensive: # exclude_payloads=iLBC;speex; # only use G711 (exclude everything else): # exclude_payloads=iLBC;speex;G726-40;G726-32;G721;G726-24;G726-16;GSM;L16 ############################################################ # logging and running # optional parameter: fork={yes|no} # # - specifies if sems should run in daemon mode (background) # (fork=no is the same as -E) fork=yes # optional parameter: stderr={yes|no} # # - debug mode: do not fork and log to stderr # (stderr=yes is the same as -E) stderr=no # optional parameter: loglevel={0|1|2|3} # # - sets log level (error=0, warning=1, info=2, debug=3) # (same as -D) loglevel=2 # optional parameter: syslog_facility={DAEMON|USER|LOCAL[0-7]} # # - sets the log facility that is used for syslog. Using this, # the log can for example be filtered into a special file # by the syslog daemon. # # Default: DAEMON # # Example: # syslog_facility=LOCAL0 # optional parameter: log_sessions=[yes|no] # # Default: no # # If log_sessions=yes is set, INFO level log messages are generated # for each session when it is started and stopped. # # log_sessions=yes # optional parameter: log_events=[yes|no] # # Default: no # # If log_eventy=yes is set, generic DBG level log messages are # generated for each event that is posted into an event queue. # # log_events=yes # optional parameter: max_shutdown_time=