[asterisk-users] SIP Realtime peers
Antony Stone
Antony.Stone at asterisk.open.source.it
Thu Apr 8 05:55:48 CDT 2021
On Thursday 08 April 2021 at 12:38:02, Antony Stone wrote:
> 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.
This turns out not to be reliable - sometimes the numbers all go back to zero,
but at least it works some of the time, which I've never achieved before.
> 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.
--
The next sentence is untrue.
The previous sentence is true.
Please reply to the list;
please *don't* CC me.
More information about the asterisk-users
mailing list