VoIP Zoo - Aprovisionamento

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="10.1.1.50/provisioning/panasonic-phonebook.xml»
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 = 10.1.1.50/provisioning/yealink-phonebook.xml
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

Engadir un comentario