Entrada
Un día, a dirección aprobou un experimento para introducir a telefonía IP na nosa oficina. Dado que a miña experiencia neste campo foi escasa, a tarefa espertou en min moito interese e mergulleime a estudar diversos aspectos do tema. Ao final da inmersión, decidín compartir os coñecementos adquiridos coa esperanza de que fosen útiles para alguén. Entón…
Datos iniciais
Asterisk foi seleccionado e implantado como unha central IP PBX. A flota de teléfonos está formada por dispositivos Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 e Dlink DPH-150S(E)/F3, Yealink T19 e T21. Esta variación débese a que como parte do experimento, decidiuse probar un pouco de todo para formarse unha opinión sobre a relación prezo/calidade/comodidade.
Tarefa
Simplifica e unifica o proceso de configuración de novos dispositivos na medida do posible. Todos os teléfonos deben estar sincronizados co tempo, ter unha axenda telefónica cargada desde o servidor e proporcionar acceso á configuración para o administrador.
A solución a este problema é sinxela: implementar a configuración automática dos teléfonos, os chamados. Aprovisionamento. De feito, comentarase a miña implementación desta marabillosa función.
Configurando tftpd,dhcpd
Para distribuír a configuración nos teléfonos, escollín tftp como opción universal, compatible con todas as plataformas, fácil de configurar e xestionar.
Non se requiriu ningunha configuración específica para tftp. Instalei tftpd estándar e coloquei todos os ficheiros necesarios no seu directorio raíz.
Coloquei os ficheiros de configuración en directorios segundo o fabricante do teléfono. É certo que o dispositivo Cisco nunca entrou no seu cartafol, polo que tiven que almacenalo na súa raíz.
Para apuntar os teléfonos á localización do servidor tftp, usei a opción-66. Ademais, dividiunos en clases separadas por fabricante. Cada clase recibiu o seu propio segmento de enderezos e un cartafol individual para os ficheiros de configuración. Por certo, os dispositivos de D-link tiveron que ser calculados por enderezos MAC, xa que non proporcionan información sobre o fabricante na solicitude dhcp.
Fragmento dhcpd.conf
# Especifique as opcións necesarias opción opción-66 código 66 = texto; class "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; opción opción-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Teléfono IP de Cisco Systems, Inc. CP-7906"; opción opción-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (option vendor-class-identifier,0,11) = "Grandstream"; opción opción-66 "10.1.1.50/grandstream/"; } clase "dlink" { match if (binario a ascii (16,8,":",subcadea (hardware,1,4)) = "c8:d3:a3:8d") ou (binario a ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72"); opción opción-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (option vendor-class-identifier,0,7) = "Yealink"; opción opción-66 "10.1.1.50/yealink/"; }
Os teléfonos tiveron que ser excluídos pola forza da piscina xeral. En caso contrario, non querían ir á súa "piscina".
Exemplo de configuración de subrede
subrede 10.1.1.0 máscara de rede 255.255.255.0 { opción routers 10.1.1.1; pool { deny membros de "cisco"; negar membros de "panasonic"; denegar membros de "dlink"; rango 10.1.1.230 10.1.1.240; } pool { permitir que os membros de "cisco"; rango 10.1.1.65 10.1.1.69; } pool { permitir que os membros de "panasonic"; rango 10.1.1.60 10.1.1.64; } pool { permitir que os membros de "dlink"; rango 10.1.1.55 10.1.1.59; } }
Despois de reiniciar todos os servizos implicados, os teléfonos dirixíronse con confianza ao servidor tftp asignado para a configuración. Só queda colocalos alí.
Cisco 7906
Recibín estes dispositivos na súa embalaxe orixinal. Tiven que cambialo para facer amizade con asterisco. Pero esa é unha historia diferente. Nun caso concreto, para configurar o dispositivo, segundo as instrucións, creei o ficheiro SEPAABBCCDDEEFF.cnf.xml na raíz do servidor tftp. Onde AABBCCDDEEFF é o enderezo MAC do dispositivo.
Xa se escribiu máis dunha vez sobre a configuración de teléfonos de Cisco, polo que deixarei un ficheiro de traballo coa configuración.
Configuración para Cisco
<?xml version="1.0" encoding="UTF-8"?> <device xsi_type="axl:XIPPhone" ctiid="94"> <fullConfig>true</fullConfig> <deviceProtocol>SIP</deviceProtocol> <sshUserId>root</sshUserId> <sshPassword>ADMIN_PWD</sshPassword> <devicePool> <dateTimeSetting> <dateTemplate>D-M-Y</dateTemplate> <timeZone>Central Pacific Standard Time</timeZone> <ntps> <ntp> <name>10.1.1.4</name> <ntpMode>Unicast</ntpMode> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <members> <member priority="0"> <callManager> <name>10.1.1.50</name> <ports> <ethernetPhonePort>2000</ethernetPhonePort> <sipPort>5060</sipPort> <securedSipPort>5061</securedSipPort> </ports> <processNodeName>10.1.1.50</processNodeName> </callManager> </member> </members> </callManagerGroup> <srstInfo> <srstOption>Disable</srstOption> </srstInfo> <connectionMonitorDuration>120</connectionMonitorDuration> </devicePool> <sipProfile> <sipCallFeatures> <cnfJoinEnabled>true</cnfJoinEnabled> <callForwardURI>x-cisco-serviceuri-cfwdall</callForwardURI> <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI> <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI> <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI> <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI> <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI> <rfc2543Hold>false</rfc2543Hold> <callHoldRingback>2</callHoldRingback> <localCfwdEnable>true</localCfwdEnable> <semiAttendedTransfer>true</semiAttendedTransfer> <anonymousCallBlock>2</anonymousCallBlock> <callerIdBlocking>2</callerIdBlocking> <dndControl>0</dndControl> <remoteCcEnable>true</remoteCcEnable> <retainForwardInformation>false</retainForwardInformation> </sipCallFeatures> <sipStack> <sipInviteRetx>6</sipInviteRetx> <sipRetx>10</sipRetx> <timerInviteExpires>180</timerInviteExpires> <timerRegisterExpires>3600</timerRegisterExpires> <timerRegisterDelta>5</timerRegisterDelta> <timerKeepAliveExpires>120</timerKeepAliveExpires> <timerSubscribeExpires>120</timerSubscribeExpires> <timerSubscribeDelta>5</timerSubscribeDelta> <timerT1>500</timerT1> <timerT2>4000</timerT2> <maxRedirects>70</maxRedirects> <remotePartyID>true</remotePartyID> <userInfo>None</userInfo> </sipStack> <autoAnswerTimer>1</autoAnswerTimer> <autoAnswerAltBehavior>false</autoAnswerAltBehavior> <autoAnswerOverride>true</autoAnswerOverride> <transferOnhookEnabled>false</transferOnhookEnabled> <enableVad>false</enableVad> <preferredCodec>none</preferredCodec> <dtmfAvtPayload>101</dtmfAvtPayload> <dtmfDbLevel>3</dtmfDbLevel> <dtmfOutofBand>avt</dtmfOutofBand> <kpml>3</kpml> <alwaysUsePrimeLine>false</alwaysUsePrimeLine> <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail> <phoneLabel>Cisco Phone</phoneLabel> <stutterMsgWaiting>2</stutterMsgWaiting> <callStats>false</callStats> <offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer> <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts> <disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig> <poundEndOfDial>false</poundEndOfDial> <startMediaPort>16384</startMediaPort> <stopMediaPort>32766</stopMediaPort> <sipLines> <line button="1" lineIndex="1"> <featureID>9</featureID> <proxy>10.1.1.50</proxy> <port>5060</port> <autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer> <callWaiting>3</callWaiting> <sharedLine>false</sharedLine> <messageWaitingLampPolicy>3</messageWaitingLampPolicy> <messagesNumber></messagesNumber> <ringSettingIdle>4</ringSettingIdle> <ringSettingActive>5</ringSettingActive> <forwardCallInfoDisplay> <callerName>true</callerName> <callerNumber>true</callerNumber> <redirectedNumber>false</redirectedNumber> <dialedNumber>true</dialedNumber> </forwardCallInfoDisplay> <featureLabel></featureLabel> <displayName>User #103</displayName> <name>103</name> <authName>103</authName> <authPassword>SIP_PWD</authPassword> </line> </sipLines> <externalNumberMask>$num</externalNumberMask> <voipControlPort>5060</voipControlPort> <dscpForAudio>184</dscpForAudio> <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy> <dialTemplate>dialplan.xml</dialTemplate> </sipProfile> <commonProfile> <phonePassword>*0#</phonePassword> <backgroundImageAccess>true</backgroundImageAccess> <callLogBlfEnabled>2</callLogBlfEnabled> </commonProfile> <loadInformation></loadInformation> <vendorConfig> <disableSpeaker>false</disableSpeaker> <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> <forwardingDelay>1</forwardingDelay> <pcPort>0</pcPort> <settingsAccess>1</settingsAccess> <garp>0</garp> <voiceVlanAccess>0</voiceVlanAccess> <videoCapability>0</videoCapability> <autoSelectLineEnable>1</autoSelectLineEnable> <webAccess>0</webAccess> <daysDisplayNotActive>1,7</daysDisplayNotActive> <displayOnTime>09:00</displayOnTime> <displayOnDuration>12:00</displayOnDuration> <displayIdleTimeout>01:00</displayIdleTimeout> <spanToPCPort>1</spanToPCPort> <loggingDisplay>2</loggingDisplay> <loadServer>10.1.1.50</loadServer> <recordingTone>0</recordingTone> <recordingToneLocalVolume>100</recordingToneLocalVolume> <recordingToneRemoteVolume>50</recordingToneRemoteVolume> <recordingToneDuration></recordingToneDuration> <displayOnWhenIncomingCall>0</displayOnWhenIncomingCall> <rtcp>0</rtcp> <moreKeyReversionTimer>5</moreKeyReversionTimer> <autoCallSelect>1</autoCallSelect> <logServer>10.1.1.50</logServer> <g722CodecSupport>0</g722CodecSupport> <headsetWidebandUIControl>0</headsetWidebandUIControl> <handsetWidebandUIControl>0</handsetWidebandUIControl> <headsetWidebandEnable>0</headsetWidebandEnable> <handsetWidebandEnable>0</handsetWidebandEnable> <peerFirmwareSharing>0</peerFirmwareSharing> <enableCdpSwPort>1</enableCdpSwPort> <enableCdpPcPort>1</enableCdpPcPort> </vendorConfig> <versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp> <userLocale> <name>Russian_Russian_Federation</name> <langCode>ru_RU</langCode> <version></version> <winCharSet>utf-8</winCharSet> </userLocale> <networkLocale></networkLocale> <networkLocaleInfo> <name></name> <version></version> </networkLocaleInfo> <deviceSecurityMode>1</deviceSecurityMode> <idleTimeout>0</idleTimeout> <authenticationURL></authenticationURL> <directoryURL>http://10.1.1.50/provisioning/cisco-services.xml</directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL>http://10.1.1.50/provisioning/cisco-services.xml</servicesURL> <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig> <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices> <dscpForCm2Dvce>96</dscpForCm2Dvce> <transportLayerProtocol>2</transportLayerProtocol> <singleButtonBarge>0</singleButtonBarge> <capfAuthMode>0</capfAuthMode> <capfList><capf> <phonePort>3804</phonePort> <!-- <processNodeName>10.1.1.50</processNodeName> --> </capf> </capfList> <certHash></certHash> <encrConfig>false</encrConfig> <advertiseG722Codec>1</advertiseG722Codec> </device>
D-Link DPH-150S/F3
Se estás a piques de comprar un teléfono desta serie, ten coidado, a sintonización automática só é compatible con dispositivos 150S/F3. No dispositivo 150S/F2 que chegou ás miñas mans, non atopei tal funcionalidade.
O ficheiro de configuración pode estar en formato xml ou texto plano. Hai un requisito para xml: a etiqueta debe estar ao principio da liña, se non, o analizador ignoraraa e o valor do parámetro correspondente non cambiará.
Utilízanse dous ficheiros para configurar o teléfono. f0D00580000.cfg: para almacenar a configuración de todos os teléfonos e 00112233aabb.cfg (enderezo MAC en minúscula) para a configuración individual. As configuracións individuais teñen, naturalmente, maior prioridade.
O conxunto completo de configuracións contén máis de mil liñas, para non desordenar o artigo, describirei o conxunto mínimo de configuracións suficientes.
O nodo raíz é necesario VOIP_CONFIG_FILE e o nodo aniñado nel versión. A configuración aplicarase só se a versión do ficheiro é superior á configuración actual do dispositivo. Podes coñecer este valor a través da interface web do teléfono na sección de mantemento (xestión do sistema). Para os teléfonos con configuración de fábrica, en ambos os casos é 2.0002. Ademais, a versión do ficheiro individual debe ser superior á versión do ficheiro compartido.
Primeiro proporcionarei un ficheiro cunha configuración común para todos os teléfonos. De feito, almacena todos os axustes; o ficheiro individual só será responsable do número de teléfono e da inscrición na pantalla.
Nos dous bloques seguintes, establécense o fuso horario e os parámetros de sincronización horaria, o porto inicial para RTP e a ponte de rede entre os conectores WAN e LAN do dispositivo está habilitado.
Fragmento no 1
<GLOBAL_CONFIG_MODULE> <WAN_Mode>DHCP</WAN_Mode> <Default_Protocol>2</Default_Protocol> <Enable_DHCP>1</Enable_DHCP> <DHCP_Auto_DNS>1</DHCP_Auto_DNS> <DHCP_Auto_Time>0</DHCP_Auto_Time> <Host_Name>VOIP</Host_Name> <RTP_Initial_Port>10000</RTP_Initial_Port> <RTP_Port_Quantity>200</RTP_Port_Quantity> <SNTP_Server>10.1.1.4</SNTP_Server> <Enable_SNTP>1</Enable_SNTP> <Time_Zone>71</Time_Zone> <Time_Zone_Name>UCT_011</Time_Zone_Name> <Enable_DST>0</Enable_DST> <SNTP_Timeout>60</SNTP_Timeout> <Default_UI>12</Default_UI> <MTU_Length>1500</MTU_Length> </GLOBAL_CONFIG_MODULE> <LAN_CONFIG_MODULE> <Enable_Bridge_Mode>1</Enable_Bridge_Mode> <Enable_Port_Mirror>1</Enable_Port_Mirror> </LAN_CONFIG_MODULE>
Os nomes reais dos parámetros de configuración son suficientemente descritivos para evitar describilos en detalle.
SIP para unha liña
<SIP_CONFIG_MODULE> <SIP__Port>5060</SIP__Port> <SIP_Line_List> <SIP_Line_List_Entry> <ID>SIP1</ID> <Register_Addr>10.1.1.50</Register_Addr> <Register_Port>5060</Register_Port> <Register_TTL>3600</Register_TTL> <Enable_Reg>1</Enable_Reg> <Proxy_Addr>10.1.1.50</Proxy_Addr> <DTMF_Mode>1</DTMF_Mode> <DTMF_Info_Mode>0</DTMF_Info_Mode> <VoiceCodecMap>G711A,G711U,G722</VoiceCodecMap> </SIP_Line_List_Entry> </SIP_Line_List> </SIP_CONFIG_MODULE>
Configuración do control remoto
<MMI_CONFIG_MODULE> <Telnet_Port>23</Telnet_Port> <Web_Port>80</Web_Port> <Web_Server_Type>0</Web_Server_Type> <Https_Web_Port>443</Https_Web_Port> <Remote_Control>1</Remote_Control> <Enable_MMI_Filter>0</Enable_MMI_Filter> <Telnet_Prompt></Telnet_Prompt> <MMI_Filter> <MMI_Filter_Entry> <ID>Item1</ID> <First_IP>10.1.1.152</First_IP> <End_IP>10.1.1.160</End_IP> </MMI_Filter_Entry> </MMI_Filter> <MMI_Account> <MMI_Account_Entry> <ID>Account1</ID> <Name>admin</Name> <Password>ADMIN_PWD</Password> <Level>10</Level> </MMI_Account_Entry> <MMI_Account_Entry> <ID>Account2</ID> <Name>guest</Name> <Password>GUEST_PWD</Password> <Level>5</Level> </MMI_Account_Entry> </MMI_Account> </MMI_CONFIG_MODULE>
Configuración do teléfono
<PHONE_CONFIG_MODULE> <Menu_Password>123</Menu_Password> <KeyLock_Password>123</KeyLock_Password> <Fast_Keylock_Code></Fast_Keylock_Code> <Enable_KeyLock>0</Enable_KeyLock> <Emergency_Call>112</Emergency_Call> <LCD_Title>Company</LCD_Title> <LCD_Constrast>5</LCD_Constrast> <LCD_Luminance>1</LCD_Luminance> <Backlight_Off_Time>30</Backlight_Off_Time> <Enable_Power_LED>0</Enable_Power_LED> <Time_Display_Style>0</Time_Display_Style> <Enable_TimeDisplay>1</Enable_TimeDisplay> <Alarm__Clock>0,,1</Alarm__Clock> <Date_Display_Style>0</Date_Display_Style> <Date_Separator>0</Date_Separator> <Enable_Pre-Dial>1</Enable_Pre-Dial> <Xml_PhoneBook> <Xml_PhoneBook_Entry> <ID>XML-PBook1</ID> <Name>Phonebook</Name> <Addr>http://10.1.1.50/provisioning/dlink-phonebook.xml</Addr> <Auth>:</Auth> <Policy>0</Policy> <Sipline>0</Sipline> </Xml_PhoneBook_Entry> </Xml_PhoneBook> <Phonebook_Groups>friend,home,work,business,classmate,colleague</Phonebook_Groups> </PHONE_CONFIG_MODULE>
Todas as demais opcións seguirán sendo "predeterminadas". Agora calquera teléfono Dlink conectado á rede aceptará inmediatamente un conxunto común de parámetros para todos. Para configurar os parámetros individuais do dispositivo, é necesario un ficheiro separado. Nel só precisa especificar a configuración necesaria para un abonado individual.
configuración do subscritor
<?xml version="1.0" encoding="UTF-8"?> <VOIP_CONFIG_FILE> <version>2.0006</version> <SIP_CONFIG_MODULE> <SIP_Line_List> <SIP_Line_List_Entry> <ID>SIP1</ID> <Display_Name>User #117</Display_Name> <Phone_Number>117</Phone_Number> <Register_Port>5060</Register_Port> <Register_User>117</Register_User> <Register_Pswd>SIP_PWD</Register_Pswd> <Register_TTL>3600</Register_TTL> <Enable_Reg>1</Enable_Reg> <Proxy_Port>5060</Proxy_Port> <Proxy_User>117</Proxy_User> <Proxy_Pswd>SIP_PWD</Proxy_Pswd> </SIP_Line_List_Entry> </SIP_Line_List> </SIP_CONFIG_MODULE> </VOIP_CONFIG_FILE>
Panasonic UT-KX123B
Estes dispositivos reciben axustes segundo un esquema lixeiramente diferente. A configuración gárdase en ficheiros de texto. O tamaño máximo do ficheiro de configuración é de 120 KB. Independentemente do número de ficheiros, o seu tamaño total non debe superar os 120 KB.
O ficheiro de configuración consta dun conxunto de liñas, que están suxeitas ás seguintes condicións:
- A primeira liña é sempre unha liña de comentarios, incluíndo a seguinte secuencia de caracteres (44 bytes):
# Ficheiro de formato estándar do teléfono SIP Panasonic #
Representación hexadecimal desta secuencia:
23 20 50 61 6E 61 73 6F 6E 69 63 20 53 49 50 20 50 68 6F 6E 65 20 53 74 61 6E 64 61 72 64 20 46 6 72F 6E 61 74 20 46 69 6E 65 20 23 XNUMX XNUMX XNUMX XNUMX XNUMX C XNUMX XNUMX XNUMX
Para evitar cambios accidentais na secuencia de caracteres establecida, recoméndase iniciar o ficheiro de configuración coa liña:
# Ficheiro de formato estándar do teléfono SIP Panasonic # NON CAMBIES ESTA LIÑA! - Os ficheiros de configuración deben rematar cunha liña baleira.
- Cada liña debe rematar coa secuencia " ".
- A lonxitude máxima da cadea é de 537 bytes, incluída a secuencia " "
- Ignoranse as seguintes liñas:
- liñas que superan o límite de 537 bytes;
- liñas baleiras;
- liñas de comentarios que comezan por "#";
- A cadea de cada parámetro escríbese na forma XXX=“yyy” (XXX: nome do parámetro, yyy: o seu valor). O valor debe ir entre comiñas dobres.
- Non se permite dividir unha liña de parámetros en varias liñas. Isto provocará un erro ao procesar o ficheiro de configuración e, como resultado, un erro de inicialización.
- Os valores dalgúns parámetros deben especificarse por separado para cada liña. O parámetro co sufixo "_1" no nome é o parámetro da liña 1; "_2": para a liña 2, etc.
- A lonxitude máxima do nome do parámetro é de 32 caracteres.
- A lonxitude máxima do valor do parámetro é de 500 caracteres, excluíndo as comiñas dobres.
- Non se permiten espazos na cadea a menos que o valor inclúa un carácter de espazo.
- Algúns valores dos parámetros pódense especificar como "en branco" para establecer o parámetro nun valor baleiro.
- Os parámetros especifícanse sen orde en particular.
- Se o mesmo parámetro se especifica máis dunha vez nun ficheiro de configuración, aplícase primeiro o valor especificado.
Un conxunto tan serio de requisitos para o ficheiro de configuración, francamente, molestoume. Na miña opinión, a implementación da interacción co servidor de control nos teléfonos Panasonic é moi inconveniente. Neste parámetro, o teléfono é significativamente inferior aos demais.
Cando acende o dispositivo por primeira vez (ou despois de restablecelo á configuración de fábrica), tenta cargar o chamado ficheiro do produto (neste caso é KX-UT123RU.cfg), que debería conter as rutas ao restantes ficheiros de configuración.
Ficheiro do produto# Ficheiro de formato estándar do teléfono SIP Panasonic # NON CAMBIES ESTA LIÑA!
CFG_STANDARD_FILE_PATH="tftp://10.1.1.50/panasonic/{mac}.cfg"
CFG_PRODUCT_FILE_PATH="tftp://10.1.1.50/panasonic/KX-UT123RU.cfg"
CFG_MASTER_FILE_PATH="tftp://10.1.1.50/panasonic/master.cfg"
Despois diso, o teléfono mostrará unha mensaxe sobre a finalización exitosa da preparación e agardará ata que se reinicie. E despois do reinicio, comezará a procesar os ficheiros de configuración asignados a el.
Recoméndase especificar a configuración xeral para todos os teléfonos no ficheiro master.cfg. Do mesmo xeito que con Dlink, só especificarei algúns parámetros. Os nomes dos parámetros restantes e os seus valores pódense atopar na documentación do sitio web do fabricante.
mestre.cfg##################################################### ##########
#Configuración do sistema#
##################################################### ##########
## Configuración da conta de inicio de sesión
ADMIN_ID="administrador"
ADMIN_PASS="ADMIN_PWD"
USER_ID="usuario"
USER_PASS="USER_PWD"
## Configuración da hora do sistema
NTP_ADDR="10.1.1.4"
TIME_ZONE="660"
DST_ENABLE="N"
DST_OFFSET="60"
DST_START_MONTH="3"
DST_START_ORDINAL_DAY="2"
DST_START_DAY_OF_WEEK="0"
DST_START_TIME="120"
DST_STOP_MONTH="10"
DST_STOP_ORDINAL_DAY="2"
DST_STOP_DAY_OF_WEEK="0"
DST_STOP_TIME="120"
LOCAL_TIME_ZONE_POSIX=""
## Configuración de Syslog
SYSLOG_ADDR="10.1.1.50"
SYSLOG_PORT="514"
SYSLOG_EVENT_SIP="6"
SYSLOG_EVENT_CFG="6"
SYSLOG_EVENT_VOIP="6"
SYSLOG_EVENT_TEL="6"
## Configuración de aprovisionamento
OPTION66_ENABLE="Y"
OPTION66_REBOOT="N"
PROVISION_ENABLE="Y"
CFG_STANDARD_FILE_PATH="tftp://10.1.1.50/panasonic/{mac}.cfg"
CFG_PRODUCT_FILE_PATH="tftp://10.1.1.50/panasonic/KX-UT123RU.cfg"
CFG_MASTER_FILE_PATH="tftp://10.1.1.50/panasonic/master.cfg"
##################################################### ##########
#Configuración de rede#
##################################################### ##########
## Configuración IP
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""
## Configuración de DNS
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""
## Configuración HTTP
HTTPD_PORTOPEN_AUTO="Y"
HTTP_VER="1"
HTTP_USER_AGENT="Panasonic_{MODELO}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""
## Configuración da aplicación XML
XML_HTTPD_PORT="6666"
XMLAPP_ENABLE="Y"
XMLAPP_USERID=""
XMLAPP_USERPASS=""
XMLAPP_START_URL=""
XMLAPP_INITIAL_URL=" "
XMLAPP_INCOMING_URL=""
XMLAPP_TALKING_URL=""
XMLAPP_MAKECALL_URL=""
XMLAPP_CALLLOG_URL=""
XMLAPP_IDLING_URL=""
XMLAPP_LDAP_URL="
XMLAPP_LDAP_USERID=""
XMLAPP_LDAP_USERPASS=""
Tradicionalmente, só a configuración do subscritor permanece no ficheiro de configuración do dispositivo individual.
aabbccddeeff.cfgDISPLAY_NAME_1="Usuario #168"
PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Activado"
PROFILE_ENABLE_1="Activado"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"
Grandstream GXP-1400
Os parámetros destes teléfonos almacénanse nun ficheiro xml chamado cfg{mac}.xml. Ou en texto plano co nome cfg{mac}. Este teléfono só solicita un ficheiro de configuración individual, polo que non funcionará optimizar a configuración movéndoas a un ficheiro común. Outra característica da configuración de Grandstreams é a denominación dos parámetros. Están todos numerados e designados como P###. Por exemplo:
P1650 - responsable da interface web para xestionar o teléfono (0 - HTTPS, 1 - HTTP)
P47 – Enderezo do servidor SIP para a conexión.
Se a configuración se almacena nun ficheiro de texto, os parámetros non precisan agrupación e están en calquera orde. As liñas que comezan por # trátanse como comentarios.
Se a configuración se presenta en formato xml, debe estar aniñada nun nodo , que á súa vez debe estar aniñado . Todos os parámetros están escritos en forma de etiquetas correspondentes co valor do parámetro dentro.
Exemplo de configuración
1.0 8 1 1 SIP_PWD Usuario # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream trinta
Yealink T19 e T21
Os dispositivos destes modelos admiten ficheiros de configuración individuais para os dispositivos e os comúns para os modelos. No meu caso, tiven que colocar os parámetros xerais nos ficheiros y000000000031.cfg e y000000000034.cfg, respectivamente. Os ficheiros de configuración individuais son nomeados segundo o enderezo MAC: 00112233aabb.cfg.
A configuración dos yealinks gárdanse en formato de texto. Os únicos requisitos obrigatorios son a presenza da versión do ficheiro na primeira liña, no formato #!versión:1.0.0.1.
Todos os parámetros están escritos na forma parámetro = valor. Os comentarios deben comezar cun carácter "#". Os nomes dos parámetros e os seus valores pódense atopar na documentación do sitio web do fabricante.
Configuración xeral#!versión:1.0.0.1
#Configurar o tipo de porto WAN; 0-DHCP (predeterminado), 1-PPPoE, 2-Enderezo IP estático;
network.internet_port.type = 0
#Configurar o tipo de porto do PC; 0-Router, 1-Ponte (predeterminado);
rede.modo_ponte = 1
#Configurar o tipo de acceso do servidor web; 0-Desactivado, 1-HTTP e HTTPS (predeterminado), 2-HTTP só, 3-HTTPS só;
network.web_server_type = 3
#Configurar o porto RTP local máximo. Varía de 0 a 65535, o valor predeterminado é 11800.
network.port.max_rtpport = 10100
#Configurar o porto RTP local mínimo. Varía de 0 a 65535, o valor predeterminado é 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = raíz:ADMIN_PWD
security.user_name.user = usuario
security.user_password = usuario:USER_PWD
#Especifique o idioma da web, os valores válidos son: inglés, chinés_S, turco, portugués, español, italiano, francés, ruso, alemán e checo.
lang.wui = ruso
#Especifique o idioma da pantalla LCD, os valores válidos son: inglés (predeterminado), chinés_S, chinés_T, alemán, francés, turco, italiano, polaco, español e portugués.
lang.gui = ruso
#Configura o fuso horario e o nome da zona horaria. A zona horaria varía de -11 a +12, o valor predeterminado é +8.
#O nome da zona horaria predeterminada é China (Beijing).
#Consulte a Guía de usuario de teléfonos IP Yealink para obter máis fusos horarios dispoñibles e nomes de zonas horarias.
hora_local.zona_horaria = +11
local_time.time_zone_name = Vladivostok
#Configura o nome de dominio ou o enderezo IP do servidor NTP. O valor predeterminado é cn.pool.ntp.org.
hora_local.ntp_server1 = 10.1.1.4
#Configurar o modo de logotipo da pantalla LCD; 0-Desactivado (predeterminado), 1-logotipo do sistema, 2-logotipo personalizado;
phone_setting.lcd_logo.mode = 1
#Configura o URL de acceso e o nome que aparecen na axenda telefónica remota. X varía de 1 a 5.
remote_phonebook.data.1.url =
remote_phonebook.data.1.name = Axenda telefónica
features.remote_phonebook.flash_time = 3600
configuracións individuais#!versión:1.0.0.1
#Activar ou desactivar a conta1, 0-Desactivado (predeterminado), 1-Activado;
conta.1.habilitar = 1
#Configura a etiqueta que aparece na pantalla LCD para a conta1.
account.1.label = Teléfono de proba
#Configurar o nome para mostrar da conta1.
account.1.display_name = Usuario 998
#Configura o nome de usuario e o contrasinal para a autenticación de rexistro.
conta.1.nome_autor = 998
conta.1.contrasinal = 998
#Configurar o nome de usuario rexistrado.
conta.1.nome_usuario = 998
#Configurar o enderezo do servidor SIP.
account.1.sip_server_host = 10.1.1.50
#Especifique o porto para o servidor SIP. O valor predeterminado é 5060.
conta.1.sip_server_port = 5060
Como resultado, grazas á marabillosa función de aprovisionamento automático proporcionada nos teléfonos que mencionei, non houbo problemas para conectar novos dispositivos á rede. Todo se reduce a descubrir o enderezo MAC do teléfono e xerar un ficheiro de configuración mediante un modelo.
Espero que leas ata o final e que te beneficies do que leches.
Grazas pola súa atención.
Fonte: www.habr.com