kamailio-basic-kemi.cfg 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. #!KAMAILIO
  2. #
  3. # Kamailio (OpenSER) SIP Server v5.0 - default configuration script
  4. # - web: http://www.kamailio.org
  5. # - git: http://sip-router.org
  6. #
  7. # Direct your questions about this file to: <[email protected]>
  8. #
  9. # Refer to the Core CookBook at http://www.kamailio.org/wiki/
  10. # for an explanation of possible statements, functions and parameters.
  11. #
  12. # Several features can be enabled using '#!define WITH_FEATURE' directives:
  13. #
  14. # *** To run in debug mode:
  15. # - define WITH_DEBUG
  16. #
  17. # *** To enable mysql:
  18. # - define WITH_MYSQL
  19. #
  20. # *** To enable authentication execute:
  21. # - enable mysql
  22. # - define WITH_AUTH
  23. # - add users using 'kamctl'
  24. #
  25. # *** To enable IP authentication execute:
  26. # - enable mysql
  27. # - enable authentication
  28. # - define WITH_IPAUTH
  29. # - add IP addresses with group id '1' to 'address' table
  30. #
  31. # *** To enable persistent user location execute:
  32. # - enable mysql
  33. # - define WITH_USRLOCDB
  34. #
  35. # *** To enable nat traversal execute:
  36. # - define WITH_NAT
  37. # - install RTPProxy: http://www.rtpproxy.org
  38. # - start RTPProxy:
  39. # rtpproxy -l _your_public_ip_ -s udp:localhost:7722
  40. # - option for NAT SIP OPTIONS keepalives: WITH_NATSIPPING
  41. #
  42. # *** To enable TLS support execute:
  43. # - adjust CFGDIR/tls.cfg as needed
  44. # - define WITH_TLS
  45. #
  46. # *** To enhance accounting execute:
  47. # - enable mysql
  48. # - define WITH_ACCDB
  49. # - add following columns to database
  50. #!ifdef ACCDB_COMMENT
  51. ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';
  52. ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';
  53. ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default '';
  54. ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';
  55. ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';
  56. ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';
  57. ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';
  58. ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';
  59. ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default '';
  60. ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';
  61. ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';
  62. ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';
  63. #!endif
  64. #!define WITH_MYSQL
  65. #!define WITH_AUTH
  66. #!define WITH_IPAUTH
  67. #!define WITH_USRLOCDB
  68. #!define WITH_NAT
  69. #!define WITH_ANTIFLOOD
  70. #!define WITH_ACCDB
  71. ####### Include Local Config If Exists #########
  72. import_file "kamailio-local.cfg"
  73. ####### Defined Values #########
  74. # *** Value defines - IDs used later in config
  75. #!ifdef WITH_MYSQL
  76. # - database URL - used to connect to database server by modules such
  77. # as: auth_db, acc, usrloc, a.s.o.
  78. #!ifndef DBURL
  79. #!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"
  80. #!endif
  81. #!endif
  82. #!define MULTIDOMAIN 0
  83. # - flags
  84. # FLT_ - per transaction (message) flags
  85. # FLB_ - per branch flags
  86. #!define FLT_ACC 1
  87. #!define FLT_ACCMISSED 2
  88. #!define FLT_ACCFAILED 3
  89. #!define FLT_NATS 5
  90. #!define FLB_NATB 6
  91. #!define FLB_NATSIPPING 7
  92. ####### Global Parameters #########
  93. ### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR
  94. #!ifdef WITH_DEBUG
  95. debug=4
  96. log_stderror=yes
  97. #!else
  98. debug=2
  99. log_stderror=no
  100. #!endif
  101. memdbg=5
  102. memlog=5
  103. #!ifdef WITH_CFGLUA
  104. log_prefix="LUA {$rm}: "
  105. #!else
  106. #!ifdef WITH_CFGPYTHON
  107. log_prefix="PYT {$rm}: "
  108. #!else
  109. log_prefix="NAT {$rm}: "
  110. #!endif
  111. #!endif
  112. latency_cfg_log=2
  113. log_facility=LOG_LOCAL0
  114. fork=yes
  115. children=4
  116. /* uncomment the next line to disable TCP (default on) */
  117. #disable_tcp=yes
  118. /* uncomment the next line to disable the auto discovery of local aliases
  119. * based on reverse DNS on IPs (default on) */
  120. #auto_aliases=no
  121. /* add local domain aliases */
  122. #alias="sip.mydomain.com"
  123. /* uncomment and configure the following line if you want Kamailio to
  124. * bind on a specific interface/port/proto (default bind on all available) */
  125. #listen=udp:10.0.0.10:5060
  126. /* port to listen to
  127. * - can be specified more than once if needed to listen on many ports */
  128. port=5060
  129. #!ifdef WITH_TLS
  130. enable_tls=yes
  131. #!endif
  132. # life time of TCP connection when there is no traffic
  133. # - a bit higher than registration expires to cope with UA behind NAT
  134. tcp_connection_lifetime=3605
  135. ####### Modules Section ########
  136. # set paths to location of modules (to sources or installation folders)
  137. #!ifdef WITH_SRCPATH
  138. mpath="modules"
  139. #!else
  140. mpath="/usr/local/lib/kamailio/modules/"
  141. #!endif
  142. #!ifdef WITH_MYSQL
  143. loadmodule "db_mysql.so"
  144. #!endif
  145. loadmodule "jsonrpcs.so"
  146. loadmodule "kex.so"
  147. loadmodule "corex.so"
  148. loadmodule "tm.so"
  149. loadmodule "tmx.so"
  150. loadmodule "sl.so"
  151. loadmodule "rr.so"
  152. loadmodule "pv.so"
  153. loadmodule "maxfwd.so"
  154. loadmodule "usrloc.so"
  155. loadmodule "registrar.so"
  156. loadmodule "textops.so"
  157. loadmodule "siputils.so"
  158. loadmodule "xlog.so"
  159. loadmodule "sanity.so"
  160. loadmodule "ctl.so"
  161. loadmodule "cfg_rpc.so"
  162. loadmodule "acc.so"
  163. #!ifdef WITH_AUTH
  164. loadmodule "auth.so"
  165. loadmodule "auth_db.so"
  166. #!ifdef WITH_IPAUTH
  167. loadmodule "permissions.so"
  168. #!endif
  169. #!endif
  170. #!ifdef WITH_NAT
  171. loadmodule "nathelper.so"
  172. loadmodule "rtpproxy.so"
  173. #!endif
  174. #!ifdef WITH_TLS
  175. loadmodule "tls.so"
  176. #!endif
  177. #!ifdef WITH_DEBUG
  178. loadmodule "debugger.so"
  179. #!endif
  180. #!ifdef WITH_ANTIFLOOD
  181. loadmodule "htable.so"
  182. loadmodule "pike.so"
  183. #!endif
  184. #!ifdef WITH_CFGLUA
  185. loadmodule "app_lua.so"
  186. #!endif
  187. #!ifdef WITH_CFGPYTHON
  188. loadmodule "app_python.so"
  189. #!endif
  190. #!ifdef WITH_CFGJSDT
  191. loadmodule "app_jsdt.so"
  192. #!endif
  193. # ----------------- setting module-specific parameters ---------------
  194. # ----- jsonrpcs params -----
  195. modparam("jsonrpcs", "pretty_format", 1)
  196. /* set the path to RPC fifo control file */
  197. # modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo")
  198. /* set the path to RPC unix socket control file */
  199. # modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock")
  200. # ----- ctl params -----
  201. #modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl")
  202. # ----- tm params -----
  203. # auto-discard branches from previous serial forking leg
  204. modparam("tm", "failure_reply_mode", 3)
  205. # default retransmission timeout: 30sec
  206. modparam("tm", "fr_timer", 30000)
  207. # default invite retransmission timeout after 1xx: 120sec
  208. modparam("tm", "fr_inv_timer", 120000)
  209. # ----- rr params -----
  210. # add value to ;lr param to cope with most of the UAs
  211. modparam("rr", "enable_full_lr", 1)
  212. # do not append from tag to the RR (no need for this script)
  213. modparam("rr", "append_fromtag", 0)
  214. # ----- registrar params -----
  215. modparam("registrar", "method_filtering", 1)
  216. /* uncomment the next line to disable parallel forking via location */
  217. # modparam("registrar", "append_branches", 0)
  218. /* uncomment the next line not to allow more than 10 contacts per AOR */
  219. #modparam("registrar", "max_contacts", 10)
  220. # max value for expires of registrations
  221. modparam("registrar", "max_expires", 3600)
  222. # set it to 1 to enable GRUU
  223. modparam("registrar", "gruu_enabled", 0)
  224. # ----- acc params -----
  225. /* what special events should be accounted ? */
  226. modparam("acc", "early_media", 0)
  227. modparam("acc", "report_ack", 0)
  228. modparam("acc", "report_cancels", 0)
  229. /* by default we do not adjust the direct of the sequential requests.
  230. * if you enable this parameter, be sure the enable "append_fromtag"
  231. * in "rr" module */
  232. modparam("acc", "detect_direction", 0)
  233. /* account triggers (flags) */
  234. modparam("acc", "log_flag", FLT_ACC)
  235. modparam("acc", "log_missed_flag", FLT_ACCMISSED)
  236. modparam("acc", "log_extra",
  237. "src_user=$fU;src_domain=$fd;src_ip=$si;"
  238. "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
  239. modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
  240. /* enhanced DB accounting */
  241. #!ifdef WITH_ACCDB
  242. modparam("acc", "db_flag", FLT_ACC)
  243. modparam("acc", "db_missed_flag", FLT_ACCMISSED)
  244. modparam("acc", "db_url", DBURL)
  245. modparam("acc", "db_extra",
  246. "src_user=$fU;src_domain=$fd;src_ip=$si;"
  247. "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
  248. #!endif
  249. # ----- usrloc params -----
  250. /* enable DB persistency for location entries */
  251. modparam("usrloc", "preload", "location")
  252. #!ifdef WITH_USRLOCDB
  253. modparam("usrloc", "db_url", DBURL)
  254. modparam("usrloc", "db_mode", 2)
  255. modparam("usrloc", "use_domain", MULTIDOMAIN)
  256. #!endif
  257. # ----- auth_db params -----
  258. #!ifdef WITH_AUTH
  259. modparam("auth_db", "db_url", DBURL)
  260. modparam("auth_db", "calculate_ha1", yes)
  261. modparam("auth_db", "password_column", "password")
  262. modparam("auth_db", "load_credentials", "")
  263. modparam("auth_db", "use_domain", MULTIDOMAIN)
  264. # ----- permissions params -----
  265. #!ifdef WITH_IPAUTH
  266. modparam("permissions", "db_url", DBURL)
  267. modparam("permissions", "db_mode", 1)
  268. #!endif
  269. #!endif
  270. #!ifdef WITH_NAT
  271. # ----- rtpproxy params -----
  272. modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
  273. # ----- nathelper params -----
  274. modparam("nathelper", "natping_interval", 30)
  275. modparam("nathelper", "ping_nated_only", 1)
  276. modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
  277. modparam("nathelper", "sipping_from", "sip:[email protected]")
  278. # params needed for NAT traversal in other modules
  279. modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
  280. modparam("usrloc", "nat_bflag", FLB_NATB)
  281. #!endif
  282. #!ifdef WITH_TLS
  283. # ----- tls params -----
  284. modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg")
  285. #!endif
  286. #!ifdef WITH_DEBUG
  287. # ----- debugger params -----
  288. modparam("debugger", "cfgtrace", 1)
  289. #!endif
  290. #!ifdef WITH_ANTIFLOOD
  291. # ----- pike params -----
  292. modparam("pike", "sampling_time_unit", 2)
  293. modparam("pike", "reqs_density_per_unit", 16)
  294. modparam("pike", "remove_latency", 4)
  295. # ----- htable params -----
  296. # ip ban htable with autoexpire after 5 minutes
  297. modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")
  298. #!endif
  299. #!ifdef WITH_CFGPYTHON
  300. modparam("app_python", "script_name", "/usr/local/etc/kamailio/kamailio-basic-kemi-python.py")
  301. cfgengine "python"
  302. #!else
  303. #!ifdef WITH_CFGLUA
  304. modparam("app_lua", "load", "/usr/local/etc/kamailio/kamailio-basic-kemi-lua.lua")
  305. cfgengine "lua"
  306. #!else
  307. #!ifdef WITH_CFGJSDT
  308. modparam("app_jsdt", "load", "/usr/local/etc/kamailio/kamailio-basic-kemi-jsdt.js")
  309. cfgengine "lua"
  310. #!else
  311. cfgengine "native"
  312. include_file "/usr/local/etc/kamailio/kamailio-basic-kemi-native.cfg"
  313. #!endif
  314. #!endif
  315. #!endif