输入
有一天,管理层批准了一项在我们办公室引入 IP 电话的实验。 由于我在这方面的经验还很少,所以这个任务引起了我的极大兴趣,我开始对这个问题的各个方面进行研究。 潜水结束时,我决定分享我所获得的知识,希望它对某人有用。 所以…
初始数据
Asterisk 被选择并部署为 IP PBX。 该电话机群包括 Cisco 7906g、Panasonic UT-KX123B、Grandstream GXP1400 和 Dlink DPH-150S(E)/F3、Yealink T19 和 T21 设备。 这种差异是由于以下事实:作为实验的一部分,决定尝试一些东西,以便对价格/质量/便利比形成意见。
任务
尽可能简化和统一设置新设备的过程。 所有电话必须进行时间同步,从服务器加载电话簿,并为管理员提供设置访问权限。
解决这个问题的方法很简单——实现手机的自动配置,即所谓的。 供应。 实际上,我将讨论这个奇妙功能的实现。
配置 tftpd、dhcpd
为了将设置分发到手机,我选择了 tftp 作为通用选项,受所有平台支持,易于配置和管理。
tftp 不需要特定配置。 我安装了标准 tftpd 并将所有必需的文件放在其根目录中。
我将设置文件放置在与手机制造商一致的目录中。 确实,思科设备从未进入其文件夹,因此我必须将其存储在其根目录中。
为了将电话指向 tftp 服务器的位置,我使用了 option-66。 此外,他还按制造商将它们分为不同的类别。 每个类都有自己的地址段和一个单独的配置文件文件夹。 顺便说一句,D-link 的设备必须通过 MAC 地址计算,因为它们在 dhcp 请求中不提供有关制造商的信息。
dhcpd.conf 片段
# 指定需要的选项 option option-66 code 66 = text; 类“松下”{匹配如果子字符串(选项供应商类标识符,0,9)=“松下”; 选项选项-66“10.1.1.50/panasonic/”; } class "cisco" { match if substring (optionvendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; 选项选项-66“10.1.1.50/cisco/”; } class "grandstream" { match if substring (optionvendor-class-identifier,0,11) = "Grandstream"; 选项 option-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (二进制转ascii (16,8,":",substring(硬件,1,4)) = "c8:d3:a3:8d") 或 (二进制转ascii (16,8,":",子串(硬件,1,4)) = "90:94:e4:72"); 选项选项66“10.1.1.50/dlink/”; } class "yealink" { match if substring (optionvendor-class-identifier,0,7) = "Yealink"; option option-66 "10.1.1.50/yealink/"; }
手机必须被强行排除在通用池之外。 否则,他们就不想去他们的“戏水池”了。
子网设置示例
子网 10.1.1.0 网络掩码 255.255.255.0 { 选项路由器 10.1.1.1; pool { 拒绝“cisco”的成员; 拒绝“松下”成员; 拒绝“dlink”成员; 范围 10.1.1.230 10.1.1.240; } pool { 允许“cisco”成员; 范围 10.1.1.65 10.1.1.69; } pool { 允许“panasonic”的成员; 范围 10.1.1.60 10.1.1.64; } pool { 允许“dlink”成员; 范围 10.1.1.55 10.1.1.59; } }
重新启动所有涉及的服务后,手机自信地前往指定的 tftp 服务器进行设置。 剩下的就是将它们放置在那里。
思科7906
我收到的这些设备均采用原包装。 我必须改变它才能与星号交朋友。 但那是另一回事了。 在特定情况下,为了配置设备,根据说明,我在 tftp 服务器的根目录中创建了文件 SEPAABCCDDEEFF.cnf.xml。 其中AABBCCDDEEFF 是设备的MAC 地址。
关于设置 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
如果您刚刚购买该系列手机,请注意,仅 150S/F3 设备支持自动调谐。 在我手中的150S/F2设备上,我没有发现这样的功能。
配置文件可以是xml或纯文本格式。 对xml有一个要求:标签必须位于行首,否则解析器会忽略它,相应参数的值也不会改变。
两个文件用于配置电话。 f0D00580000.cfg - 用于存储所有电话的设置,00112233aabb.cfg(小写的 MAC 地址)用于单个设置。 个人设置自然具有更高的优先级。
全套设置包含一千多行,为了不使文章混乱,我将描述最少的足够设置。
需要根节点 VOIP_配置_文件 以及嵌套在其中的节点 版本。 仅当文件版本高于设备中的当前设置时,才会应用这些设置。 您可以通过话机网络界面的维护部分(系统管理)找到该值。 对于出厂设置的手机,这两种情况都是 2.0002。 此外,单个文件版本必须大于共享文件版本。
首先,我将提供一个包含所有手机通用配置的文件。 事实上,它存储了所有设置;单个文件仅负责电话号码和屏幕上的铭文。
在下面的两个块中,设置时区和时间同步参数,启用 RTP 的初始端口以及设备的 WAN 和 LAN 连接器之间的网桥。
片段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>
配置参数的实际名称具有足够的描述性,无需对其进行详细描述。
一根线路的SIP
<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>
远程控制设置
<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>
手机设置
<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>
所有其他设置将保持“默认”。 现在,任何连接到网络的 Dlink 手机都将立即接受一组通用参数。 要设置设备的各个参数,需要一个单独的文件。 您只需在其中为单个订阅者指定必要的设置。
订户设置
<?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>
松下UT-KX123B
这些设备根据稍微不同的方案接收设置。 配置存储在文本文件中。 最大配置文件大小为 120 KB。 无论文件数量有多少,它们的总大小都不应超过 120 KB。
配置文件由一组行组成,这些行满足以下条件:
- 第一行始终是注释行,包括以下字符序列(44 个字节):
#松下SIP电话标准格式文件#
该序列的十六进制表示:
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
为了防止意外更改已建立的字符序列,建议使用以下行启动配置文件:
# Panasonic SIP 电话标准格式文件 # 不要更改此行! - 配置文件必须以空行结尾。
- 每行必须以序列“结束” ”。
- 最大字符串长度为 537 字节,包括序列“ ”
- 以下行将被忽略:
- 行数超过 537 字节限制;
- 空行;
- 以“#”开头的注释行;
- 每个参数的字符串以 XXX=“yyy” 的形式编写(XXX:参数名称,yyy:其值)。 该值必须用双引号引起来。
- 不允许将参数行拆分为多行。 这将导致处理配置文件时出错,从而导致初始化失败。
- 某些参数的值必须为每行单独指定。 名称中带有后缀“_1”的参数是第1行的参数; “_2”—用于第 2 行等。
- 参数名称的最大长度为 32 个字符。
- 参数值的最大长度为 500 个字符(不包括双引号字符)。
- 字符串中不允许有空格,除非该值包含空格字符。
- 有些参数值可以指定为“blank”,将参数设置为空值。
- 这些参数没有特定的顺序指定。
- 如果在配置文件中多次指定同一参数,则应用第一个指定的值。
对配置文件如此严格的要求,坦白说让我很不爽。 在我看来,在松下手机上实现与控制服务器的交互是极其不方便的。 在这个参数上,该手机明显逊色于其他手机。
当您第一次打开设备时(或将其重置为出厂设置后),它会尝试加载所谓的产品文件(在本例中为 KX-UT123RU.cfg),该文件应包含剩余的配置文件。
产品档案# Panasonic SIP 电话标准格式文件 # 不要更改此行!
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"
此后,手机将显示准备成功完成的消息,并等待直至重新启动。 重新启动后,它将开始处理分配给它的配置文件。
建议在 master.cfg 文件中指定所有电话的常规设置。 与 Dlink 一样,我只会指定一些参数。 其余参数的名称及其值可以在制造商网站的文档中找到。
大师.cfg############################################### ###########
#系统设置#
############################################### ###########
## 登录账户设置
ADMIN_ID="管理员"
ADMIN_PASS="ADMIN_PWD"
USER_ID=“用户”
USER_PASS="USER_PWD"
## 系统时间设置
NTP_ADDR="10.1.1.4"
时区=“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=""
## 系统日志设置
SYSLOG_ADDR="10.1.1.50"
系统日志端口=“514”
SYSLOG_EVENT_SIP="6"
SYSLOG_EVENT_CFG="6"
SYSLOG_EVENT_VOIP="6"
SYSLOG_EVENT_TEL="6"
## 配置设置
OPTION66_ENABLE=“是”
OPTION66_REBOOT="N"
PROVISION_ENABLE="是"
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"
############################################### ###########
#网络设置#
############################################### ###########
## IP 设置
CONNECTION_TYPE =“1”
HOST_NAME=“UT123”
DHCP_DNS_ENABLE="是"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""
## DNS 设置
DNS_QRY_PRLL="是"
DNS_PRIORITY=“N”
DNS1_ADDR =“10.1.1.1”
DNS2_ADDR=""
## HTTP 设置
HTTPD_PORTOPEN_AUTO="是"
HTTP_VER=“1”
HTTP_USER_AGENT="Panasonic_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""
## XML 应用程序设置
XML_HTTPD_PORT="6666"
XMLAPP_ENABLE="是"
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=""
传统上,只有订户的设置保留在单个设备配置文件中。
aabbccddeeff.cfgDISPLAY_NAME_1="用户 #168"
PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="已启用"
PROFILE_ENABLE_1="已启用"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"
潮流GXP-1400
这些电话的参数存储在一个名为 cfg{mac}.xml 的 xml 文件中。 或者以纯文本形式命名为 cfg{mac}。 该手机仅请求单独的配置文件,因此通过将它们移动到通用文件来优化设置是行不通的。 设置 Grandstreams 的另一个特点是参数的命名。 它们都被编号并指定为 P###。 例如:
P1650 – 负责管理电话的 Web 界面(0 – HTTPS,1 – HTTP)
P47 – 用于连接的 SIP 服务器地址。
如果配置存储在文本文件中,则参数不需要任何分组并且可以按任意顺序排列。 以 # 开头的行被视为注释。
如果设置以 xml 格式呈现,则它们必须嵌套在节点中,而它又必须嵌套在。 所有参数都以对应标签的形式写入,里面有参数值。
设置示例
1.0 8 1 1 SIP_密码用户#271 1 271 270 109 管理员密码USER_PWD 茹270 35/潮流109 TZc-35 36 109 http://36/provisioning/grandstream 三十
亿联T19和T21
这些型号的设备支持设备的单独配置文件和型号的通用配置文件。 就我而言,我必须将常规参数分别放置在文件 y000000000031.cfg 和 y000000000034.cfg 中。 各个配置文件根据 MAC 地址命名:00112233aabb.cfg。
Yealinks 的设置以文本格式存储。 唯一的强制性要求是第一行中存在文件版本,格式为 #!version:1.0.0.1。
所有参数均以参数=值的形式编写。 注释必须以“#”字符开头。 参数的名称及其值可以在制造商网站的文档中找到。
通用设置#!版本:1.0.0.1
#配置WAN口类型; 0-DHCP(默认)、1-PPPoE、2-静态IP地址;
网络.internet_port.type = 0
#配置PC端口类型; 0-路由器,1-网桥(默认);
网络.bridge_mode = 1
#配置Web服务器的访问类型; 0-禁用,1-HTTP 和 HTTPS(默认),2-仅 HTTP,3-仅 HTTPS;
网络.web_server_type = 3
#配置本地RTP最大端口。 范围为 0 至 65535,默认值为 11800。
网络端口.max_rtpport = 10100
#配置最小本地RTP端口。 范围为 0 至 65535,默认值为 11780。
网络端口.min_rtpport = 10000
安全.用户名.admin = root
security.user_password = root:ADMIN_PWD
安全.用户名.用户=用户
security.user_password = 用户:USER_PWD
#指定网页语言,有效值为:English、Chinese_S、土耳其语、葡萄牙语、西班牙语、意大利语、法语、俄语、德语和捷克语。
lang.wui = 俄语
#指定LCD语言,有效值为:English(默认)、Chinese_S、Chinese_T、德语、法语、土耳其语、意大利语、波兰语、西班牙语和葡萄牙语。
lang.gui = 俄语
#配置时区和时区名称。 时区范围为-11到+12,默认值为+8。
#默认时区名称为中国(北京)。
#更多可用时区和时区名称,请参见Yealink IP话机用户指南。
本地时间.时区 = +11
local_time.time_zone_name = 海参崴
#配置NTP服务器的域名或IP地址。 默认值为 cn.pool.ntp.org。
本地时间.ntp_server1 = 10.1.1.4
#配置液晶屏的标志模式; 0-禁用(默认),1-系统徽标,2-自定义徽标;
电话设置.lcd_logo.模式 = 1
#配置远程电话本的访问URL和显示名称。 X 的取值范围是 1 到 5。
远程电话簿.data.1.url =
remote_phonebook.data.1.name = 电话簿
features.remote_phonebook.flash_time = 3600
个人设置#!版本:1.0.0.1
#启用或禁用账户1,0-禁用(默认),1-启用;
帐户.1.启用 = 1
#配置account1在液晶屏上显示的标签。
account.1.label = 测试手机
#配置account1的显示名称。
account.1.display_name = 用户 998
#配置注册认证的用户名和密码。
帐户.1.auth_name = 998
帐号.1.密码 = 998
#配置注册用户名。
帐户.1.用户名 = 998
#配置SIP服务器地址。
帐户.1.sip_server_host = 10.1.1.50
#指定SIP服务器的端口。 默认值为 5060。
帐户.1.sip_server_port = 5060
结果,由于我提到的手机中提供的出色的自动配置功能,将新设备连接到网络没有任何问题。 这一切都归结为找出电话的 MAC 地址并使用模板生成配置文件。
我希望您能读到最后并从中受益。
感谢您的关注。
来源: habr.com