Probleme - Trixbox - AGI - PHP - IPPI

Fermé
Mopade - 28 avril 2008 à 10:36
 Gabriel9 - 28 nov. 2010 à 12:52
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
A voir également:

3 réponses

Personne n'a une idée ? :S
0
Bonjour
je dois developper une interface comparable à ippi et j'ai besoin d un soft qui fonctionne
je suis sur paris
Daniel
0660884456
fffutur@gmail.com
0
Bonjour,

Je n'ai pas de réponse à votre question. Par contre je suis intéressé par votre remarque :

"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 installé x lite et j'ai une liste de numéro à appeler qui sont sur un fichier Excel. Est ce que vous savez comment je peux faire du click call depus excel ? ou alors importer mes contacts excels dans x-lite ?

Merci d'avance,

Gabriel
0