Zoológico VoIP – Aprovisionamiento

Entrada

Un día, la dirección aprobó un experimento para introducir la telefonía IP en nuestra oficina. Como mi experiencia en este campo era escasa, la tarea despertó en mí gran interés y me lancé a estudiar diversos aspectos del tema. Al final de la inmersión, decidí compartir los conocimientos adquiridos con la esperanza de que pudieran ser útiles para alguien. Entonces…

Datos iniciales

Asterisk fue seleccionada e implementada como IP PBX. La flota de teléfonos consta de dispositivos Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 y Dlink DPH-150S(E)/F3, Yealink T19 y T21. Esta variación se debe a que como parte del experimento se decidió probar un poco de todo para formarse una opinión sobre la relación precio/calidad/conveniencia.

Tarea

Simplifique y unifique al máximo el proceso de configuración de nuevos dispositivos. Todos los teléfonos deben estar sincronizados con la hora, tener una guía telefónica cargada desde el servidor y brindar acceso a la configuración al administrador.

La solución a este problema es simple: implementar la configuración automática de los teléfonos, la llamada. Aprovisionamiento. De hecho, se discutirá mi implementación de esta maravillosa función.

Configurando tftpd, dhcpd

Para distribuir configuraciones a los teléfonos, elegí tftp como una opción universal, compatible con todas las plataformas y fácil de configurar y administrar.

No se requirió ninguna configuración específica para tftp. Instalé tftpd estándar y coloqué todos los archivos necesarios en su directorio raíz.
Coloqué los archivos de configuración en directorios de acuerdo con el fabricante del teléfono. Es cierto que el dispositivo Cisco nunca entró en su carpeta, por lo que tuve que almacenarlo en su raíz.

Para señalar los teléfonos a la ubicación del servidor tftp, utilicé la opción 66. Además, los dividió en clases separadas por fabricante. Cada clase recibió su propio segmento de dirección y una carpeta individual para archivos de configuración. Por cierto, los dispositivos de D-Link tuvieron que calcularse por direcciones MAC, ya que no proporcionan información sobre el fabricante en la solicitud DHCP.

Fragmento dhcpd.conf

# Especifique las opciones requeridas opción opción-66 código 66 = texto; clase "panasonic" { coincide con subcadena (opción identificador-clase-proveedor,0,9) = "Panasonic"; opción opción-66 "10.1.1.50/panasonic/"; } clase "cisco" { coincide con la subcadena (opción identificador de clase de proveedor, 0,36) = "Teléfono IP CP-7906 de Cisco Systems, Inc."; opción opción-66 "10.1.1.50/cisco/"; } clase "grandstream" { coincide con la subcadena (opción identificador-clase-proveedor,0,11) = "Grandstream"; opción opción-66 "10.1.1.50/grandstream/"; } clase "dlink" { coincide con if (binario a ascii (16,8,":",subcadena(hardware,1,4)) = "c8:d3:a3:8d") o (binario a ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72"); opción opción-66 "10.1.1.50/dlink/"; } clase "yealink" { coincide con subcadena (opción identificador-clase-proveedor,0,7) = "Yealink"; opción opción-66 "10.1.1.50/yealink/"; }

Los teléfonos tuvieron que ser excluidos por la fuerza del grupo general. De lo contrario, no querían ir a su “piscina infantil”.
Ejemplo de configuración de subred

subred 10.1.1.0 máscara de red 255.255.255.0 { opción enrutadores 10.1.1.1; pool {negar miembros de "cisco"; negar a los miembros de "panasonic"; negar a los miembros de "dlink"; rango 10.1.1.230 10.1.1.240; } grupo { permitir miembros de "cisco"; rango 10.1.1.65 10.1.1.69; } grupo { permitir miembros de "panasonic"; rango 10.1.1.60 10.1.1.64; } grupo { permitir miembros de "dlink"; rango 10.1.1.55 10.1.1.59; } }

Después de reiniciar todos los servicios involucrados, los teléfonos fueron con confianza a su servidor tftp asignado para realizar la configuración. Ya sólo queda colocarlos allí.

Cisco 7906

Recibí estos dispositivos en su embalaje original. Tuve que cambiarlo para hacerme amigo de asterisco. Pero esa es una historia diferente. En un caso concreto, para configurar el dispositivo, según las instrucciones, creé el archivo SEPAABBCCDDEEFF.cnf.xml en la raíz del servidor tftp. Donde AABBCCDDEEFF es la dirección MAC del dispositivo.

Ya se ha escrito más de una vez sobre la configuración de teléfonos de Cisco, así que dejaré un archivo de trabajo con la configuración.
Configuraciones 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

Si está a punto de comprar un teléfono de esta serie, tenga cuidado, el ajuste automático solo se admite en dispositivos 150S/F3. En el dispositivo 150S/F2 que llegó a mis manos no encontré dicha funcionalidad.

El archivo de configuración puede estar en formato xml o texto sin formato. Hay un requisito para xml: la etiqueta debe estar al principio de la línea; de lo contrario, el analizador la ignorará y el valor del parámetro correspondiente no cambiará.

Se utilizan dos archivos para configurar el teléfono. f0D00580000.cfg: para almacenar configuraciones para todos los teléfonos y 00112233aabb.cfg (dirección MAC en minúsculas) para configuraciones individuales. Naturalmente, los entornos individuales tienen mayor prioridad.

El conjunto completo de configuraciones contiene más de mil líneas, para no saturar el artículo, describiré el conjunto mínimo de configuraciones suficiente.

Se requiere el nodo raíz VOIP_CONFIG_FILE y el nodo anidado dentro de él versión. La configuración se aplicará solo si la versión del archivo es superior a la configuración actual en el dispositivo. Puede conocer este valor a través de la interfaz web del teléfono en la sección de mantenimiento (administración del sistema). Para teléfonos con configuración de fábrica, en ambos casos es 2.0002. Además, la versión del archivo individual debe ser mayor que la versión del archivo compartido.

Primero proporcionaré un archivo con una configuración común para todos los teléfonos. De hecho, almacena todas las configuraciones, el archivo individual solo será responsable del número de teléfono y la inscripción en la pantalla.

En los dos bloques siguientes se configuran los parámetros de zona horaria y sincronización horaria, se habilita el puerto inicial para RTP y el puente de red entre los conectores WAN y LAN del dispositivo.

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>

Los nombres reales de los parámetros de configuración son lo suficientemente descriptivos como para evitar describirlos en detalle.
SIP para una línea

<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 del 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>

Ajustes de 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 las demás configuraciones seguirán siendo "predeterminadas". Ahora cualquier teléfono Dlink conectado a la red aceptará inmediatamente un conjunto de parámetros común para todos. Para configurar parámetros individuales para el dispositivo, se necesita un archivo separado. En él solo necesita especificar la configuración necesaria para un suscriptor individual.
configuración de suscriptor

<?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

Estos dispositivos reciben configuraciones según un esquema ligeramente diferente. La configuración se almacena en archivos de texto. El tamaño máximo del archivo de configuración es 120 KB. Independientemente de la cantidad de archivos, su tamaño total no debe exceder los 120 KB.
El archivo de configuración consta de un conjunto de líneas, que están sujetas a las siguientes condiciones:

  • La primera línea es siempre una línea de comentario, que incluye la siguiente secuencia de caracteres (44 bytes):
    # Archivo de formato estándar del teléfono SIP de Panasonic #
    Representación hexadecimal de esta 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 6F 72 6D 61 74 20 46 69 6 C 65 20 23
    Para evitar cambios accidentales en la secuencia de caracteres establecida, se recomienda iniciar el archivo de configuración con la línea:
    # Archivo de formato estándar del teléfono SIP de Panasonic # ¡NO CAMBIE ESTA LÍNEA!
  • Los archivos de configuración deben terminar con una línea vacía.
  • Cada línea debe terminar con la secuencia " ".
  • La longitud máxima de la cadena es 537 bytes, incluida la secuencia " "
  • Se ignoran las siguientes líneas:
    • líneas que exceden el límite de 537 bytes;
    • líneas vacías;
    • líneas de comentarios que comienzan con "#";
  • La cadena para cada parámetro se escribe en el formato XXX=“yyy” (XXX: nombre del parámetro, yyy: su valor). El valor debe estar entre comillas dobles.
  • No se permite dividir una línea de parámetro en varias líneas. Esto provocará un error al procesar el archivo de configuración y, como resultado, un error de inicialización.
  • Los valores de algunos parámetros deben especificarse por separado para cada línea. El parámetro con el sufijo "_1" en el nombre es el parámetro de la línea 1; "_2"—para la línea 2, etc.
  • La longitud máxima del nombre del parámetro es de 32 caracteres.
  • La longitud máxima del valor del parámetro es de 500 caracteres, excluyendo las comillas dobles.
  • No se permiten espacios en la cadena a menos que el valor incluya un carácter de espacio.
  • Algunos valores de parámetros se pueden especificar como "en blanco" para establecer el parámetro en un valor vacío.
  • Los parámetros se especifican sin ningún orden en particular.
  • Si el mismo parámetro se especifica más de una vez en un archivo de configuración, se aplica el valor especificado primero.

Francamente, un conjunto tan serio de requisitos para el archivo de configuración me molesta. En mi opinión, implementar la interacción con el servidor de control en los teléfonos Panasonic es extremadamente inconveniente. En este parámetro, el teléfono es significativamente inferior a otros.
Cuando enciende el dispositivo por primera vez (o después de restablecerlo a la configuración de fábrica), intenta cargar el llamado archivo de producto (en este caso es KX-UT123RU.cfg), que debería contener las rutas al archivos de configuración restantes.
Archivo de producto# Archivo de formato estándar del teléfono SIP de Panasonic # ¡NO CAMBIE ESTA LÍNEA!

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"

Después de esto, el teléfono mostrará un mensaje sobre la finalización exitosa de la preparación y esperará hasta que se reinicie. Y después del reinicio, comenzará a procesar los archivos de configuración que se le asignaron.

Se recomienda especificar la configuración general para todos los teléfonos en el archivo master.cfg. Al igual que con Dlink, sólo especificaré algunos parámetros. Los nombres del resto de parámetros y sus valores se pueden encontrar en la documentación del sitio web del fabricante.
maestro.cfg############################################### ##########
#Ajustes del sistema#
############################################### ##########
## Iniciar sesión en la configuración de la cuenta
ADMIN_ID="administrador"
ADMIN_PASS="ADMIN_PWD"
USER_ID="usuario"
USER_PASS="USER_PWD"

## Configuración de hora del 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 registro del sistema
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 aprovisionamiento
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 la red#
############################################### ##########
## Configuración de 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_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""

## Configuración de la 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ólo la configuración del suscriptor permanece en el archivo de configuración del dispositivo individual.
aabbccddeeff.cfgDISPLAY_NAME_1="Usuario #168"

TELÉFONO_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Habilitado"
PROFILE_ENABLE_1="Habilitado"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Los parámetros de estos teléfonos se almacenan en un archivo xml llamado cfg{mac}.xml. O en texto plano con el nombre cfg{mac}. Este teléfono solo solicita un archivo de configuración individual, por lo que no funcionará optimizar la configuración moviéndola a un archivo común. Otra característica de la configuración de Grandstreams es la denominación de los parámetros. Todos están numerados y designados como P###. Por ejemplo:

P1650 – responsable de la interfaz web para administrar el teléfono (0 – HTTPS, 1 – HTTP)
P47 – Dirección del servidor SIP para la conexión.

Si la configuración se almacena en un archivo de texto, los parámetros no requieren ninguna agrupación y están en cualquier orden. Las líneas que comienzan con # se tratan como comentarios.

Si las configuraciones se presentan en formato xml, deben estar anidadas en el nodo , que a su vez debe estar anidado en . Todos los parámetros están escritos en forma de etiquetas correspondientes con el valor del parámetro dentro.
Ejemplo de configuración

1.0 8 1 1 SIP_PWD Usuario# 271 1 271 270 109 ADMIN_PWD USUARIO_PWD ru 270 35/gran corriente 109 TZc-35 36 109 http://36/provisioning/grandstream treinta

Yealink T19 y T21

Los dispositivos de estos modelos admiten archivos de configuración individuales para dispositivos y archivos de configuración comunes para modelos. En mi caso tuve que colocar los parámetros generales en los archivos y000000000031.cfg y y000000000034.cfg, respectivamente. Los archivos de configuración individuales reciben nombres según la dirección MAC: 00112233aabb.cfg.

La configuración de yealinks se almacena en formato de texto. Los únicos requisitos obligatorios son la presencia de la versión del archivo en la primera línea, en el formato #!versión:1.0.0.1.

Todos los parámetros se escriben en el formato parámetro = valor. Los comentarios deben comenzar con el carácter "#". Los nombres de los parámetros y sus valores se pueden encontrar en la documentación del sitio web del fabricante.
Configuración general#!versión:1.0.0.1
#Configurar el tipo de puerto WAN; 0-DHCP (predeterminado), 1-PPPoE, 2-Dirección IP estática;
red.internet_port.tipo = 0
#Configurar el tipo de puerto de la PC; 0-enrutador, 1-puente (predeterminado);
red.bridge_mode = 1
#Configurar el tipo de acceso del servidor web; 0-Deshabilitado, 1-HTTP y HTTPS (predeterminado), 2-Solo HTTPS, 3-Solo HTTPS;
red.web_server_type = 3
#Configure el puerto RTP local máximo. Va de 0 a 65535, el valor predeterminado es 11800.
red.port.max_rtpport = 10100
#Configure el puerto RTP local mínimo. Va de 0 a 65535, el valor predeterminado es 11780.
red.port.min_rtpport = 10000
seguridad.nombre_usuario.admin = raíz
seguridad.contraseña_usuario = raíz:ADMIN_PWD
seguridad.nombre_usuario.usuario = usuario
seguridad.contraseña_usuario = usuario:USER_PWD
#Especifica el idioma de la web, los valores válidos son: inglés, chino_S, turco, portugués, español, italiano, francés, ruso, alemán y checo.
lang.wui = ruso
#Especifique el idioma de la pantalla LCD, los valores válidos son: inglés (predeterminado), chino_S, chino_T, alemán, francés, turco, italiano, polaco, español y portugués.
lang.gui = ruso
#Configure la zona horaria y el nombre de la zona horaria. La zona horaria oscila entre -11 y +12, el valor predeterminado es +8.
#El nombre de la zona horaria predeterminado es China (Beijing).
#Consulte la Guía del usuario de teléfonos IP de Yealink para obtener más zonas horarias disponibles y nombres de zonas horarias.
hora_local.zona_hora = +11
local_time.time_zone_name = Vladivostok
#Configure el nombre de dominio o la dirección IP del servidor NTP. El valor predeterminado es cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Configure el modo de logotipo de la pantalla LCD; 0-Desactivado (predeterminado), 1-Logotipo del sistema, 2-Logotipo personalizado;
configuración_teléfono.lcd_logo.modo = 1
#Configure la URL de acceso y el nombre para mostrar de la agenda remota. X varía de 1 a 5.
agenda_telefónica remota.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Agenda telefónica
características.remote_phonebook.flash_time = 3600

ajustes individuales#!versión:1.0.0.1
#Habilitar o deshabilitar la cuenta1, 0-Deshabilitado (predeterminado), 1-Habilitado;
cuenta.1.habilitar = 1
#Configure la etiqueta que se muestra en la pantalla LCD para la cuenta1.
account.1.label = Teléfono de prueba
#Configure el nombre para mostrar de la cuenta1.
account.1.display_name = Usuario 998
#Configure el nombre de usuario y la contraseña para la autenticación del registro.
cuenta.1.auth_name = 998
cuenta.1.contraseña = 998
#Configurar el nombre de usuario registrado.
cuenta.1.nombre_usuario = 998
#Configure la dirección del servidor SIP.
cuenta.1.sip_server_host = 10.1.1.50
#Especifique el puerto para el servidor SIP. El valor predeterminado es 5060.
cuenta.1.sip_server_port = 5060

Como resultado, gracias a la maravillosa función de aprovisionamiento automático proporcionada en los teléfonos que mencioné, no hubo problemas para conectar nuevos dispositivos a la red. Todo se redujo a averiguar la dirección MAC del teléfono y generar un archivo de configuración utilizando una plantilla.

Espero que hayas leído hasta el final y te hayas beneficiado de lo que leíste.

Gracias por su atención.

Fuente: habr.com

Añadir un comentario