kamailio-basic-kemi.cfg 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  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=2
  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. # mpath="/usr/local/lib/kamailio/modules/"
  138. #!ifdef WITH_MYSQL
  139. loadmodule "db_mysql.so"
  140. #!endif
  141. loadmodule "jsonrpcs.so"
  142. loadmodule "kex.so"
  143. loadmodule "corex.so"
  144. loadmodule "tm.so"
  145. loadmodule "tmx.so"
  146. loadmodule "sl.so"
  147. loadmodule "rr.so"
  148. loadmodule "pv.so"
  149. loadmodule "maxfwd.so"
  150. loadmodule "usrloc.so"
  151. loadmodule "registrar.so"
  152. loadmodule "textops.so"
  153. loadmodule "siputils.so"
  154. loadmodule "xlog.so"
  155. loadmodule "sanity.so"
  156. loadmodule "ctl.so"
  157. loadmodule "cfg_rpc.so"
  158. loadmodule "acc.so"
  159. #!ifdef WITH_AUTH
  160. loadmodule "auth.so"
  161. loadmodule "auth_db.so"
  162. #!ifdef WITH_IPAUTH
  163. loadmodule "permissions.so"
  164. #!endif
  165. #!endif
  166. #!ifdef WITH_NAT
  167. loadmodule "nathelper.so"
  168. loadmodule "rtpproxy.so"
  169. #!endif
  170. #!ifdef WITH_TLS
  171. loadmodule "tls.so"
  172. #!endif
  173. #!ifdef WITH_DEBUG
  174. loadmodule "debugger.so"
  175. #!endif
  176. #!ifdef WITH_ANTIFLOOD
  177. loadmodule "htable.so"
  178. loadmodule "pike.so"
  179. #!endif
  180. #!ifdef WITH_CFGLUA
  181. loadmodule "app_lua.so"
  182. #!endif
  183. #!ifdef WITH_CFGPYTHON
  184. loadmodule "app_python.so"
  185. #!endif
  186. #!ifdef WITH_CFGJSDT
  187. loadmodule "app_jsdt.so"
  188. #!endif
  189. #!ifdef WITH_CFGSQLANG
  190. loadmodule "app_sqlang.so"
  191. #!endif
  192. # ----------------- setting module-specific parameters ---------------
  193. # ----- jsonrpcs params -----
  194. modparam("jsonrpcs", "pretty_format", 1)
  195. /* set the path to RPC fifo control file */
  196. # modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo")
  197. /* set the path to RPC unix socket control file */
  198. # modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock")
  199. # ----- ctl params -----
  200. #modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl")
  201. # ----- tm params -----
  202. # auto-discard branches from previous serial forking leg
  203. modparam("tm", "failure_reply_mode", 3)
  204. # default retransmission timeout: 30sec
  205. modparam("tm", "fr_timer", 30000)
  206. # default invite retransmission timeout after 1xx: 120sec
  207. modparam("tm", "fr_inv_timer", 120000)
  208. # ----- rr params -----
  209. # add value to ;lr param to cope with most of the UAs
  210. modparam("rr", "enable_full_lr", 1)
  211. # do not append from tag to the RR (no need for this script)
  212. modparam("rr", "append_fromtag", 0)
  213. # ----- registrar params -----
  214. modparam("registrar", "method_filtering", 1)
  215. /* uncomment the next line to disable parallel forking via location */
  216. # modparam("registrar", "append_branches", 0)
  217. /* uncomment the next line not to allow more than 10 contacts per AOR */
  218. #modparam("registrar", "max_contacts", 10)
  219. # max value for expires of registrations
  220. modparam("registrar", "max_expires", 3600)
  221. # set it to 1 to enable GRUU
  222. modparam("registrar", "gruu_enabled", 0)
  223. # ----- acc params -----
  224. /* what special events should be accounted ? */
  225. modparam("acc", "early_media", 0)
  226. modparam("acc", "report_ack", 0)
  227. modparam("acc", "report_cancels", 0)
  228. /* by default we do not adjust the direct of the sequential requests.
  229. * if you enable this parameter, be sure the enable "append_fromtag"
  230. * in "rr" module */
  231. modparam("acc", "detect_direction", 0)
  232. /* account triggers (flags) */
  233. modparam("acc", "log_flag", FLT_ACC)
  234. modparam("acc", "log_missed_flag", FLT_ACCMISSED)
  235. modparam("acc", "log_extra",
  236. "src_user=$fU;src_domain=$fd;src_ip=$si;"
  237. "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
  238. modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
  239. /* enhanced DB accounting */
  240. #!ifdef WITH_ACCDB
  241. modparam("acc", "db_flag", FLT_ACC)
  242. modparam("acc", "db_missed_flag", FLT_ACCMISSED)
  243. modparam("acc", "db_url", DBURL)
  244. modparam("acc", "db_extra",
  245. "src_user=$fU;src_domain=$fd;src_ip=$si;"
  246. "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
  247. #!endif
  248. # ----- usrloc params -----
  249. /* enable DB persistency for location entries */
  250. modparam("usrloc", "preload", "location")
  251. #!ifdef WITH_USRLOCDB
  252. modparam("usrloc", "db_url", DBURL)
  253. modparam("usrloc", "db_mode", 2)
  254. modparam("usrloc", "use_domain", MULTIDOMAIN)
  255. #!endif
  256. # ----- auth_db params -----
  257. #!ifdef WITH_AUTH
  258. modparam("auth_db", "db_url", DBURL)
  259. modparam("auth_db", "calculate_ha1", yes)
  260. modparam("auth_db", "password_column", "password")
  261. modparam("auth_db", "load_credentials", "")
  262. modparam("auth_db", "use_domain", MULTIDOMAIN)
  263. # ----- permissions params -----
  264. #!ifdef WITH_IPAUTH
  265. modparam("permissions", "db_url", DBURL)
  266. modparam("permissions", "db_mode", 1)
  267. #!endif
  268. #!endif
  269. #!ifdef WITH_NAT
  270. # ----- rtpproxy params -----
  271. modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
  272. # ----- nathelper params -----
  273. modparam("nathelper", "natping_interval", 30)
  274. modparam("nathelper", "ping_nated_only", 1)
  275. modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
  276. modparam("nathelper", "sipping_from", "sip:[email protected]")
  277. # params needed for NAT traversal in other modules
  278. modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
  279. modparam("usrloc", "nat_bflag", FLB_NATB)
  280. #!endif
  281. #!ifdef WITH_TLS
  282. # ----- tls params -----
  283. modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg")
  284. #!endif
  285. #!ifdef WITH_DEBUG
  286. # ----- debugger params -----
  287. modparam("debugger", "cfgtrace", 1)
  288. #!endif
  289. #!ifdef WITH_ANTIFLOOD
  290. # ----- pike params -----
  291. modparam("pike", "sampling_time_unit", 2)
  292. modparam("pike", "reqs_density_per_unit", 16)
  293. modparam("pike", "remove_latency", 4)
  294. # ----- htable params -----
  295. # ip ban htable with autoexpire after 5 minutes
  296. modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")
  297. #!endif
  298. #!ifdef WITH_CFGPYTHON
  299. modparam("app_python", "script_name", "/usr/local/etc/kamailio/kamailio-basic-kemi-python.py")
  300. cfgengine "python"
  301. #!else
  302. #!ifdef WITH_CFGLUA
  303. modparam("app_lua", "load", "/usr/local/etc/kamailio/kamailio-basic-kemi-lua.lua")
  304. cfgengine "lua"
  305. #!else
  306. #!ifdef WITH_CFGJSDT
  307. modparam("app_jsdt", "load", "/usr/local/etc/kamailio/kamailio-basic-kemi-jsdt.js")
  308. cfgengine "jsdt"
  309. #!else
  310. #!ifdef WITH_CFGSQLANG
  311. modparam("app_sqlang", "load", "/usr/local/etc/kamailio/kamailio-basic-kemi-sqlang.sq")
  312. cfgengine "sqlang"
  313. #!else
  314. cfgengine "native"
  315. include_file "/usr/local/etc/kamailio/kamailio-basic-kemi-native.cfg"
  316. #!endif
  317. #!endif
  318. #!endif
  319. #!endif