PDA

Voir la version complète : Problème de connexion socket Windev et Asterisk



overchip
20/01/2015, 13h35
Bonjour
je suis apprenti en développement informatique et mon entreprise me demande de faire une application de remonter de fiche contacte, pour cella je dois lié mon programme a mon serveur asterisk afin de récupérer les différents logs pour avoir les numéros de téléphone.
Pour cella j'ai fais un petit bout de code afin de me connecter je travaille sous windev 20 (ci-dessous)


asterisk_server est une chaîne = "192.168.112.238";
asterisk_manager_port est un entier = "5038";
asterisk_manager_user est une chaîne= "AppDWH";
asterisk_manager_pass est une chaîne = "XXX";
maligne est une chaîne


SI ( asterisk_server <> "" ) ALORS
SI PAS SocketConnecte("192.168.112.238", asterisk_manager_port,asterisk_server) ALORS
Erreur("erreur de connexion " + ErreurInfo(errMessage))
SINON
SocketChangeModeTransmission("192.168.112.238",SocketMarqueurFinBuffer,RC)
// Tentative de connexion au manager
SI PAS SocketEcrit("192.168.112.238","Action: Login") ALORS
Erreur(ErreurInfo(errCode))
FIN
SocketEcrit("192.168.112.238","UserName: " + asterisk_manager_user)
SocketEcrit("192.168.112.238","Events: on")
SocketEcrit("192.168.112.238","Secret " + asterisk_manager_pass + Caract(13) + Caract(10))
TANTQUE maligne <> " "
maligne = SocketLit("192.168.112.238",Vrai)
Trace(HeureSys() + " : " + maligne)


FIN

FIN

FIN

Donc voici pour mon code windev
Des que je lance mon code je vais sur mon serveur Asterisk et il me met le message suivant

[Jan 19 16:43:26] NOTICE[4080]: manager.c:1113 authenticate: 192.168.112.58 failed to authenticate as 'AppDWH'
== Connect attempt from '192.168.112.58' unable to authenticate

Paramètres de mon compte AppDWH sur mon serveur Asterisk

[AppDWH]
secret = XXX
permit=0.0.0.0/0.0.0.0
permit=192.168.112.58/255.255.255.0
permit=192.168.112.0/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,rep orting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,or iginate
displayconnects = yes



Je vous remercie d'avance de votre aide
Bien Cordialement
Un apprenti développeur qui ne demande qu'a Apprendre

jean
20/01/2015, 15h33
ben la bonne nouvelle, c'est que tes sockets marchent, c'est déjà ça....

erreur d'authentif, c'est clair.... il ne comprend pas le compte / mot de passe

- as tu fait un manager reload (voire un core reload) sur asterisk pour prendre en compte ton user ?
- je crois qu'il y a des histoires de retour à ligne à vérifier (format unix/windows)


aussi, dans la phase:
SocketEcrit("192.168.112.238","UserName: " + asterisk_manager_user)
SocketEcrit("192.168.112.238","Events: on")
SocketEcrit("192.168.112.238","Secret " + asterisk_manager_pass + Caract(13) + Caract(10))

il faut "consommer", ie lire, les réponses envoyées par asterisk - si les données en attente ne sont pas lues, elles s'accumulent, et à un certain point, asterisk coupe le socket