Affichage des résultats 1 à 8 sur 8

Discussion: Auto registration avec ARA (Realtime), sipregs ne fonctionne pas

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Junior
    Date d'inscription
    septembre 2010
    Messages
    7
    Downloads
    0
    Uploads
    0

    Question Auto registration avec ARA (Realtime), sipregs ne fonctionne pas

    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

  2. #2
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Normalement ça doit fonctionner, est ce que vous avez des valeurs qui sont ajoutés dans sipregs ? Il est possible que structure de table est ancienne, et que dans 1.8 ça à changé.

  3. #3
    Membre Junior
    Date d'inscription
    septembre 2010
    Messages
    7
    Downloads
    0
    Uploads
    0
    Citation Envoyé par Reaper Voir le message
    Normalement ça doit fonctionner, est ce que vous avez des valeurs qui sont ajoutés dans sipregs ? Il est possible que structure de table est ancienne, et que dans 1.8 ça à changé.
    Comment ça "qui sont ajoutés dans sipregs" ? Ne suis-je pas supposé les insérer moi-même ? Ce que je ne comprends pas c'est comment Asterisk peut-il ajouter le peer "immédiatement" s'il ne surveille pas la base SQL ? Il aurait fallu pour cela mettre des TRIGGER dans MySQL.

    Concernant la structure, je n'ai aucune erreur, et j'ai utilisé le paramètre "requirements=createclose" dan sip.conf pour créer/modifier les champs manquants.

  4. #4
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Le wiki dit que:
    https://wiki.asterisk.org/wiki/displ...+Configuration

    If you specify a separate family called "sipregs" SIP registration data will be stored in that table and not in the "sippeers" table.
    Je suppose il sauvegarde aussi l’état d'enregistrement, par exemple "Trying"

    Dans ce cas si j'ai bien saisi vous pouvez tout stocker dans sippeers, et sipregs est en option, la structure que vous avez utilisé est suivante ?

    https://wiki.asterisk.org/wiki/displ...able+structure

  5. #5
    Membre Junior
    Date d'inscription
    septembre 2010
    Messages
    7
    Downloads
    0
    Uploads
    0
    Citation Envoyé par Reaper Voir le message
    Le wiki dit que:
    https://wiki.asterisk.org/wiki/displ...+Configuration

    Je suppose il sauvegarde aussi l’état d'enregistrement, par exemple "Trying"

    Dans ce cas si j'ai bien saisi vous pouvez tout stocker dans sippeers, et sipregs est en option, la structure que vous avez utilisé est suivante ?

    https://wiki.asterisk.org/wiki/displ...able+structure
    sippeers fonctionne très bien, mais il est utilisé uniquement lorsqu'un appel entrant arrive, c'est à dire que Asterisk accède et lit la base SQL pour voir son contenu qu'à ce moment là. Lorsque l'on fait un "register => user:pass@foobar.Com" (fichier plat), l'enregistrement du peer se fait immédiatement (en plus d'être enregistré dans la table visible par "sip show registry".

    Je n'ai pas du tout ce comportement avec l'utilisation d'un base SQL+ Realtime:
    1. À aucun moment, je n'ai quoi que ce soit dans le sip show registry, et je peux affirmer qu'il n'y a rien parce que l'Asterisk distant ne reçoit pas de connexion.
    2. Aucun évènement n'arrive dans l'Asterisk (même avec un "core set verbose 9999") quand j'insère une nouvelle ligne dans la base SQL dans la table sipregs, ce qui, pour moi, est normal vu qu'Asterisk ne surveille pas les changements dans la base, mais qui est anormal vu le comportement supposé équivalent avec "register => ..."

  6. #6
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Ça fait un moment que j'ai touché au realtime.
    Regarde si sipregs fonctionne encore sur le bugtracker de digium, ils ont une tendance de la casser temp en temps.

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •