Advertisement
load-net

Балансировка kamailio postgres

Feb 25th, 2023 (edited)
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.71 KB | None | 0 0
  1. 1234566
  2. root
  3. ***************************************
  4. apt install -y mc curl git wget
  5.  
  6. mkdir ~/.ssh
  7. cd ~/.ssh
  8. touch ~/.ssh/authorized_keys
  9.  
  10. Нажал шифт левый и кликнул правой клавишей мышки ЭТО ВСТАВИТЬ
  11.  
  12.  
  13.  
  14. hostnamectl set-hostname postgres
  15.  
  16.  
  17.  
  18. 192.168.20.33
  19. kama
  20. apt install -y kamailio kamailio-postgres-modules
  21.  
  22. Конфигурим подключение к postgres
  23.  
  24. mcedit /etc/kamailio/kamctlrc
  25.  
  26. DBENGINE=PGSQL
  27. DBHOST=192.168.20.31
  28. DBPORT=5432
  29. DBNAME=kamailio
  30. DBRWUSER="kamailio"
  31. DBRWPW="kamailiorw"
  32. DBROUSER="kamailioro"
  33. DBROPW="kamailioro"
  34. DBROOTUSER="postgres"
  35. DBROOTPW="dbrootpw"
  36. CHARSET="latin1"
  37.  
  38.  
  39.  
  40. kamdbctl create
  41. Везде нажимаем y
  42.  
  43.  
  44.  
  45. kamctl db show subscriber
  46. kamctl monitor
  47. kamctl online
  48. kamcmd ul.dump
  49. systemctl restart kamailio
  50. kamcmd dispatcher.list
  51. systemctl restart kamailio
  52. kamcmd dispatcher.list
  53. kamcmd dispatcher.reload
  54.  
  55.  
  56.  
  57.  
  58.  
  59. Логи смотреть
  60. tail -F /var/log/syslog
  61.  
  62. tcpdump -i any -G 600 -i any -vvvv port 5060
  63.  
  64.  
  65.  
  66. =========================================
  67. # Dispatcher (rus-kamailio-conf)
  68. loadmodule "dispatcher.so"
  69. modparam("dispatcher", "flags", 2)
  70. modparam("dispatcher", "ds_probing_mode", 1)
  71. modparam("dispatcher", "ds_ping_interval", 10) # ds_ping_interval — мы задаем периодичность отправки healtcheck
  72. modparam("dispatcher", "ds_probing_threshold", 4) #В приведенном примере, прежде чем SIP сервер (хост) из dispatcher списка станет недоступным, необходимо отправить два неудачных запроса.
  73. modparam("dispatcher", "ds_inactive_threshold", 4)
  74. modparam("dispatcher", "db_url", DBURL)
  75.  
  76.  
  77.  
  78. _____________________________
  79.  
  80. root@kama:/etc/kamailio# psql -h 192.168.20.31 -U kamailio -W kamailio -c "INSERT INTO dispatcher (setid, destination, description) values ('1', 'sip:192.168.20.27:5060', 'ab 1');"
  81. Password: ==== ПАРОЛЬ ОТ ТАЧКИ 192.168.20.31 С ПОСТГРЕСОМ у нас 1234566 =====
  82. INSERT 0 1
  83. root@kama:/etc/kamailio# psql -h 192.168.20.31 -U kamailio -W kamailio -c "INSERT INTO dispatcher (setid, destination, description) values ('1', 'sip:192.168.20.29:5060', 'bc 1');"
  84. Password:
  85. INSERT 0 1
  86. root@kama:/etc/kamailio# psql -h 192.168.20.31 -U kamailio -W kamailio -c "INSERT INTO dispatcher (setid, destination, description) values ('1', 'sip:192.168.20.30:5060', 'cd 1');"
  87. Password:
  88. INSERT 0 1
  89.  
  90.  
  91. kamcmd dispatcher.list
  92. _______________________________
  93. *****************************
  94.  
  95. # (rus-kamailio-conf)
  96. if (is_method("INVITE") and !ds_is_from_list()) {
  97. if (!ds_select_dst("1", "4")) {
  98. send_reply("404", "No destination");
  99. exit;
  100. }
  101. xlog("DISPATCHER: $$ru=$ru, $$du=$du");
  102. route(RELAY);
  103. }
  104.  
  105. # dispatch destinations to PSTN
  106. route(PSTN);
  107. *****************************
  108.  
  109. kamctl add [email protected] 1001
  110. kamctl add [email protected] 1002
  111.  
  112.  
  113. =========================================
  114.  
  115.  
  116. rtpengine
  117. cd /usr/src/
  118. git clone https://github.com/sipwise/rtpengine.git
  119. apt install -y dh-sequence-dkms libopus-dev libtest2-suite-perl dpkg-dev
  120.  
  121. Это показывает что не хватает
  122. dpkg-checkbuilddeps
  123.  
  124. Это все не хватает
  125. apt install -y debhelper-compat default-libmysqlclient-dev gperf libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libbcg729-dev libbencode-perl libcrypt-openssl-rsa-perl libcrypt-rijndael-perl libcurl4-openssl-dev libdigest-crc-perl libdigest-hmac-perl libevent-dev libglib2.0-dev libhiredis-dev libio-multiplex-perl libio-socket-inet6-perl libiptc-dev libjson-glib-dev libjson-perl libmosquitto-dev libnet-interface-perl libpcap0.8-dev libpcre3-dev libsocket6-perl libspandsp-dev libssl-dev libswresample-dev libsystemd-dev libwebsockets-dev libxmlrpc-core-c3-dev libxtables-dev markdown python3-websockets zlib1g-dev
  126.  
  127. dpkg-buildpackage -d
  128. dpkg -i *.deb
  129. apt --fix-broken install -y
  130. echo net.ipv4.ip_nonlocal_bind=1 >> /etc/sysctl.conf
  131. sysctl -p
  132. service ngcp-rtpengine-daemon restart
  133. service ngcp-rtpengine-daemon status
  134.  
  135.  
  136. mcedit /etc/rtpengine/rtpengine.conf
  137.  
  138. rtpengine-ng-client ping
  139.  
  140.  
  141. 192.168.20.31
  142. postgres
  143.  
  144. PostgreSQL
  145.  
  146. apt update && sudo apt upgrade -y
  147. apt-get install wget sudo curl gnupg2 -y
  148. sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
  149. wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  150. apt -y update
  151. apt-get install postgresql-15 -y
  152. systemctl start postgresql
  153. systemctl restart postgresql
  154. systemctl status postgresql
  155. ss -antpl | grep 5432
  156. ps -ef | grep postgres
  157. sudo -u postgres psql -c "SELECT version();"
  158. su postgres
  159. psql
  160. ALTER USER postgres PASSWORD 'dbrootpw';
  161. CREATE DATABASE test;
  162. \l
  163. \c test
  164. \dt
  165. exit
  166.  
  167.  
  168. mcedit /etc/postgresql/15/main/postgresql.conf
  169. listen_addresses = '*'
  170.  
  171. mcedit /etc/postgresql/15/main/pg_hba.conf
  172. host all all 192.168.20.0/24 trust
  173.  
  174.  
  175.  
  176. cd /usr/src
  177. wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
  178. tar xzvf asterisk-20-current.tar.gz
  179.  
  180. /usr/src/asterisk-20.1.0/contrib/scripts/install_prereq install
  181. ./configure --with-srtp --with-jansson-bundled
  182. make menuselect
  183. make -j4
  184. make install
  185. make samples
  186. make config
  187. ldconfig
  188. +++++++++++++++++++++++++++++++++
  189. adduser --system --group --home /var/lib/asterisk --no-create-home --disabled-password --gecos "Asterisk PBX" asterisk
  190. usermod -a -G asterisk,dialout,audio asterisk
  191. sed -i "s/#AST_USER="asterisk"/AST_USER=asterisk/" /etc/default/asterisk
  192. sed -i "s/#AST_GROUP="asterisk"/AST_GROUP=asterisk/" /etc/default/asterisk
  193. sed -i "s/;runuser = asterisk/runuser=asterisk/" /etc/asterisk/asterisk.conf
  194. sed -i "s/;rungroup = asterisk/rungroup=asterisk/" /etc/asterisk/asterisk.conf
  195. chown -R asterisk:asterisk /var/lib/asterisk
  196. chown -R asterisk:asterisk /var/log/asterisk
  197. chown -R asterisk:asterisk /var/run/asterisk
  198. chown -R asterisk:asterisk /var/spool/asterisk
  199. chown -R asterisk:asterisk /usr/lib/asterisk
  200. chown -R asterisk:asterisk /etc/asterisk
  201. chmod -R u=rwX,g=rX,o=rX /var/lib/asterisk
  202. chmod -R u=rwX,g=rX,o=rX /var/log/asterisk
  203. chmod -R u=rwX,g=rX,o=rX /var/run/asterisk
  204. chmod -R u=rwX,g=rX,o=rX /var/spool/asterisk
  205. chmod -R u=rwX,g=rX,o=rX /usr/lib/asterisk
  206. chmod -R u=rwX,g=rX,o=rX /etc/asterisk
  207. +++++++++++++++++++++++++++++++++
  208.  
  209. apt install -y sngrep
  210.  
  211. asterisk 3 тачки
  212.  
  213. mkdir ~/.ssh
  214. touch ~/.ssh/authorized_keys
  215. mcedit ~/.ssh/authorized_keys
  216.  
  217. 192.168.20.27
  218. hostnamectl set-hostname ab
  219. 192.168.20.29
  220. hostnamectl set-hostname bc
  221. 192.168.20.30
  222. hostnamectl set-hostname cd
  223.  
  224.  
  225. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  226. mcedit /etc/asterisk/extensions.conf
  227.  
  228.  
  229. [general]
  230. static=yes
  231. writeprotect=no
  232. clearglobalvars=no
  233.  
  234. [globals]
  235. CONSOLE=Console/dsp ; Console interface for demo
  236. ;CONSOLE=DAHDI/1
  237. ;CONSOLE=Phone/phone0
  238. IAXINFO=guest ; IAXtel username/password
  239. ;IAXINFO=myuser:mypass
  240. TRUNK=DAHDI/G2 ; Trunk interface
  241.  
  242. [from_kamailio]
  243. exten => 1,1,Answer
  244. same => n,Wait(1)
  245. same => n,BackGround(562601_6)
  246. same => n,BackGround(basic-pbx-ivr-main)
  247. same => n,BackGround(demo-instruct)
  248. same => n,Waitexten(5)
  249. same => n,Goto(to_pbx,1,1)
  250. same => n(end),Hangup
  251.  
  252. exten => 6,1,Answer
  253. same => n,BackGround(562601)
  254. same => n,Hangup
  255.  
  256. [to_pbx]
  257. exten => 1,1,Answer
  258. same => n,Wait(1)
  259. same => n,BackGround(priv-callee-options)
  260. same => n,BackGround(demo-instruct)
  261. same => n(end),Hangup
  262.  
  263. [from-internal]
  264. exten = 1,1,Answer
  265. same = n,Wait(1)
  266. same = n,SpeechCreate
  267. same = n,SpeechBackground(hello)
  268. same = n,Verbose(0,Result was ${SPEECH_TEXT(0)})
  269.  
  270. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  278. mcedit /etc/asterisk/pjsip.con
  279.  
  280. [system]
  281. type = system
  282. timer_t1 = 200
  283. timer_t2 = 1500
  284.  
  285. [global]
  286. ttype = global
  287. disable_multi_domain = yes
  288. ;debug = yes
  289. taskprocessor_overload_trigger = global
  290. unidentified_request_count=5
  291. unidentified_request_period=5
  292. unidentified_request_prune_interval=30
  293. endpoint_identifier_order=username,ip,anonymous
  294. canreinvite=no
  295. insecure=port,invite
  296. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  297. [transport-udp-nat]
  298. type=transport
  299. protocol=udp
  300. bind=0.0.0.0
  301. local_net=192.168.20.0/24
  302.  
  303. ;;;;;;;;kamailio;;;;;;;;;;;
  304.  
  305. [kamailio]
  306. type=endpoint
  307. transport=transport-udp-nat
  308. context=from_kamailio
  309. disallow=all
  310. allow=alaw
  311. allow=g722
  312. allow=ulaw
  313. aors=kamailio
  314. direct_media=no
  315. rtp_symmetric=no
  316. force_rport=no
  317. rewrite_contact=no
  318.  
  319. [kamailio]
  320. type =identify
  321. endpoint=kamailio
  322. match=192.168.20.33 ;(удален частный IP-адрес kamailio)
  323.  
  324. [kamailio]
  325. type=aor
  326. contact=sip:192.168.20.33:5060 ;(удален частный IP-адрес kamailio)
  327.  
  328. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  329. [endpoint-template](!)
  330. type = endpoint
  331. transport = transport-udp-nat
  332. context = from-internal
  333. dtmf_mode = rfc4733
  334. disallow = all
  335. allow = ulaw
  336. allow = alaw
  337.  
  338. [auth-template-userpass](!)
  339. type = auth
  340. auth_type = userpass;
  341.  
  342. [aor-template-single-reg](!)
  343. type = aor
  344. max_contacts = 1
  345.  
  346. ;;;;;;;;;;;users;;;;;;;;;;;;;;;;;;;;;
  347. [108](endpoint-template)
  348. auth = auth108
  349. aors = 108
  350. callerid = man 108;
  351.  
  352. [auth108](auth-template-userpass)
  353. username = 108
  354. password = 1JKHKJjj23
  355.  
  356. [108](aor-template-single-reg)
  357.  
  358. ;;;;;;;;;;;;;;;;109;;;;;;;;;;;;;;;;;;;;;
  359. [109](endpoint-template)
  360. auth = auth109
  361. aors = 109
  362. callerid = man 109;
  363.  
  364. [auth109](auth-template-userpass)
  365. username = 109
  366. password = 123dsvHGuill
  367.  
  368. [109](aor-template-single-reg)
  369. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  370.  
  371.  
  372.  
  373.  
  374. https://www.microsip.org/downloads
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement