Affichage des résultats 1 à 6 sur 6

Discussion: Modifier Cdr asterisk dans table mysql

  1. #1
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0

    Modifier Cdr asterisk dans table mysql

    Bonjour,

    Je cherche à ajouter une variable au niveau des cdr asterisk, cdr qui est dans une table MySQL. La variable s'appelle "mobile", il s'agit du numéro appelé.

    J'utilise un callfile de ce type :

    Code:
    Channel: SIP/0606060606@ip
    MaxRetries: 0
    WaitTime: 25
    Context: ast_j1
    Extension: 0123456789
    Priority: 1
    Callerid: 0123456789
    Set: mobile=0606060606
    Set: callerid_bak=0123456789
    Dans l'extension.conf, j'ai essayé ca, parmi beaucoup de choses, ca fait plus de 3h que je teste sans succès.

    Code:
    [ast_j1]
    exten => 0123456789,1,AGI(/home/test/script_test1.php)
    exten => 0123456789,n,set(CDR(called_num)=${CHANNEL(mobile)})
    exten => 0123456789,n,Hangup
    exten => failed,1,AGI(/home/test/failed.php)
    exten => failed,n,set(CDR(called_num)=${mobile})
    exten => failed,n,Hangup
    Le champs dans la table cdr d'asterisk s'appelle "called_num", je souhaiterai donc une fois l'appel passé enregistrer ma variable "mobile" du callfile dans ma table cdr asterisk champs "called_num".

    Si quelqu'un a une piste ... parce que là je suis à court d'idée, et je ne trouve pas d'info pertinente sur notre ami Google. J'ai essayé plusieurs syntaxes dans l'extension.conf, j'ai jeté un coup d'œil au cdr_adaptive_odbc.conf, je n'ai rien vu me permettant de pouvoir mettre ca en place.

    Au bout de 3h de tests et de recherches, je commence un peu à désespérer ...

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    quelques réflexions....

    - n'oublie pas qu'un appel génére généralement 2 channels, qui sont bridgés au décroché, et donc 2 cdr: quand a appelle B, on a A-> asterisk et asterisk-> B - il faut donc écrire dans le bon channel

    - il y a un champ userfield,
    https://wiki.asterisk.org/wiki/displ...3+Function_CDR
    http://www.voip-info.org/wiki/view/Asterisk+cdr+csv (là ca dit qu'il faut l'activer en compilant, je suis un peu étonné)

    - il te reste sinon les triggers....

    mais ce que je comprends pas, c'est que le no appelé est déjà dans les cdr !

  3. #3
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0
    Merci, j'avais déjà lu ça. Si la réponse à ma question est dedans, je veux bien que tu m'expliques, parce que je n'ai clairement pas compris si c'est le cas. Peut etre avec un exemple simple ?

    J'ai oublié de précisé, j'ai une version 1.8.26 d'asterisk, et dans le cdr, ce n'est pas le numéro appelé qu'il y a, mais le numéro d'extension utilisé pour la destination, ce qui n'est pas la même chose. Tu penses bien que je ne chercherai pas à ajouter cette info dans le cdr si elle y était déjà ...

    J'ai lu l'info concernant l'utilisation du champs userfield, mais j'ai besoin d'utiliser le champs ajouté dans le cdr, qui s'appelle donc "called_num".

    J'utilise le set: var=valeur dans mon callfile, mais c'est l'ajout dans la table MySQL du cdr que je n'arrive pas à faire, d'où ma question initiale.

  4. #4
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    bon, je mobilise un peu plus de neurones....

    déjà, je ferais des DumpChan(1) pour m'assurer que le Set fonctionne bien.... on sait jamais !

    puis, je pars de là:
    https://wiki.asterisk.org/wiki/display/AST/CDR+Fields

    CDR(called_num) n'est pas un champ standard - mais...

    https://wiki.asterisk.org/wiki/displ.../CDR+Variables
    "you can set your own extra variables by using Set(CDR(name)=value)."
    These variables can be output into a text-format CDR by using the cdr_custom CDR driver; see the cdr_custom.conf.sample

    donc, si tu veux ajouter un nouveau champ dans le cdr, il doit falloir soit passer par les fichiers texte (generer un cdr-custom que tu charges après dans ta base), soit, (peut être) changer le cdr backend dans cdr.conf, puis adapter le cdr_<backend>.conf
    par exemple, je pense.... que si tu ajoutes ton champ dans cdr_sqlite3_custom.conf, dans le token columns et values, tu devrais retrouver dans Master.db, en utilisant sqllite3 - si tu veux un autre backend, je tenterai d'ajouter les tokens columns et values dans le .conf de ce backend

    voila les pistes que je creuserai....

  5. #5
    Membre Association
    Date d'inscription
    juillet 2011
    Messages
    32
    Downloads
    0
    Uploads
    0
    J'ai déjà lu ça aussi.

    J'ai lu les docs d'asterisk officielles, consulté voip-info, j'ai 2 bouquins sur asterisk, j'ai fait des recherches sur Google, toutes les infos que j'ai trouvé sont évasives.

    Si tu regardes mon premier post, j'ai fait des essais avec le set(cdr(called_num)), plusieurs syntaxes .... je n'ai jamais réussi à avoir quelque chose de plus dans la table MySQL de mon cdr.

    Les appels sont enregistrés dans une tables MySQL, mon application est déjà terminée et elle est fonctionnelle, je n'ai plus que ce champs à ajouter dans ma table, impossible de faire fonctionner quoi que ce soit.

    J'ai essayé aussi avec le cdr_custom, pareil, et je ne sais pas quoi modifier dans le cdr_MySQL.conf pour essayer de l'ajouter ici ...

  6. #6
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    En dernier ressort j'irai vour le code source....

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
  •