باغ وحش VoIP - تامین

ورود

یک روز، مدیریت آزمایشی را برای معرفی تلفن IP در دفتر ما تأیید کرد. از آنجایی که تجربه من در این زمینه کم بود، این کار علاقه زیادی را در من برانگیخت و به بررسی جنبه های مختلف موضوع پرداختم. در پایان شیرجه تصمیم گرفتم دانشی را که به دست آورده بودم به اشتراک بگذارم به این امید که برای کسی مفید باشد. بنابراین…

داده های خام

استریسک به عنوان IP PBX انتخاب و مستقر شد. ناوگان تلفن متشکل از دستگاه های Cisco 7906g، Panasonic UT-KX123B، Grandstream GXP1400 و Dlink DPH-150S(E)/F3، Yealink T19 و T21 است. این تنوع به این دلیل است که به عنوان بخشی از آزمایش، تصمیم گرفته شد تا از همه چیز کمی امتحان شود تا نظری در مورد نسبت قیمت / کیفیت / راحتی ایجاد شود.

کار

فرآیند راه اندازی دستگاه های جدید را تا حد امکان ساده و یکسان کنید. همه تلفن‌ها باید همگام‌سازی شده باشند، دفترچه تلفن از سرور بارگیری شده و دسترسی به تنظیمات را برای سرپرست فراهم کنند.

راه حل این مشکل ساده است - پیکربندی خودکار تلفن ها را به اصطلاح پیاده سازی کنید. تامین. در واقع، اجرای من از این عملکرد فوق العاده مورد بحث قرار خواهد گرفت.

پیکربندی tftpd، dhcpd

برای توزیع تنظیمات در تلفن ها، tftp را به عنوان یک گزینه جهانی انتخاب کردم که توسط همه سیستم عامل ها پشتیبانی می شود، پیکربندی و مدیریت آسان است.

هیچ پیکربندی خاصی برای tftp مورد نیاز نبود. من tftpd استاندارد را نصب کردم و تمام فایل های لازم را در فهرست اصلی آن قرار دادم.
من فایل های تنظیمات را مطابق با سازنده گوشی در دایرکتوری ها قرار دادم. درست است، دستگاه سیسکو هرگز وارد پوشه خود نشد، بنابراین مجبور شدم آن را در ریشه خود ذخیره کنم.

برای اینکه گوشی ها رو به محل سرور tftp اشاره کنم از گزینه 66 استفاده کردم. علاوه بر این، او آنها را بر اساس سازنده به کلاس های جداگانه تقسیم کرد. هر کلاس بخش آدرس و یک پوشه جداگانه برای فایل های پیکربندی دریافت کرد. به هر حال، دستگاه های D-link باید با آدرس های MAC محاسبه می شدند، زیرا آنها اطلاعاتی در مورد سازنده در درخواست dhcp ارائه نمی دهند.

قطعه dhcpd.conf

# گزینه گزینه های مورد نیاز را مشخص کنید گزینه-66 کد 66 = متن; class "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; گزینه گزینه-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; گزینه گزینه-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (گزینه vendor-class-identifier,0,11) = "Grandstream"; گزینه گزینه-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":", substring(hardware,1,4)) = "c8:d3:a3:8d") یا (binary-to-ascii (16,8,":", substring(سخت افزار،1,4،90)) = "94:4:e72:66"); گزینه گزینه-10.1.1.50 "0,7/dlink/"; } class "yealink" { match if substring (option vendor-class-identifier,66) = "Yealink"; گزینه گزینه-10.1.1.50 "XNUMX/yealink/"; }

تلفن ها باید به زور از استخر عمومی حذف می شدند. در غیر این صورت، آنها نمی خواستند به "استخر پارویی" خود بروند.
نمونه ای از تنظیمات زیر شبکه

subnet 10.1.1.0 netmask 255.255.255.0 { option routers 10.1.1.1; pool { deny Members of "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

این دستگاه ها را در بسته بندی اصلی تحویل گرفتم. مجبور شدم آن را تغییر دهم تا با ستاره دوست شوم. اما این یک داستان متفاوت است. در یک مورد خاص، برای پیکربندی دستگاه، طبق دستورالعمل، فایل SEPAABBCCDDEEFF.cnf.xml را در ریشه سرور tftp ایجاد کردم. جایی که AABBCCDDEEFF آدرس MAC دستگاه است.

قبلاً بیش از یک بار در مورد راه‌اندازی تلفن‌ها از سیسکو نوشته شده است، بنابراین من فقط یک فایل کاری با تنظیمات باقی می‌گذارم.
تنظیمات سیسکو

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

دی لینک DPH-150S/F3

اگر به تازگی قصد خرید گوشی در این سری را دارید، مراقب باشید، تنظیم خودکار فقط در دستگاه های 150S/F3 پشتیبانی می شود. در دستگاه 150S/F2 که به دست من رسید، چنین عملکردی را پیدا نکردم.

فایل پیکربندی می تواند در قالب xml یا متن ساده باشد. یک شرط برای xml وجود دارد: تگ باید در ابتدای خط باشد، در غیر این صورت تجزیه کننده آن را نادیده می گیرد و مقدار پارامتر مربوطه تغییر نمی کند.

برای پیکربندی گوشی از دو فایل استفاده می شود. f0D00580000.cfg - برای ذخیره تنظیمات برای همه تلفن ها و 00112233aabb.cfg (آدرس MAC در حروف کوچک) برای تنظیمات فردی. تنظیمات فردی طبیعتا اولویت بالاتری دارند.

مجموعه کامل تنظیمات شامل بیش از هزار خط است، برای اینکه مقاله را به هم نریزم، حداقل مجموعه تنظیمات کافی را شرح خواهم داد.

گره ریشه مورد نیاز است VOIP_CONFIG_FILE و گره درون آن تودرتو است نسخه. تنظیمات فقط در صورتی اعمال می شوند که نسخه فایل بالاتر از تنظیمات فعلی دستگاه باشد. از طریق رابط وب گوشی در قسمت تعمیر و نگهداری (مدیریت سیستم) می توانید به این مقدار پی ببرید. برای گوشی هایی با تنظیمات کارخانه در هر دو حالت 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 کیلوبایت است. صرف نظر از تعداد فایل ها، حجم کل آنها نباید بیش از 120 کیلوبایت باشد.
فایل پیکربندی شامل مجموعه ای از خطوط است که مشروط به شرایط زیر است:

  • خط اول همیشه یک خط نظر است، شامل دنباله کاراکترهای زیر (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 6 72 6 61 74 20F 46E 69 6 65 20 23 XNUMXE XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX C XNUMX XNUMX XNUMX
    برای جلوگیری از تغییرات تصادفی در توالی تعیین شده کاراکترها، توصیه می شود فایل پیکربندی را با خط زیر شروع کنید:
    # فایل فرمت استاندارد تلفن SIP پاناسونیک # این خط را تغییر ندهید!
  • فایل های پیکربندی باید با یک خط خالی ختم شوند.
  • هر خط باید با دنباله " پایان یابد ".
  • حداکثر طول رشته 537 بایت است، همراه با دنباله " "
  • خطوط زیر نادیده گرفته می شوند:
    • خطوط بیش از حد مجاز 537 بایت؛
    • خطوط خالی؛
    • خطوط نظر که با "#" شروع می شود.
  • رشته هر پارامتر به شکل XXX="yyy" نوشته می شود (XXX: نام پارامتر، yyy: مقدار آن). مقدار باید در دو گیومه قرار گیرد.
  • تقسیم یک خط پارامتر به چند خط مجاز نیست. این منجر به خطا در پردازش فایل پیکربندی و در نتیجه شکست اولیه می شود.
  • مقادیر برخی از پارامترها باید به طور جداگانه برای هر خط مشخص شود. پارامتر با پسوند "_1" در نام، پارامتر خط 1 است. "_2" - برای خط 2 و غیره.
  • حداکثر طول نام پارامتر 32 کاراکتر است.
  • حداکثر طول مقدار پارامتر 500 کاراکتر به استثنای کاراکترهای نقل قول دوگانه است.
  • هیچ فاصله ای در رشته مجاز نیست مگر اینکه مقدار شامل یک کاراکتر فاصله باشد.
  • برخی از مقادیر پارامتر را می توان به عنوان "خالی" برای تنظیم پارامتر روی یک مقدار خالی مشخص کرد.
  • پارامترها بدون ترتیب خاصی مشخص شده اند.
  • اگر همان پارامتر بیش از یک بار در یک فایل پیکربندی مشخص شود، مقدار مشخص شده ابتدا اعمال می شود.

چنین مجموعه ای جدی از الزامات برای فایل پیکربندی، صادقانه بگویم، من را ناراحت کرد. به نظر من، اجرای تعامل با سرور کنترل در تلفن های پاناسونیک به شدت ناخوشایند است. در این پارامتر، تلفن به طور قابل توجهی پایین تر از دیگران است.
هنگامی که دستگاه را برای اولین بار روشن می کنید (یا پس از بازنشانی آن به تنظیمات کارخانه)، سعی می کند فایل به اصطلاح محصول را بارگیری کند (در این مورد KX-UT123RU.cfg است) که باید شامل مسیرهای مربوط به فایل های پیکربندی باقی مانده
فایل محصول# فایل فرمت استاندارد تلفن 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، من فقط برخی از پارامترها را مشخص می کنم. نام پارامترهای باقیمانده و مقادیر آنها را می توان در اسناد موجود در وب سایت سازنده پیدا کرد.
master.cfg############################################### ##########
#تنظیمات سیستم#
############################################### ##########
## تنظیمات حساب کاربری وارد شوید
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="کاربر"
USER_PASS="USER_PWD"

## تنظیمات زمان سیستم
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=""

## تنظیمات 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"

## تنظیمات تامین
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"

############################################### ##########
#تنظیمات شبکه#
############################################### ##########
## تنظیمات IP
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## تنظیمات DNS
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

## تنظیمات HTTP
HTTPD_PORTOPEN_AUTO="Y"
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="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=""

به طور سنتی، فقط تنظیمات مشترک در فایل پیکربندی دستگاه فردی باقی می ماند.
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"

Grandstream GXP-1400

پارامترهای این گوشی ها در یک فایل xml با نام cfg{mac}.xml ذخیره می شوند. یا به صورت متن ساده با نام cfg{mac}. این تلفن فقط یک فایل پیکربندی فردی درخواست می‌کند، بنابراین بهینه‌سازی تنظیمات با انتقال آنها به یک فایل مشترک کارساز نخواهد بود. یکی دیگر از ویژگی های راه اندازی Grandstreams نام گذاری پارامترها است. همه آنها شماره گذاری شده و با P### مشخص شده اند. مثلا:

P1650 - مسئول رابط وب برای مدیریت تلفن (0 - HTTPS، 1 - HTTP)
P47 - آدرس سرور SIP برای اتصال.

اگر پیکربندی در یک فایل متنی ذخیره شود، پارامترها نیازی به گروه بندی ندارند و به ترتیبی هستند. خطوطی که با # شروع می شوند به عنوان نظر تلقی می شوند.

اگر تنظیمات با فرمت xml ارائه شوند، باید در یک گره تودرتو باشند ، که به نوبه خود باید تو در تو باشد . تمام پارامترها در قالب تگ های مربوطه با مقدار پارامتر در داخل نوشته می شوند.
نمونه تنظیم

1.0 8 1 1 SIP_PWD کاربر شماره 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream سی

Yealink T19 و T21

دستگاه‌های این مدل‌ها از فایل‌های پیکربندی جداگانه برای دستگاه‌ها و موارد رایج برای مدل‌ها پشتیبانی می‌کنند. در مورد من باید پارامترهای کلی را به ترتیب در فایل های y000000000031.cfg و y000000000034.cfg قرار می دادم. فایل های پیکربندی فردی با توجه به آدرس MAC نامگذاری می شوند: 00112233aabb.cfg.

تنظیمات yealink ها در قالب متن ذخیره می شوند. تنها الزامات اجباری وجود نسخه فایل در خط اول با فرمت #!version:1.0.0.1 است.

تمام پارامترها به صورت پارامتر = مقدار نوشته می شوند. نظرات باید با کاراکتر "#" شروع شوند. نام پارامترها و مقادیر آنها را می توان در اسناد موجود در وب سایت سازنده پیدا کرد.
تنظیمات عمومی#!نسخه:1.0.0.1
نوع پورت WAN را پیکربندی کنید. 0-DHCP (پیش فرض)، 1-PPPoE، 2-آدرس IP استاتیک؛
network.internet_port.type = 0
نوع پورت PC را پیکربندی کنید. 0-روتر، 1-پل (پیش فرض)؛
network.bridge_mode = 1
#تنظیم نوع دسترسی سرور وب؛ 0-غیرفعال، 1-HTTP و HTTPS (پیش فرض)، 2-فقط HTTP، 3-فقط HTTPS؛
network.web_server_type = 3
حداکثر پورت RTP محلی را پیکربندی کنید. از 0 تا 65535 متغیر است، مقدار پیش فرض 11800 است.
network.port.max_rtpport = 10100
حداقل پورت RTP محلی را پیکربندی کنید. از 0 تا 65535 متغیر است، مقدار پیش فرض 11780 است.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = کاربر
security.user_password = کاربر:USER_PWD
#زبان وب را مشخص کنید، مقادیر معتبر عبارتند از: انگلیسی، چینی_S، ترکی، پرتغالی، اسپانیایی، ایتالیایی، فرانسوی، روسی، دویچ و چک.
lang.wui = روسی
#زبان LCD را مشخص کنید، مقادیر معتبر عبارتند از: انگلیسی (پیش‌فرض)، چینی_S، چینی_T، آلمانی، فرانسوی، ترکی، ایتالیایی، لهستانی، اسپانیایی و پرتغالی.
lang.gui = روسی
#منطقه زمانی و نام منطقه زمانی را پیکربندی کنید. محدوده زمانی منطقه از -11 تا +12 است، مقدار پیش فرض +8 است.
# نام منطقه زمانی پیش‌فرض چین (پکن) است.
#برای اطلاع از مناطق زمانی موجود و نام منطقه زمانی به راهنمای کاربر تلفن های IP Yealink مراجعه کنید.
local_time.time_zone = +11
local_time.time_zone_name = ولادی وستوک
#نام دامنه یا آدرس IP سرور NTP را پیکربندی کنید. مقدار پیش فرض cn.pool.ntp.org است.
local_time.ntp_server1 = 10.1.1.4
# حالت لوگوی صفحه LCD را پیکربندی کنید. 0-غیرفعال (پیش فرض)، 1-آرم سیستم، 2-لوگوی سفارشی.
phone_setting.lcd_logo.mode = 1
# URL دسترسی و نام فهرست تلفن راه دور را پیکربندی کنید. X از 1 تا 5 است.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = دفترچه تلفن
features.remote_phonebook.flash_time = 3600

تنظیمات فردی#!نسخه:1.0.0.1
#فعال یا غیرفعال کردن حساب1، 0-غیرفعال (پیش فرض)، 1-فعال.
account.1.enable = 1
#برچسب نمایش داده شده روی صفحه LCD را برای account1 پیکربندی کنید.
account.1.label = تلفن تست
#نام نمایش حساب 1 را پیکربندی کنید.
account.1.display_name = کاربر 998
#نام کاربری و رمز عبور را برای احراز هویت ثبت نام پیکربندی کنید.
account.1.auth_name = 998
account.1.password = 998
#نام کاربری ثبت نام را پیکربندی کنید.
account.1.user_name = 998
#آدرس سرور SIP را پیکربندی کنید.
account.1.sip_server_host = 10.1.1.50
# پورت سرور SIP را مشخص کنید. مقدار پیش فرض 5060 است.
account.1.sip_server_port = 5060

در نتیجه، به لطف عملکرد فوق العاده تامین خودکار ارائه شده در تلفن هایی که ذکر کردم، هیچ مشکلی در اتصال دستگاه های جدید به شبکه وجود نداشت. همه چیز به پیدا کردن آدرس MAC تلفن و ایجاد یک فایل پیکربندی با استفاده از یک الگو خلاصه شد.

امیدوارم تا آخر مطالعه کرده باشید و از مطالبی که خواندید بهره برده باشید.

با تشکر از توجه شما.

منبع: www.habr.com

اضافه کردن نظر