Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Probleme - Trixbox - AGI - PHP - IPPI

Mopade, le lundi 28 avril 2008 à 10:36:58
Bonjour à tous,
Je viens vous demander un peu d'aide car là je suis perdu.

En fait j'ai installé trixbox en local ( Emulation sous VMware ) depuis plusieurs jour maintenant et j'ai créé des comptes SIP : 201/202/202 utilisés par des softphones ( Wengophone, X-Lite, SJPhone ). Ca marche très bien.
Ensuite j'ai créé une interface click to call qui permet de renseigner le numéro du destinataire et le script php/agi nous appelle et nous met en relation tous les 2. Ca marche très bien aussi.

J'ai récupéré un compte VoIP chez Ippi.fr et je peux maintenant appeler à l'extérieur ( j'ai configuré le trunk et les routes sortantes seulement je ne gère pas les appels entrants, je m'en fiche pour l'instant ). Ca marche très bien depuis mes softphones.

Exemple sous WengoPhone : je tape 90298065421 ( par exemple ) sachant que le 9 du début signale qu'il faut appeler à l'extérieur du réseau.


Maintenant voici le code php/agi utilisé : ( version sommaire sans les variables $_SESSION, $_POST, juste le code initial qui marche très bien en local ).

[code]
<?php
require_once('phpagi-asmanager.php');

$number1 = '201';
$number2 = '0298065421';
$asm = new AGI_AsteriskManager();
if($asm->connect())
{
$call = $asm->send_request('Originate',
array('Channel'=>"SIP/$number1",
'Context'=>'dialout-trunk',
'Priority'=>1,
'Callerid'=>$number2,
'Exten' =>$number2));
$asm->disconnect();
}
?>
/code

Et là ça ne marche pas :-S, le 201 est bien appelé ( Wengophone ) mais l'autre numéro n'est pas appellé et ça raccroche ...

Avant j'avais ça par exemple :

[code]
<?php
require_once('phpagi-asmanager.php');

$number1 = '201';
$number2 = '202';
$asm = new AGI_AsteriskManager();
if($asm->connect())
{
$call = $asm->send_request('Originate',
array('Channel'=>"SIP/$number1",
'Context'=>'default',
'Priority'=>1,
'Callerid'=>$number2,
'Exten' =>$number2));
$asm->disconnect();
}
?>
/code

Et Wengophone et X-lite étaient appelés tous les 2 et étaient mis en relation.


Avez vous une idée ?

Voici des infos Ippi.fr si ça vous aide :

[code]
*** PEER Details :
allow=g729&ilbc&ulaw&alaw
bandwidth=low
context=from-trunk
fromdomain=ippi.fr
fromuser=[IDENTIFIANT IPPI]
host=ippi.fr
insecure=very
qualify=yes
secret=[MOT DE PASSE IPPI]
type=peer
username=[IDENTIFIANT IPPI]

*** USER Details :
bandwidth=low
canreinvite=no
context=from-trunk
fromuser=[IDENTIFIANT IPPI]
qualify=no
secret=[MOT DE PASSE IPPI]
type=user
username=[IDENTIFIANT IPPI]

*** Register String :
[IDENTIFIANT IPPI]:[MOT DE PASSE IPPI]@ippi.fr/[NUM TEL IPPI]
/code


Justement je me pose la question,
Etant passé par freepbx, j'ai eu l'avantage d'avoir accès à une interface graphique mais je ne sais pas toutes les modifications que j'ai vraiment apporté dans les fichiers de configuration.

Voici tout de même leur code :

Une partie de extensions.conf :

[code]

; Customizations to this dialplan should be made in extensions_custom.conf
; See extensions_custom.conf.sample for an example
#include extensions_custom.conf

[from-trunk] ; just an alias since VoIP shouldn't be called PSTN
include => from-pstn

[from-pstn]
include => from-pstn-custom ; create this context in extensions_custom.conf to include customizations
include => ext-did-direct ; MODIFICATOIN (PL) put before ext-did to take precedence
include => ext-did
include => from-did-direct ; MODIFICATOIN (PL) for findmefollow if enabled, should be bofore ext-local
exten => fax,1,Goto(ext-fax,in_fax,1)
/code

une partie de extensions_additional.conf :

[code]

[ext-test]
include => ext-test-custom
exten => 7777,1,Goto(from-pstn,s,1)
exten => 666,1,Goto(ext-fax,in_fax,1)
exten => h,1,Macro(hangupcall,)

; end of [ext-test]


[ext-did]
include => ext-did-custom
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => 0222060512,1,Set(FROM_DID=0222060512)
exten => 0222060512,n,Goto(app-blackhole,hangup,1)
exten => s,1,Noop(No DID or CID Match)
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(ss-noservice)
exten => s,n,SayAlpha(${FROM_DID})
exten => _[*#X].,1,Set(FROM_DID=${EXTEN})
exten => _[*#X].,n,Noop(Received an unknown call with DID set to ${EXTEN})
exten => _[*#X].,n,Goto(ext-did,s,1)

; end of [ext-did]


[ext-did-direct]
include => ext-did-direct-custom
exten => fax,1,Goto(ext-fax,in_fax,1)

; end of [ext-did-direct]


[ext-local]
include => ext-local-custom
exten => 201,1,Macro(exten-vm,novm,201)
exten => 201,n,Hangup
exten => 201,hint,SIP/201
exten => 202,1,Macro(exten-vm,202,202)
exten => 202,n,Hangup
exten => 202,hint,SIP/202
exten => ${VM_PREFIX}202,1,Macro(vm,202,DIRECTDIAL)
exten => ${VM_PREFIX}202,n,Hangup
exten => 203,1,Macro(exten-vm,203,203)
exten => 203,n,Hangup
exten => 203,hint,SIP/203
exten => ${VM_PREFIX}203,1,Macro(vm,203,DIRECTDIAL)
exten => ${VM_PREFIX}203,n,Hangup

; end of [ext-local]


[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-9_outside
include => outrt-002-9_outside
exten => foo,1,Noop(bar)

; end of [outbound-allroutes]


[outrt-001-9_outside]
include => outrt-001-9_outside-custom
exten => _9.,1,Macro(dialout-trunk,2,${EXTEN:1},,)
exten => _9.,n,Macro(outisbusy,)

; end of [outrt-001-9_outside]


[outrt-002-9_outside]
include => outrt-002-9_outside-custom
exten => _9.,1,Macro(dialout-trunk,2,${EXTEN:1},,)
exten => _9.,n,Macro(dialout-trunk,2,${EXTEN:1},,)
exten => _9.,n,Macro(outisbusy,)

; end of [outrt-002-9_outside]
/code

sip_additional.conf :

[code]
; do not edit this file, this is an auto-generated file by freepbx
; all modifications must be done from the web gui
register=[******]:[******]@ippi.fr/0222060512]

[201]
type=friend
secret=12345
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=201@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/201
context=from-internal
canreinvite=no
callerid=device <201>

[202]
type=friend
secret=12345
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=202@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/202
context=from-internal
canreinvite=no
callerid=device <202>

[203]
type=friend
secret=12345
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=203@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/203
context=from-internal
canreinvite=no
callerid=device <203>

[from_ippi]
username=******
type=user
secret=******
qualify=no
fromuser=******
context=from-trunk
canreinvite=no
bandwidth=low

[ippi]
username=******
type=peer
secret=******
qualify=yes
insecure=very
host=ippi.fr
fromuser=******
fromdomain=ippi.fr
context=from-trunk
bandwidth=low
allow=g729
allow=ilbc
allow=ulaw
allow=alaw
/code

J'ai essayé diverses combinaisons comme 'context'=>'from-trunk' ou 'context'=>'dialout' avec ensuite le numéro de téléphone renseigné dans $number2 ( sans le 9 pour appeler à l'extérieur ou avec ).

Je ne sais plus quoi faire.

J'ai été voir le dialplan et en analysant ce qu'il se passait,
lors de mon appel avec mon softphone qui marche nickel :
[code]
-- Executing Macro("SIP/201-09ed54d8", "dialout-trunk|2|0000000000||") in ne w stack
-- Executing Set("SIP/201-09ed54d8", "DIAL_TRUNK=2") in new stack
-- Executing Set("SIP/201-09ed54d8", "_NODEST=") in new stack
-- Executing Set("SIP/201-09ed54d8", "DIAL_NUMBER=0000000000") in new stack
-- Executing Set("SIP/201-09ed54d8", "ROUTE_PASSWD=") in new stack
-- Executing Set("SIP/201-09ed54d8", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing GotoIf("SIP/201-09ed54d8", "1?noauth") in new stack
-- Goto (macro-dialout-trunk,s,8)
-- Executing Set("SIP/201-09ed54d8", "GROUP()=OUT_2") in new stack
-- Executing Macro("SIP/201-09ed54d8", "user-callerid|SKIPTTL") in new stack
-- Executing NoOp("SIP/201-09ed54d8", "user-callerid: device 201") in new st ack
-- Executing GotoIf("SIP/201-09ed54d8", "0?report") in new stack
-- Executing GotoIf("SIP/201-09ed54d8", "0?start") in new stack
-- Executing Set("SIP/201-09ed54d8", "REALCALLERIDNUM=201") in new stack
-- Executing NoOp("SIP/201-09ed54d8", "REALCALLERIDNUM is 201") in new stack
-- Executing Set("SIP/201-09ed54d8", "AMPUSER=201") in new stack
-- Executing Set("SIP/201-09ed54d8", "AMPUSERCIDNAME=Mikado") in new stack
-- Executing GotoIf("SIP/201-09ed54d8", "0?report") in new stack
-- Executing Set("SIP/201-09ed54d8", "CALLERID(all)=Mikado <201>") in new st ack
-- Executing Set("SIP/201-09ed54d8", "REALCALLERIDNUM=201") in new stack
-- Executing NoOp("SIP/201-09ed54d8", "TTL: ARG1: SKIPTTL") in new stack
-- Executing GotoIf("SIP/201-09ed54d8", "1?continue") in new stack
-- Goto (macro-user-callerid,s,21)
-- Executing NoOp("SIP/201-09ed54d8", "Using CallerID "Mikado" <201>") in ne w stack
-- Executing Macro("SIP/201-09ed54d8", "record-enable|201|OUT") in new stack
-- Executing GotoIf("SIP/201-09ed54d8", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing DeadAGI("SIP/201-09ed54d8", "recordingcheck|20080423-133543|120 8972143.9") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
/code

Maintenant j'ai mis comme context dans mon script "dialout-trunk" voici le code rendu :


[code]
> Channel SIP/201-09ed54d8 was answered.
== Starting SIP/201-09ed54d8 at dialout-trunk,XXXXXXXX,1 failed so falling back to exte n 's'
== Starting SIP/201-09ed54d8 at dialout-trunk,s,1 still failed so falling back to context 'default'
-- Executing Playback("SIP/201-09ed54d8", "vm-goodbye") in new stack
-- Playing 'vm-goodbye' (language 'en')
/code

Merci grandement d'avance, je ne sais plus quoi faire :-S
Répondre à Mopade  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Mopade, le mardi 29 avril 2008 à 14:52:34
Personne n'a une idée ? :S
Répondre à Mopade

Résultats pour Probleme Trixbox AGI PHP IPPI

[PHP] comparer en tant que String ? (Résolu) Bonjour à tous, j'ai un souci en php lorsqu'il s'agit de comparer deux variables, voilà le code : (...) $password = addslashes($_POST['password']); (...) $data_log = mysql_fetch_array($req_log); (...) if (... www.commentcamarche.net/forum/affich-2990588-php-comparer-en-tant-que-string
Erreur php : unexpected T_IF ? (Résolu) Bonjour, Je dois réaliser pour mon stage une application en php, il s'agit de generer un mot de passe automatique et d'envoyer un mail lorsqu'une personne a oublié le sien. J'en suis a faire la page de validation qui envoi le... www.commentcamarche.net/forum/affich-6728758-erreur-php-unexpected-t-if
Formulaire PHP Dynamique (Résolu) Bonjour à tous, Je rencontre un soucis pour construire un formulaire PHP dynamique. Il s'agit de deux listes déroulantes qui se suivent. La deuxième liste est construire par un select qui devrait dépende du choix fait dans la première liste.... www.commentcamarche.net/forum/affich-4111611-formulaire-php-dynamique

Résultats pour Probleme Trixbox AGI PHP IPPI

[Webmaster] Créer un forum sur son site facilementAvant tout, un forum est codé en général en PHP (ou autre langage permettant de construire dynamiquement des pages HTML, ASP, JPS, etc.), en effet il s'agit d'avoir une zone non-statique (le contenu change en fonction des participations) sur son site... www.commentcamarche.net/faq/sujet-107-webmaster-creer-un-forum-sur-son-site-facilement
[PHP] Upload de fichiersLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La... www.commentcamarche.net/faq/sujet-889-php-upload-de-fichiers
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';'Cette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple : www.commentcamarche.net/faq/sujet-869-php-parse-error-unexpected-t-string-expecting-or

Résultats pour Probleme Trixbox AGI PHP IPPI

PHP/MYSQL (Résolu)Bonjour, J'etais volantaire pour faire une petite app Web php/mysql pour mon ecole mais je ne savais que j'allait caler aussi vite... Il s'agit de creer des partenariats entre les etudiants pour des partages de fichiers ou messagerie...... www.commentcamarche.net/forum/affich-8680327-php-mysql
Mettre lien directement surune page en php (Résolu)Bonjour, Bonne année à tous . Je souhaite inclure un lien sur une page en PHP ,comment faire svp ? il s'agit de ma page partenaire (voir le lien page acceuil) cdt http://www.arnaudys.com Cette année, j'ai pris la résolution d'arrêter de... www.commentcamarche.net/forum/affich-4502364-mettre-lien-directement-surune-page-en-php
Récupérer fichier uploadé dans repertoire tmp (Résolu)Bonjour, Voila mon problème est le suivant . j'ai uploadé des fichiers sur un serveur php5 a la racine dans le document /tmp. Il s'agit de photos que je voudrais par la suite envoyé par mail. Cependant je n'arrive pas a récupéré les... www.commentcamarche.net/forum/affich-5884814-recuperer-fichier-uploade-dans-repertoire-tmp

Résultats pour Probleme Trixbox AGI PHP IPPI

Télécharger Notepad++Notepad + + est un éditeur de code source, qui supporte plusieurs langages de programmation: Ce projet, fondé sur la composante Scintilla (un très puissant éditeur de composant), écrit en C + + pur avec win32 api et STL (qui assure la plus grande... www.commentcamarche.net/telecharger/telecharger-34055333-notepad
Télécharger PHP EditPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des... www.commentcamarche.net/telecharger/telecharger-62-php-edit

Résultats pour Probleme Trixbox AGI PHP IPPI

PHP - Introduction à la programmation avec PHPQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La... www.commentcamarche.net/contents/php/phpintro.php3
PHP - Récupération de donnéesPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des... www.commentcamarche.net/contents/php/phpform.php3
PHP - Les fichiersLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier... www.commentcamarche.net/contents/php/phpfich.php3