Avec l’aide de la communauté et de nos experts : demandez des informations, trouvez des solutions et partagez des astuces sur les offres et applications Keyyo.


Poster une réponse 
 
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Envoi de SMS (côté serveur)
Envoi de SMS (côté serveur)
04/05/2016, 12:35
Message : #1
Bonjour,

J'ai suivi le Guide d'utilisation CTI / API / TAPI afin de mettre en place un envoi SMS automatisé avec authentification par IP source :

Code PHP :
$account "33123456789"//numéro Keyyo format international
$callee "0102030405"// numéro destinataire format international
$texte "Test";
$url="https://ssl.keyyo.com/sendsms.html?ACCOUNT=.$account."&CALLEE=".$callee."&MSG=".$texte;
$ch = curl_init();
curl_setopt(
$ch,CURLOPT_URL,$url);
curl_setopt(
$ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt(
$ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close(
$ch);
echo 
$data


J'ai bien paramétré le service de CTI sur la ligne Keyyo (configurer > paramètres avancés > CTI) en cochant l'option API Keyyo et en déclarant les 2 IP possibles du serveur (IPv4 et IPv6), sur lequel Curl est bien activé.

Cependant, impossible d'envoyer un SMS. L'echo affiche "You need to authenticate to use this function".
J'ai essayé avec et sans vérification du certificat SSL, sans changement.
Je l'ai lancée dans une tâche planifiée (cron), sans résultat.

Pour voir, j'ai aussi tenté de faire fonctionner le script avec une authentification HTTP DIGEST. L'echo a affiché "Invalid authentification!".
Enfin, j'ai fait un test avec le script d'appel voix qui m'a retourné "Error" (?)

Bref, j'ai fait ce qu'il fallait faire et tout vérifié, y compris tester le script sur le serveur d'un autre hébergeur (au cas où...),
alors pourquoi cette API ne fonctionne-t-elle pas ?

Merci de votre éclairage.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
18/05/2016, 08:10
Message : #2
Bon, étant toujours en attente d'une réponse du support technique 14 jours après avoir posté mon message, je donne une piste.

Je pense que le problème vient du fait que le fichier html "sendsms" (mais aussi "makecall") n'est plus correctement raccordé au manager depuis la refonte de celui-ci l'année dernière.
Le script ne serait donc pas en cause mais le chemin de requêtes vers le nouveau manager serait obsolète.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
19/05/2016, 14:12
Message : #3
Bonjour,


L'envoi de SMS se fait bien via cette url, l'authentification se fait cependant de deux façons (au choix) :

- Soit authentification de l'IP (via une expression régulière). En pratique, renseigner l'adresse IPv4 de votre serveur devrait suffire.

- Soit authentification via username / password. Dans ce cas en username vous devez renseigner le numéro de la ligne (format international 33123456789) et en mot de passe le mot de passe SIP de cette même ligne.

Pour faire des tests vous pouvez simplement vous servir de votre navigateur web, en renseignant l'url suivante :

Code :
https://ssl.keyyo.com/sendsms.html?ACCOUNT=33123456789&CALLEE=33612345789&MSG=test

Une fois que cela fonctionne, il suffit d'adapter le script PHP en conséquence.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
19/05/2016, 15:37
Message : #4
Bonjour,

Tout d'abord merci de bien avoir voulu répondre, mais j'ai déjà fait tout ce que vous écrivez, comme indiqué dans mon premier message...

D'autre part, je ne doute pas que l'url soit correcte, c'est celle de la doc.
Je vous reporte simplement que vos scripts ne fonctionnent pas, que ce soit par authentification par IP ou par mot de passe.

Soit le chemin d'accès à votre base de données est obsolète, soit une ou plusieurs colonnes ont été renommées ou déplacées, soit le nouveau manager n'enregistre plus les données saisies sur les mêmes colonnes qu'auparavant, soit une ou plusieurs requêtes SQL, ou autres, sont erronées, ou soit cela provient des opérations de vérification ( preg_match, password_verify etc.).

Bref, la solution se trouve dans le code source de vos fichiers, code auquel je n'ai malheureusement pas accès.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
24/05/2016, 14:38
Message : #5
Bonjour,

Nous avons corrigé le code car il manquait un guillemet après le = de ACCOUNT.

Code PHP :
<?php

$account 
"33123456789"//numéro Keyyo format international
$callee "0123456789"// numéro destinataire format international
$texte "Test";
$url="https://ssl.keyyo.com/sendsms.html?ACCOUNT=".$account."&CALLEE=".$callee."&MSG=".$texte;
$ch curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
$data curl_exec($ch);
curl_close($ch);
echo 
$data

?>

Après tests, l'envoi fonctionne. Les changements côté Manager sont également bien appliqués.

Si cela ne fonctionne toujours pas pour vous, nous vous invitons à ouvrir un incident auprès de notre support technique afin de vérifier le paramétrage de votre ligne.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
24/05/2016, 17:06
Message : #6
Exact, mais par habitude, j'avais corrigé de moi-même le code de l'API que j'utilise, donc ceci ne résout pas mon problème.
Le script fonctionne, certes, mais l'envoi de SMS ou les appels ne sont pas déclenchés, j'ai systématiquement un message retour d'erreur (cf. premier message).

Sinon, bonne idée, je vais demander à ce que le paramétrage de ma ligne soit vérifié.
A noter cependant que je suis venu sur le forum après avoir déjà déclaré un incident au service "Support & Technique", dont la réponse a été :
Citation :"Si vous souhaitez obtenir des informations complémentaires pour utiliser les API Keyyo, nous vous invitons à vous rendre sur le support technique depuis le forum..."
(sic)

Je vais donc réouvrir un ticket auprès de ceux qui m'ont redirigé ici... et je reviendrai poster le résultat.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
25/05/2016, 10:34
Message : #7
Bonjour,


Nous venons de vérifier sur votre ligne, actuellement votre configuration est du type :

Code :
ipv4 | ipv6 | ipv4

Ce regexp ne fonctionne effectivement pas en l'état, d'une part parce-que nous ne supportons pas encore l'IPv6 pour cette application, d'autre part à cause des espaces. Nous vous invitons à le corriger ainsi :

Code :
ipv4|ipv4

Une fois cette correction effectuée, l'API devrait fonctionner correctement.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
25/05/2016, 14:40
Message : #8
Bonjour,

J'ai effectué les modifications et fait différents tests, mais cela n'a rien changé.
Après lancement de l'API, la regexp semble bien s’exécuter sur le serveur Keyyo, mais retourne "You need to authenticate to use this function" (?).

Il n'est pas normal que la méthode ne reconnaisse pas l'IP enregistrée dans le manager (que je viens de revérifier à l'instant).
Même en renseignant une IP erronée, le message d'erreur reste identique.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
25/05/2016, 15:24
Message : #9
Bonjour,


Je viens d'effectuer le test avec votre ligne, en rajoutant une IP à votre regexp, avec succès.

Si vous continuez d'obtenir ce message, c'est que l'adresse IP source qui apparait chez nous lors de la requête ne correspond pas à l'adresse IP enregistrée via le Manager.

Sur le serveur à partir duquel vous envoyez la requête, pouvez-vous lancer la commande suivante :

Code :
wget http://ipinfo.io/ip -qO -

Cela vous renverra l'adresse IP qui est "vue" par le serveur distant qui reçoit votre requête.
Citer ce message dans une réponse
RE: Envoi de SMS (côté serveur)
26/05/2016, 09:19
Message : #10
Bonjour,

Pas de changement.

J'ai mis l'ip dédié, l'ip serveur vue à distance via curl, l'ip retournée par ping, l'ip retournée par un gethostbyname() sur le serveur, et enfin toutes les ip retournées par la fonction $_server, au cas où.
J'ai lancé l'API sur des postes Windows et Linux, sur mobile androïd, et par cron... sans résultat.
La regexp me demande toujours de m'identifier. Je pense donc que le problème est ailleurs.

Pour confirmer cela, si j'utilise l'authentification HTTP DIGEST, donc avec des éléments infaillibles (numéro de ligne et mot de passe SIP associé), le script retourne toujours "Invalid authentification!".
Enfin, je viens de m’apercevoir que, même en ayant activé les textos, je ne peux pas envoyer de SMS via l'application Keyyo sur mon mobile. L'option n'est pas proposée sur les contacts, et dans la fenêtre spécifique (4ème icône), il s'affiche "Aucun compte disponible pour les textos".

C'est comme si l'option SMS n'était pas activée sur ma ligne, en dépit de ce qu'indique le manager.
Citer ce message dans une réponse
Poster une réponse 


Aller à :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)

Contact | Keyyo | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS