Advertisement
load-net

extensions.ael

Feb 25th, 2025 (edited)
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.07 KB | None | 0 0
  1. ;;;;;;;;;;;; РАБОТАЕТ С БАЗОЙ MYSQL REALTIME ;;;;;;;; НАСТРОЙКИ ПОД CENTOS ;;;;
  2. mcedit odbc.ini
  3.  
  4. [asterisk]
  5. Driver = MySQL
  6. Description = Connector/ODBC 3.51 Driver DSN
  7. Server = 127.0.0.1
  8. Port = 3306
  9. User = asterisk
  10. Password = !asterisk!
  11. Database = asterisk
  12. Socket =
  13. Charset = UTF8
  14.  
  15.  
  16. ; настройка соединения
  17. [MySQL-asteriskcdrdb]
  18. Driver = MySQL
  19. Description = MySQL connection to 'asteriskcdrdb' database
  20. Server = localhost
  21. Port = 3306
  22. Database = asteriskcdrdb
  23. Option = 3
  24.  
  25. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  26. mcedit odbcinst.ini
  27.  
  28. # Example driver definitions
  29.  
  30. # Driver from the postgresql-odbc package
  31. # Setup from the unixODBC package
  32. [PostgreSQL]
  33. Description = ODBC for PostgreSQL
  34. Driver = /usr/lib/psqlodbc.so
  35. Setup = /usr/lib/libodbcpsqlS.so
  36. Driver64 = /usr/lib64/psqlodbc.so
  37. Setup64 = /usr/lib64/libodbcpsqlS.so
  38. FileUsage = 1
  39.  
  40.  
  41. # Driver from the mysql-connector-odbc package
  42. # Setup from the unixODBC package
  43. [MySQL]
  44. Description = ODBC for MySQL
  45. Driver = /usr/lib/libmyodbc5.so
  46. Setup = /usr/lib/libodbcmyS.so
  47. Driver64 = /usr/lib64/libmyodbc5.so
  48. Setup64 = /usr/lib64/libodbcmyS.so
  49. FileUsage = 1
  50.  
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52.  
  53. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  54. /////////////////////////ИСХОДЯЩАЯ СВЯЗЬ///////////////////////////////////////////////////////////////////////////////////////
  55. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  56. context outgoing {
  57. includes {
  58. outgoing_local;
  59. outgoing_gorod;
  60. outgoing_gorod_mejgorod_gsm_block;
  61. parkedcalls;
  62. help;
  63. pickup;
  64. // queue;
  65. }
  66. }
  67.  
  68. context outgoing_mejgorod {
  69. includes {
  70. outgoing_local;
  71. outgoing_gorod;
  72. outgoing_gorod_mejgorod_gsm;
  73. parkedcalls;
  74. help;
  75. pickup;
  76. // queue;
  77. }
  78. }
  79.  
  80. context outgoing_local {
  81. 666 => {
  82. MeetMe(666);
  83. // Answer();
  84. // SayDigits(8);
  85. // SayNumber(922);
  86. // SayDigits(00000);
  87. // SayNumber(29);
  88. };
  89. _1000 => {
  90. NoOp(Phone from ${CALLERID(number)} phones to conference);
  91. Set(MEETME_RECORDINGFILE=/backup/meetme/conference_recording-${EPOCH}-${USER});
  92. MeetMe(1000,rMpc);
  93. }
  94. _[123457]XXX => {
  95. NoOp(Phone from ${CALLERID(number)} phones to ${EXTEN});
  96. if ("${SIPPEER(${EXTEN},status)}" = "") {
  97. Playback(incorect-number); //Номер не существует
  98. Playback(check-number-dial-again);
  99. Hangup();
  100. }
  101. if ("${SIPPEER(${EXTEN},status):0:2}" = "UN") {
  102. Playback(number); //Номер
  103. Playback(ne-podkljuchen); //Не подключен
  104. Hangup();
  105. }
  106. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  107. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  108. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  109. Set(redirect=${ODBC_SIPUSERS(redirect,${EXTEN})}); //Присваеваем переменную redirect
  110. NoOp(${CALLERID(ALL)});
  111. if ("${redirect}" = "" | "${redirect}" = "NULL" ) {
  112. Dial(SIP/${EXTEN},60,tTwS(1800)); //Звонок на внутренний
  113. Playback(vm-nobodyavail);
  114. HangUp(); //Ложим трубку
  115. }
  116. Dial(SIP/${EXTEN},20,tTwS(1800));
  117. Playback(transfer);
  118. Dial(${redirect},,tTwS(1800));
  119. HangUp();
  120. };
  121. _999 => {
  122. Goto(fax-rx,receive,1); //Переход в контекст факса
  123. }
  124. };
  125.  
  126. context outgoing_gorod {
  127. _0X => {
  128. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  129. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  130. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  131. Noop(${CALLERID(all)});
  132. Set(Number=${ODBC_SIPUSERS(number,${CALLERID(number)})}); //Присваеваем переменную number
  133. Dial(SIP/${EXTEN}@${Number}-dial,,rtTS(1800)); //Отправляем вызов в поток
  134. // Dial(SIP/${EXTEN}@993111-dial,,tTS(1800)); //Отправляем вызов в поток
  135. HangUp(); //Ложим трубку
  136. };
  137. _0XX => {
  138. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  139. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  140. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  141. Noop(${CALLERID(all)});
  142. Set(Number=${ODBC_SIPUSERS(number,${CALLERID(number)})}); //Присваеваем переменную number
  143. Dial(SIP/${EXTEN}@${Number}-dial,,tTS(1800)); //Отправляем вызов в поток
  144. // Dial(SIP/${EXTEN}@993111-dial,,tTS(1800)); //Отправляем вызов в поток
  145. HangUp(); //Ложим трубку
  146. };
  147. _XXXXXX => {
  148. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  149. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  150. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  151. Noop(${CALLERID(all)});
  152. Set(Number=${ODBC_SIPUSERS(number,${CALLERID(number)})}); //Присваеваем переменную number
  153. Dial(SIP/${EXTEN}@${Number}-dial,,tTS(1800)); //Отправляем вызов в поток
  154. // Dial(SIP/${EXTEN}@993111-dial,,tTS(1800)); //Отправляем вызов в поток
  155. HangUp(); //Ложим трубку
  156. };
  157. _83452XXXXXX => {
  158. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  159. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  160. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  161. Noop(${CALLERID(all)});
  162. Set(Number=${ODBC_SIPUSERS(number,${CALLERID(number)})}); //Присваеваем переменную number
  163. Dial(SIP/${EXTEN}@${Number}-dial,,tTS(1800)); //Отправляем вызов в поток
  164. // Dial(SIP/${EXTEN}@993111-dial,,tTS(1800)); //Отправляем вызов в поток
  165. HangUp(); //Ложим трубку
  166. };
  167. }
  168.  
  169. context outgoing_gorod_mejgorod_gsm {
  170. _8[3456789]. => {
  171. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  172. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  173. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  174. Noop(${CALLERID(all)});
  175. Set(Number=${ODBC_SIPUSERS(number,${CALLERID(number)})}); //Присваеваем переменную number
  176. Dial(SIP/${EXTEN}@${Number}-dial,,S(1800)); //Отправляем вызов в поток
  177. // Dial(SIP/${EXTEN}@993111-dial,,S(1800)); //Отправляем вызов в поток
  178. HangUp(); //Ложим трубку
  179. };
  180. _810. => {
  181. Playback(izvinite&ustanovleno); //Номер не существует
  182. // Playback(incorect-number); //Номер не существует
  183. System(echo "С номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)} на номер: ${EXTEN}" | mutt -s "8-10 ALARM!!!" -- [email protected] &);
  184. }
  185. }
  186.  
  187. context outgoing_gorod_mejgorod_gsm_block {
  188. _8[3456789]. => {
  189. Playback(izvinite); //Говорим Извините
  190. Playback(feature-not-avail-line); //Говорим на данной линии услугой воспользоваться не возможно
  191. Playback(to-contact-tech-support); //Говорим для связи с технической поддержкой
  192. Playback(naberite); //Говорим Наберите
  193. SayNumber(911); //Произносим цифры
  194. HangUp(); //Ложим трубку
  195. };
  196. };
  197.  
  198. context blind_transfer_ringback {
  199. _[12347]XXX => {
  200. NoOp("Blindtransfer: " ${BLINDTRANSFER});
  201. Set(SrcChanel=${CUT(BLINDTRANSFER,,1)});
  202. Dial(SIP/${EXTEN},30,mtTgS(7200));
  203. NoOp("DIALSTATUS="${DIALSTATUS});
  204. if("${DIALSTATUS}" = "ANSWER") {
  205. Hangup();
  206. }
  207. else {
  208. Dial(${SrcChanel},45,mtTrS(7200));
  209. Playback(vm-nobodyavail&vm-goodbye); //Говорим "Не кто не может вам ответить, досвидание"
  210. Hangup();
  211. }
  212. };
  213. };
  214.  
  215. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  216. /////////////////////////ВХОДЯЩАЯ СВЯЗЬ////////////////////////////////////////////////////////////////////////////////////////
  217. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  218.  
  219. context incoming {
  220. includes {
  221. // incoming_menu;
  222. incoming_local;
  223. incoming_gorod;
  224. }
  225. }
  226.  
  227. context incoming_local {
  228. _1000 => {
  229. NoOp(Phone from ${CALLERID(number)} phones to conference);
  230. Set(MEETME_RECORDINGFILE=/backup/meetme/conference_recording-${EPOCH}-${USER});
  231. MeetMe(1000,rMpc);
  232. }
  233. _[12347]XXX => {
  234. NoOp(internal phones ${EXTEN});
  235. if ("${SIPPEER(${EXTEN},status)}" = "") {
  236. Playback(incorect-number); //Номер не существует
  237. Hangup();
  238. };
  239. if ("${SIPPEER(${EXTEN},status):0:2}" = "UN") {
  240. Playback(number); //Номер
  241. Playback(ne-podkljuchen); //Не подключен
  242. Hangup();
  243. };
  244. Set(fname=${UNIQUEID}.wav); //Задаем имя файла
  245. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  246. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  247. Set(redirect=${ODBC_SIPUSERS(redirect,${EXTEN})}); //Присваеваем переменную redirect
  248. if ("${redirect}" = "" | "${redirect}" = "NULL" ) {
  249. Dial(SIP/${EXTEN},60,tTwrS(1800)); //Звонок на внутренний
  250. Playback(vm-nobodyavail);
  251. HangUp(); //Ложим трубку
  252. }
  253. Dial(SIP/${EXTEN},4,tTwrS(1800));
  254. Playback(transfer);
  255. NoOp(${redirect});
  256. Dial(${redirect},,S(1800));
  257. HangUp();
  258. }
  259. };
  260.  
  261. context incoming_gorod {
  262. _993111 => {
  263. Goto(incoming_ivr_priem,ivr_priem,1);
  264. }
  265.  
  266. _993222 => {
  267. Set(CHANNEL(language)=ru); //Установка языка Русского
  268. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  269. NoOp(${CALLERID(number)}); //Выводим в консоль
  270. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  271. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  272. Dial(SIP/3105,60,tTwrS(1800));
  273. // Playback(vm-nobodyavail);
  274. HangUp();
  275. }
  276.  
  277. _993222 => {
  278. Set(CHANNEL(language)=ru); //Установка языка Русского
  279. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  280. NoOp(${CALLERID(number)}); //Выводим в консоль
  281. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  282. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  283. Dial(SIP/1106&SIP/1120,60,tTwrS(1800));
  284. Playback(vm-nobodyavail);
  285. HangUp();
  286. }
  287.  
  288. _996767 => {
  289. // Goto(incoming_local,1153,1);
  290. Goto(incoming_ivr_snp,ivr_snp,1);
  291. }
  292. _996396 => {
  293. Goto(incoming_local,1102,1);
  294. }
  295.  
  296. _993399 => {
  297. Goto(incoming_ivr_priem,ivr_priem,1);
  298. }
  299.  
  300. _993920 => {
  301. // Goto(incoming_ivr_priem_poleklinika,ivr_priem,1);
  302. Goto(incoming_local,2152,1);
  303. }
  304. _993556 => {
  305. Goto(incoming_local,2142,1);
  306. }
  307. _993557 => {
  308. // Goto(incoming_local,144,1);
  309. Set(CHANNEL(language)=ru); //Установка языка Русского
  310. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  311. NoOp(${CALLERID(number)}); //Выводим в консоль
  312. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  313. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  314. Dial(SIP/2144,10,tTwrS(1800));
  315. Dial(SIP/2141,50,tTwrS(1800));
  316. HangUp();
  317. }
  318. _993558 => {
  319. Goto(incoming_ivr_priem_poleklinika,ivr_priem,1);
  320. }
  321. _993560 => {
  322. Goto(incoming_local,2113,1);
  323. }
  324. _993768 => {
  325. Goto(incoming_local,2104,1);
  326. }
  327. _993913 => {
  328. Goto(incoming_local,2116,1);
  329. }
  330. _993915 => {
  331. Goto(incoming_local,2140,1);
  332. }
  333. _993916 => {
  334. Goto(incoming_local,2126,1);
  335. }
  336. _993917 => {
  337. Goto(incoming_local,2136,1);
  338. }
  339. _993918 => {
  340. Goto(incoming_local,2103,1);
  341. }
  342. _993919 => {
  343. Goto(incoming_local,2129,1);
  344. }
  345. _993921 => {
  346. Goto(incoming_local,2137,1);
  347. }
  348. _993922 => {
  349. Goto(incoming_local,2120,1);
  350. }
  351. _993923 => {
  352. Goto(incoming_local,2133,1);
  353. }
  354. _993444 => {
  355. Goto(incoming_ivr_reg,ivr_reg,1);
  356. }
  357. _993960 => {
  358. Goto(incoming_ivr_fire,ivr_fire,1);
  359. }
  360. _993991 => {
  361. Goto(incoming_local,2107,1);
  362. }
  363. _993992 => {
  364. // Goto(incoming_ivr_priem_poleklinika,ivr_priem,1);
  365. Goto(incoming_local,2127,1);
  366. }
  367. _993396 => {
  368. Goto(incoming_local,1102,1);
  369. }
  370. _996060 => {
  371. Set(CHANNEL(language)=ru); //Установка языка Русского
  372. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  373. NoOp(${CALLERID(number)}); //Выводим в консоль
  374. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  375. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  376. Background(ob19/ivr-1&ob19/ivr-2);
  377. Dial(SIP/1107,,tTwrS(1800));
  378. // Dial(SIP/1107&SIP/1132&SIP/1133&SIP/1134&SIP/1135,60,tTwrS(1800));
  379. Queue(PRIEM,mTt,,,);
  380. HangUp();
  381. }
  382.  
  383. // _8002347219 => {
  384. // Goto(incoming_ivr_reg,ivr_reg,1);
  385. // }
  386. }
  387.  
  388. context incoming_ivr { //993444
  389. includes {
  390. incoming_local;
  391. }
  392. ivr => {
  393. // GotoIfTime(8:00-22:00,*,09,jun?open,1);
  394. GotoIfTime(8:00-20:00,mon-fri,*,*?open,1);
  395. GotoIfTime(9:00-14:00,sat-sun,*,*?open,1);
  396. GotoIfTime(*,*,*,*?close,1);
  397. }
  398. open => {
  399. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  400. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  401. Set(LenCallerID=${LEN(${CALLERID(number)})});
  402. if ("${LenCallerID}" < 12 ) {
  403. if ("${LenCallerID}" = "11" ) {
  404. if ("${CALLERID(number):1}" = "7" ) {
  405. Set(CALLERID(number)=8${CALLERID(number):-1});
  406. }
  407. }
  408. if ("${LenCallerID}" = "10" ) {
  409. Set(CALLERID(number)=8${CALLERID(number)});
  410. }
  411. if ("${LenCallerID}" = "6" ) {
  412. Set(CALLERID(number)=83452${CALLERID(number)});
  413. }
  414. }
  415. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  416. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  417. Answer();
  418. Set(CHANNEL(language)=ru); //Установка языка Русского
  419. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  420. NoOp(${CALLERID(number)}); //Выводим в консоль
  421. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  422. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  423. Background(ob19/ivr-1&ob19/ivr-2);
  424. //Говорит "Здравствуйте Вы позвонили в об19, наберите внутренний или дождитесь ответа"
  425. WaitExten(3);
  426. Dial(SIP/2109,,tTwrS(1800));
  427. HangUp();
  428. }
  429. close => {
  430. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  431. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  432. Answer();
  433. Set(CHANNEL(language)=ru); //Установка языка Русского
  434. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  435. NoOp(${CALLERID(number)}); //Выводим в консоль
  436. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  437. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  438. Background(ob19/ivr-1&ob19/reg-5&ob19/reg-6&ob19/reg-7);
  439. //Говорит "Здравствуйте Вы позвонили в об19, к сожалению вы позвонили в не рабочее время, просьба перезвонить в будни, всего вам доброго."
  440. HangUp();
  441. }
  442.  
  443. };
  444.  
  445. ///////////////////////////////////РЕГИСТРАТУРА/////////////////////////////////////////////////
  446.  
  447. context incoming_ivr_reg { //993444
  448. includes {
  449. incoming_menu_reg;
  450. // incoming_local;
  451. }
  452. ivr_reg => {
  453. // Gotoiftime(8:00-14:00,*,3-4,may?open,1);
  454. // Gotoiftime(8:00-20:00,*,6-8,may?open,1);
  455. // Gotoiftime(8:00-14:00,*,10-11,may?open,1);
  456. // Gotoiftime(*,*,1-11,may?close,1);
  457. // GotoIfTime(8:00-22:00,*,09,jun *,*?open,1);
  458.  
  459. GotoIfTime(8:00-14:00,*,3,jan?open,1);
  460. GotoIfTime(8:00-14:00,*,6,jan?open,1);
  461. GotoIfTime(*,*,1-7,jan?close,1);
  462.  
  463. GotoIfTime(8:00-16:29,mon-fri,*,*?open,1);
  464. GotoIfTime(16:30-20:00,mon-fri,*,*?open_1630,1);
  465. GotoIfTime(8:00-23:99,sat-sun,*,*?open,1);
  466. GotoIfTime(*,*,*,*?close,1);
  467. }
  468. open => {
  469. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  470. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  471. Set(LenCallerID=${LEN(${CALLERID(number)})});
  472. if ("${LenCallerID}" < 12 ) {
  473. if ("${LenCallerID}" = "11" ) {
  474. if ("${CALLERID(number):1}" = "7" ) {
  475. Set(CALLERID(number)=8${CALLERID(number):-1});
  476. }
  477. }
  478. if ("${LenCallerID}" = "10" ) {
  479. Set(CALLERID(number)=8${CALLERID(number)});
  480. }
  481. if ("${LenCallerID}" = "6" ) {
  482. Set(CALLERID(number)=83452${CALLERID(number)});
  483. }
  484. }
  485. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  486. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  487. Answer(1);
  488. Set(CHANNEL(language)=ru); //Установка языка Русского
  489. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  490. NoOp(${CALLERID(number)}); //Выводим в консоль
  491. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  492. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  493. BackGround(ob19/reg-01&ob19/snp-00);
  494. //Говорит "Здравствуйте. Вы позвонили в call-центр областной больницы №19. Спасибо за Ваш звонок. Вам ответит первый доступный оператор."
  495. WaitExten(3);
  496. Queue(REG,mTt,,,);
  497. HangUp();
  498. }
  499.  
  500. open_1630 => {
  501. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  502. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  503. Set(LenCallerID=${LEN(${CALLERID(number)})});
  504. if ("${LenCallerID}" < 12 ) {
  505. if ("${LenCallerID}" = "11" ) {
  506. if ("${CALLERID(number):1}" = "7" ) {
  507. Set(CALLERID(number)=8${CALLERID(number):-1});
  508. }
  509. }
  510. if ("${LenCallerID}" = "10" ) {
  511. Set(CALLERID(number)=8${CALLERID(number)});
  512. }
  513. if ("${LenCallerID}" = "6" ) {
  514. Set(CALLERID(number)=83452${CALLERID(number)});
  515. }
  516. }
  517. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  518. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  519. // Answer(1);
  520. Set(CHANNEL(language)=ru); //Установка языка Русского
  521. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  522. NoOp(${CALLERID(number)}); //Выводим в консоль
  523. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  524. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  525. // BackGround(ob19/reg-01&ob19/snp-00);
  526. //Говорит "Здравствуйте. Вы позвонили в call-центр областной больницы №19. Спасибо за Ваш звонок. Вам ответит первый доступный оператор."
  527. // Wait(3);
  528. // Dial(SIP/2109,,tTwrS(1800));
  529. Dial(SIP/2160,,tTwrS(1800));
  530. HangUp();
  531. }
  532.  
  533. close => {
  534. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  535. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  536. Answer();
  537. Set(CHANNEL(language)=ru); //Установка языка Русского
  538. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  539. NoOp(${CALLERID(number)}); //Выводим в консоль
  540. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  541. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  542. Background(ob19/reg-01&ob19/snp-00&ob19/reg-5&ob19/reg-6&ob19/reg-7);
  543. //Говорит "Здравствуйте Вы позвонили в регистратуру об19, к сожалению вы позвогнили в не рабочее время, просьба перезвонить в будни, всего вам доброго."
  544. HangUp();
  545. }
  546. };
  547.  
  548. context incoming_menu_reg {
  549. _1 => {
  550. Queue(SNP,mTt,,,);
  551. Hangup();
  552. }
  553. _i => {
  554. Playback(incorect-number&ob19/reg-3); //Номер не существует
  555. Queue(REG,mTt,,,);
  556. Hangup();
  557. }
  558. }
  559.  
  560. ///////////////////////////////////НЕОТЛОЖКА/////////////////////////////////////////////////
  561.  
  562. context incoming_ivr_snp { //996767
  563. ivr_snp => {
  564. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  565. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  566. Set(LenCallerID=${LEN(${CALLERID(number)})});
  567. if ("${LenCallerID}" < 12 ) {
  568. if ("${LenCallerID}" = "11" ) {
  569. if ("${CALLERID(number):1}" = "7" ) {
  570. Set(CALLERID(number)=8${CALLERID(number):-1});
  571. }
  572. }
  573. if ("${LenCallerID}" = "10" ) {
  574. Set(CALLERID(number)=8${CALLERID(number)});
  575. }
  576. if ("${LenCallerID}" = "6" ) {
  577. Set(CALLERID(number)=83452${CALLERID(number)});
  578. }
  579. }
  580. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  581. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  582. Answer();
  583. Set(CHANNEL(language)=ru); //Установка языка Русского
  584. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  585. NoOp(${CALLERID(number)}); //Выводим в консоль
  586. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  587. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  588. PlayBack(ob19/snp-01);
  589. //Говорит "Здравствуйте. Вы позвонили в службу неотложной помощи областной больницы №19. Спасибо за Ваш звонок. Вам ответит первый доступный диспетчер"
  590. Queue(SNP,mTt,,,);
  591. HangUp();
  592. }
  593. };
  594.  
  595. ///////////////////////////////////ГОРЯЧАЯ ЛИНИЯ/////////////////////////////////////////////////
  596.  
  597. context incoming_ivr_fire { //342508
  598. includes {
  599. // incoming_menu_fire;
  600. incoming_local;
  601. }
  602. ivr_fire => {
  603. // GotoIfTime(8:00-22:00,*,09,jun?open,1);
  604. // GotoIfTime(*,*,1-10,jan?close,1);
  605. GotoIfTime(8:00-20:00,mon-fri,*,*?open,1);
  606. GotoIfTime(9:00-14:00,sat-sun,*,*?open,1);
  607. GotoIfTime(*,*,*,*?close,1);
  608. }
  609. open => {
  610. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  611. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  612. Set(LenCallerID=${LEN(${CALLERID(number)})});
  613. if ("${LenCallerID}" < 12 ) {
  614. if ("${LenCallerID}" = "11" ) {
  615. if ("${CALLERID(number):1}" = "7" ) {
  616. Set(CALLERID(number)=8${CALLERID(number):-1});
  617. }
  618. }
  619. if ("${LenCallerID}" = "10" ) {
  620. Set(CALLERID(number)=8${CALLERID(number)});
  621. }
  622. if ("${LenCallerID}" = "6" ) {
  623. Set(CALLERID(number)=83452${CALLERID(number)});
  624. }
  625. }
  626. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  627. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  628. Answer();
  629. Set(CHANNEL(language)=ru); //Установка языка Русского
  630. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  631. NoOp(${CALLERID(number)}); //Выводим в консоль
  632. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  633. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  634. Background(ob19/fire-1);
  635. //Говорит "Здравствуйте Вы позвонили на горячую линию об19"
  636. Queue(REG_1530,mTt,,,);
  637. HangUp();
  638. }
  639. close => {
  640. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  641. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  642. Answer();
  643. Set(CHANNEL(language)=ru); //Установка языка Русского
  644. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  645. NoOp(${CALLERID(number)}); //Выводим в консоль
  646. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  647. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  648. Background(ob19/fire-1&ob19/reg-5&ob19/reg-6&ob19/reg-7);
  649. //Говорит "Здравствуйте Вы позвонили на горячую линию об19, к сожалению вы позвогнили в не рабочее время, просьба перезвонить в будни, всего вам доброго."
  650. HangUp();
  651. }
  652. };
  653.  
  654.  
  655. context incoming_ivr_priem { //342508
  656. includes {
  657. incoming_menu_priem;
  658. incoming_local;
  659. }
  660. ivr_priem => {
  661. // GotoIfTime(07:30-20:00,*,09,jun?open,1);
  662.  
  663. GotoIfTime(8:00-14:00,*,3,jan?open,1);
  664. GotoIfTime(8:00-14:00,*,6,jan?open,1);
  665. GotoIfTime(*,*,1-7,jan?close,1);
  666.  
  667.  
  668. GotoIfTime(07:30-20:00,mon-fri,*,*?open,1);
  669. GotoIfTime(9:00-14:00,sat-sun,*,*?open,1);
  670. GotoIfTime(*,*,*,*?close,1);
  671. }
  672. open => {
  673. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  674. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  675. Set(LenCallerID=${LEN(${CALLERID(number)})});
  676. if ("${LenCallerID}" < 12 ) {
  677. if ("${LenCallerID}" = "11" ) {
  678. if ("${CALLERID(number):1}" = "7" ) {
  679. Set(CALLERID(number)=8${CALLERID(number):-1});
  680. }
  681. }
  682. if ("${LenCallerID}" = "10" ) {
  683. Set(CALLERID(number)=8${CALLERID(number)});
  684. }
  685. if ("${LenCallerID}" = "6" ) {
  686. Set(CALLERID(number)=83452${CALLERID(number)});
  687. }
  688. }
  689. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  690. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  691. Answer();
  692. Set(CHANNEL(language)=ru); //Установка языка Русского
  693. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  694. NoOp(${CALLERID(number)}); //Выводим в консоль
  695. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  696. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  697. Background(ob19/priem-1&ob19/priem-2&ob19/priem-fax);
  698. //Говорит "Здравствуйте Вы позвонили в приемную об19, наберите внутренний или дождитесь ответ секретаря, для отправки факса нажмите 9"
  699. Queue(PRIEM,mTt,,,);
  700. HangUp();
  701. }
  702. close => {
  703. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  704. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  705. Answer();
  706. Set(CHANNEL(language)=ru); //Установка языка Русского
  707. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  708. NoOp(${CALLERID(number)}); //Выводим в консоль
  709. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  710. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  711. Background(ob19/priem-1&ob19/reg-5&ob19/reg-6);
  712. //Говорит "Здравствуйте Вы позвонили в приемную об19, к сожалению вы позвогнили в не рабочее время, просьба перезвонить в будни"
  713. Background(ob19/priem-fax);
  714. //Говорит "для отправки факса наждмите 9, всего вам доброго."
  715. WaitExten(3);
  716. Playback(ob19/reg-7);
  717. HangUp();
  718. }
  719. };
  720.  
  721. context incoming_ivr_priem_poleklinika { //342508
  722. includes {
  723. incoming_menu_priem;
  724. incoming_local;
  725. }
  726. ivr_priem => {
  727. // GotoIfTime(8:00-20:00,*,09,jun?open,1);
  728.  
  729. GotoIfTime(8:00-14:00,*,3,jan?open,1);
  730. GotoIfTime(8:00-14:00,*,6,jan?open,1);
  731. GotoIfTime(*,*,1-7,jan?close,1);
  732.  
  733.  
  734. GotoIfTime(8:00-20:00,mon-fri,*,*?open,1);
  735. GotoIfTime(9:00-14:00,sat-sun,*,*?open,1);
  736. GotoIfTime(*,*,*,*?close,1);
  737. }
  738. open => {
  739. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  740. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  741. Set(LenCallerID=${LEN(${CALLERID(number)})});
  742. if ("${LenCallerID}" < 12 ) {
  743. if ("${LenCallerID}" = "11" ) {
  744. if ("${CALLERID(number):1}" = "7" ) {
  745. Set(CALLERID(number)=8${CALLERID(number):-1});
  746. }
  747. }
  748. if ("${LenCallerID}" = "10" ) {
  749. Set(CALLERID(number)=8${CALLERID(number)});
  750. }
  751. if ("${LenCallerID}" = "6" ) {
  752. Set(CALLERID(number)=83452${CALLERID(number)});
  753. }
  754. }
  755. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  756. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  757. Answer();
  758. Set(CHANNEL(language)=ru); //Установка языка Русского
  759. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  760. NoOp(${CALLERID(number)}); //Выводим в консоль
  761. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  762. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  763. Background(ob19/priem-1-1&ob19/priem-2&ob19/priem-fax);
  764. //Говорит "Здравствуйте Вы позвонили в приемную об19, наберите внутренний или дождитесь ответ секретаря, для отправки факса нажмите 9"
  765. Dial(SIP/2101,40,tTwrS(1800));
  766. Playback(transfer);
  767. // Dial(SIP/2102,40,tTwrS(1800));
  768. HangUp();
  769. }
  770. close => {
  771. NoOp(------------------- CALLER from ${CALLERID(number)} ------------------);
  772. NoOp(------------------- CALLER ALL from ${CALLERID(ALL)} ------------------);
  773. Answer();
  774. Set(CHANNEL(language)=ru); //Установка языка Русского
  775. Set(fname=${UNIQUEID}.wav); //Запись разговоров
  776. NoOp(${CALLERID(number)}); //Выводим в консоль
  777. MixMonitor(/backup/calls/${fname}); //Запись разговоров
  778. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes); //Запись звонков в единый файл, даже после перевода
  779. Background(ob19/priem-1-1&ob19/reg-5&ob19/reg-6);
  780. //Говорит "Здравствуйте Вы позвонили в приемную об19, к сожалению вы позвогнили в не рабочее время, просьба перезвонить в будни"
  781. Background(ob19/priem-fax);
  782. //Говорит "для отправки факса наждмите 9, всего вам доброго."
  783. WaitExten(3);
  784. Playback(ob19/reg-7);
  785. HangUp();
  786. }
  787. };
  788.  
  789. context incoming_menu_priem {
  790. _9 => {
  791. Goto(fax-rx,receive,1); //Переход в контекст факса
  792. }
  793. _i => {
  794. Playback(incorect-number); //Номер не существует
  795. Dial(SIP/2101,50,tTwrS(1800));
  796. Playback(transfer);
  797. // Dial(SIP/2102,60,tTwrS(1800));
  798. Hangup();
  799. }
  800. }
  801.  
  802. context fax-rx {
  803. receive => { //Факс
  804. NoOp(FAX ${CHANNEL});
  805. Set(fileName=fax-${CDR(uniqueid)}-${CALLERID(number)}.tif);
  806. Set(FAXOPT(localstationid)=UPK Avtomobilist);
  807. Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M)});
  808. Set(FAXOPT(maxrate)=14400);
  809. Set(FAXOPT(minrate)=4800);
  810. NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)});
  811. NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)});
  812. NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)});
  813. NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)});
  814. NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)});
  815. NoOp(**** RECEIVING FAX : ${fileName} ****);
  816. if ("${BLINDTRANSFER:0:4}" = "SIP/") {
  817. Set(jabber=${ODBC_SIPUSERS(jabber,${BLINDTRANSFER:0:8})}); //Присваеваем переменную jabber
  818. };
  819. StopMixMonitor();
  820. ReceiveFAX(/backup/fax/${fileName},fFd);
  821. Hangup();
  822. };
  823. h => {
  824. NoOp(------------------- FAX from ${CALLERID(number)} ------------------);
  825. NoOp(------------------- STATUS ${FAXSTATUS} ${FAXERROR} ------------------);
  826. Set(foo=${STAT(/backup/fax/${fileName})});
  827. if ("${STAT(s,/backup/fax/${fileName})}" = "0") {
  828. MYSQL(Connect connid 127.0.0.1 root 1234566 asterisk);
  829. MYSQL(Query r1 ${connid} INSERT INTO `asterisk`.`fax` (`fName`,`fData`,`fromExt`,`dt`,`fStatus`) VALUES('${fileName}', NULL, '${CALLERID(number)}', CURRENT_TIMESTAMP(), '${FAXOPT(status)}'));
  830. MYSQL(Clear ${r1});
  831. MYSQL(Disconnect ${connid});
  832. if ("${jabber}" = "") {
  833. System(echo "ФАКС с номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)} статус: ${FAXSTATUS} ${FAXERROR}" | mutt -s "AVTO FAX ${CALLERID(number)} Статус ${FAXOPT(status)}" -- [email protected],[email protected] &);
  834. }
  835. else {
  836. System("echo "ФАКС с номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)} статус: ${FAXOPT(status)} ${FAXERROR}" | mutt -s "AVTO FAX ${CALLERID(number)} Статус ${FAXOPT(status)}" -- [email protected],[email protected],${jabber} &");
  837. };
  838. }
  839. else {
  840. MYSQL(Connect connid 127.0.0.1 root 1234566 asterisk);
  841. MYSQL(Query r1 ${connid} INSERT INTO `asterisk`.`fax` (`fName`,`fData`,`fromExt`,`dt`,`fStatus`) VALUES('${fileName}', LOAD_FILE('/backup/fax/${fileName}'), '${CALLERID(number)}', CURRENT_TIMESTAMP(), '${FAXOPT(status)}'));
  842. MYSQL(Clear ${r1});
  843. MYSQL(Disconnect ${connid});
  844. if ("${jabber}" = "") {
  845. System("echo "ФАКС с номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)} статус: ${FAXOPT(status)} ${FAXERROR}" | mutt -s "AVTO FAX ${CALLERID(number)} Статус ${FAXOPT(status)}" -a /backup/fax/${fileName} -- [email protected],,[email protected] &");
  846. }
  847. else {
  848. System("echo "ФАКС с номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)} статус: ${FAXOPT(status)} ${FAXERROR}" | mutt -s "AVTO FAX ${CALLERID(number)} Статус ${FAXOPT(status)}" -a /backup/fax/${fileName} -- [email protected],[email protected],${jabber} &");
  849. };
  850. };
  851. };
  852. };
  853.  
  854. context help {
  855. _911 => {
  856. System("echo "Набрали 911 с номера: ${CALLERID(number)} дата: ${STRFTIME(${EPOCH},,%d.%m.%Y)} время: ${STRFTIME(${EPOCH},,%H:%M)}" | mutt -s "OB19 HELP ${CALLERID(number)}" -- [email protected] &");
  857. Dial(SIP/608029@993444-dial,60,tTwrS(1800));
  858. };
  859. };
  860.  
  861. context pickup {
  862. _**xxx => {
  863. Set(context=${ODBC_SIPUSERS(context,${EXTEN})}); //Присваеваем переменную context
  864. PickUp(${EXTEN:2}@${context});
  865. };
  866. };
  867.  
  868. context queue {
  869. _*101 => {
  870. NoOp(${CALLERID(number)});
  871. PauseQueueMember(,SIP/${CALLERID(number)});
  872. UserEvent(RefreshQueue);
  873. WaitExten(1);
  874. Playback(vm-extension);
  875. SayDigits(${CALLERID(number)});
  876. Playback(dictate/paused);
  877. WaitExten(1);
  878. Hangup;
  879. };
  880. _*102 => {
  881. UnpauseQueueMember(,SIP/${CALLERID(number)});
  882. Playback(vm-extension);
  883. SayDigits(${CALLERID(number)});
  884. Playback(dictate/pause);
  885. Playback(cancelled);
  886. WaitExten(1);
  887. Hangup;
  888. };
  889. };
  890.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement