Zoológico VoIP – Provisionamento

Entrada

Um dia, a administração aprovou um experimento para introduzir a telefonia IP em nosso escritório. Como minha experiência na área era escassa, a tarefa despertou em mim grande interesse e mergulhei no estudo de vários aspectos do assunto. No final do mergulho decidi partilhar o conhecimento que adquiri na esperança de que fosse útil a alguém. Então…

Dados iniciais

O Asterisk foi selecionado e implantado como um PBX IP. A frota de telefones consiste em dispositivos Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 e Dlink DPH-150S(E)/F3, Yealink T19 e T21. Esta variação deve-se ao facto de no âmbito da experiência se ter optado por experimentar de tudo um pouco para formar uma opinião sobre a relação preço/qualidade/conveniência.

Tarefa

Simplifique e unifique ao máximo o processo de configuração de novos dispositivos. Todos os telefones devem estar sincronizados com o horário, ter uma lista telefônica carregada do servidor e fornecer acesso às configurações para o administrador.

A solução para este problema é simples - implementar a configuração automática dos telefones, os chamados. Provisionamento. Na verdade, minha implementação desta função maravilhosa será discutida.

Configurando tftpd,dhcpd

Para distribuir as configurações aos telefones, escolhi o tftp como uma opção universal, suportada por todas as plataformas, fácil de configurar e gerenciar.

Nenhuma configuração específica foi necessária para tftp. Instalei o tftpd padrão e coloquei todos os arquivos necessários em seu diretório raiz.
Coloquei os arquivos de configurações em diretórios de acordo com o fabricante do telefone. É verdade que o dispositivo Cisco nunca foi para sua pasta, então tive que armazená-lo em sua raiz.

Para apontar os telefones para a localização do servidor tftp, usei a opção 66. Além disso, ele os dividiu em classes separadas por fabricante. Cada classe recebeu seu próprio segmento de endereço e uma pasta individual para arquivos de configuração. Aliás, os dispositivos D-link tiveram que ser calculados por endereços MAC, pois não fornecem informações sobre o fabricante na solicitação dhcp.

Fragmento dhcpd.conf

# Especifique as opções necessárias opção opção-66 código 66 = texto; class "panasonic" {correspondência se substring (opção vendor-class-identifier,0,9) = "Panasonic"; opção opção-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. Telefone IP CP-7906"; opção opção-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (opção vendor-class-identifier,0,11) = "Grandstream"; opção opção-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") ou (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72"); opção opção-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (opção vendor-class-identifier,0,7) = "Yealink"; opção opção-66 "10.1.1.50/yealink/"; }

Os telefones tiveram que ser excluídos à força do pool geral. Caso contrário, eles não queriam ir para a sua “piscina infantil”.
Exemplo de configurações de sub-rede

sub-rede 10.1.1.0 máscara de rede 255.255.255.0 { opção roteadores 10.1.1.1; pool {negar membros do "cisco"; negar membros da "Panasonic"; negar membros do "dlink"; intervalo 10.1.1.230 10.1.1.240; } pool { permite membros do "cisco"; intervalo 10.1.1.65 10.1.1.69; } pool {permitir membros da "panasonic"; intervalo 10.1.1.60 10.1.1.64; } pool {permitir membros de "dlink"; intervalo 10.1.1.55 10.1.1.59; } }

Depois de reiniciar todos os serviços envolvidos, os telefones foram com segurança para o servidor TFTP atribuído para configurações. Resta colocá-los lá.

Cisco 7906

Recebi esses dispositivos em suas embalagens originais. Eu tive que mudar para fazer amizade com o asterisco. Mas essa é uma história diferente. Em um caso específico, para configurar o dispositivo, conforme instruções, criei o arquivo SEPAABBCCDDEEEFF.cnf.xml na raiz do servidor tftp. Onde AABBCCDDEEFF é o endereço MAC do dispositivo.

Já foi escrito mais de uma vez sobre como configurar telefones Cisco, então deixarei apenas um arquivo de trabalho com as configurações.
Configurações 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 você está prestes a comprar um telefone desta série, tenha cuidado, o ajuste automático é suportado apenas em dispositivos 150S/F3. No dispositivo 150S/F2 que chegou às minhas mãos, não encontrei tal funcionalidade.

O arquivo de configuração pode estar em formato xml ou texto simples. Existe um requisito para xml: a tag deve estar no início da linha, caso contrário o analisador irá ignorá-la e o valor do parâmetro correspondente não será alterado.

Dois arquivos são usados ​​para configurar o telefone. f0D00580000.cfg - para armazenar configurações de todos os telefones e 00112233aabb.cfg (endereço MAC em letras minúsculas) para configurações individuais. As configurações individuais têm naturalmente maior prioridade.

O conjunto completo de configurações contém mais de mil linhas, para não sobrecarregar o artigo, descreverei o conjunto mínimo de configurações suficiente.

O nó raiz é obrigatório VOIP_CONFIG_FILE e o nó aninhado dentro dele versão. As configurações serão aplicadas somente se a versão do arquivo for superior às configurações atuais do dispositivo. Você pode descobrir esse valor através da interface web do telefone na seção de manutenção (gerenciamento do sistema). Para telefones com configuração de fábrica, em ambos os casos é 2.0002. Além disso, a versão do arquivo individual deve ser superior à versão do arquivo compartilhado.

Primeiro irei fornecer um arquivo com uma configuração comum para todos os telefones. Na verdade, ele armazena todas as configurações, o arquivo individual será responsável apenas pelo número do telefone e pela inscrição na tela.

Nos dois blocos abaixo são definidos os parâmetros de fuso horário e sincronização de horário, a porta inicial para RTP e a ponte de rede entre os conectores WAN e LAN do dispositivo são habilitadas.

Fragmento nº 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 configuração são suficientemente descritivos para evitar descrevê-los em detalhes.
SIP para uma linha

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

Configurações de controle 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>

Configurações do telefone

<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 outras configurações permanecerão “padrão”. Agora, qualquer telefone Dlink conectado à rede aceitará imediatamente um conjunto comum de parâmetros para todos. Para definir parâmetros individuais para o dispositivo, é necessário um arquivo separado. Nele você só precisa especificar as configurações necessárias para um assinante individual.
configurações do assinante

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

Esses dispositivos recebem configurações de acordo com um esquema ligeiramente diferente. A configuração é armazenada em arquivos de texto. O tamanho máximo do arquivo de configuração é 120 KB. Independentemente da quantidade de arquivos, seu tamanho total não deve ultrapassar 120 KB.
O arquivo de configuração consiste em um conjunto de linhas, que estão sujeitas às seguintes condições:

  • A primeira linha é sempre uma linha de comentário, incluindo a seguinte sequência de caracteres (44 bytes):
    # Arquivo de formato padrão do telefone SIP Panasonic #
    Representação hexadecimal desta sequência:
    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 alterações acidentais na sequência de caracteres estabelecida, recomenda-se iniciar o arquivo de configuração com a linha:
    # Arquivo de formato padrão do telefone SIP Panasonic # NÃO MUDE ESTA LINHA!
  • Os arquivos de configuração devem terminar com uma linha vazia.
  • Cada linha deve terminar com a sequência " ".
  • O comprimento máximo da string é de 537 bytes, incluindo a sequência " "
  • As seguintes linhas são ignoradas:
    • linhas que excedem o limite de 537 bytes;
    • linhas vazias;
    • linhas de comentários começando com "#";
  • A string para cada parâmetro é escrita no formato XXX=“yyy” (XXX: nome do parâmetro, yyy: seu valor). O valor deve ser colocado entre aspas duplas.
  • Não é permitido dividir uma linha de parâmetro em várias linhas. Isso resultará em um erro ao processar o arquivo de configuração e, como resultado, em falha de inicialização.
  • Os valores de alguns parâmetros devem ser especificados separadamente para cada linha. O parâmetro com o sufixo "_1" no nome é o parâmetro da linha 1; "_2" — para a linha 2, etc.
  • O comprimento máximo do nome do parâmetro é de 32 caracteres.
  • O comprimento máximo do valor do parâmetro é 500 caracteres, excluindo aspas duplas.
  • Nenhum espaço é permitido na string, a menos que o valor inclua um caractere de espaço.
  • Alguns valores de parâmetros podem ser especificados como “em branco” para definir o parâmetro com um valor vazio.
  • Os parâmetros não são especificados em nenhuma ordem específica.
  • Se o mesmo parâmetro for especificado mais de uma vez em um arquivo de configuração, o valor especificado primeiro será aplicado.

Um conjunto tão sério de requisitos para o arquivo de configuração, falando francamente, me incomodou. Na minha opinião, a implementação da interação com o servidor de controle nos telefones Panasonic é extremamente inconveniente. Neste parâmetro, o telefone é significativamente inferior aos demais.
Ao ligar o dispositivo pela primeira vez (ou após redefini-lo para as configurações de fábrica), ele tenta carregar o chamado arquivo do produto (neste caso é KX-UT123RU.cfg), que deve conter os caminhos para o arquivos de configuração restantes.
Arquivo do produto# Arquivo de formato padrão do telefone SIP Panasonic # NÃO MUDE ESTA LINHA!

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"

Depois disso, o telefone exibirá uma mensagem sobre a conclusão bem-sucedida da preparação e aguardará até ser reiniciado. E após a reinicialização, ele começará a processar os arquivos de configuração atribuídos a ele.

Recomenda-se especificar configurações gerais para todos os telefones no arquivo master.cfg. Tal como acontece com o Dlink, especificarei apenas alguns parâmetros. Os nomes dos demais parâmetros e seus valores podem ser encontrados na documentação do site do fabricante.
mestre.cfg############################################################### ############
#Configurações de sistema#
############################################################### ############
## Configurações da conta de login
ADMIN_ID="administrador"
ADMIN_PASS="ADMIN_PWD"
USER_ID="usuário"
USER_PASS="USER_PWD"

## Configurações de 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=""

## Configurações do 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"

## Configurações de provisionamento
OPTION66_ENABLE="S"
OPTION66_REBOOT="N"
PROVISION_ENABLE="S"
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"

############################################################### ############
#Configurações de rede#
############################################################### ############
## Configurações de IP
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="S"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## Configurações de DNS
DNS_QRY_PRLL="S"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

## Configurações HTTP
HTTPD_PORTOPEN_AUTO="S"
HTTP_VER="1"
HTTP_USER_AGENT="Panasonic_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""

## Configurações do aplicativo XML
XML_HTTPD_PORT="6666"
XMLAPP_ENABLE="S"
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, apenas as configurações do assinante permanecem no arquivo de configuração do dispositivo individual.
aabbccddeeff.cfgDISPLAY_NAME_1="Usuário #168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Ativado"
PROFILE_ENABLE_1="Ativado"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Os parâmetros desses telefones são armazenados em um arquivo xml denominado cfg{mac}.xml. Ou em texto simples com o nome cfg{mac}. Este telefone solicita apenas um arquivo de configuração individual, portanto, otimizar as configurações movendo-as para um arquivo comum não funcionará. Outra característica da configuração do Grandstreams é a nomenclatura dos parâmetros. Eles são todos numerados e designados como P###. Por exemplo:

P1650 – responsável pela interface web para gerenciamento do telefone (0 – HTTPS, 1 – HTTP)
P47 – Endereço do servidor SIP para conexão.

Se a configuração estiver armazenada em um arquivo de texto, os parâmetros não requerem nenhum agrupamento e estão em qualquer ordem. As linhas que começam com # são tratadas como comentários.

Se as configurações forem apresentadas em formato xml, elas deverão estar aninhadas em um nó , que por sua vez deve ser aninhado em . Todos os parâmetros são escritos na forma de tags correspondentes com o valor do parâmetro dentro.
Exemplo de configuração

1.0 8 1 1 SIP_PWD Usuário nº 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 desses modelos suportam arquivos de configuração individuais para dispositivos e arquivos comuns para modelos. No meu caso, tive que colocar os parâmetros gerais nos arquivos y000000000031.cfg e y000000000034.cfg, respectivamente. Os arquivos de configuração individuais são nomeados de acordo com o endereço MAC: 00112233aabb.cfg.

As configurações dos yealinks são armazenadas em formato de texto. Os únicos requisitos obrigatórios são a presença da versão do arquivo na primeira linha, no formato #!versão:1.0.0.1.

Todos os parâmetros são escritos no formato parâmetro = valor. Os comentários devem começar com um caractere “#”. Os nomes dos parâmetros e seus valores podem ser encontrados na documentação do site do fabricante.
Configurações Gerais#!versão:1.0.0.1
#Configurar o tipo de porta WAN; 0-DHCP (padrão), 1-PPPoE, 2-Endereço IP estático;
rede.internet_port.type = 0
#Configure o tipo de porta do PC; 0-Roteador, 1-Bridge (padrão);
rede.bridge_mode = 1
#Configurar o tipo de acesso do servidor web; 0-Desativado, 1-HTTP e HTTPS (padrão), 2-HTTP Somente, 3-HTTPS Somente;
rede.web_server_type = 3
#Configure a porta RTP local máxima. Varia de 0 a 65535, o valor padrão é 11800.
rede.port.max_rtpport = 10100
#Configure a porta RTP local mínima. Varia de 0 a 65535, o valor padrão é 11780.
rede.port.min_rtpport = 10000
segurança.nome_do_usuário.admin = root
segurança.user_password = root:ADMIN_PWD
segurança.nome_do_usuário.usuário = usuário
segurança.user_password = usuário:USER_PWD
#Especifique o idioma da web, os valores válidos são: Inglês, Chinês_S, Turco, Português, Espanhol, Italiano, Francês, Russo, Alemão e Tcheco.
lang.wui = Russo
#Especifique o idioma do LCD, os valores válidos são: Inglês (padrão), Chinês_S, Chinês_T, Alemão, Francês, Turco, Italiano, Polonês, Espanhol e Português.
lang.gui = Russo
#Configure o fuso horário e o nome do fuso horário. O fuso horário varia de -11 a +12, o valor padrão é +8.
#O nome do fuso horário padrão é China (Pequim).
#Consulte o Guia do usuário dos telefones IP Yealink para obter mais fusos horários e nomes de fusos horários disponíveis.
hora_local.time_zone = +11
local_time.time_zone_name=Vladivostok
#Configure o nome de domínio ou endereço IP do servidor NTP. O valor padrão é cn.pool.ntp.org.
hora_local.ntp_server1 = 10.1.1.4
#Configurar o modo logotipo da tela LCD; 0-Desativado (padrão), 1-Logotipo do sistema, 2-Logotipo personalizado;
phone_setting.lcd_logo.mode = 1
#Configure a URL de acesso e exiba o nome da agenda remota. X varia de 1 a 5.
agenda_telefone_remota.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Agenda telefônica
features.remote_phonebook.flash_time = 3600

configurações individuais#!versão:1.0.0.1
#Ativa ou desativa a conta1, 0-Desativado (padrão), 1-Ativado;
conta.1.enable = 1
#Configure o rótulo exibido na tela LCD para a conta1.
account.1.label = Telefone de teste
#Configure o nome de exibição da conta1.
account.1.display_name = Usuário 998
#Configure o nome de usuário e senha para autenticação do cadastro.
conta.1.auth_name = 998
conta.1.senha = 998
#Configure o nome de usuário do cadastro.
conta.1.nome_do_usuário = 998
#Configure o endereço do servidor SIP.
conta.1.sip_server_host = 10.1.1.50
#Especifique a porta do servidor SIP. O valor padrão é 5060.
conta.1.sip_server_port=5060

Como resultado, graças à maravilhosa função de fornecimento automático fornecida nos telefones que mencionei, não houve problemas para conectar novos dispositivos à rede. Tudo se resumia a descobrir o endereço MAC do telefone e gerar um arquivo de configuração usando um modelo.

Espero que você tenha lido até o fim e se beneficiado do que leu.

Obrigado por sua atenção.

Fonte: habr.com

Adicionar um comentário