Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 10 sur 11

Discussion: Allopass

  1. #1
    Membre Junior
    Date d'inscription
    juillet 2014
    Messages
    21
    Downloads
    0
    Uploads
    0

    Post Allopass

    Bonjour,

    Je suis nouveau sur asterisk.

    Je souhaiterai créer un système similaire à allopass avec asterisk.

    j'ai réussi à faire dialplan, mais, je ne sais pas comment faire en sorte que lorsque j'appelle mon service, celui-ci me génère un code automatiquement.
    Si qqun sait comment faire, je suis très intéressé.

    Cordialement.

  2. #2
    Membre Senior
    Date d'inscription
    novembre 2013
    Localisation
    Bordeaux
    Messages
    427
    Downloads
    0
    Uploads
    0
    Bonjour

    Recherche du coté de AGI. Tu pourra créer un code php ou perl qui dialogera avec l'asterisk

  3. #3
    Membre Junior
    Date d'inscription
    juillet 2014
    Messages
    21
    Downloads
    0
    Uploads
    0
    oula oula,

    peux-tu m'en dire un peu plus, , et des liens, si possible, car, je ne sais malheureusement pas ce que veut dire AGI.

    Désolé, je suis nouveau, et je débute ^^

  4. #4
    Membre Senior
    Date d'inscription
    novembre 2013
    Localisation
    Bordeaux
    Messages
    427
    Downloads
    0
    Uploads
    0
    Bonjour

    Déjà, il faut maitriser un langage, du genre php. Si tu veux faire comme allopass, j'imagine que tu a un site web, donc ça devrais aller. Pour l'explication détaillée d'agi, tu peux chercher sur internet, je vais cependant te montrer un exemple minimal pour voir le principe


    Dans mon dialplan asterisk j'ai

    Code:
    [ext-did-custom]
    exten => 0524573708,1,Macro(user-callerid,)
    exten => 0524573708,n,AGI(random.php) ;
    Quand quelqu'un appelle le 0524573708 ( tu peux appeler si tu veux voir ), ça va exécuter mon code php random.php.

    Si tu regarde mon exemple,
    • Ligne 37/38 on déclare l'agi est on décroche.
    • Ligne 41 on récupère le numéro de l’appelant.
    • Ligne 18/19 on prononce des numéros.
    • Ligne 46 on lit un fichier audio
    • Ligne 54 ça raccroche


    Le reste c'est du php classique

    Code:
        1	#!/usr/bin/php -q
         2	<?php
         3	
         4	function lire_numero( $agi, $numero ) {
         5		$longeur_numero=strlen( $numero ) ;	
         6		$i = 0 ;
         7	
         8		while ( $i < $longeur_numero )
         9		{
        10			// si numero les deux chiffres sont 05, l'asterisk doit dire zero cinq
        11			$sub2chiffres=substr( $numero, $i , 2 ) ;
        12			$sub1chiffre=substr( $numero, $i , 1 ) ;
        13			$sub1chiffresuivant=substr( $numero, $i + 1  , 1 ) ;
        14			
        15			if ( $sub1chiffre == "0" )
        16			{
        17				$agi->say_number(intval($sub1chiffre));
        18				$agi->say_number(intval($sub1chiffresuivant));
        19			}
        20			else {
        21				$agi->say_number(intval($sub2chiffres));		
        22			}
        23				
        24			$i = $i + 2 ;
        25			
        26			usleep(600000);
        27	
        28		}
        29		
        30	}
        31	
        32	
        33	// fin des fonctions
        34	
        35	require("phpagi.php" );
        36	
        37	$agi = new AGI() ;
        38	$agi->answer();
        39	
        40	
        41	$numero = $agi->request[agi_callerid];
        42	$code = rand(100000,999999);
        43	
        44	sleep(1);
        45	
        46	$agi -> stream_file('welcome' );
        47	lire_numero( $agi, $numero ) ;
        48	
        49	$agi -> stream_file('vm-password');
        50	lire_numero( $agi, $code ) ;
        51	
        52	
        53	$agi -> stream_file('goodbye') ;
        54	$agi->hangup();
        55	?>

    Pour les fonctions ( identique en php qu'en perl ) http://search.cpan.org/~jamesgol/ast...sterisk/AGI.pm

  5. #5
    Membre
    Date d'inscription
    avril 2014
    Messages
    35
    Downloads
    0
    Uploads
    0
    hello,

    Même pas besoin d'agi : tu peux utiliser la fonction RAND.

    Exemple :
    Code:
    exten = 7,1,Set(magic=${RAND(00,99)})
    Pour plus d'info :


  6. #6
    Membre Senior
    Date d'inscription
    novembre 2013
    Localisation
    Bordeaux
    Messages
    427
    Downloads
    0
    Uploads
    0
    Il est possible de faire quelques trucs via asterisk directement, je pense cependant que ce n'est pas adapté dés que l'on veut faire un algorithme un peu évolué avec des conditionnelles et boucles imbriquées, un lien avec une base mysql etc...

  7. #7
    Membre Junior
    Date d'inscription
    juillet 2014
    Messages
    21
    Downloads
    0
    Uploads
    0
    Ok,

    merci beaucoup.

    Je vais testé tout cela ce soir et demain matin.

    par contre, après, comment se fait la validation du code généré?

    cordialement.

  8. #8
    Membre
    Date d'inscription
    avril 2014
    Messages
    35
    Downloads
    0
    Uploads
    0
    Pas faux, tout depend ce ce que tu veux/sais faire.

    Ce qui est sur c'est que lancer une agi prend plus de resource que du dialplan.
    Pour de meilleurs performances, il vaux mieux utiliser FastAGI.

  9. #9
    Membre Senior
    Date d'inscription
    novembre 2013
    Localisation
    Bordeaux
    Messages
    427
    Downloads
    0
    Uploads
    0
    J'ai donné une piste pas une solution finie.

    On peut imaginer que les codes générées soient envoyés dans une base mysql.Le site payant serait lié a cette même base, l'utilisateur du site entre le code qu'il a eu par téléphone, tu vérifie si le code est bien dans la base, Mais là c'est une question de développement pure, ça n'a plus rien avoir avec asterisk

  10. #10
    Membre Junior
    Date d'inscription
    juillet 2014
    Messages
    21
    Downloads
    0
    Uploads
    0
    Bonjour,

    Merci pour toutes vos réponses, je viens d'avoir du temps pour m'y mettre....

    désolé donc, ne pas vous avoir tous remercier plus tôt, j'en suis vraiment navré.

    juste une question tanguyd, le code PHP, je mets à quel endroits

    Encore merci pour vos réponses!

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
  •