Ga naar de inhoud
Home » VoIP Linksys SPA942 Instellingen

VoIP Linksys SPA942 Instellingen

Je kunt de instellingen van een SPA942 downloaden via

wget http://192.168.2.92/admin/spacfg.xml

Hier is 192.168.2.92 het ip adres van de telefoon, maar je kunt ook de hostnaam van je telefoon gebruiken.

Nu kun je het bestand eventueel aanpassen. Plaats het aangepaste bestand in de root van je tftp server. Hierna kun je met het volgende commando de xml weer uploaden en actief maken:

lynx http://192.168.2.92/admin/resync?tftp://192.168.2.90/<naam-aangepaste-bestand>.xml

Hier is 192.168.2.92 het ip adres van de telefoon (je kunt ook de hostnaam van de telefoon gebruiken) en 192.168.2.90 de naam van de tftp server.

Helemaal onder aan vindt je nog een scriptje die je het leven makkelijker kan maken.

Dictionary Server

Hey UI van de telefoon kan diverse talen spreken, dit doe je door een dictionary server te definiëren:

The Dictionary Server Script defines the location of the dictionary server, the languages available and the associated dictionary. The syntax is as follows:

Dictionary_Server_Script ua="na"/Dictionary_Server_Script

Defaults to blank; the maximum number of characters is 512. The detailed format is as follows:

serv={server ip port and root path};
d0=language0;x0=dictionary0 filename;
d1=language1;x1=dictionary1 filename;
d2=language2;x2=dictionary2 filename;
d3=language3;x3=dictionary3 filename;
d4=language4;x4=dictionary4 filename;
d5=language5;x5=dictionary5 filename;
d6=language6;x6=dictionary6 filename;
d7=language3;x7=dictionary7 filename;
d8=language8;x8=dictionary8 filename;
d9=language5;x9=dictionary9 filename;

Voorbeeld:

Dictionary_Server_Script ua="na" serv=tftp://192.168.2.90/ ;d0=English;x0=enS_v101.xml;d1=Spanish;x1=esS_v101.xml /Dictionary_Server_Script

Dit vindt je terug in het tabblad Regional, helemaal onderaan onder het kopje Miscellaneous (zie hieronder in de afbeeldingen). Login als admin met de setting op advanced.

Telefoon instellingen via het webinterface

 

SIP

Provisioning

Regional

Phone

Ext1 … Ext4

User


Uitlezen via een script

Uitlezen via een script kan ook, hier een voorbeeld (zonder al te veel documentatie, lees de code LOL)

#!/bin/bash 
VERBOSE=false 
SPAPROFILE2READ="http://PHONEHOSTNAME/admin/spacfg.xml" 
SPAPROFILE2WRITE="http://PHONEHOSTNAME/admin/resync?tftp://192.168.2.90/PHONEHOSTNAME-spacfg.xml" 
ALLSPA="voip-praktijk voip-kantoor voip-zolder" 
SPA="" 
DOMAIN="thuis.net" 
PROVISIONINGDIR="/home/asterisk/provisioning" 
TFTPDIR=/srv/tftpA 
DATE=$(date --iso-8601=seconds) 
LOGFILE=/tmp/SPA$$ 

# 
# Error informatie 
# 
show_error () 
{ 
   echo "Onbekende optie of onvolledige commando regel."; 
} 


# 
# Het afhandelen van alle opties op de commando regel 
# 
# opties met argument is bv a: ipv a en heeft shift 2 ipv shift 
# 
OPTIONS=$(getopt --options f:rwv --longoptions read,write,filesystem: -- "$@") 
RC=$? 

if [ "$RC" != "0" ]; then 
{ 
 show_error 
 exit 1 
} 
fi 

eval set -- "${OPTIONS}" 
while true 
do 
   case "$1" in 
   -v )  
                      VERBOSE=true 
                      shift 
                      ;; 
   -r | --read)  
                      ACTION="read" 
                      shift 
                      ;; 
   -w | --write)  
                      ACTION="write" 
                      shift 
                      ;; 
   -f | --filesystem) shift 
                      FILESYSTEMS="${FILESYSTEMS} ${1}" 
                      ;; 
   --)                shift 
                      break  
                      ;; 
   *)                 show_error 
                      exit 1 
                      ;; 
   esac 
done 

# 
# are there any devices listed 
# 
PHONES=$@ 
if [ "${PHONES}" = "" ] ; then 
{ 
 echo No devices given 
 exit 1 
} 
fi 

# 
# device all means all kwown devices 
# 
for PHONE in ${PHONES} 
do 
 if [ "${PHONE}" = "all" ] ; then 
 { 
   SPA=$(echo ${SPA} ${ALLSPA}) 
 } 
 else 
 {  
   SPA=$(echo ${SPA} ${PHONE}) 
 } 
 fi 
done 

# 
# lets rock and roll 
# 
cd "${PROVISIONINGDIR}" 
for PHONE in ${SPA}  
do 
 # remove logfile if it already exists 
 rm -f ${LOGFILE} 2>/dev/null 1>/dev/null 
 echo -n "Working on ${PHONE} " 
 case "${ACTION}" in 
 "read") 
         if ${VERBOSE} ; then 
           echo "ping -4 -c 1 ${PHONE}.${DOMAIN}" 
         fi 
         ping -4 -c 1 ${PHONE}.${DOMAIN} 2>/dev/null 1>/dev/null 
         RC=$? 
         if [ ${RC} -ne 0 ] ; then 
         { 
           echo "Cannot connect" 
         } 
         else 
         { 
           PFILE=$(echo ${SPAPROFILE2READ} | sed -e s/PHONEHOSTNAME/${PHONE}/) 
           if ${VERBOSE} ; then 
             echo "wget --output-document=${PHONE}-spacfg.xml ${PFILE}" 
           fi 
           wget --output-document=${PHONE}-spacfg.xml ${PFILE}  2>${LOGFILE} 1>${LOGFILE} 
           RC=$? 
           if [ ${RC} -ne 0 ] ; then 
           { 
              echo "Something went wrong" 
              cat ${LOGFILE} 
           } 
           else 
           { 
              cp ${PHONE}-spacfg.xml ${PHONE}-spacfg.xml-${DATE} 
              echo "Done" 
           } 
           fi 
         } 
         fi 
         ;; 
 "write") 
         if ${VERBOSE} ; then 
           echo "ping -4 -c 1 ${PHONE}.${DOMAIN}" 
         fi 
         ping -4 -c 1 ${PHONE}.${DOMAIN} 2>/dev/null 1>/dev/null 
         RC=$? 
         if [ ${RC} -ne 0 ] ; then 
         { 
           echo "Cannot connect" 
         } 
         else 
         { 
           PFILE2WRITE=$(echo ${SPAPROFILE2WRITE} | sed -e s/PHONEHOSTNAME/${PHONE}/g) 
           if ${VERBOSE} ; then 
           { 
             echo "sudo rm -f  ${TFTPDIR}/${PHONE}-spacfg.xml" 
             echo "sudo cp ${PHONE}-spacfg.xml ${TFTPDIR}" 
             echo "lynx -dump ${PFILE2WRITE}" 
           } 
           fi 
           sudo rm -f  ${TFTPDIR}/${PHONE}-spacfg.xml 
           sudo cp ${PHONE}-spacfg.xml ${TFTPDIR} 
           lynx -dump ${PFILE2WRITE} 2>${LOGFILE} 1>${LOGFILE} 
           RC=$? 
           if [ ${RC} -ne 0 ] ; then 
           { 
              echo "Something went wrong" 
              cat ${LOGFILE} 
           } 
           else 
           { 
              echo "Done, message returned from ${PHONE} is" 
              cat ${LOGFILE} 
              echo " " 
              echo "Login on http://${PHONE}/basic Goto tap Ext 1 and update the Password under Subscriber information!" 
           } 
           fi 
         } 
         fi 
         ;; 
 *) 
         echo "Geen idee wat je wilt ... " 
         ;; 
 esac 
done 

rm -f ${LOGFILE} 

exit 0

Kan altijd mooier en beter …