Affichage des résultats 1 à 5 sur 5

Discussion: Comment stocker l'historique des appels dans une base de données MySQL via ODBC ?

  1. #1
    Membre
    Date d'inscription
    janvier 2017
    Messages
    50
    Downloads
    1
    Uploads
    0

    Question Comment stocker l'historique des appels dans une base de données MySQL via ODBC ?

    Bonjour à tous et à toutes,

    J'ai la base de données suivants sur mon serveur Asterisk 13.21.0 :

    Database => callsUsersDB

    Table => historicCalls
    iKeys date numeroPoste numeroDID destinataire typeAppel
    1 2018/04/02 - 14:32 101 024567878 045698552 entrant
    2 2018/04/15 - 20:32 103 024567878 045698552 sortant
    3 2018/04/02 - 14:32 102 021181412 028992018 sortant

    Voilà ce que je voudrais avoir dans ma base de données un historic de mes appels entrants et sortants.
    Mais j'ignore comment procéder. Surtout du côté de mon dialplan. Quelle syntaxe utiliser pour insérer ses
    informations d'appels dans la base de données ?

    Bien à vous,
    Lordaker

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    la question est très, trop générique ! il suffit de configurer odbc sur ta machine, et de faire les inserts que tu veux dans le dialplan !

    sans être plus précis, dur de faire une meilleure réponse

  3. #3
    Membre
    Date d'inscription
    janvier 2017
    Messages
    50
    Downloads
    1
    Uploads
    0

    Question

    Citation Envoyé par jean Voir le message
    la question est très, trop générique ! il suffit de configurer odbc sur ta machine, et de faire les inserts que tu veux dans le dialplan ! Sans être plus précis, dur de faire une meilleure réponse
    J'ai dans mon CLI ceci:

    Code:
    Connected to Asterisk 13.21.0 currently running on asterisk (pid = 1329)
    asterisk*CLI> odbc show all
    
    ODBC DSN Settings
    -----------------
    
      Name:   asterisk
      DSN:    asterisk-connector
        Last connection attempt: 1970-01-01 00:00:00
        Number of active connections: 1 (out of 1)
    
      Name:   calls-tracking
      DSN:    calls-tracking-connector
        Last connection attempt: 1970-01-01 00:00:00
        Number of active connections: 1 (out of 1)
    
    asterisk*CLI>
    Voici le code de mon fichier extensions.conf pour les appels sortant:
    Code:
    exten => _0X.,1,NoOp(Outgoing Call from ${CALLERID(all)} to ${EXTEN})
     same => n,Set(POSTE=${CHANNEL:6:3})
     same => n,NoOp(SendedCID = ${CALLERID(num)})
     same => n,Set(CALLERID(num)=${DB(CID/${POSTE})})
     same => n,NoOp(SendedCID = ${CALLERID(num)})
     same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y_%m_%d_%H_%M_%S)})
     same => n,System(echo "--appel_sortant --- callerid : ${CALLERID(num)} ---- ${STRFTIME(${EPOCH},,%Y_%m_%d_%H_%M_%S)} ----" >> /var/spool/asterisk/log/debug.txt)
     same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav)
     same => n,Set(TYPE='Out')
     same => n,Set(CALLSHISTORY()=${NOW},${POSTE},${CALLERID(num)},${EXTEN},${TYPE})
     same => n,Answer()
    Le résultat dans le CLI:

    Code:
    == Setting global variable 'SIPDOMAIN' to '192.168.40.55'
        -- Executing [042680871@from-internal:1] NoOp("PJSIP/103-00000005", "Outgoing Call from "Arnold" <103> to 042680871") in new stack
        -- Executing [042680871@from-internal:2] Set("PJSIP/103-00000005", "POSTE=103") in new stack
        -- Executing [042680871@from-internal:3] NoOp("PJSIP/103-00000005", "SendedCID = 103") in new stack
        -- Executing [042680871@from-internal:4] Set("PJSIP/103-00000005", "CALLERID(num)=028992018") in new stack
        -- Executing [042680871@from-internal:5] NoOp("PJSIP/103-00000005", "SendedCID = 028992018") in new stack
        -- Executing [042680871@from-internal:6] Set("PJSIP/103-00000005", "NOW=2018_05_28_11_38_00") in new stack
        -- Executing [042680871@from-internal:7] System("PJSIP/103-00000005", "echo "--appel_sortant --- callerid : 028992018 ---- 2018_05_28_11_38_00 ----" >> /var/spool/asterisk/log/debug.txt") in new stack
        -- Executing [042680871@from-internal:8] Set("PJSIP/103-00000005", "REC_FILE_NAME=OUT_2018_05_28_11_38_00_042680871_103.wav") in new stack
        -- Executing [042680871@from-internal:9] Set("PJSIP/103-00000005", "TYPE='Out'") in new stack
        -- Executing [042680871@from-internal:10] Set("PJSIP/103-00000005", "CALLSHISTORY()=2018_05_28_11_38_00,103,028992018,042680871,'Out'") in new stack
    [May 28 11:38:00] ERROR[3953][C-00000003]: pbx_functions.c:699 ast_func_write: Function CALLSHISTORY not registered
    La requête dans le fichier func_odbc.conf
    Code:
    [CALLSHISTORY]
    dsn=calls-tracking-connector
    writesql=INSERT INTO callshistory(date,numeroPoste,numeroDID,destinataire,sens) VALUES('${ARG1}','${ARG2}','${ARG3}','${ARG4}','${ARG5}')
    Bien à vous,
    Lordaker

  4. #4
    Membre
    Date d'inscription
    janvier 2017
    Messages
    50
    Downloads
    1
    Uploads
    0

    Question

    J'ai pu voir que sur Asterisk nous avons le CDR (Call Detail Records) qui permet d'avoir des informations sur les différents appels émis via l'Asterisk. Ils disent sur le wiki d'Asterisk que c'est très utile pour les administrateurs qui veulent suivre les appels qui sont effectués sur le système Asterisk. Voir (https://wiki.asterisk.org/wiki/display/AST/Reporting)
    Je voudrais utilisé le système de variable qu'il propose pour l'enregistrement de c'est données lors d'un appels dans ma base de données.

    Voici la présentation de ma table historikcalls qui se trouve dans la db_callsusers
    Table HistorikCalls
    iKey (Primary ID)
    date (datetime) --> Date et heure de l'appel reçu ou émis
    numberExt (varchar 20) --> Numéro de l'extension du poste
    numberCID (varchar 20) --> CID du Poste utilisé pour émettre l'appel
    receiver (varchar 20) --> Numéro de la personne appelée
    type (varchar 5) --> Le type de l'appel (Inbound or Outbound)

    Dans le fichier func_odbc.conf j'ai ceci
    Code:
    [CALLSHISTORY]
    prefix=ODBC
    dsn=calls-tracking-connector
    writesql=INSERT INTO callshistory (date,numberExt,numberCID,receiver,type) VALUES('${ARG1}','${ARG2}','${ARG3}','${ARG4}','${ARG5}')
    Au vu de ce que le Wiki d'Asterisk propose comme variable CDR (https://wiki.asterisk.org/wiki/displ.../CDR+Variables)
    Comment je fais pour introduire les variables qui m’intéressent dans la table HistorikCalls ?

  5. #5
    Membre
    Date d'inscription
    janvier 2017
    Messages
    50
    Downloads
    1
    Uploads
    0

    Question

    Citation Envoyé par lordaker Voir le message
    J'ai pu voir que sur Asterisk nous avons le CDR (Call Detail Records) qui permet d'avoir des informations sur les différents appels émis via l'Asterisk. Ils disent sur le wiki d'Asterisk que c'est très utile pour les administrateurs qui veulent suivre les appels qui sont effectués sur le système Asterisk. Voir (https://wiki.asterisk.org/wiki/display/AST/Reporting)
    Je voudrais utilisé le système de variable qu'il propose pour l'enregistrement de c'est données lors d'un appels dans ma base de données.

    Voici la présentation de ma table historikcalls qui se trouve dans la db_callsusers
    Table HistorikCalls
    iKey (Primary ID)
    date (datetime) --> Date et heure de l'appel reçu ou émis
    numberExt (varchar 20) --> Numéro de l'extension du poste
    numberCID (varchar 20) --> CID du Poste utilisé pour émettre l'appel
    receiver (varchar 20) --> Numéro de la personne appelée
    type (varchar 5) --> Le type de l'appel (Inbound or Outbound)

    Dans le fichier func_odbc.conf j'ai ceci
    Code:
    [CALLSHISTORY]
    prefix=ODBC
    dsn=calls-tracking-connector
    writesql=INSERT INTO callshistory (date,numberExt,numberCID,receiver,type) VALUES('${ARG1}','${ARG2}','${ARG3}','${ARG4}','${ARG5}')
    Au vu de ce que le Wiki d'Asterisk propose comme variable CDR (https://wiki.asterisk.org/wiki/displ.../CDR+Variables)
    Comment je fais pour introduire les variables qui m’intéressent dans la table HistorikCalls ?
    Je suis parvenu à enregistrer mes information d'appels dans une base de données en suivant le tutoriel suivant:

    http://www.asteriskdocs.org/en/3rd_E...oring-cdr.html

    Maintenant il me faut pouvoir personnalisé l'enregistrement avec les détails qui m'intéressent.

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
  •