Subscriber absent после sip reload, realtime
Далее, дабы как-то это преодолеть, я поставил `ignoreregexpire=yes`. По описанию там:
| Цитата: |
| For realtime peers, when the peer is retrieved from realtime storage, registration information will be used regardless of whether has expired or not |
То есть, если я правильно понял мануал, "Для реалтайм пиров, - когда пир вытягивается из БД, будет использована информация о регистрации, вне зависимости от того устарела она, или нет".
Но этого все равно почему-то не происходит. Поэтому не совсем понятно, при каких обстоятельствах может вылезать "Subscriber absent". Особенно, если пир был зарегистрирован сравнительно недавно.
В конфиге нет ничего интересного:
| Код: |
| [general] context=default udpbindaddr=0.0.0.0 tcpenable=no tcpbindaddr=0.0.0.0 srvlookup=yes rtcachefriends=yes videosupport=yes qualify=yes ignoreregexpire=yes rtupdate=yes rtptimeout=60 directmedia=nonat ;relaxdtmf=yes ;rtpholdtimeout=60 ;rtpkeepalive=60 ;usereqphone=yes ;useragent=SipPhone ;nat=yes ;ignoresdpversion=yes ;allowoverlap=no ;compactheaders = no |
При этом, на 10 ветке такого не было. На 1.4 ветке, что была у них года 2 назад такого тоже не было, т.к. там "как-то странно работал rtcachefriends + qualify", поэтому он был выключен. Вот я и думаю, может просто отрубить qualify и вместе с ним кэшфрендз? Тогда ведь для изменения настроек сипа не надо давить reload? Или может в realtime sip_buddies не хватает каких-то полей?
| Код: |
| CREATE TABLE `asterisk`.`sips` ( `id` int(11) NOT NULL AUTO_INCREMENT, `accountcode` varchar(20) DEFAULT NULL, `disallow` varchar(100) DEFAULT 'all', `allow` varchar(100) DEFAULT 'g729;ilbc;gsm;ulaw;alaw', `allowoverlap` enum('yes','no') DEFAULT 'yes', `allowsubscribe` enum('yes','no') DEFAULT 'yes', `allowtransfer` varchar(3) DEFAULT NULL, `amaflags` varchar(13) DEFAULT NULL, `autoframing` varchar(3) DEFAULT NULL, `auth` varchar(40) DEFAULT NULL, `buggymwi` enum('yes','no') DEFAULT 'no', `callgroup` varchar(10) DEFAULT NULL, `callerid` varchar(80) DEFAULT NULL, `cid_number` varchar(40) DEFAULT NULL, `fullname` varchar(40) DEFAULT NULL, `call-limit` int(8) DEFAULT '0', `callingpres` varchar(80) DEFAULT NULL, `directmedia` char(6) DEFAULT 'yes', `context` varchar(80) DEFAULT NULL, `defaultip` varchar(15) DEFAULT NULL, `dtmfmode` varchar(7) DEFAULT NULL, `fromuser` varchar(80) DEFAULT NULL, `fromdomain` varchar(80) DEFAULT NULL, `fullcontact` varchar(80) DEFAULT NULL, `g726nonstandard` enum('yes','no') DEFAULT 'no', `host` varchar(31) NOT NULL DEFAULT '', `insecure` varchar(20) DEFAULT NULL, `ipaddr` varchar(15) NOT NULL DEFAULT '', `language` char(2) DEFAULT NULL, `lastms` varchar(20) DEFAULT NULL, `mailbox` varchar(50) DEFAULT NULL, `maxcallbitrate` int(8) DEFAULT '384', `mohsuggest` varchar(80) DEFAULT NULL, `md5secret` varchar(80) DEFAULT NULL, `musiconhold` varchar(100) DEFAULT NULL, `name` varchar(80) NOT NULL DEFAULT '', `nat` varchar(25) NOT NULL DEFAULT 'force_rport,comedia', `outboundproxy` varchar(80) DEFAULT NULL, `callbackextension` varchar(40) NOT NULL, `deny` varchar(95) DEFAULT NULL, `permit` varchar(95) DEFAULT NULL, `pickupgroup` varchar(10) DEFAULT NULL, `port` varchar(5) NOT NULL DEFAULT '', `progressinband` enum('yes','no','never') DEFAULT 'no', `promiscredir` enum('yes','no') DEFAULT 'no', `qualify` char(3) DEFAULT NULL, `regexten` varchar(80) NOT NULL DEFAULT '', `regseconds` int(11) NOT NULL DEFAULT '0', `rfc2833compensate` enum('yes','no') DEFAULT 'no', `rtptimeout` char(3) DEFAULT NULL, `rtpholdtimeout` char(3) DEFAULT NULL, `secret` varchar(80) DEFAULT NULL, `sendrpid` enum('yes','no') DEFAULT 'yes', `setvar` varchar(100) NOT NULL DEFAULT '', `subscribecontext` varchar(80) DEFAULT NULL, `subscribemwi` varchar(3) DEFAULT NULL, `t38pt_udptl` enum('yes','no') DEFAULT 'no', `trustrpid` enum('yes','no') DEFAULT 'no', `type` varchar(6) NOT NULL DEFAULT 'friend', `useclientcode` enum('yes','no') DEFAULT 'no', `username` varchar(80) NOT NULL DEFAULT '', `usereqphone` varchar(3) NOT NULL DEFAULT 'no', `videosupport` enum('yes','no') DEFAULT 'yes', `vmexten` varchar(80) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) ) ENGINE=MyISAM AUTO_INCREMENT=307 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC |
| awsswa @ Чт Дек 06, 2012 09:22 писал(а): |
| Так же боремся, пока только уменьшили время перерегистрации всех юзеров с 3600 до 120 |
При этом, я до 11 ветки обновился только потому что Rejecting non-primary audio stream: audio. Вроде бы там то ли фрисвич не понимал rfc, то ли *.
Да и нормальный редирект в google talk давно сделать хотелось.
Ночи дождусь, тоже таймаут урезать попробую.
Это вообще бага? Она есть в трекере? Интересно посмотреть, что народ пишет.
Похоже, наткнулся на эту же проблему, только у меня не реалтайм:
dionis*CLI> core show version
Asterisk 11.3.0 built by root @ dionis on a x86_64 running Linux on 2013-05-12 14:33:39 UTC
dionis*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status Description
2401/2401 (Unspecified) D 0 Unmonitored
2444/2444 172.16.5.159 D 57112 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]
dionis*CLI> sip reload
dionis*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status Description
2401/2401 (Unspecified) D 0 Unmonitored
2444/2444 (Unspecified) D 0 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]
dionis*CLI>
Asterisk 11.3.0 built by root @ dionis on a x86_64 running Linux on 2013-05-12 14:33:39 UTC
dionis*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status Description
2401/2401 (Unspecified) D 0 Unmonitored
2444/2444 172.16.5.159 D 57112 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]
dionis*CLI> sip reload
dionis*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status Description
2401/2401 (Unspecified) D 0 Unmonitored
2444/2444 (Unspecified) D 0 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]
dionis*CLI>
[general]
context=public
allowguest=no
allowoverlap=yes
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
language=ru
[authentication]
[test-phone](!)
type=friend
host=dynamic
nat=no
disallow=all
allow=alaw
[2401](test-phone)
context=test
secret=password
callgroup=40
pickupgroup=40
[2444](test-phone)
context=test
secret=password
callgroup=40
pickupgroup=40
context=public
allowguest=no
allowoverlap=yes
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
language=ru
[authentication]
[test-phone](!)
type=friend
host=dynamic
nat=no
disallow=all
allow=alaw
[2401](test-phone)
context=test
secret=password
callgroup=40
pickupgroup=40
[2444](test-phone)
context=test
secret=password
callgroup=40
pickupgroup=40
И правильно я понял, что это баг, https://issues.asterisk.org/jira/browse/ASTERISK-21194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
но он никого сильно не волнует?
Кроме как поставить маленькое время регистрации есть еще идеи?