Auteur Sujet: Téléphonie Siproxd et problème depuis aujourd'hui  (Lu 39122 fois)

0 Membres et 1 Invité sur ce sujet

jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #132 le: 28 septembre 2017 à 20:25:10 »
Je me demande, à la ligne :

Sep 28 11:32:40 pisip siproxd[10990]: 11:32:40.228 src/plugin_orange.c:416 ha1      = [͖xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]

les x sont des caratères hexadécimals, parceque moi j'ai des caractère bizarres et non imprimable.

letama

  • Abonné Orange Fibre
  • *
  • Messages: 71
  • Antibes (06600)
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #133 le: 28 septembre 2017 à 21:23:47 »
C'est normal oui, je n'ai pas fait la conversion hexa. Pas de soucis de ce côté.

Tu peux envoyer le log complet (anonyme autant que le mien, tout ce que j'ai viré est sensible) ?

Il faudrait passer aux captures avec un tcpdump -A -i ethxx port 5xxx sur tes ports d'entrée et sortie siproxd pour comprendre. Sinon, il y a l'histoire d'avoir orange-multimedia.fr dans le hosts qui pointent vers la machine siproxd, c'est peut-être ça ? Je n'ai pas souvenir d'en avoir eu besoin en connexion directe, mais c'est nécessaire pour asterisk.

jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #134 le: 28 septembre 2017 à 23:44:30 »
Déjà, pour le log :
Effectivement, entre 2 j'avais vu dans le source. J'ai transformé ça en hexa parce que j'avais des caractères qui était interprété par la console d'eclipse et ça mettait la zone.

J'ai 2 réseaux internes, 192.168.1.x pour la live box et un réseau 192.168.57.x en NAT vers 192.168.1.x. siproxd a l'air de bien comprendre qu'il faut faire l'interface entre les 2. J'ai aussi essayé en mettant host_outbound=mon ip publique, mais ça fait pareil.


jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #135 le: 29 septembre 2017 à 00:44:27 »
Bon, j'ai compris comment mettre les logs au max et il a y des dump des paquets.

Je reçois un paquet qui commence par "SIP/2.0 401 Unauthorized.....".  >:(

jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #136 le: 29 septembre 2017 à 01:14:41 »
Dans les paquets envoyés à orange, on voit que mon client n'est pas sur le réseau 192.168.1.x. Je suppose que je pourrais hacké siproxd pour masquer ça... mais probablement pas facile.

Bon, ben je crois que je suis parti pour installer Asterisk (il me semble que c'est ce que tu utilises). Asterix fera proxy entre mon client et siproxd !

Jamais fait ça, alors si c'est pas trop de boulot, je preneur de fichier de conf (je suppose que tu dois être dans une conf proche de la mienne). Anonymisé, bien sûr.

Marin

  • Client Bbox vdsl
  • Modérateur
  • *
  • Messages: 2 804
  • 73
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #137 le: 29 septembre 2017 à 14:11:19 »
Si quelqu'un a du temps à perdre, je fais remarquer à toutes fins utiles que la bibliothèque étendue par Orange (PJSIP) pour trafiquer l'implèmentation de MD5 est sous GPL, vous êtes en droit de demander les sources. Vous avez aussi légitimement obtenu cette information parce que votre motivation est l'interopérabilité.

Pour ce qui est des possibilités d'émuler le code ARM sous une plateforme x86 : si je devais résoudre le problème, j'utiliserais personnellement http://www.unicorn-engine.org/, un fork de QEMU détaché sous forme de bibliothèque qui permet très simplement d'émuler du code brut sous diverses architectures (en donnant en entrée un blob mémoire un point d'entrée et des registres, avec la possibilité de mettre des breakpoints (quand je dis « très simplement » ça implique que c'est au dev de s'occuper de parser l'ELF)). Je l'avais utilisé un peu pour reverser un DRM Android, très sympa.

letama

  • Abonné Orange Fibre
  • *
  • Messages: 71
  • Antibes (06600)
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #138 le: 29 septembre 2017 à 18:23:36 »
Dans les paquets envoyés à orange, on voit que mon client n'est pas sur le réseau 192.168.1.x. Je suppose que je pourrais hacké siproxd pour masquer ça... mais probablement pas facile.

A priori, si, c'est facile à régler, autorise ton réseau dans siproxd.conf:

Il y a ça

hosts_allow_reg = 192.168.1.0/24

Tu changes en :

hosts_allow_reg = 192.168.1.0/24,192.168.x.0/24
(attention, pas d'espaces entre les réseaux).

Quant à installer asterisk, c'est pas très compliqué, il y a des tutos qui trainent ici avec des pdfs détaillés. Regarde là: https://lafibre.info/remplacer-livebox/remplacer-livebox-le-telephone/312/, c'est le thread principal de téléphonie et les pdfs sont très bien faits.

letama

  • Abonné Orange Fibre
  • *
  • Messages: 71
  • Antibes (06600)
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #139 le: 29 septembre 2017 à 19:01:38 »
Si quelqu'un a du temps à perdre, je fais remarquer à toutes fins utiles que la bibliothèque étendue par Orange (PJSIP) pour trafiquer l'implèmentation de MD5 est sous GPL, vous êtes en droit de demander les sources. Vous avez aussi légitimement obtenu cette information parce que votre motivation est l'interopérabilité.

En fait ça ne passera surement pas, pjsip est sous double license. J'imagine qu'Orange a un deal pour la license propriétaire:

http://pjsip.org/licensing.htm

Ca ne coute rien d'essayer ceci dit.

Pour ce qui est des possibilités d'émuler le code ARM sous une plateforme x86 : si je devais résoudre le problème, j'utiliserais personnellement http://www.unicorn-engine.org/, un fork de QEMU détaché sous forme de bibliothèque qui permet très simplement d'émuler du code brut sous diverses architectures (en donnant en entrée un blob mémoire un point d'entrée et des registres, avec la possibilité de mettre des breakpoints (quand je dis « très simplement » ça implique que c'est au dev de s'occuper de parser l'ELF)). Je l'avais utilisé un peu pour reverser un DRM Android, très sympa.

Ca a l'air sympa comme engine! Ca représente un peu trop de travail pour moi, mais encore une fois, si quelqu'un veut se lancer et a besoin de détails, pas de soucis!

jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #140 le: 30 septembre 2017 à 11:31:42 »
Oui, le post de Marin est intéressant. Faudra regarder cet émulateur.

J'ai creusé une bonne partie de la journée hier. J'ai observé le trafic avec WireShark.
Apparemment, le principe c'est
  1 : envoyer un paquet REGISTER sans le champ Authorization.
  2 : le fournisseur SIP répond "SIP/2.0 401 Unauthorized" avec un champ WWW-Authenticate: Digest realm="orange-multimedia.fr", nonce="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", algorithm=MD5, qop="auth".
  3 : le client renvoi une demande REGISTER avec un champ Authorization. Dans le cas Orange : Authorization: Digest username="XXXXXXXXXX@orange-multimedia.fr", realm="orange-multimedia.fr", nonce="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", uri="sip:orange-multimedia.fr", response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", algorithm=MD5, cnonce="xxxxxxxxxxxxxxxxx", qop=auth, nc=00000002
  4 : et là, chez moi, réponse "SIP/2.0 500 CSCF Server Internal Error"

Une fois cette réponse, impossible de se connecter, même avec l'appli livebox phone, pour un certain temps. Je ne sais pas encore combien, quand c'est arrivé hier, j'ai arrêté pour la soirée.

Bref, ces petis coquin détecte quelque chose d'anormal et te punissent pour quelques heures, histoire que tu ne puisses pas faire beaucoup d'essais... A suivre.

letama

  • Abonné Orange Fibre
  • *
  • Messages: 71
  • Antibes (06600)
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #141 le: 30 septembre 2017 à 19:40:25 »
Oui, c'est la séquence normale, un register sans autorisation, un deny avec une demande d'autorisation, un deuxième register avec les informations de login.

Il me faudrait plus de logs pour comprendre ce qui se passe chez toi (siproxd full details et le tcpdump), mais pour t'aider à comparer, voilà la séquence capturée par un tcpdump sur mon raspberry:

# tcpdump -A -vvv port 5080
tcpdump: listening on enxb827eb95a8a0, link-type EN10MB (Ethernet), capture size 62144 bytes
19:08:20.119442 IP (tos 0x0, ttl 64, id 55340, offset 0, flags [DF], proto UDP (17), length 586)
    192.168.1.45.5570 > 81.253.172.179.5080: [bad udp cksum 0xc2cd -> 0xfac8!] UDP, length 558
E..J.,@.@......-Q........6..REGISTER sip:orange-multimedia.fr:5080 SIP/2.0
Via: SIP/2.0/UDP 90.xxx.xxx.xxx:5570;branch=xxxxxxxxxxx
Via: SIP/2.0/UDP 192.168.1.40:5060;branch=xxxxxxxxx
From: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxxxxx
To: <sip:+33xxxxxxxxx@orange-multimedia.fr>
Call-ID: randomhexa_randomhexa@orange-multimedia.fr
CSeq: 102 REGISTER
Contact: <sip:+33xxxxxxxxx@90.xxx.xxx.xxx:5570>
Max-forwards: 69
Supported: replaces
Supported: timer
User-agent: Asterisk PBX 13.9.1
Expires: 3600
Content-Length: 0


19:08:20.154919 IP (tos 0x0, ttl 122, id 0, offset 0, flags [none], proto UDP (17), length 588)
    81.253.172.179.5080 > 192.168.1.45.5570: [udp sum ok] UDP, length 560
E..L....z.~.Q......-.....8..SIP/2.0 401 Unauthorized 010300337
Via: SIP/2.0/UDP 90.xxx.xxx.xxx:5570;branch=xxxxxxxxxx
Via: SIP/2.0/UDP 192.168.1.40:5060;branch=xxxxxxxxxxxxxx
From: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxxxx
To: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxxxx
Call-ID: randomhexa_randomhexa@orange-multimedia.fr
CSeq: 102 REGISTER
Content-Length: 0
WWW-Authenticate: Digest nonce="xxxxxxxxxxxxxxxx",realm="orange-multimedia.fr",algorithm=MD5,qop="auth"


19:08:20.268779 IP (tos 0x0, ttl 64, id 55346, offset 0, flags [DF], proto UDP (17), length 858)
    192.168.1.45.5570 > 81.253.172.179.5080: [bad udp cksum 0xc3dd -> 0x5d0a!] UDP, length 830
E..Z.2@.@......-Q........F..REGISTER sip:orange-multimedia.fr:5080 SIP/2.0
Via: SIP/2.0/UDP 90.xxx.xxx.xxx:5570;branch=xxxxxxxxxx
Via: SIP/2.0/UDP 192.168.1.40:5060;branch=xxxxxxxxx
From: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxx
To: <sip:+33xxxxxxxxx@orange-multimedia.fr>
Call-ID: randomhexa_randomhexa@orange-multimedia.fr
CSeq: 103 REGISTER
Contact: <sip:+33xxxxxxxxx@90.xxx.xxx.xxx:5570>
Authorization: Digest username="FROM_PLUGIN@orange-multimedia.fr", realm="orange-multimedia.fr", nonce="xxxxxxxxxxxxxxxxxxxxxxxxxx", uri="sip:orange-multimedia.fr", response="hexafromplugin", algorithm=MD5, cnonce="xxxxxxx", qop=auth, nc=00000001
Max-forwards: 69
Supported: replaces
Supported: timer
User-agent: Asterisk PBX 13.9.1
Expires: 3600
Content-Length: 0


19:08:20.303883 IP (tos 0x0, ttl 122, id 0, offset 0, flags [none], proto UDP (17), length 844)
    81.253.172.179.5080 > 192.168.1.45.5570: [udp sum ok] UDP, length 816
E..L....z.}.Q......-.....8..SIP/2.0 200 OK
Via: SIP/2.0/UDP 90.xxx.xxx.xxx:5570;branch=xxxxxxxxxxx
Via: SIP/2.0/UDP 192.168.1.40:5060;branch=xxxxxxxxxxxxxx
From: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxxxxxxxx
To: <sip:+33xxxxxxxxx@orange-multimedia.fr>;tag=xxxxxxxxxxxxxx
Call-ID: randomhexa_randomhexa@orange-multimedia.fr
CSeq: 103 REGISTER
Content-Length: 0
Contact: <sip:+33xxxxxxxxx-xxxxxxxxxxx@81.253.173.54:5060;transport=udp>;expires=1452
Contact: <sip:+33xxxxxxxxx@90.xxx.xxx.xxx:5570>;expires=3600
P-Associated-URI: <sip:+33xxxxxxxxx@orange-multimedia.fr>
P-Associated-URI: <tel:+33xxxxxxxxx>
Authentication-Info: nextnonce="xxxxxxxxxxxxxxx",qop=auth,rspauth="xxxxxxxxxxxxxxxxx",cnonce="xxxxxxxxxxx",nc=00000001

Les points importants:

vérifie bien que tu as les bon From: et to: avec un @orange-multimedia.fr

Pour la ligne authorization envoyé par siproxd: ton username doit venir du plugin (l'impi), le realm doit bien être orange-multimedia.fr, l'uri doit correspondre aussi, sip:orange-multimedia.fr


jief

  • Abonné Orange adsl
  • *
  • Messages: 20
  • Thollon 74
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #142 le: 30 septembre 2017 à 20:11:25 »
Pour l'instant, tout à l'air de correspondre. J'ai poussé le vice, en hackant le proxy, à faire ressembler ma requête à celle que j'ai capturée capturée venant de LiveboxPhone (changer le user-agent, le max-forwards, etc).
C'est sympa de m'avoir envoyée ta requête, ça me permet de voir que ça doit passer, même si le User-agent n'est pas modifié, le Max-forwards n'est pas 70 etc.

Du coup, j'ai la même chose que toi.

Alors du coup, je me demande : est-ce que j'aurais un problème avec pjsip_auth_create_digest ?
Je me rends compte que chaque fois que je lance test_hybris, j'ai un résultat différent. Est-ce normal ? Je ne suis pas censé avoir "digest final:1e911e934077f322ae7bea91fe1f1ad1" à chaque fois ?

Ca pourrait être l'explication. La librairie que j'ai ne calcule pas le bon digest ???

letama

  • Abonné Orange Fibre
  • *
  • Messages: 71
  • Antibes (06600)
Téléphonie Siproxd et problème depuis aujourd'hui
« Réponse #143 le: 30 septembre 2017 à 20:51:27 »
Non, ça n'est pas normal effectivement, les données d'entrée ne changent pas, la sortie devrait toujours être la même.

Tu as pris une version différente de la dll pour tourner sur ton nas, c'est ça ?

*edit* uploade ta version peut-être, je regarderai si je trouve le temps...