Page 1 sur 4 123 ... DernièreDernière
Affichage des résultats 1 à 10 sur 35

Discussion: Changement du CALLERID en fonction du champ From dans l'entête SIP

  1. #1
    Membre Junior
    Date d'inscription
    novembre 2015
    Messages
    16
    Downloads
    0
    Uploads
    0

    Changement du CALLERID en fonction du champ From dans l'entête SIP

    Bonjour à tous,

    Je voudrais pouvoir modifier le CALLERID en fonction du champ From de l'entête SIP.
    Est-ce que c'est faisable avec un IF ?
    Pour le traitement du chanp From et récupération du numéro dans l'entête, je sais faire, pas de soucis

    Il faudrait faire un truc du genre :
    Si le numéro interne qui appel (contenu dans le champ From) est 4000, le CALLERID sera 04 50 55 55 55
    Si le numéro interne qui appel (contenu dans le champ From) est 4100, le CALLERID sera 04 50 66 66 66

    Voila ce que j'ai actuellement :

    exten => 8500,1,Answer()
    same => n,Set(CALLERID(num)=0450555555)
    same => n,Dial(SIP/trunk-sip/06xxxxxxxx,100,tT)
    same => n,Hangup()

    Il faudrait pouvoir changer le CALLERID en fonction du poste qui appel l'extension 8500.

    Merci à tous.

  2. #2
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    En gros , tu veux faire un transfert vers ton portable mais tu voudrais savoir sur quelle ligne on t'a appelé sur l'asterisk ? C'est ca ?

    La modification du callerid est possible au niveau d'asterisk mais ca ne sera pas forcement honoré/respecté par ton trunk sip.
    Ca depends en fait de ton operateur, pas d'asterisk. L'operateur peut te demander de valider que les numeros sont bien à toi par exemple ou il ne présentera que les numeros que tu possedes chez lui.
    Les operateurs pros le permettent souvent avec leurs clients bien identifiés, les operateurs grand public bcp moins souvent pour des raisons evidentes que l'affichage de "faux" numeros pourrait etre utilisé comme outil de fraude.
    Sur certaines destinations exotiques, ca ne sera pas forcement respecté non plus.

    Sur numeris , en fonction de la config de la TNR, on peut generalement presenter n'importe quel numero meme si l'operateur agira a posteriori si on s'amuse a presenter n'importe quoi.

    A titre perso , j'ai le probleme puisque mes transferts se font par la ligne d'une box. La seule solution pratique que j'ai trouvé est d'envoyer un sms avec le nom de l'appelant et le DID de destination. Ca me permet d'avoir l'info avant de décrocher. Voir tuto la par exemple: http://www.asterisk-france.org/conte...ion-et-freepbx

    Fastm3.

  3. #3
    Membre Junior
    Date d'inscription
    novembre 2015
    Messages
    16
    Downloads
    0
    Uploads
    0
    Bonjour fastm3,

    Pour la raison, ça va un plus loin.
    J'aurais environ 50 extensions pointant vers des numéros différent en 04 ou 06.
    Demande de ma hiérarchie, il faut des raccourci pour joindre les sites distants.
    En gros, 8500 joint le site distant 1, 8501 le site distant 2.
    J'ai testé à la main de changer le CALLERID, ça fonctionne, l'opérateur (pro en passant) présente bien le numéro.

    Donc ce qu'il me manque, c'est juste la logique du IF.
    Comment on fait un IF sur les fichiers de conf asterisk ?
    Si tu as un site qui explique bien, je suis preneur.

    Merci beaucoup

  4. #4
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    ben, c'est un truc comme ca que tu recherches ?

    Set(CALLERID(num)=${IF($["${var}"="1000"]?"1234:${CALLERID(num)})})

    si var vaut 1000, callerid est mis à 1234 sinon inchangé

  5. #5
    Membre Junior
    Date d'inscription
    novembre 2015
    Messages
    16
    Downloads
    0
    Uploads
    0
    Citation Envoyé par jean Voir le message
    ben, c'est un truc comme ca que tu recherches ?

    Set(CALLERID(num)=${IF($["${var}"="1000"]?"1234:${CALLERID(num)})})

    si var vaut 1000, callerid est mis à 1234 sinon inchangé
    Bonjour Jean,

    Bah ça me semble bien être ce que je recherche oui.
    J'ai regardé sur quelque site et je ne comprenais pas la logique du IF.
    Avec ton explication, ça va bien.

    Est-ce que je peux par contre, en mettre plusieurs à la suite ? Genre :

    exten => 8500,1,Answer()
    same => n,Set(CALLERID(num)=${IF($["${var}"="1000"]?"1234:${CALLERID(num)})})
    same => n,Set(CALLERID(num)=${IF($["${var}"="1100"]?"5678:${CALLERID(num)})})
    same => n,Dial(SIP/trunk-sip/06xxxxxxxx,100,tT)
    same => n,Hangup()

    En ayant bien-sur, mis une valeur par défaut sur la variable CALLERID avant l'exten.
    Ça marcherait ? Est-ce qu'il a moyen d'optimiser ? Peut-être mettre les IF en dehors de l'exten ?

    Merci beaucoup pour votre aide.
    Cordialement,

  6. #6
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    tu peux utiliser une macro (https://wiki.asterisk.org/wiki/displ...lication_Macro ou sur voip-info)
    tu peux évidemment en mettre plusiurs à la suite, ca devient de la logique programmatique....

  7. #7
    Membre Association Avatar de quintana
    Date d'inscription
    août 2010
    Localisation
    Québec
    Messages
    1 084
    Downloads
    0
    Uploads
    0
    Évitez d'utiliser MACRO et utiliser plutôt GOSUB. Macro a des soucis quand on en empile trop.
    Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
    Blog Wazo : http://blog.wazo.community
    Wazo est un fork de XiVO.
    Suivez moi sur Twitter !

  8. #8
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    tu as raison, j'ai été feignant sur le coup, macro est en plus déprécié...

    https://wiki.asterisk.org/wiki/displ...ro+Deprecation
    https://wiki.asterisk.org/wiki/display/AST/Macros

  9. #9
    Membre Association Avatar de quintana
    Date d'inscription
    août 2010
    Localisation
    Québec
    Messages
    1 084
    Downloads
    0
    Uploads
    0
    Y a un truc qui existe aussi dans Asterisk.

    Genre :

    Code PHP:
    exten 667,1,Answer()
    exten 667/8001,2,Set(CALLERID(num)=0000)
    exten 667/8000,2,Set(CALLERID(num)=9999)
    exten 667,2,NoOP(OK)
    exten 667,n,NoOP(${CALLERID(num)})
    exten 667,n,Hangup() 
    Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
    Blog Wazo : http://blog.wazo.community
    Wazo est un fork de XiVO.
    Suivez moi sur Twitter !

  10. #10
    Membre Junior
    Date d'inscription
    novembre 2015
    Messages
    16
    Downloads
    0
    Uploads
    0
    Bonjour Sylvain, Re Jean,

    Merci à vous deux pour vos propositions et liens que je ne manquerai pas d'aller visiter.
    Donc, si je résume, on peut mettre plusieurs IF les un à la suite des autres.
    Chaque ligne est traité et le CALLERID est changé en fonction de la valeur de la variable matché.

    La dernière proposition est aussi très intéressante et semble convenir mais un truc me titille par rapport à l'optimisation.
    Si je comprend bien la logique, pour chaque extension, je vais devoir mettre potentiellement un nombre de ligne égal au nombre de sites sur mon asterisk ?
    Ce qui donnerait pour trois sites qui appellent cette extension raccourci :

    Code:
    exten = 8500,1,Answer() 
    exten = 8500/4000,2,Set(CALLERID(num)=0450555555) 
    exten = 8500/4100,2,Set(CALLERID(num)=0450666666) 
    exten = 8500/4200,2,Set(CALLERID(num)=0450777777) 
    exten = 8500,2,NoOP(OK) 
    exten = 8500,n,NoOP(${CALLERID(num)})
    exten = 8500,n,Dial(SIP/trunk-sip/06xxxxxxxx,100,tT)
    exten = 8500,n,Hangup()
    Ça fait que si dans le futur, j'arrive à 50 sites sur mon asterisk, ça va me faire 50 lignes rien que pour le changement du CALLERID. Ça ne me choque pas, c'est normal.
    Par contre si je dois faire 50 extension raccourcie et gérer les 50 sites, ça va me faire 2500 lignes pour la gestion du CALLERID, chaud quand même.

    C'est pas mieux si je fout 50 IF à la suite ?
    Ce qui donnerait :

    Code:
    [exten-raccourcie]
    
    CALLER_ID=${IF($["${var}"="4000"]?"0450555555:${CALLERID(num)})
    CALLER_ID=${IF($["${var}"="4100"]?"0450666666:${CALLERID(num)})
    CALLER_ID=${IF($["${var}"="4200"]?"0450777777:${CALLERID(num)})
    
    exten => 8500,1,Answer()
    same => n,Set(CALLERID(num)=${CALLER_ID})
    same => n,Dial(SIP/trunk-sip/06xxxxxxxx,100,tT)
    same => n,Hangup()
    J'ai surement faux, mais vous voyez ou je veux en venir ?
    Bonne soirée.

    Cordialement,

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
  •