Archive for asterisk

Vtiger / Asterisk

Comment configurer Asterisk pour pouvoir utiliser le module Asterisk de vtiger, le CRM open-source?

Tout d’abord, il faut savoir que vtiger dans sa version 5.1 actuellement stable, utilise les contextes asterisk de façon statique! Par conséquent, il faut soit modifier les sources de vtiger, soit utiliser les mêmes contextes que vtiger. Cette dernière solution est plus simple.

Dans asterisk, ajouter un utilisateur pour vtiger:

[monuser]
secret=lemotdepassedemonuser
deny=0.0.0.0/0.0.0.0
permit=IPDEVTIGER/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,originate

Attention, la doc de vtiger ne donne pas le même champs read et cela n’est pas fonctionnel avec Asterisk 1.6.

Cet utilisateur, l’adresse et le port du serveur Asterisk doivent être aussi configurés, dans vtiger dans le gestionnaire de modules. Par ailleurs, pour chaque utilisateur vtiger, il faut configurer l’extension asterisk utilisé pour cet utilisateur. Ainsi, quand il clickera sur un numéro dans vtiger, un appel sera lancé entre son poste et celui de son client. Très pratique!

Dans votre dialplan asterisk (décrit dans extensions.conf), il faut utiliser le contexte “from-internal” pour passer les appels en click2call.

En tant que directeur technique de la société Altern-IT, vous pouvez me contacter pour avoir plus d’informations.

Posted in asterisk, open-source | 1 Comment

python multhreading…

Hello,

Python multithreating module is very easy to use. I have created this almost unuseful script to generate with an asterisk equipment calls to every 10 seconds.

For this you have to know that to generate calls with asterisk, you can send 1.call files (x.call) in the /var/spool/asterisk/outgoing directory .

Here is a sample of 1.call file:

Channel: SIP/me

MaxRetries: 1

RetryTime: 60

WaitTime: 30

Context: me

Extension: you

Priority: 1

where me and you are declared channel in sip.conf

I have created the following script that sends every 10 sec the files into the good directory (first process) and notify the second process that a call has been generated.


#!/usr/bin/env python

import thread
import time
from threading import *
import subprocess

class call_gen(Thread):

def __init__(self,condition,sleeptime=10):
    Thread.__init__(self)
    self.cond=condition
    self.sleeptime=sleeptime

def run(self):
    cond=self.cond

    while 1 :
        cond.acquire() #acquire the lock
        b = subprocess.Popen(['./start_call.sh'])
        cond.notifyAll()
        cond.release()
        time.sleep(self.sleeptime)

class Notifier(Thread):

    def __init__(self,condition,sleeptime=2):

        Thread.__init__(self)
        self.cond=condition
        self.sleeptime=sleeptime

    def run(self):
        cond=self.cond

    while 1:
        time.sleep(self.sleeptime)
        cond.acquire()
        cond.wait()
        print 'call has been generated'
        cond.release()

if __name__=="__main__":

    cond=Condition()
    call_gen=call_gen(cond)
    Not=Notifier(cond)
    call_gen.start()
    Not.start()
    while 1: pass

For information start_call.sh is a script that copy the 1.call and send it into the directory /var/spool…

Thanks to http://linuxgazette.net/107/pai.html made by Krishna G Pai that really helped!

Have fun.

Posted in asterisk, python | Leave a comment

Swedish Greys - a WordPress theme from Nordic Themepark.