sox welcome.wav -r 8000 -b 16 -c 1 -t wav Welcome.wav
Показаны сообщения с ярлыком asterisk. Показать все сообщения
Показаны сообщения с ярлыком asterisk. Показать все сообщения
05.01.2016
ACL+Realtime
Создаем таблицу:
В данную таблицу вписываем данные:
name - имя ACL
rule_order - порядковый номер правила
sense - действие, возможно одно из 2-х: permit/deny
rule - IP/netmask
Пример:
INSERT INTO `asterisk`.`acltable` (`name`, `rule_order`, `sense`, `rule`) VALUES ('lan', '1', 'permit', '10.0.10.0/24');
В таблице sippeers добавляем поле acl и добавляем имя ACL в это поле для нужного пира/транка.
При выполнении команды в CLI: acl show будет пустота.
При выполнении sip reload применит нужный ACL.
Для обновления ACL кроме добавления записи в таблицу надо сделать module reload acl
При этом будет ошибка:
Named ACL 'lan' is already included in the ast_acl container.
chan_sip.c:31061 build_peer: Bad ACL entry in configuration line 11 : lan
Несмотря на ошибку ALC применяется, как пофиксить ошибку пока не разобрался.
Update 3.01.2016: Описание и патчи:
https://issues.asterisk.org/jira/browse/ASTERISK-24874
https://issues.asterisk.org/jira/browse/ASTERISK-24969
В extconfig.conf говорим acls => mysql,asterisk,acltableCREATE TABLE `acltable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(80) NOT NULL,
`rule_order` int(11) NOT NULL,
`sense` enum('permit','deny') NOT NULL DEFAULT 'deny',
`rule` varchar(95) NOT NULL,
PRIMARY KEY (`id`,`name`,`rule_order`,`sense`,`rule`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
В данную таблицу вписываем данные:
name - имя ACL
rule_order - порядковый номер правила
sense - действие, возможно одно из 2-х: permit/deny
rule - IP/netmask
Пример:
INSERT INTO `asterisk`.`acltable` (`name`, `rule_order`, `sense`, `rule`) VALUES ('lan', '1', 'permit', '10.0.10.0/24');
В таблице sippeers добавляем поле acl и добавляем имя ACL в это поле для нужного пира/транка.
При выполнении команды в CLI: acl show будет пустота.
При выполнении sip reload применит нужный ACL.
Для обновления ACL кроме добавления записи в таблицу надо сделать module reload acl
При этом будет ошибка:
Named ACL 'lan' is already included in the ast_acl container.
chan_sip.c:31061 build_peer: Bad ACL entry in configuration line 11 : lan
Update 3.01.2016: Описание и патчи:
https://issues.asterisk.org/jira/browse/ASTERISK-24874
https://issues.asterisk.org/jira/browse/ASTERISK-24969
Realtime + register(row:callbackextension)+sip reload = Unregistered
Имеем проблему: если используем поле callbackextension в таблице Mysql и кол-во регистрации более 3-х, на меньшем не проявлялась, то при sip reload можем поиметь все регистрации со статусом Unregistered, помогает только рестарт * либо выгрузка/загрузка chan_sip.
Порывшись на просторах нашел вот это: https://issues.asterisk.org/jira/browse/ASTERISK-23789
на момент публикации еще открытый. Патч помогает, насколько он правильный судить не могу.
Update 10.01.2016Порывшись на просторах нашел вот это: https://issues.asterisk.org/jira/browse/ASTERISK-23789
на момент публикации еще открытый. Патч помогает, насколько он правильный судить не могу.
--- asterisk-12.2.0/channels/chan_sip.c 2014-04-21 17:02:00.000000000 -0400
+++ asterisk-12.2.0-modified/channels/chan_sip.c 2014-05-24 20:44:28.559519094 -0400
@@ -6566,8 +6566,12 @@
AST_SCHED_DEL(sched, reg->expire);
AST_SCHED_DEL(sched, reg->timeout);
+ if ((reg->;registryadded))
+ {
+ ast_atomic_fetchadd_int(&regobjs, -1);
+ }
+
ast_string_field_free_memory(reg);
- ast_atomic_fetchadd_int(&regobjs, -1);
ast_free(reg);
}
@@ -9556,6 +9560,7 @@
registry_unref(tmp, "throw away found registry");
} else {
ast_atomic_fetchadd_int(&regobjs, 1);
+ reg->;registryadded = 1;
ASTOBJ_CONTAINER_LINK(&regl, reg);
}
--- asterisk-12.2.0/channels/sip/include/sip.h 2014-04-21 17:02:00.000000000 -0400
+++ asterisk-12.2.0-modified/channels/sip/include/sip.h 2014-05-24 20:37:42.557555124 -0400
@@ -1414,6 +1414,7 @@
struct ast_sockaddr us; /*!< Who the server thinks we are */
int noncecount; /*!< Nonce-count */
char lastmsg[256]; /*!< Last Message sent/received */
+ unsigned short registryadded:1; /*!< If this registry object is already added to registry list */
};
struct tcptls_packet {
Порывшись еще найдено еще вот это: https://issues.asterisk.org/jira/browse/ASTERISK-23542
на момент публикации еще открытый.
--- channels/chan_sip.c (revision 420532)
+++ channels/chan_sip.c (working copy)
@@ -9218,11 +9218,12 @@
reg->refresh = reg->expiry = reg->configured_expiry = default_expiry;
}
+ ast_atomic_fetchadd_int(®objs, 1);
+
/* Add the new registry entry to the list, but only if it isn't already there */
if ((tmp = ASTOBJ_CONTAINER_FIND(®l, reg->name))) {
registry_unref(tmp, "throw away found registry");
} else {
- ast_atomic_fetchadd_int(®objs, 1);
ASTOBJ_CONTAINER_LINK(®l, reg);
}
16.12.2015
Таблица CDR
Таблица CDR
CREATE TABLE `cdr` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`calldate` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` VARCHAR(80) NOT NULL DEFAULT '',
`src` VARCHAR(80) NOT NULL DEFAULT '',
`dst` VARCHAR(80) NOT NULL DEFAULT '',
`dcontext` VARCHAR(80) NOT NULL DEFAULT '',
`channel` VARCHAR(80) NOT NULL DEFAULT '',
`dstchannel` VARCHAR(80) NOT NULL DEFAULT '',
`lastapp` VARCHAR(80) NOT NULL DEFAULT '',
`lastdata` VARCHAR(80) NOT NULL DEFAULT '',
`duration` INT(11) NOT NULL DEFAULT '0',
`billsec` INT(11) NOT NULL DEFAULT '0',
`disposition` VARCHAR(45) NOT NULL DEFAULT '',
`amaflags` INT(11) NOT NULL DEFAULT '0',
`accountcode` VARCHAR(20) NOT NULL DEFAULT '',
`uniqueid` VARCHAR(32) NOT NULL DEFAULT '',
`peeraccount` VARCHAR(20) NOT NULL DEFAULT '',
`linkedid` VARCHAR(32) NOT NULL DEFAULT '',
`sequence` INT(11) NOT NULL DEFAULT '0',
`userfield` VARCHAR(255) NOT NULL DEFAULT '',
`data` BLOB,
`way` TINYINT(4) NOT NULL DEFAULT '0',
`phn` INT(11) DEFAULT NULL,
`active` TINYINT(4) NOT NULL DEFAULT '0',
`tmp_val` VARCHAR(255) DEFAULT NULL,
`rec_path` VARCHAR(255) DEFAULT NULL,
`start` VARCHAR(255) DEFAULT NULL,
`end` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `calldate` (`calldate`),
KEY `accountcode` (`accountcode`),
KEY `uniqueid` (`uniqueid`),
KEY `dst` (`dst`),
KEY `src` (`src`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
23.11.2015
insecure
Если у одного провайдера берем несколько транков то:
Если в настройках транка стоит insecure=invite,port то все сыпется в первый в списке транк с этим ip. Если настроен Realtime то сначала ищем в базе а потом в файле.
Так как:
port: игнорировать номер порта, с которого пришла аутентификация
invite: не требовать начальное сообщение INVITE для аутентификации
port,invite: не требовать начальное сообщение INVITE для аутентификации и игнорировать порт, с которого пришел запрос
При установке insecure=invite,port - DID разгребаем в диалплане.
Если в настройках транка стоит insecure=invite,port то все сыпется в первый в списке транк с этим ip. Если настроен Realtime то сначала ищем в базе а потом в файле.
Так как:
port: игнорировать номер порта, с которого пришла аутентификация
invite: не требовать начальное сообщение INVITE для аутентификации
port,invite: не требовать начальное сообщение INVITE для аутентификации и игнорировать порт, с которого пришел запрос
При установке insecure=invite,port - DID разгребаем в диалплане.
27.05.2015
Макрос записи.
Макрос записи разговора.
Переменные ${CALLFILENAME},${monopt} выставляются в основном диалплане.
Надо переделать чтоб выставлялись в макросе.
Переменные ${CALLFILENAME},${monopt} выставляются в основном диалплане.
Надо переделать чтоб выставлялись в макросе.
[macro-en-record-test]
exten => s,1,NoOp(CHANNEL(from):${CHANNEL(from)})
exten => s,n,MYSQL(Connect connid localhost user pass db)
exten => s,n,MYSQL(Query resultid ${connid} SELECT `record` FROM `sippeers` WHERE defaultuser = '${CHANNEL(peername)}')
exten => s,n,MYSQL(Fetch fetchid ${resultid} record )
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Gotoif($["${record}" = "no"]?dis-rec)
exten => s,n,Gotoif($["${record}" = ""]?dis-rec)
exten => s,n(monitor),MixMonitor(${CALLFILENAME}.wav,b,${monopt});
exten => s,n,MacroExit
exten => s,n(dis-rec),MacroExit
exten => s,n,Hangup
Макрос включения/выключения абонента
Макрос включения/отключения абонента.
[macro-en-peer]
exten => s,1,NoOp(CHANNEL(from):${CHANNEL(from)})
exten => s,n,MYSQL(Connect connid localhost user pass db)
exten => s,n,MYSQL(Query resultid ${connid} SELECT `enable_peer` FROM `sippeers` WHERE defaultuser = '${CHANNEL(peername)}')
exten => s,n,MYSQL(Fetch fetchid ${resultid} enable_peer )
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Gotoif($["${enable_peer}" = "no"]?dis-peer)
exten => s,n,MacroExit
exten => s,n(dis-peer),Congestion(10)
exten => s,n,Hangup
15.04.2015
IVR-стандартный
Это стандартный IVR для работы с пачкой виртуальных АТС на одном сервере.
same => n,Hangup
same => n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 secondssame => n(vnum),Dial(Local/${EXT}@out_${CONTEXT:3}/n)
same => n,Set(TIMEOUT(response)=5) ; Set Response Timeout to 10 seconds
same => n,Read(EXT,/sound/${CONTEXT:3}/ivr/name_file,3)
same => n,GotoIf($["${LEN(${EXT})}" = "3"]?vnum)
same => n,GotoIf($["${EXT}" = "1"]?num1)
same => n,GotoIf($["${EXT}" = "2"]?num2)
same => n,GotoIf($["${EXT}" = "3"]?num3)
same => n,GotoIf($["${EXT}" = "4"]?num4)
same => n,GotoIf($["${EXT}" = "5"]?num5)
same => n,GotoIf($["${EXT}" = "6"]?num6)
same => n,Dial(Local/101@out_${CONTEXT:3}/n&Local/102@out_${CONTEXT:3}/n&Local/103@out_${CONTEXT:3}/n)
same => n,Hangup
same => n(num1),Dial(Local/101@out_${CONTEXT:3}/n&Local/102@out_${CONTEXT:3}/n&Local/103@out_${CONTEXT:3}/n)
same => n,Hangup
same => n(num2),Dial(Local/201@out_${CONTEXT:3}/n&Local/202@out_${CONTEXT:3}/n&Local/203@out_${CONTEXT:3}/n)
same => n,Hangup
same => n(num3),Dial(Local/304@out_${CONTEXT:3}/n&Local/305@out_${CONTEXT:3}/n)
same => n,Hangup
same => n(num4),Dial(Local/304@out_${CONTEXT:3}/n&Local/305@out_${CONTEXT:3}/n)
same => n,Hangup
same => n(num5),Dial(Local/303@out_${CONTEXT:3}/n)
same => n,Hangup
same => n,Hangup
05.03.2015
Макрос переадресации
Макроc переадресации:
Работает при выставление времени в 0 как безусловная.
Если время не 0 то по не ответу.
[macro-redirect-time]
exten => s,1,NoOp(CHANNEL(from):${CHANNEL(from)})
same => n,MYSQL(Connect connid localhost user pass db)
same => n,MYSQL(Query resultid ${connid} SELECT `r_callerid`,`r_number`,`r_time` FROM `redirect` WHERE client = '${CUT(ARG1,_,2)}' AND r_callerid = '${ARG2}')
same => n,MYSQL(Fetch fetchid ${resultid} r_callerid r_number r_time)
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Disconnect ${connid})
same => n,GotoIf($["${r_number}" = ""]?rtime)
same => n,GotoIf($["${r_time}" = "0"]?redir:rtime)
same => n(rtime),NoOp(Mark RTIME)Вызывается exten => _XXX,n,Macro(redirect-time,${CONTEXT},${EXTEN})
same => n,Dial(SIP/${CUT(ARG1,_,2)}${ARG2},${r_time},Tt)
same => n,GotoIf($["${r_time}" = ""]?exit)
same => n,GotoIf($["${r_time}" = "0"]?exit)
same => n(redir),NoOp(Mark REDIR)
same => n,Dial(Local/${r_number}@${ARG1})
same => n(exit),MacroExit
База в MySQL:
CREATE TABLE `redirect` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`r_callerid` decimal(3,0) DEFAULT '0',
`r_number` decimal(11,0) DEFAULT '0',
`r_time` decimal(3,0) NOT NULL DEFAULT '120',
`client` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
15.02.2015
Realtime + NAT
Наткнулся на баг в версии 11.6.0. описанный в ASTERISK-20572, сказано что пофиксили еще в версии 11.1.
Патч не подходит.
Заменить в chan_sip.c строку:
Патч не подходит.
Заменить в chan_sip.c строку:
- if ((!found && !ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) || !peer->host_dynamic) {
- if (((!found && !ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) || !peer->host_dynamic) && !realtime ) {
Но при выполнении входящего звонка на этот пир сразу после sip reload вызов проходить не будет так как пир появляется в кеше со статусом UNREACHABLE.
Как лечить пока не разобрался. В виде костыля можно уменьшить время регистрации до 120 секунд. Но для определенных клиентов это очень критично.
08.02.2015
Realtime Asterisk русский язык.
Заметил особенность: если в поле description будут русские символы при выполнении в консоле sip show peers не всегда будет выводится полный список пиров.
База MySQL подправленная под себя.
База для MySQL realtime sippeers:
Пиры без регистрации могут отваливаться, их пихать в конфиг.
CREATE TABLE `sippeers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`ipaddr` varchar(45) DEFAULT NULL,
`port` int(5) DEFAULT NULL,
`regseconds` int(11) DEFAULT NULL,
`defaultuser` varchar(20) DEFAULT NULL,
`fullcontact` varchar(80) DEFAULT NULL,
`regserver` varchar(20) DEFAULT NULL,
`useragent` varchar(20) DEFAULT NULL,
`lastms` int(11) DEFAULT NULL,
`host` varchar(40) DEFAULT NULL,
`type` enum('friend','user','peer') DEFAULT 'friend',
`context` varchar(40) DEFAULT NULL,
`permit` varchar(95) DEFAULT NULL,
`deny` varchar(95) DEFAULT NULL,
`secret` varchar(40) DEFAULT NULL,
`md5secret` varchar(40) DEFAULT NULL,
`remotesecret` varchar(40) DEFAULT NULL,
`transport` enum('udp','tcp','udp,tcp','tcp,udp') DEFAULT 'tcp,udp',
`dtmfmode` enum('rfc2833','info','shortinfo','inband','auto') DEFAULT 'rfc2833',
`directmedia` enum('yes','no','nonat','update') DEFAULT 'no',
`nat` varchar(29) DEFAULT NULL,
`callgroup` varchar(40) DEFAULT NULL,
`pickupgroup` varchar(40) DEFAULT NULL,
`language` varchar(40) DEFAULT 'ru',
`disallow` varchar(40) DEFAULT 'all',
`allow` varchar(40) DEFAULT 'alaw',
`insecure` varchar(40) DEFAULT NULL,
`trustrpid` enum('yes','no') DEFAULT NULL,
`progressinband` enum('yes','no','never') DEFAULT NULL,
`promiscredir` enum('yes','no') DEFAULT NULL,
`useclientcode` enum('yes','no') DEFAULT NULL,
`accountcode` varchar(40) DEFAULT NULL,
`setvar` varchar(40) DEFAULT NULL,
`callerid` varchar(40) DEFAULT NULL,
`amaflags` varchar(40) DEFAULT NULL,
`callcounter` enum('yes','no') DEFAULT 'yes',
`busylevel` int(11) DEFAULT NULL,
`allowoverlap` enum('yes','no') DEFAULT NULL,
`allowsubscribe` enum('yes','no') DEFAULT 'yes',
`videosupport` enum('yes','no') DEFAULT NULL,
`maxcallbitrate` int(11) DEFAULT NULL,
`rfc2833compensate` enum('yes','no') DEFAULT NULL,
`mailbox` varchar(40) DEFAULT NULL,
`session-timers` enum('accept','refuse','originate') DEFAULT NULL,
`session-expires` int(11) DEFAULT NULL,
`session-minse` int(11) DEFAULT NULL,
`session-refresher` enum('uac','uas') DEFAULT NULL,
`t38pt_usertpsource` varchar(40) DEFAULT NULL,
`regexten` varchar(40) DEFAULT NULL,
`fromdomain` varchar(40) DEFAULT NULL,
`fromuser` varchar(40) DEFAULT NULL,
`qualify` varchar(40) DEFAULT 'yes',
`defaultip` varchar(45) DEFAULT NULL,
`rtptimeout` int(11) DEFAULT NULL,
`rtpholdtimeout` int(11) DEFAULT NULL,
`sendrpid` enum('yes','no') DEFAULT NULL,
`outboundproxy` varchar(40) DEFAULT NULL,
`callbackextension` varchar(40) DEFAULT NULL,
`timert1` int(11) DEFAULT NULL,
`timerb` int(11) DEFAULT NULL,
`qualifyfreq` int(11) DEFAULT NULL,
`constantssrc` enum('yes','no') DEFAULT NULL,
`contactpermit` varchar(95) DEFAULT NULL,
`contactdeny` varchar(95) DEFAULT NULL,
`usereqphone` enum('yes','no') DEFAULT 'no',
`textsupport` enum('yes','no') DEFAULT NULL,
`faxdetect` enum('yes','no') DEFAULT NULL,
`buggymwi` enum('yes','no') DEFAULT NULL,
`auth` varchar(40) DEFAULT NULL,
`fullname` varchar(40) DEFAULT NULL,
`trunkname` varchar(40) DEFAULT NULL,
`cid_number` varchar(40) DEFAULT NULL,
`callingpres` enum('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib') DEFAULT NULL,
`mohinterpret` varchar(40) DEFAULT NULL,
`mohsuggest` varchar(40) DEFAULT NULL,
`parkinglot` varchar(40) DEFAULT NULL,
`hasvoicemail` enum('yes','no') DEFAULT NULL,
`subscribemwi` enum('yes','no') DEFAULT NULL,
`vmexten` varchar(40) DEFAULT NULL,
`autoframing` enum('yes','no') DEFAULT NULL,
`rtpkeepalive` int(11) DEFAULT NULL,
`call-limit` int(11) DEFAULT NULL,
`g726nonstandard` enum('yes','no') DEFAULT NULL,
`ignoresdpversion` enum('yes','no') DEFAULT NULL,
`allowtransfer` enum('yes','no') DEFAULT 'yes',
`dynamic` enum('yes','no') DEFAULT 'yes',
`enable_peer` enum('yes','no') DEFAULT NULL,
`description` varchar(256) DEFAULT NULL,
`record` enum('yes','no') DEFAULT 'no',
`t38pt_udptl` enum('yes','no') DEFAULT 'no',
`subscribecontext` varchar(80) DEFAULT NULL,
`namedpickupgroup` varchar(80) DEFAULT NULL,
`namedcallgroup` varchar(80) DEFAULT NULL,
`client` varchar(80) DEFAULT NULL,
`musiconhold` varchar(100) DEFAULT 'default',
`trunk` enum('yes','no') DEFAULT 'no',
`expiry` int(11) DEFAULT NULL,
`acl` varchar(80) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `ipaddr` (`ipaddr`,`port`),
KEY `host` (`host`,`port`),
KEY `accountcode` (`accountcode`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
Пиры без регистрации могут отваливаться, их пихать в конфиг.
CREATE TABLE `sippeers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`ipaddr` varchar(45) DEFAULT NULL,
`port` int(5) DEFAULT NULL,
`regseconds` int(11) DEFAULT NULL,
`defaultuser` varchar(20) DEFAULT NULL,
`fullcontact` varchar(80) DEFAULT NULL,
`regserver` varchar(20) DEFAULT NULL,
`useragent` varchar(20) DEFAULT NULL,
`lastms` int(11) DEFAULT NULL,
`host` varchar(40) DEFAULT NULL,
`type` enum('friend','user','peer') DEFAULT 'friend',
`context` varchar(40) DEFAULT NULL,
`permit` varchar(95) DEFAULT NULL,
`deny` varchar(95) DEFAULT NULL,
`secret` varchar(40) DEFAULT NULL,
`md5secret` varchar(40) DEFAULT NULL,
`remotesecret` varchar(40) DEFAULT NULL,
`transport` enum('udp','tcp','udp,tcp','tcp,udp') DEFAULT 'tcp,udp',
`dtmfmode` enum('rfc2833','info','shortinfo','inband','auto') DEFAULT 'rfc2833',
`directmedia` enum('yes','no','nonat','update') DEFAULT 'no',
`nat` varchar(29) DEFAULT NULL,
`callgroup` varchar(40) DEFAULT NULL,
`pickupgroup` varchar(40) DEFAULT NULL,
`language` varchar(40) DEFAULT 'ru',
`disallow` varchar(40) DEFAULT 'all',
`allow` varchar(40) DEFAULT 'alaw',
`insecure` varchar(40) DEFAULT NULL,
`trustrpid` enum('yes','no') DEFAULT NULL,
`progressinband` enum('yes','no','never') DEFAULT NULL,
`promiscredir` enum('yes','no') DEFAULT NULL,
`useclientcode` enum('yes','no') DEFAULT NULL,
`accountcode` varchar(40) DEFAULT NULL,
`setvar` varchar(40) DEFAULT NULL,
`callerid` varchar(40) DEFAULT NULL,
`amaflags` varchar(40) DEFAULT NULL,
`callcounter` enum('yes','no') DEFAULT 'yes',
`busylevel` int(11) DEFAULT NULL,
`allowoverlap` enum('yes','no') DEFAULT NULL,
`allowsubscribe` enum('yes','no') DEFAULT 'yes',
`videosupport` enum('yes','no') DEFAULT NULL,
`maxcallbitrate` int(11) DEFAULT NULL,
`rfc2833compensate` enum('yes','no') DEFAULT NULL,
`mailbox` varchar(40) DEFAULT NULL,
`session-timers` enum('accept','refuse','originate') DEFAULT NULL,
`session-expires` int(11) DEFAULT NULL,
`session-minse` int(11) DEFAULT NULL,
`session-refresher` enum('uac','uas') DEFAULT NULL,
`t38pt_usertpsource` varchar(40) DEFAULT NULL,
`regexten` varchar(40) DEFAULT NULL,
`fromdomain` varchar(40) DEFAULT NULL,
`fromuser` varchar(40) DEFAULT NULL,
`qualify` varchar(40) DEFAULT 'yes',
`defaultip` varchar(45) DEFAULT NULL,
`rtptimeout` int(11) DEFAULT NULL,
`rtpholdtimeout` int(11) DEFAULT NULL,
`sendrpid` enum('yes','no') DEFAULT NULL,
`outboundproxy` varchar(40) DEFAULT NULL,
`callbackextension` varchar(40) DEFAULT NULL,
`timert1` int(11) DEFAULT NULL,
`timerb` int(11) DEFAULT NULL,
`qualifyfreq` int(11) DEFAULT NULL,
`constantssrc` enum('yes','no') DEFAULT NULL,
`contactpermit` varchar(95) DEFAULT NULL,
`contactdeny` varchar(95) DEFAULT NULL,
`usereqphone` enum('yes','no') DEFAULT 'no',
`textsupport` enum('yes','no') DEFAULT NULL,
`faxdetect` enum('yes','no') DEFAULT NULL,
`buggymwi` enum('yes','no') DEFAULT NULL,
`auth` varchar(40) DEFAULT NULL,
`fullname` varchar(40) DEFAULT NULL,
`trunkname` varchar(40) DEFAULT NULL,
`cid_number` varchar(40) DEFAULT NULL,
`callingpres` enum('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib') DEFAULT NULL,
`mohinterpret` varchar(40) DEFAULT NULL,
`mohsuggest` varchar(40) DEFAULT NULL,
`parkinglot` varchar(40) DEFAULT NULL,
`hasvoicemail` enum('yes','no') DEFAULT NULL,
`subscribemwi` enum('yes','no') DEFAULT NULL,
`vmexten` varchar(40) DEFAULT NULL,
`autoframing` enum('yes','no') DEFAULT NULL,
`rtpkeepalive` int(11) DEFAULT NULL,
`call-limit` int(11) DEFAULT NULL,
`g726nonstandard` enum('yes','no') DEFAULT NULL,
`ignoresdpversion` enum('yes','no') DEFAULT NULL,
`allowtransfer` enum('yes','no') DEFAULT 'yes',
`dynamic` enum('yes','no') DEFAULT 'yes',
`enable_peer` enum('yes','no') DEFAULT NULL,
`description` varchar(256) DEFAULT NULL,
`record` enum('yes','no') DEFAULT 'no',
`t38pt_udptl` enum('yes','no') DEFAULT 'no',
`subscribecontext` varchar(80) DEFAULT NULL,
`namedpickupgroup` varchar(80) DEFAULT NULL,
`namedcallgroup` varchar(80) DEFAULT NULL,
`client` varchar(80) DEFAULT NULL,
`musiconhold` varchar(100) DEFAULT 'default',
`trunk` enum('yes','no') DEFAULT 'no',
`expiry` int(11) DEFAULT NULL,
`acl` varchar(80) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `ipaddr` (`ipaddr`,`port`),
KEY `host` (`host`,`port`),
KEY `accountcode` (`accountcode`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
chan_sip.c Asterisk 11
Для того что бы в лог выводились IP с которых пытаются подобрать пароль надо в chan_sip.c сделать замену строки:
- ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
на строку:
- ast_log(LOG_NOTICE, "Failed to authenticate device %s [IP: %s]\n", sip_get_header(req, "From"), ast_sockaddr_stringify(addr));
В логах будет отображаться:
chan_sip.c: Failed to authenticate device 10<sip:10@XXX.XXX.XXX.XXX:5060>;tag=7d976289 [IP: 192.151.145.178:5078]
Подписаться на:
Сообщения (Atom)