Téléphonie IP à la maison

 
 
 
 
Objectif :
Matériels :
Logiciels :
1- Configuration de la Freebox :
Pour cela à l'aide de votre navigateur préféré, rendez vous sur la page free  : http://subscribe.free.fr/login/
Identifier vous :

 

Pour accéder à votre compte, merci de saisir vos identifiants
Identifiant
Mot de passe
Puis faite le choix Téléphone, et Gestion de mon compte SIP :

 

Nom d'utilisateur
09XXXXXXXX
Identifiant
09XXXXXXXX
Mot de passe (minimum 10 caractères)
Domaine
freephonie.net
Rediriger les appels entrants vers le compte SIP
Rediriger les appels entrants vers la Freebox
Service activé
 
 
 
Créer un mot de passe avec un minimum de 10 caractères, le plus complexe possible (Majuscule, Minuscule, Chiffre et lettre)
Cocher Rediriger les appels entrants vers le compte SIP
Cocher Service activé, et Enregistrer.
Si vous utiliser votre Freebox en mode routeur, je vous conseille de mettre un adresse IP fixe, via le DHCP :
  
Baux DHCP permanents:
 
IP
Adresse MAC
 
192.168.
 
Choisissez une adresse IP (non utiliser, et hors de votre plage DHCP), et saisissez la MAC-adress de votre Téléphone.
Personnellement la plage de 1 à 5 est en fixe via DHCP, de 6 à 9 en fixe, paramétré directement sur les machines, et de 10 à 20, automatique.
On enregistre, et pour prendre en compte les paramètres, on reboot le Freebox.
 
2 - Configuration d'un serveur TFTP:
 
Passons à la configuration du serveur TFTP pour le chargement du Firmware.
Votre Téléphone est peut être déjà avec un Firmware SIP, mais il est peut être nécessaire de l'upgrader.
Ou s'il est en MGCP ou SCCP, obligation de le faire.
En toute état de cause, vous devez charger la config, donc vous n'y couperez pas, il vous faut un serveur tftp. 
Deux solutions :
 
Comme je possède un serveur FreeBSD, rien de plus facile.
Créez un répertoire de votre choix, ici tftpboot dans /home, avec les droits 775.
Dans le fichier inetd.conf, activez la ligne :
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /home/tftpboot
N’oubliez pas d'ouvrir le port de votre firewall (port 69)
Personnellement avec packet filter, seule l'adresse IP de mon téléphone est autorisée à utiliser le port 69 (Sécurité avant tous)
Du même coup, comme mon tftp sera permanant, je pourrais modifier les fichiers de configuration à ma guise.
 
3 - Configuration des Fichiers à Uploader:
 
Le package (trouvez sur le net) comporte les fichiers suivants :

 

OS79XX.TXT
Fichier de version
P003-08-2-00.bin
Firmware
P003-08-2-00.sbn
Firmware
P0S3-08-2-00.loads
Firmware
P0S3-08-2-00.sb2
Firmware
RINGLIST.DAT
Liste des sonneries
SIP<MAC>.cnf
Configuration du téléphone
SIPDefault.cnf
Configuration SIP par défaut
XMLDefault.cnf.xml
Configuration du chargement du Firmware
dialplan.xml
Plan de communication, pour crée ses raccourcis
ringer/
répertoire des sonneries
Un petit tour sur le fonctionnement :
Lorsque le téléphone boot, il va récupérer une adresse IP, puis regarder sur le serveur tftp s'il existe un fichier OS79XX.TXT
Ce fichier indique la version du Firmware. Si celle ci est différente de la version qui existe, il va charger la nouvelle version.
 
Puis les fichiers de configuration seront chargés à chaque reboot.
 
Seuls les fichiers SIP<MACADRESS>.cnf, SIPDefault.cnf, XMLDefault.cnf.xml et dialplan.xml sont à modifier. Regardons de plus près :
 
Renommer SIP<MACADRESS>.cnf, avec la MAC-adress de votre téléphone. Ce fichier est la personnalisation de votre téléphone, (et oui vous pouvez avoir plusieurs téléphone, avec un serveur asterisk)
A l'intérieur de ce fichier on va paramétrer le téléphone pour qu'il puisse émettre et recevoir des appels.
 
Pour alimenter le fichier SIP<MACADRESS>.cnf, , vous devez connaitre :

 

# SIP Configuration Generic File (start) # Phone Label (Text desired to be displayed in upper right corner) # Ici vous pouvez personnaliser l affichage en haut a droite
phone_label: "Cisco 7940G" ; Has no effect on SIP messaging
# Line 1 Settings FreePhonie
line1_name: "VOTRENOLIGNE" ; Line 1 Extension\User ID
line1_displayname: "VOTRENOLIGNE" ; Line 1 Display Name
line1_shortname: "VOTRENOLIGNE"
line1_authname: "VOTRENOLIGNE" ; Line 1 Registration Authentication
line1_password: "VotreMdPSIPFreePhonie" ; Line 1 Registration Password
# Proxy Server
proxy1_address: freephonie.net
proxy1_port: 5060
# Emergency Proxy info
#proxy_emergency: UNPROVISIONED
#proxy_emergency_port: 5060
# Backup Proxy info
proxy_backup: UNPROVISIONED
proxy_backup_port: 5060
# Outbound Proxy info
outbound_proxy: freephonie.net
outbound_proxy_port: 5060
# Proxy Registration (0-disable (default), 1-enable)
proxy_register: 1
# NAT/Firewall Traversal
nat_enable: 1
nat_address: "VOTREADRESSEIP"
voip_control_port: 5060
start_media_port: 16384
end_media_port: 16396
nat_received_processing: 0
 ATTENTION : si vous utilisez un firewall entre votre box et votre téléphone IP, pensez à ouvrir et redirigez les ports 5060, et la plage 16384 à 16384.
 
Jetons un œil dans le fichier SIPDefault.cnf :
 
Pour celui ci, vous devez connaitre :
·          La version de votre Firmware
·          Le codec utilisé, on prendra le g711ulaw
·          Votre adresse IP
·          Le N° raccourci d'accès à la messagerie vocal
 

 

# SIP Default Generic Configuration File 
# Image Version
image_version:  P0S3-8-2-00
# Proxy Server
proxy1_address: ""  ; Can be dotted IP or FQDN
proxy2_address: ""  ; Can be dotted IP or FQDN
proxy3_address: ""  ; Can be dotted IP or FQDN
proxy4_address: ""  ; Can be dotted IP or FQDN
proxy5_address: ""  ; Can be dotted IP or FQDN
proxy6_address: ""  ; Can be dotted IP or FQDN
# Proxy Server Port (default - 5060)
proxy1_port: 5060
proxy2_port: 5060
proxy3_port: 5060
proxy4_port:
proxy5_port:
proxy6_port:
# Proxy Registration (0-disable (default), 1-enable)
proxy_register: 0
# Phone Registration Expiration [1-3932100 sec] (Default - 3600)
# Pour Free utiliser un timer a 1800 sec
timer_register_expires: 1800
# Codec for media stream (g711ulaw (default), g711alaw, g729a)
preferred_codec: g711ulaw
# TOS bits in media stream [0-5] (Default - 5)
tos_media: 5
# Inband DTMF Settings (0-disable, 1-enable (default))
dtmf_inband: 1
# Out of band DTMF Settings (none-disable, avt-avt enable (default), avt_always - always avt )
dtmf_outofband: avt
# DTMF dB Level Settings (1-6dB down, 2-3db down, 3-nominal (default), 4-3db up, 5-6dB up)
dtmf_db_level: 3
# SIP Timers
timer_t1: 500    ; Default 500 msec
timer_t2: 4000    ; Default 4 sec
sip_retx: 10   ; Default 10
sip_invite_retx: 6   ; Default 6
timer_invite_expires: 180  ; Default 180 sec
####### New Parameters added in Release 2.0 #######
# Dialplan template (.xml format file relative to the TFTP root directory)
dial_template: dialplan
# TFTP Phone Specific Configuration File Directory
tftp_cfg_dir: ""  ; Example:  ./sip_phone/
# Time Server (There are multiple values and configurations refer to Admin Guide for Specifics)
# Ici on utilise un serveur de temps pour la date et l heure, avec passage heure ete et heure hiver automatique
sntp_server: 80.74.64.2                   ; SNTP Server IP Address
sntp_mode: directedbroadcast               ; unicast, multicast, anycast, or directedbroadcast (default)
time_zone: CET                             ; Time Zone Phone is in
dst_offset: 1                              ; Offset from Phone's time when DST is in effect
dst_start_month: March                     ; Month in which DST starts
dst_start_day: ""                          ; Day of month in which DST starts
dst_start_day_of_week: Sunday              ; Day of week in which DST starts
dst_start_week_of_month: 8                 ; Week of month in which DST starts
dst_start_time: 1                          ; Time of day in which DST starts
dst_stop_month: Oct                        ; Month in which DST stops
dst_stop_day: ""                           ; Day of month in which DST stops
dst_stop_day_of_week: Sunday               ; Day of week in which DST stops
dst_stop_week_of_month: 8                  ; Week of month in which DST stops 8=last week of month
dst_stop_time: 1                           ; Time of day in which DST stops
dst_auto_adjust: 1                         ; Enable(1-Default)/Disable(0) DST automatic adjustment
time_format_24hr: 1                        ; Enable(1 - 24Hr Default)/Disable(0 - 12Hr)
# Do Not Disturb Control (0-off, 1-on, 2-off with no user control, 3-on with no user control)
dnd_control: 0   ; Default 0 (Do Not Disturb feature is off)
# Caller ID Blocking (0-disbaled, 1-enabled, 2-disabled no user control, 3-enabled no user control)
callerid_blocking: 0  ; Default 0 (Disable sending all calls as anonymous)
# Anonymous Call Blocking (0-disabled, 1-enabled, 2-disabled no user control, 3-enabled no user control)
anonymous_call_block: 0  ; Default 0 (Disable blocking of anonymous calls)
# Call Waiting (0-disabled, 1-enabled, 2-disabled with no user control, 3-enabled with no user control)
call_waiting: 1                 ; Default 1 (Call Waiting enabled)
# DTMF AVT Payload (Dynamic payload range for AVT tones - 96-127)
dtmf_avt_payload: 101  ; Default 101
# Sync value of the phone used for remote reset 
sync: 1    ; Default 1
####### New Parameters added in Release 2.1 #######
# Backup Proxy Support
proxy_backup: ""  ; Dotted IP of Backup Proxy
proxy_backup_port: "" ; Backup Proxy port (default is 5060)
# Emergency Proxy Support
proxy_emergency: ""   ; Dotted IP of Emergency Proxy
proxy_emergency_port: "" ; Emergency Proxy port (default is 5060)
# Configurable VAD option
enable_vad: 0   ; VAD setting 0-disable (Default), 1-enable
####### New Parameters added in Release 2.2 ######
# NAT/Firewall Traversal
nat_enable: 1                   ; 0-Disabled (default), 1-Enabled
nat_address: "VOTREADRESSEIP"          ; WAN IP address of NAT box (dotted IP or DNS A record only)
voip_control_port: 5060       ; UDP port used for SIP messages (default - 5060)
start_media_port: 16384  ; Start RTP range for media (default - 16384)
end_media_port: 32766    ; End RTP range for media (default - 32766)
nat_received_processing: 0 ; 0-Disabled (default), 1-Enabled
# Outbound Proxy Support
outbound_proxy: ""   ; restricted to dotted IP or DNS A record only
outbound_proxy_port: 5060       ; default is 5060
####### New Parameter added in Release 3.0 #######
# Allow for the bridge on a 3way call to join remaining parties upon hangup
cnf_join_enable : 1  ; 0-Disabled, 1-Enabled (default)
####### New Parameters added in Release 3.1 #######
# Allow Transfer to be completed while target phone is still ringing
semi_attended_transfer: 1 ; 0-Disabled, 1-Enabled (default)
# Telnet Level (enable or disable the ability to telnet into the phone) 
telnet_level: 2   ; 0-Disabled (default), 1-Enabled, 2-Privileged
####### New Parameters added in Release 4.0 #######
# XML URLs
services_url: ""  ; URL for external Phone Services
directory_url: ""  ; URL for external Directory location
logo_url: ""   ; URL for branding logo to be used on phone display
# HTTP Proxy Support
http_proxy_addr: ""  ; Address of HTTP Proxy server
http_proxy_port: 3128  ; Port of HTTP Proxy Server (80-default)
# Dynamic DNS/TFTP Support
dyn_dns_addr_1: ""              ; restricted to dotted IP
dyn_dns_addr_2: ""              ; restricted to dotted IP
dyn_tftp_addr: ""               ; restricted to dotted IP
# Remote Party ID
remote_party_id: 0  ; 0-Disabled (default), 1-Enabled
####### New Parameters added in Release 4.4 #######
# Call Hold Ringback (0-off, 1-on, 2-off with no user control, 3-on with no user control)
call_hold_ringback: 0  ; Default 0 (Call Hold Ringback feature is off)
####### New Parameters added in Release 6.0 #######
# Dialtone Stutter for MWI 
stutter_msg_waiting: 0  ; 0-Disabled (default), 1-Enabled
# RTP Call Statistics (SIP BYE/200 OK message exchange)
call_stats: 0   ; 0-Disabled (default), 1-Enabled
# telnet & phone password
phone_password: cisco
# Setting for Message speeddial to UOne box
messages_uri: **1      ; Très utile pour acceder a votre messagerie vocal par le touche messages
#end of file
Le fichier XMLDefault.cnf.xml est utilisé pour la gestion du Firmware.
Les informations utiles sont :
·          L'adresse IP de votre serveur TFTP
·          Le model de votre téléphone
·          La version de Firmware à charger
 
<Default>  <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> </ports> <processNodeName>192.168.0.1</processNodeName> </callManager> </member> </members> </callManagerGroup> <loadInformation6 model="IP Phone 7910"></loadInformation6> <loadInformation124 model="Addon 7914"></loadInformation124> <loadInformation9 model="IP Phone 7935"></loadInformation9> <loadInformation8 model="IP Phone 7940">P0S3-8-2-00 </loadInformation8> <loadInformation7 model="IP Phone 7960">P0S3-8-2-00 </loadInformation7> <loadInformation20000 model="IP Phone 7905"></loadInformation20000> <loadInformation30008 model="IP Phone 7902"></loadInformation30008> <loadInformation30007 model="IP Phone 7912"></loadInformation30007> </Default>
 
IMPORTANT :
Lors de la préparation du fichier pour l'upgrade du Firmware, vous devez préciser la version de la façon suivant :
 
<loadInformation8 model="IP Phone 7940">P003-8-2-00 </loadInformation8>
 
Puis éditer à nouveau le fichier et modifier la version :
 
loadInformation8 model="IP Phone 7940">P0S3-8-2-00 </loadInformation8>
 
Un ultime reboot terminera la mise à jour du Firmware.
Le fichier dialplan.xml n'est pas forcement utile, mais il peut avoir un intérêt majeur.
Vous pouvez programmer un n° raccourci, par exemple si votre enfant tape 123, il appel directement votre téléphone portable.

 

<DIALTEMPLATE>     <TEMPLATE MATCH="*" Timeout="5"/>
    <TEMPLATE MATCH="123*" Timeout="2" User="Phone" Rewrite="0600000000" Tone="Bellcore-Alerting"/>
</DIALTEMPLATE>
 Enfin le fichier RINGLIST.DAT contient la liste des sonneries avec leurs emplacements sur le serveur TFTP :

 

Old Style ringer/old_style.pcm
Synth Low ringer/synth_low.pcm
Att1 ringer/ring_att1.pcm
Att2 ringer/ring_att2.pcm
Att3 ringer/ring_att3.pcm
Att4 ringer/ring_att4.pcm
Att5 ringer/ring_att5.pcm
Att6 ringer/ring_att6.pcm
Att7 ringer/ring_att7.pcm
Att8 ringer/ring_att8.pcm
Vous pouvez créer vos propres sonneries, je vous laisse le soin de regarder la documentation et les spécificités du format autorisé.
Il en va de même pour le logo, qui est personnalisable.
Vous pouvez aussi agrémenter la touche service par des applications en XML, ou créez un répertoire de contact hébergé sur un serveur, toujours en XML.
 
 
4 - Paramétrage du Téléphone pour récupérer les fichiers par tftp :
 
Dans un premier temps, on va procéder à la restauration des paramètres usine.
 
Votre serveur TFTP tourne, Le DHCP est prêt, vos fichiers sont configurés et déposés dans le répertoire qui va bien, alors on y va.
 
Branchez l'alimentation de votre téléphone, et maintenez la touche # enfoncé.
Celui-ci ca vous demander un code, tapez 123456789*0#.
Puis il va vous demander de garder ou effacer la configuration réseau. Tapez 2, on efface tout.
 
Votre téléphone reboot, mais il ne charge rien, c'est normal, il faut lui indiquer l'adresse du serveur TFTP.
 
Pour cela, il faut commencer par déverrouiller le téléphone.
 
Appuyez sur Settings, puis 9 Unlock config, saisissez le mot de passe cisco.
 
Puis retourner au menu précédant, et faite le choix 3 Networks configuration,
 
Descendez sur 32 Alternate TFTP , et validez sur Yes.
Remontez sur 7 TFTP Server, et saisissez l'adresse de votre serveur TFTP.
Enregistrer.
 
Débrancher et rebrancher le téléphone. Et on prie petit jésus pour que ca marche ;-)
Le firmware doit se mettre à jour.
 
Une fois terminée, dans le fichier XMLDefault.cnf.xml, modifier les lignes suivantes.
 
<loadInformation8 model="IP Phone 7940">P003-8-2-00 </loadInformation8>
 
En :
 
<loadInformation8 model="IP Phone 7940">P0S3-8-2-00 </loadInformation8>
 
Un dernier reboot, et votre téléphone IP est prêt.
 
Si tout s'est bien passé, vous devez pouvoir émettre et recevoir des appels sur votre téléphone IP.
 
Applications :
 
Sous FreeBSD, vous trouverez dans les ports openxmldir, une application web qui permet de gérer un annuaire, avec d'autres options, comme un memo.
Cette application nécessite un serveur web (apache + php + mysql) avec les modules PCRE et CURL.
Cette application est aussi disponible via le site : http://web.csma.biz/apps/xml_xmldir.php
 
Astuces :
 
Pour rebooter votre téléphone sans le débrancher, appuyer sur  * + 6 + settings , simultanément.
 
 
Liens complémentaires :
 
http://www.queret.net/blog/post/2006/06/07/30-freebox-freephonie-sip-et-cisco-ip-phone-7940g
http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+79xx
http://web.csma.biz/apps/xml_xmldir.php
http://sourceforge.net/projects/open79xxdir/
http://www.mariemarthe.com/?p=7
http://www.cisco.com/pcgi-bin/tablebuild.pl/sip-ip-phone7960
http://www.queret.net/blog/index.php/2007/12/19/107-sip-cisco-7960-mise-a-jours-du-firmware
http://web.csma.biz/apps/xml_xmldir.php
http://www.infradapt.com/csma_apps/xml_xmldir.php
http://www.fonality.com/trixbox/forums/vendor-specific-unmoderated/linksys-cisco/open-79xx-xml-directory
 
Conclusion :
 
Avec un peu de bon sens, de recherche, de lecture de documentation, et à force d'essayer, on fini par y arriver.

--------------------
FOURNIER Ghislain
10270 COURTERANGES
  - Janvier 2010 -
--------------------