Bonjour,
J'essaye (sans succès ) d'utiliser une combinaison du mode Realtime avec de l'auto registration SIP. Par auto registration, j'entend l'équivalent de "register => username:password@domaine".
Je teste ce fonctionnement sur une structure de deux Asterisk, et je suis supposé voir une connexion arriver lorsque j'ajoute une entrée dans ma table (MySQL).
Pour activer le Realtime, j'ai installé un serveur MySQL standard, et j'ai activé le module correpondant dans Asterisk (1.8.3.3) qui est res_config_mysql.so (modules.conf).
J'ai ensuite modifié le fichier extconfig.conf comme suit:
Code:
sippeers => mysql,asterisk,sipfriends
sipregs => mysql,asterisk,sipregs
Et j'ai configuré le bloc 'asterisk' dans le fichier res_config_mysql.conf:
Code:
[asterisk]
dbhost = 127.0.0.1
dbname = asterisk
dbuser = XYZ
dbpass = XXXXXX
dbport = 3306
dbsock = /var/run/mysqld/mysqld.sock
dbcharset = latin1
requirements=createclose
J'ai ensuite créé les tables correspondantes dans une base nommée 'asterisk': sipfriends vient de https://wiki.asterisk.org/wiki/displ...able+structure et sipregs a été un peu plus dur à trouver, mais j'utilise :
Code:
CREATE TABLE `sipregs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(40) DEFAULT NULL,
`ipaddr` char(45) DEFAULT NULL,
`port` smallint(5) unsigned DEFAULT NULL,
`regseconds` int(10) DEFAULT NULL,
`defaultuser` char(10) DEFAULT NULL,
`fullcontact` char(35) DEFAULT NULL,
`regserver` char(20) DEFAULT NULL,
`useragent` char(20) DEFAULT NULL,
`lastms` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Pour les entrées correspondantes à la famile sippeers (dans la table sipfriends), cela fonctionne bien, le routage se fait bien, et je vois bien les interrogations faites par Asterisk dans la base SQL lorsqu'un appel arrive.
Par contre, pour sipregs, rien du tout. Il y a bien des interrogations dans la base, mais jamais je ne vois de peer enregistré sur l'asterisk distant (alors que quand je le fait "à la main", avec un register => ..., cela fonctionne bien).
Normalement, je devrais crééer une entrée dans sipfriends, avec un name='foobar', et dans la table sipregs, il devrait me suffire de mettre dans name cette même valeur, ce qui devrait déclencher le 'register'.
Ma première question est : Est-ce que Asterisk le supporte vraiment ? Je pose cette question, parce que quand on fait un register 'normal' (c'est à dire avec des fichiers plats), Asterisk est supposé s'enregistrer/se connecter sur l'Asterisk distant IMMÉDIATEMENT, et pas lorsqu'un nouvel appel arrive. Je ne vois pas Asterisk interroger régulièrement la base pour voir s'il y a de nouveaux enregistrements...
Ma deuxième question est : Si cela devrait fonctionner, comment fait-on ? Qu'est ce qui me manque pour que cela fonctionne ?
Merci de votre aide ,
Luc