sems.conf 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. # $Id$
  2. #
  3. # sems.conf.sample
  4. #
  5. # Sip Express Media Server (sems)
  6. #
  7. # sample configuration file
  8. #
  9. #
  10. # whitespaces (spaces and tabs) are ignored
  11. # comments start with a "#" and may be used inline
  12. #
  13. # example: option=value # i like this option
  14. #
  15. # @filename includes mod_config_path/filename
  16. # @/absolute/path/to/file includes file
  17. ############################################################
  18. # Network configuration
  19. # optional parameter: media_ip=<ip_address>|<device>
  20. #
  21. # - this informs SEMS about the IP address or interface that
  22. # SEMS uses to send and receive media.
  23. # - If neither 'media_ip' nor 'sip_ip' are set, defaults
  24. # to first non-loopback interface. If 'sip_ip' is set,
  25. # 'media_ip' defaults to 'sip_ip.
  26. #
  27. # Examples:
  28. # media_ip=10.0.0.34
  29. # media_ip=eth0
  30. #media_ip=eth0
  31. media_ip=109.239.57.200
  32. # optional parameter: sip_ip=<ip_address>|<device>
  33. #
  34. # - this informs SEMS about the SIP IP where its SIP stack is
  35. # bound to or should be bound to. This also sets
  36. # the value used for contact header in outgoing calls and
  37. # registrations.
  38. # - If neither 'media_ip' nor 'sip_ip' are set, defaults
  39. # to first non-loopback interface. If 'media_ip' is set,
  40. # 'sip_ip' defaults to 'media_ip.
  41. #
  42. # Example:
  43. # sip_ip=10.0.0.34
  44. # sip_ip=en0
  45. #
  46. sip_ip=127.0.0.1
  47. # optional parameter: public_ip=<ip_address>
  48. #
  49. # - when running SEMS behind certain simple NAT configurations,
  50. # you can use this parameter to inform SEMS of its public IP
  51. # address. If this parameter is set, SEMS will write this value
  52. # into SDP bodies.
  53. # If this parameter is not set, the local IP address is used.
  54. # N.B., there is no support for port translation; the local
  55. # RTP port is advertised in SDP in either case.
  56. #
  57. # Example:
  58. # public_ip=75.101.219.48
  59. #
  60. # optional parameter: sip_port=<port_number>
  61. #
  62. # - this informs SEMS about the port where its SIP stack is
  63. # bound to or should be bound to. SEMS needs this information
  64. # to correctly set the contact header in outgoing calls
  65. # and registrations. Should be set to equal the 'port'
  66. # configuration option in ser_sems.cfg.
  67. #
  68. # default: 5060
  69. #
  70. sip_port=5080
  71. # optional parameter: outbound_proxy=uri
  72. #
  73. # - this sets an outbound proxy for calls and registrations initiated
  74. # by SEMS. This does not apply to requests in a dialog that
  75. # is initiated by someone else and incoming to SEMS.
  76. # If this is not set (default setting), then for dialogs
  77. # initiated by SEMS the r-uri is resolved and the request
  78. # is sent there directly.
  79. # This is resolved by the SIP stack with DNS if a name is given.
  80. # Warning: If the value set here can not be resolved, no
  81. # requests will be sent out at all!
  82. #
  83. # default: empty
  84. #
  85. # Example:
  86. # outbound_proxy=sip:proxy.mydomain.net
  87. # optional parameter: force_outbound_proxy={yes|no}
  88. #
  89. # - forces SEMS to send any request to the outbound proxy in any
  90. # situation, by adding an extra first Route to the outbound_proxy.
  91. # This option will only have an effect if the outbound_proxy
  92. # option has been set, and it will break 3261 compatibility
  93. # in some cases; better use next_hop_ip/next_hop_port.
  94. #
  95. # default: no
  96. #
  97. # Example:
  98. # force_outbound_proxy=yes
  99. # optional parameter: next_hop_ip
  100. # - if this is set, all outgoing requests will be sent to
  101. # this IP, regardless of R-URI etc.
  102. #
  103. #next_hop_ip=192.168.5.106
  104. # optional parameter: next_hop_port
  105. # defaults to 5060
  106. #next_hop_port=5060
  107. # optional parameter:next_hop_for_replies
  108. # - use next_hop for replies, too?
  109. #
  110. #next_hop_for_replies=yes
  111. # optional parameter: rtp_low_port=<port>
  112. #
  113. # - sets lowest for RTP used port
  114. rtp_low_port=10000
  115. # optional parameter: rtp_high_port=<port>
  116. #
  117. # - sets highest for RTP used port
  118. rtp_high_port=19999
  119. # Additional IFs (optional):
  120. # additional_interfaces = <list of interfaces>
  121. #
  122. # additional_interfaces must be set if more than one
  123. # interface is to be used for the same purpose (e.g.
  124. # more than one interface for SIP). Configure additional
  125. # interfaces if networks should be bridged or separate
  126. # networks should be served.
  127. #
  128. # For each additional interface, a set of parameters
  129. # suffixed with the interface name should be listed
  130. # with the 'additional_interfaces' parameter.
  131. #
  132. # Please note that for each additional interface,
  133. # 'sip_ip_[if_name]' is mandatory. The other
  134. # parameters are optional. 'media_ip_[if_name]'
  135. # is derived from 'sip_ip_[if_name]' if not set.
  136. # 'public_ip_[ip_name]' is also based on 'sip_ip_[if_name]'
  137. # if not set explicitly.
  138. #
  139. # Example:
  140. # additional_interfaces=intern,extern
  141. #
  142. # sip_ip_intern=192.168.0.5
  143. # sip_port_intern=5060
  144. # media_ip_intern=192.168.10.5
  145. # rtp_low_port_intern=2000
  146. # rtp_high_port_intern=5000
  147. #
  148. # sip_ip_extern=213.192.59.73
  149. # sip_port_extern=5060
  150. # media_ip_extern=213.192.59.73
  151. # rtp_low_port_extern=2000
  152. # rtp_high_port_extern=5000
  153. # public_ip_extern=213.192.35.73
  154. #
  155. ############################################################
  156. # modules and application configuration
  157. #
  158. # Configuration of plugin (module) loading:
  159. # - if load_plugins is set, only those are loaded.
  160. # - if load_plugins is not set, all modules in the plugin_path
  161. # directory are loaded, except those which are listed
  162. # in exclude_plugins.
  163. #
  164. # optional parameter: plugin_path=<path>
  165. #
  166. # - sets the path to the plug-ins' binaries
  167. # - may be absolute or relative to CWD
  168. plugin_path=/usr/lib/sems/plug-in/
  169. # optional parameter: load_plugins=<modules list>
  170. #
  171. # semicolon-separated list of modules to load.
  172. # If empty, all modules in plugin_path are loaded.
  173. #
  174. # example for announcement with only g711 and ilbc codecs
  175. # load_plugins=wav;ilbc;announcement
  176. load_plugins=wav;gsm;isac;ilbc;xmlrpc2di;monitoring;stats;uac_auth;session_timer;sbc
  177. # optional parameter: exclude_plugins=<modules list>
  178. #
  179. # semicolon-separated list of modules to exclude from loading
  180. # ('blacklist'). If empty, all modules in plugin_path are loaded.
  181. # This has only effect it load_plugins is not set.
  182. #
  183. # o precoded_announce: no precoded sample files present
  184. # o py_sems: conflicts with ivr (in some cases)
  185. exclude_plugins=precoded_announce;py_sems
  186. # optional parameter: application
  187. #
  188. # This controls which application is to be executed if there
  189. # is no explicit application requested from the SIP stack
  190. # (i.e. unixsockctrl and second parameter of t_write_unix).
  191. #
  192. # This can be one of
  193. # $(ruri.user) - user part of ruri is taken as application,
  194. # e.g. sip:announcement@host
  195. # $(ruri.param) - uri parameter "app", e.g.
  196. # sip:[email protected];app=announcement
  197. # $(apphdr) - the value of the P-App-Name header is used
  198. #
  199. # $(mapping) - regex=>application mapping is read from
  200. # app_mapping.conf (see app_mapping.conf)
  201. # <application name> - application name configured here, e.g.
  202. # application=announcement
  203. #
  204. # examples:
  205. # application = conference
  206. # application = $(mapping)
  207. # application = $(ruri.user)
  208. # application = $(ruri.param)
  209. application = sbc
  210. # parameter: plugin_config_path=<path>
  211. #
  212. # - in this path configuration files of the applications
  213. # (e.g. announcement.conf) are searched
  214. plugin_config_path=/etc/sems/etc/
  215. # optional parameter: exclude_payloads=<payload list>
  216. #
  217. # semicolon-separated list of payloads to exclude from loading
  218. # ('blacklist').
  219. #
  220. # For example, to only use low bandwidth codecs:
  221. # exclude_payloads=PCMU;PCMA;G726-40;G726-32;G721;L16
  222. # or, to use only codecs which are not CPU-intensive:
  223. # exclude_payloads=iLBC;speex;
  224. # only use G711 (exclude everything else):
  225. # exclude_payloads=iLBC;speex;G726-40;G726-32;G721;G726-24;G726-16;GSM;L16
  226. ############################################################
  227. # logging and running
  228. # optional parameter: fork={yes|no}
  229. #
  230. # - specifies if sems should run in daemon mode (background)
  231. # (fork=no is the same as -E)
  232. fork=yes
  233. # optional parameter: stderr={yes|no}
  234. #
  235. # - debug mode: do not fork and log to stderr
  236. # (stderr=yes is the same as -E)
  237. stderr=no
  238. # optional parameter: loglevel={0|1|2|3}
  239. #
  240. # - sets log level (error=0, warning=1, info=2, debug=3)
  241. # (same as -D)
  242. loglevel=1
  243. # optional parameter: syslog_facility={DAEMON|USER|LOCAL[0-7]}
  244. #
  245. # - sets the log facility that is used for syslog. Using this,
  246. # the log can for example be filtered into a special file
  247. # by the syslog daemon.
  248. #
  249. # Default: DAEMON
  250. #
  251. # Example:
  252. # syslog_facility=LOCAL0
  253. # optional parameter: log_sessions=[yes|no]
  254. #
  255. # Default: no
  256. #
  257. # If log_sessions=yes is set, INFO level log messages are generated
  258. # for each session when it is started and stopped.
  259. #
  260. # log_sessions=yes
  261. # optional parameter: log_events=[yes|no]
  262. #
  263. # Default: no
  264. #
  265. # If log_eventy=yes is set, generic DBG level log messages are
  266. # generated for each event that is posted into an event queue.
  267. #
  268. # log_events=yes
  269. # optional parameter: max_shutdown_time=<time in seconds>
  270. #
  271. # Limit on server shutdown time (time to send/resend BYE
  272. # to active calls). 0 to disable (infinite).
  273. #
  274. # Default: 10
  275. #
  276. max_shutdown_time = 60
  277. # optional parameter: shutdown_mode_reply="<code> <reason>"
  278. #
  279. # Error reply that is used as reply to INVITE and OPTION
  280. # when SEMS is shutting down.
  281. #
  282. # Default: shutdown_mode_reply="503 Server shutting down"
  283. ############################################################
  284. # tuning
  285. # optional parameter: session_processor_threads=<num_value>
  286. #
  287. # - controls how many threads should be created that
  288. # process the application logic and in-dialog signaling.
  289. # This is only available if compiled with threadpool support!
  290. # (set USE_THREADPOOL in Makefile.defs)
  291. # Defaults to 10
  292. #
  293. # session_processor_threads=50
  294. # optional parameter: media_processor_threads=<num_value>
  295. #
  296. # - controls how many threads should be created that
  297. # process media - on single-processor systems set this
  298. # parameter to 1 (default), on MP systems to a higher
  299. # value
  300. #
  301. # media_processor_threads=1
  302. # optional parameter: session_limit=<limit>;<err code>;<err reason>
  303. #
  304. # - this sets a maximum active session limit. If that limit is
  305. # reached, no further calls are accepted, but the error reply
  306. # with err code/err reason is sent out.
  307. #
  308. # Default: 0 (None)
  309. #
  310. # Example:
  311. # session_limit="1000;503;Server overload"
  312. # optional parameter: options_session_limit=<limit>;<err code>;<err reason>
  313. #
  314. # - this sets a custom response to OPTIONS, if the session count reaches
  315. # a certain limit. This way health monitor could raise an alarm to syste
  316. # administrator.
  317. #
  318. # Default: 0 (None)
  319. #
  320. # Example:
  321. # options_session_limit="900;503;Warning, server soon overloaded"
  322. # optional parameter: dead_rtp_time=<unsigned int>
  323. #
  324. # - if != 0, after this time (in seconds) of no RTP
  325. # a session is considered dead and stopped. If set
  326. # to 0 no check is done for rtp timeout.
  327. #
  328. # default=300 (5 minutes)
  329. #
  330. # Examples:
  331. # # disable RTP timeout
  332. # dead_rtp_time=0
  333. # # RTP timeout after 10 seconds
  334. # dead_rtp_time=10
  335. # optional parameter: use_default_signature={yes|no}
  336. #
  337. # - use a Server/User-Agent header with the SEMS server
  338. # signature and version.
  339. # Set server_signature=0 in ser_sems.cfg if you use SER
  340. # as SIP stack.
  341. #
  342. # default=no
  343. #
  344. use_default_signature=yes
  345. # optional parameter: signature=<signature string>
  346. #
  347. # - use a Server/User-Agent header with a custom user agent
  348. # signature.
  349. # Overridden by default signature if
  350. # use_default_signature is set.
  351. # Set server_signature=0 in ser_sems.cfg if you use it.
  352. #
  353. #
  354. # signature="SEMS media server 1.0"
  355. # optional parameter: single_codec_in_ok={yes|no}
  356. #
  357. # - use single codec in 200 OK response
  358. #
  359. # default=no
  360. #
  361. # single_codec_in_ok=no
  362. # optional parameter: codec_order=codec_name_1,codec_name2,...
  363. #
  364. # - Codec order used when sending INVITE requests. Codecs in codec_order
  365. # will be on the top of the list followed by other supported codecs
  366. # (if any).
  367. #
  368. # default=empty
  369. #
  370. # codec_order=iLBC,GSM
  371. # optional parameter: ignore_rtpxheaders={yes|no}
  372. #
  373. # - if this is set to yes, RTP extension headers (e.g. when using ZRTP)
  374. # are ignored. If set to no, the whole RTP packets with extension
  375. # headers will be ignored and a debug message is printed on every
  376. # received packet.
  377. #
  378. # default=no
  379. #
  380. # ignore_rtpxheaders=yes
  381. # optional parameter: dtmf_detector={spandsp|internal}
  382. #
  383. # sets inband DTMF detector to use. spandsp support must be compiled in
  384. # for this to have effect if dtmf_detector=spandsp.
  385. #
  386. # default: internal
  387. #
  388. # dtmf_detector=spandsp
  389. # optional parameter: wait_for_bye_transaction={yes|no}
  390. #
  391. # when SEMS stops a call sending BYE as UAC, this option sets whether
  392. # SEMS waits for the BYE transaction to finish before forgetting the call.
  393. # This may be necessary e.g. to authenticate the BYE request.
  394. #
  395. # default: no
  396. #
  397. # wait_for_bye_transaction=yes
  398. # optional parameter: unhandled_reply_loglevel={error|warn|info|debug|no}
  399. #
  400. # the default application logic implemented in the applications is to stop
  401. # the session right after sending BYE, without waiting for a reply. this
  402. # leads to many log entries of the form
  403. # ERROR: [b6fa6bb0] handleSipMsg (AmSipDispatcher.cpp:48): unhandled
  404. # reply: [code:200;phrase:[OK];... ]
  405. #
  406. # This parameter sets the log lovel of unhandled positive (200 class) replies.
  407. #
  408. # default: error
  409. #
  410. # unhandled_reply_loglevel=info
  411. ############################################################
  412. # SIP stack settings
  413. # default settings (i.e. leave out) for these should be OK
  414. # for most applications
  415. # skip DNS SRV lookup? [yes, no]
  416. #
  417. # according to RFC, if no port is specified, destination IP address
  418. # should be resolved with a DNS SRV lookup. If SEMS should not do that
  419. # (only an A record lookup), set disable_dns_srv=yes.
  420. #
  421. # Default: no
  422. #
  423. #disable_dns_srv=yes
  424. # support 100rel (PRACK) extension (RFC3262)? [disabled|supported|require]
  425. #
  426. # disabled - disable support for 100rel
  427. # supported - support it if remote end does, default
  428. # require - required
  429. #
  430. # Default: supported
  431. #
  432. #100rel=require
  433. # Make SIP authenticated requests sticky to the proxy? [yes | no]
  434. #
  435. # If enabled, host of request-URI of out-of-dialog requests that are
  436. # authenticated with SIP auth is changed to the previously resolved
  437. # next-hop IP:port.
  438. #
  439. # default: no
  440. #
  441. # proxy_sticky_auth=yes
  442. #
  443. # Accept final replies without To-tag? [yes|no]
  444. #
  445. #accept_fr_without_totag=yes
  446. #
  447. # Log raw messages? [no|debug|info|warn|error]
  448. #
  449. # Default: debug
  450. #
  451. #log_raw_messages=no
  452. #
  453. # Log parsed received messages? [yes|no]
  454. #
  455. # Default: yes
  456. #
  457. #log_parsed_messages=no
  458. # SIP UDP socket receive buffer size (in bytes)
  459. #
  460. # if not set, system default is used (which usually
  461. # is modest). set sytem wide upper limit with
  462. # e.g. sysctl -w net.core.rmem_max=8388608
  463. #
  464. # udp_rcvbuf = <value>
  465. # Number of SIP UDP receiver threads
  466. #
  467. # Default: 4
  468. #
  469. # sip_server_threads=8
  470. #
  471. # accept forked dialogs on UAS side? [yes|no]
  472. #
  473. # no - INVITE with existing callid+remote_tag is replied with 482.
  474. # yes - INVITE with existing callid+remote_tag+via_branch is replied with 482.
  475. # Forked INVITEs (!= via-branch) are accepted.
  476. #
  477. # Default: yes
  478. #
  479. accept_forked_dialogs=yes