[asterisk-users] SIP Realtime peers
Antony Stone
Antony.Stone at asterisk.open.source.it
Thu Apr 8 05:38:02 CDT 2021
On Thursday 11 March 2021 at 14:03:23, Antony Stone wrote:
> Hi.
>
> I'm using MariaDB (via ODBC) to store realtime SIP peers with Asterisk 13
> and 16.
>
> In general it's all working fine, however there's something that puzzles
> me:
>
> If I connect to the Asterisk console and use the command "sip show peers" I
> get a list of the peers including the last qualify time in the "Status"
> column. The "Realtime" column tells me "Cached RT".
>
> Some of my peers are in the same data centre as the server I'm querying,
> and generally show a qualify time of 1ms; some are in another data centre
> and have qualify times around 15ms.
>
> However, if I go to my database server and ask "select * from sippeers" I
> get the same list of peers but the "lastms" field is always zero. I had
> expected this to show me the last qualify time in milliseconds for each
> peer.
>
> Am I just totally misinterpreting what "lastms" means in the table, or do I
> need to do something else to get this value to reflect what Asterisk itself
> will tell me?
I have found a totally weird method of getting this working.
I simply need to add another field to the sippeers database table.
Here's the table definition as I've been using it for months:
CREATE TABLE `sippeers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`DDI` varchar(32) NOT NULL DEFAULT '',
`name` varchar(80) NOT NULL DEFAULT '',
`type` enum('user','peer','friend') NOT NULL DEFAULT 'peer',
`fromuser` varchar(80) DEFAULT NULL,
`defaultuser` varchar(80) NOT NULL DEFAULT '',
`host` varchar(31) NOT NULL DEFAULT 'dynamic',
`secret` varchar(80) DEFAULT NULL,
`ipaddr` varchar(45) NOT NULL DEFAULT '',
`port` mediumint(5) unsigned NOT NULL DEFAULT '0',
`insecure` varchar(20) DEFAULT NULL,
`context` varchar(50) DEFAULT NULL,
`regseconds` int(11) NOT NULL DEFAULT '0',
`fullcontact` varchar(80) NOT NULL DEFAULT '',
`callbackextension` varchar(250) DEFAULT NULL,
`regserver` varchar(100) NOT NULL DEFAULT '',
`useragent` varchar(50) NOT NULL DEFAULT '',
`lastms` int(11) NOT NULL DEFAULT '0',
`qualify` char(3) DEFAULT 'no',
PRIMARY KEY (`id`),
KEY `name_2` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=13862017 DEFAULT CHARSET=utf8mb4
If I do the following:
alter table sippeers add column anything int after qualify;
(I've called the column "anything" to emphasise that the name appears to be
entirely unimportant)
then all of a sudden, the lastms field contains useful and sensible values.
Is this a bug, or is there something wrong with my original table definition?
Antony.
--
Police have found a cartoonist dead in his house. They say that details are
currently sketchy.
Please reply to the list;
please *don't* CC me.
More information about the asterisk-users
mailing list