La problématique qui a mené à ce petit bout de code est tout simple, on avait une liste d’employés qui arrivait au serveur Freeswitch à partir d’une T1 Nortel sur laquelle il nous étaient impossible de faire passer le «Caller Name». Par-contre, nous avions cette information «Caller Name – Extension» dans un fichier CSV généré automatiquement à tous les jours à partir pour du traîtement dans la base de donnée.

Voici comment configurer votre dialplan

<action application="export" data="my_caller_name=${effective_caller_id_name}">
 
<action application="set" data="caller=${caller_id_number}">

J’ai donc tout simplement bâti un script qui cherche l’extension du «caller» dans un fichier CSV et retourne le nom associé.

Et il faut mettre dans le répertoire «scripts» de Freeswitch un fichier setCallerName.py

import csv
from freeswitch import *
 
def handler(session,args):
        caller = session.getVariable("caller")
        csv_reader = csv.reader(open("pathToCsv.csv","rb"))
        portfolio_list = []
        portfolio_list.extend(csv_reader)
        for data in portfolio_list:
                if (data[1] == caller):
                        session.execute("set","effective_caller_id_name="+data[0])