PDA

Voir la version complète : Asterisk et Free [Résolu]



Elwood
14/01/2011, 12h16
Bonjour,

J'ai installé Asterisk sur Ubuntu 10.10. J'ai configuré mon fichier sip.conf et extensions.conf pour le compte SIP de Free et créer 2 extensions pour tester.
J'ai suivi ce tuto : http://www.freephonie.org/doku/tutoriel:asterisk

Mes extensions peuvent s'appeler entre elle mais je n'ai pas d'appel externe. Comment savoir si la ligne SIP est bien connectée avec Free ? Pour voir s'il n'y a pas d'erreur particulière.

Merci d'avance.

Si par hasard vous connaissez un bon tuto simple pour faire marcher Asterisk sur Ubuntu avec un compte SIP je suis preneur... :ouimaitre::jap:

Elwood
14/01/2011, 12h48
Voici ce que j'ai pu trouvé :


*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
1002/1002 192.168.30.1 D N 63012 OK (120 ms)
1003/1003 192.168.30.19 D 27373 OK (1 ms)
freephonie-in 212.27.52.5 5060 OK (45 ms)
freephonie-out/09XXXXXXXX 212.27.52.5 N 5060 OK (38 ms)
4 sip peers [Monitored: 4 online, 0 offline Unmonitored: 0 online, 0 offline]

Mon fichier sip.conf :


[general]
defaultexpirey=1800
dtmfmode=auto
qualify=yes

register => mon_numero_telephone_freephonie:mon_mot_de_passe_f reephonie@freephonie.net
disallow=all
allow=ulaw
allow=alaw
allow=speex

[freephonie-out] ; on déclare le point d'accès SIP pour les appels sortants
type=peer
host=freephonie.net
username=mon_numero_telephone_freephonie
fromuser=mon_numero_telephone_freephonie
secret=mon_mot_de_passe_freephonie
nat=yes

[freephonie-in] ; Et pour les appels entrants
type=peer
context=fromfree
host=freephonie.net

[1002] ; on déclare le client SIP (par exemple pour connecter un softphone sur le PBX)
type=friend
username=1002
secret=1002
host=dynamic
context=maison
nat=yes ; je peux me connecter sur mon PBX depuis d'autres réseaux "nattés"

[1003] ; un autre client SIP
type=friend
username=1003
secret=1003
host=dynamic
context=maison


Mon fichier extensions.conf :


[maison] ; on déclare le contexte local qu'on a spécifié dans le sip.conf
; numéros "locaux"
exten => 1002,1,Dial(SIP/1002) ; quand on compose le 10, le softphone branché sur le lien "moi" sonnera
exten => 1003,1,Dial(SIP/1003) ; quand on compose le 11, le softphone branché sur le lien "toi" sonnera

; numéros externes
; quand on compose un numero qui commence par 9,on utilise le lien "freephonie"
;et on passe le numero au peer en ôtant le premier digit.

exten => _9.,1,Dial(SIP/freephonie-out/${EXTEN:1})
[fromfree] ; on déclare le contexte de reception d'appels depuis freephonie
exten => s,1,Dial(SIP/1002&SIP/1003)

; et on fait sonner les deux softphones, si on avait voulu faire sonner un seul client sip,
; on aurait écrit exten => s,1,Dial(SIP/moi)


Merci

ffossard
14/01/2011, 13h42
Tout d'abord, même si vous penserez peut-être que ça n'a pas d'importance, attention à la sécurité:
- vos comptes sont très facilement énumérables (1001, 1002, ...), et l'utilisation du numéro d'extension comme nom de compte vous apportera de la confusion dans le dialplan, je vous conseille de changer ça.
- vous ne semblez pas avoir mis de mot de passe aux comptes, il doit y'en avoir et il doivent être "forts" (ex: eGrger3ùÊ)
- les commentaires du nat=yes du téléphone 1002 laissent penser que vous avez redirigé dans le routeur le port 5060 vers votre Asterisk.
- vous êtes chez Free et avez peut-être une ip fixe, les robots de scan reviendront vous voir plus facilement encore.

Toutes les conditions sont réunies pour une utilisation frauduleuse de votre ipbx :)


Je n'ai pas paramétré de compte Free, mais là ça ne semble pas si mal, que dit la CLI lorsque vous tentez un appel vers un numéro ?(préfixé du "9" selon votre dialplan)

Sinon pour ubuntu rien de spécifique, Asterisk s'accorde très bien avec toutes les distributions. Vérifiez quand même si il y'a un pare-feu activé d'office dans Ubuntu, ça vous évitera de cherche dans Asterisk alors que le blocage vient d'ailleurs.

Elwood
14/01/2011, 14h45
Merci pour votre réponse rapide.


Tout d'abord, même si vous penserez peut-être que ça n'a pas d'importance, attention à la sécurité:
- vos comptes sont très facilement énumérables (1001, 1002, ...), et l'utilisation du numéro d'extension comme nom de compte vous apportera de la confusion dans le dialplan, je vous conseille de changer ça.
- vous ne semblez pas avoir mis de mot de passe aux comptes, il doit y'en avoir et il doivent être "forts" (ex: eGrger3ùÊ)
Je suis sur une plateforme de test pour l'instant, c'était surtout pour valider le fonctionnement de la ligne free en fait. Actuellement le mot de passe, le numéro de téléphone et l'identifiant sont identiques. Quand je passerai en prod je mettrais des vrais mots de passe et de vrais nom de compte.



- les commentaires du nat=yes du téléphone 1002 laissent penser que vous avez redirigé dans le routeur le port 5060 vers votre Asterisk.

En fait j'ai fait ça parce que mes utilisateurs se connecteront à Asterisk via internet. J'ai bon ?



Vérifiez quand même si il y'a un pare-feu activé d'office dans Ubuntu, ça vous évitera de cherche dans Asterisk alors que le blocage vient d'ailleurs.
Il faut ouvrir quels ports sur le parefeu pour que ça fonctionne ? J'ai ouvert le 5060, et du 10000 au 20000 comme précisé dans le tuto.


En essayant des bricoles je me suis aperçu de quelque chose. Quand je redémarre mon pc avec Asterisk, les appels extérieurs ne fonctionnent pas. Si j'arrête Asterisk et je le relance avec le paramètre -cvvv, je peux appeler vers l'extérieur. Ca fonctionne bien j'ai le son et tout. Quand de l'extérieur j'appelle, une ligne s'ajoute dans la console mais ça ne fonctionne pas :


== Using SIP RTP CoS mark 5
[Jan 14 13:44:33] WARNING[2093]: chan_sip.c:12671 check_auth: username mismatch, have <freephonie-out>, digest has <anonymous>
[Jan 14 13:44:33] NOTICE[2093]: chan_sip.c:19990 handle_request_invite: Failed to authenticate device "0466xxxxxx" <sip:0466xxxxxx@freephonie.net;user=phone>;tag=18688-ST-079c1997-339b32332


Pourquoi quand Asterisk démarre automatiquement ça ne fonctionne pas ?

Elwood
14/01/2011, 16h50
Bon j'ai tout désinstallé et j'ai suivi le tuto d'ici : http://www.asterisk-france.org/content.php/50-Installation-Asterisk-1.8-sur-Debian

Ensuite j'ai remis mon sip.conf et mon extensions.conf

[general]
defaultexpirey=1800
dtmfmode=auto
qualify=yes

register => mon_numero_telephone_freephonie:mon_mot_de_passe_f reephonie@freephonie.net
disallow=all
allow=ulaw
allow=alaw
allow=speex

[freephonie-out] ; on déclare le point d'accès SIP pour les appels sortants
type=peer
host=freephonie.net
username=mon_numero_telephone_freephonie
fromuser=mon_numero_telephone_freephonie
secret=mon_mot_de_passe_freephonie
nat=yes

[freephonie-in] ; Et pour les appels entrants
type=peer
context=fromfree
host=freephonie.net

[moi] ; on déclare le client SIP (par exemple pour connecter un softphone sur le PBX)
type=friend
username=moi
secret=moi
host=dynamic
context=maison
nat=yes ; je peux me connecter sur mon PBX depuis d'autres réseaux "nattés"

[toi] ; un autre client SIP
type=friend
username=toi
secret=toi
host=dynamic
context=maison



[maison] ; on déclare le contexte local qu'on a spécifié dans le sip.conf
; numéros "locaux"
exten => 10,1,Dial(SIP/moi) ; quand on compose le 10, le softphone branché sur le lien "moi" sonnera
exten => 11,1,Dial(SIP/toi) ; quand on compose le 11, le softphone branché sur le lien "toi" sonnera

; numéros externes
; quand on compose un numero qui commence par 9,on utilise le lien "freephonie"
;et on passe le numero au peer en ôtant le premier digit.

exten => _9.,1,Dial(SIP/freephonie-out/${EXTEN:1})
[fromfree] ; on déclare le contexte de reception d'appels depuis freephonie
exten => s,1,Dial(SIP/moi&SIP/toi)

; et on fait sonner les deux softphones, si on avait voulu faire sonner un seul client sip,
; on aurait écrit exten => s,1,Dial(SIP/moi)


J'ai compris le coup des identifiants et dialplans. J'ai laissé des mots de passe bidon pour que ça soit plus simple.

Les appels sortant fonctionnent, les appels internes fonctionnent. Les appels entrants ne fonctionnent pas. Quand j'appelle la ligne sur la console je vois ceci :

[Jan 14 16:02:41] WARNING[2148]: chan_sip.c:13413 check_auth: username mismatch, have <freephonie-out>, digest has <anonymous>
[Jan 14 16:02:41] NOTICE[2148]: chan_sip.c:21219 handle_request_invite: Failed to authenticate device "0466XXXXXX" <sip:0466XXXXXX@freephonie.net;user=phone>;tag=08932-BE-079f540d-7ed2d6674
[Jan 14 16:02:47] WARNING[2148]: chan_sip.c:3386 retrans_pkt: Retransmission timeout reached on transmission 08932-EN-079f540c-79f8b9431@freephonie.net for seqno 125102120 (Critical Response) -- See doc/sip-retransmit.txt.
Packet timed out after 6400ms with no response


Je continue de creuser

hb22
14/01/2011, 17h55
register => mon_numero_telephone_freephonie:mon_mot_de_passe_f reephonie@freephonie.net

register => 0950XXXXXX:mon_mot_de_passe_freephonie@freephonie. net/0950XXXXXX

Elwood
14/01/2011, 18h14
C'est bon j'ai trouvé ! Ca marche ! :D

Alors ça venait bien du sip.conf et extensions.conf


[general]
defaultexpirey=1800
dtmfmode=auto
qualify=yes

register => 09XXXXXXXX:YYYYYYY@freephonie.net
disallow=all
allow=ulaw
allow=alaw
allow=speex

[freephonie-out] ; on déclare le point d'accès SIP pour les appels sortants
type=peer
host=freephonie.net
username=09XXXXXXXX
fromuser=09XXXXXXXX
fromdomain=freephonie.net
secret=YYYYYYY
nat=yes
insecure=port,invite

[freephonie-in] ; Et pour les appels entrants
type=peer
context=fromfree
host=freephonie.net

[moi] ; on déclare le client SIP (par exemple pour connecter un softphone sur le PBX)
type=friend
username=moi
secret=moi
host=dynamic
context=maison
nat=yes ; je peux me connecter sur mon PBX depuis d'autres réseaux "nattés"

[toi] ; un autre client SIP
type=friend
username=toi
secret=toi
host=dynamic
context=maison



[maison] ; on déclare le contexte local qu'on a spécifié dans le sip.conf
; numéros "locaux"
exten => 10,1,Dial(SIP/moi) ; quand on compose le 10, le softphone branché sur le lien "moi" sonnera
exten => 11,1,Dial(SIP/toi) ; quand on compose le 11, le softphone branché sur le lien "toi" sonnera
exten => s,1,Dial(SIP/moi&SIP/toi)
; numéros externes
; quand on compose un numero qui commence par 9,on utilise le lien "freephonie"
;et on passe le numero au peer en ôtant le premier digit.

exten => _9.,1,Dial(SIP/freephonie-out/${EXTEN:1})

[default] ; on déclare le contexte de reception d'appels depuis freephonie
exten => s,1,Dial(SIP/moi&SIP/toi)

Je ne sais pas si c'est dangereux le default dans le fichier extensions.conf mais j'avais essayé le /09XXXXXXXX mais il disait toujours que le s n'existait pas dans le champs default donc je l'ai créé.

J'ai ajouté surtout le

insecure=port,invite