Compare commits
No commits in common. "5bc26416e6152f9eeb7040e688be18fbe1e87bd5" and "75484f8ef46d631afa3c506bc7508adf13b82cf3" have entirely different histories.
5bc26416e6
...
75484f8ef4
|
@ -1,3 +1,2 @@
|
||||||
# Documentation Links :
|
# Documentation Links :
|
||||||
* [Asterisk phone cisco 79×1 xml configuration files for SIP](https://www.voip-info.org/asterisk-phone-cisco-79x1-xml-configuration-files-for-sip/)
|
* [Voip-Info 79x1](https://www.voip-info.org/asterisk-phone-cisco-79x1-xml-configuration-files-for-sip/)
|
||||||
* [Configuring A Custom Background Image - Cisco 7911G - IP Phone VoIP Administration Manual](https://www.manualslib.com/manual/375757/Cisco-7911g-Ip-Phone-Voip.html?page=177)
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
# 7911 - 7906 Series :
|
|
||||||
|
|
||||||
## Intro :
|
|
||||||
|
|
||||||
You will need an IPv4 Network with :
|
|
||||||
|
|
||||||
* DHCP server (tested on tagged Voice-Vlan)
|
|
||||||
* TFTP server (option 66 configured in DHCP server)
|
|
||||||
* physical access to the phone
|
|
||||||
|
|
||||||
## Factory reset sequence :
|
|
||||||
|
|
||||||
When the phone start's up, (either POE or local adapter), dial the `#` until the red headset light starts blinking.
|
|
||||||
Dial `1 2 3 4 5 6 7 8 9 * 0 #` in that order. The phone will factory reset
|
|
||||||
|
|
||||||
## Flashing process :
|
|
||||||
|
|
||||||
```<loadInformation>``` is what needs to contain the firmware number.
|
|
||||||
|
|
||||||
After factory reset, the phone will look up in the TFTP server for his own config file (`SEP<mac-address>.cnf.xml`)
|
|
||||||
In the case of flashing to SIP firmware, that file has to contain the fact that it goes to SIP and a firmware version.
|
|
||||||
All system files must be stored at the root of the TFTP server.
|
|
||||||
|
|
||||||
## Startup Sequence :
|
|
||||||
|
|
||||||
At every reboot, the phone will look up for the ``SEP<mac-address>.cnf.xml``.
|
|
||||||
|
|
||||||
## Common problems:
|
|
||||||
|
|
||||||
Phone can start to boot-loop after flashing. Apparently, if it can't connect to the IPPBX, it will reboot.
|
|
|
@ -1,178 +0,0 @@
|
||||||
<device>
|
|
||||||
<deviceProtocol>SIP</deviceProtocol>
|
|
||||||
<devicePool>
|
|
||||||
<dateTimeSetting>
|
|
||||||
<dateTemplate>D/M/YY</dateTemplate>
|
|
||||||
<timeZone>W. Europe Standard/Daylight Time</timeZone>
|
|
||||||
<ntps>
|
|
||||||
<ntp>
|
|
||||||
<name><NTP SERVER></name>
|
|
||||||
<ntpMode>Unicast</ntpMode>
|
|
||||||
</ntp>
|
|
||||||
</ntps>
|
|
||||||
</dateTimeSetting>
|
|
||||||
<callManagerGroup>
|
|
||||||
<members>
|
|
||||||
<member priority="0">
|
|
||||||
<callManager>
|
|
||||||
<ports>
|
|
||||||
<ethernetPhonePort>2000</ethernetPhonePort>
|
|
||||||
<sipPort>5060</sipPort>
|
|
||||||
<securedSipPort>5061</securedSipPort>
|
|
||||||
</ports>
|
|
||||||
<processNodeName><PBX IP></processNodeName>
|
|
||||||
</callManager>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</callManagerGroup>
|
|
||||||
</devicePool>
|
|
||||||
<sipProfile>
|
|
||||||
<sipProxies>
|
|
||||||
<backupProxy></backupProxy>
|
|
||||||
<backupProxyPort></backupProxyPort>
|
|
||||||
<emergencyProxy></emergencyProxy>
|
|
||||||
<emergencyProxyPort></emergencyProxyPort>
|
|
||||||
<outboundProxy></outboundProxy>
|
|
||||||
<outboundProxyPort></outboundProxyPort>
|
|
||||||
<registerWithProxy>true</registerWithProxy>
|
|
||||||
</sipProxies>
|
|
||||||
<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>1</callHoldRingback>
|
|
||||||
<localCfwdEnable>true</localCfwdEnable>
|
|
||||||
<semiAttendedTransfer>true</semiAttendedTransfer>
|
|
||||||
<anonymousCallBlock>0</anonymousCallBlock>
|
|
||||||
<callerIdBlocking>0</callerIdBlocking>
|
|
||||||
<retainForwardInformation>false</retainForwardInformation>
|
|
||||||
<dndControl>0</dndControl>
|
|
||||||
<remoteCcEnable>true</remoteCcEnable>
|
|
||||||
</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>Phone</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>
|
|
||||||
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
|
|
||||||
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
|
|
||||||
<kpml>0</kpml>
|
|
||||||
<natEnabled>false</natEnabled>
|
|
||||||
<natAddress></natAddress>
|
|
||||||
<phoneLabel><phone name></phoneLabel>
|
|
||||||
<offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
|
|
||||||
<stutterMsgWaiting>0</stutterMsgWaiting>
|
|
||||||
<callStats>false</callStats>
|
|
||||||
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
|
|
||||||
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
|
|
||||||
<startMediaPort>16384</startMediaPort>
|
|
||||||
<stopMediaPort>32766</stopMediaPort>
|
|
||||||
<sipLines>
|
|
||||||
<line button="1">
|
|
||||||
<offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
|
|
||||||
<featureID>9</featureID>
|
|
||||||
<featureLabel><Line Name></featureLabel>
|
|
||||||
<proxy>USECALLMANAGER</proxy>
|
|
||||||
<port>5060</port>
|
|
||||||
<name><SIP USER NAME></name>
|
|
||||||
<displayName>Main</displayName>
|
|
||||||
<autoAnswer>
|
|
||||||
<autoAnswerEnabled>0</autoAnswerEnabled>
|
|
||||||
</autoAnswer>
|
|
||||||
<callWaiting>1</callWaiting>
|
|
||||||
<authName><SIP USER NAME></authName>
|
|
||||||
<authPassword><SIP USER PASSWORD></authPassword>
|
|
||||||
<sharedLine>false</sharedLine>
|
|
||||||
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
|
|
||||||
<messagesNumber>*97</messagesNumber>
|
|
||||||
<ringSettingIdle>4</ringSettingIdle>
|
|
||||||
<ringSettingActive>5</ringSettingActive>
|
|
||||||
<contact>cisco7911</contact>
|
|
||||||
<forwardCallInfoDisplay>
|
|
||||||
<callerName>true</callerName>
|
|
||||||
<callerNumber>false</callerNumber>
|
|
||||||
<redirectedNumber>false</redirectedNumber>
|
|
||||||
<dialedNumber>true</dialedNumber>
|
|
||||||
</forwardCallInfoDisplay>
|
|
||||||
</line>
|
|
||||||
</sipLines>
|
|
||||||
<voipControlPort>5060</voipControlPort>
|
|
||||||
<dscpForAudio>184</dscpForAudio>
|
|
||||||
<dialTemplate>dialplan.xml</dialTemplate>
|
|
||||||
</sipProfile>
|
|
||||||
<commonProfile>
|
|
||||||
<phonePassword>cisco</phonePassword>
|
|
||||||
<backgroundImageAccess>true</backgroundImageAccess>
|
|
||||||
<setBackground>
|
|
||||||
<background>
|
|
||||||
<image></image>
|
|
||||||
<icon></icon>
|
|
||||||
</background>
|
|
||||||
</setBackground>
|
|
||||||
<callLogBlfEnabled>1</callLogBlfEnabled>
|
|
||||||
</commonProfile>
|
|
||||||
<loadInformation>SIP11.9-4-2SR3-1S</loadInformation>
|
|
||||||
<vendorConfig>
|
|
||||||
<disableSpeaker>false</disableSpeaker>
|
|
||||||
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
|
|
||||||
<pcPort>0</pcPort>
|
|
||||||
<settingsAccess>1</settingsAccess>
|
|
||||||
<garp>0</garp>
|
|
||||||
<voiceVlanAccess>0</voiceVlanAccess>
|
|
||||||
<videoCapability>0</videoCapability>
|
|
||||||
<autoSelectLineEnable>0</autoSelectLineEnable>
|
|
||||||
<webAccess>1</webAccess>
|
|
||||||
<spanToPCPort>1</spanToPCPort>
|
|
||||||
<loggingDisplay>1</loggingDisplay>
|
|
||||||
<loadServer></loadServer>
|
|
||||||
</vendorConfig>
|
|
||||||
<networkLocale></networkLocale>
|
|
||||||
<networkLocaleInfo>
|
|
||||||
<name></name>
|
|
||||||
<version>5.0(2)</version>
|
|
||||||
</networkLocaleInfo>
|
|
||||||
<deviceSecurityMode>1</deviceSecurityMode>
|
|
||||||
<authenticationURL></authenticationURL>
|
|
||||||
<directoryURL></directoryURL>
|
|
||||||
<idleURL></idleURL>
|
|
||||||
<informationURL></informationURL>
|
|
||||||
<messagesURL></messagesURL>
|
|
||||||
<proxyServerURL></proxyServerURL>
|
|
||||||
<servicesURL></servicesURL>
|
|
||||||
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
|
|
||||||
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
|
|
||||||
<dscpForCm2Dvce>96</dscpForCm2Dvce>
|
|
||||||
<transportLayerProtocol>2</transportLayerProtocol>
|
|
||||||
<capfAuthMode>0</capfAuthMode>
|
|
||||||
<capfList>
|
|
||||||
<capf>
|
|
||||||
<phonePort>3804</phonePort>
|
|
||||||
</capf>
|
|
||||||
</capfList>
|
|
||||||
<certHash></certHash>
|
|
||||||
<encrConfig>false</encrConfig>
|
|
||||||
</device>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<device>
|
|
||||||
<deviceProtocol>SIP</deviceProtocol>
|
|
||||||
<loadInformation model="IP Phone 7940">P0S3-8-12-00</loadInformation>
|
|
||||||
</device>
|
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
proxy1_address: "<fqdn/hostname of ippbx>"
|
|
||||||
|
|
||||||
line1_name: "<login>"
|
|
||||||
line1_shortname: "<line_name>"
|
|
||||||
line1_displayname: "<line_name>"
|
|
||||||
line1_authname: "<login>"
|
|
||||||
line1_password: "<password>"
|
|
||||||
|
|
||||||
#line2_name: "<login>"
|
|
||||||
#line2_shortname: "<login_name>"
|
|
||||||
#line2_displayname: "<login_name>"
|
|
||||||
#line2_authname: "<login>"
|
|
||||||
#line2_password: "<password>"
|
|
||||||
|
|
||||||
proxy_emergency: ""
|
|
||||||
proxy_emergency_port: "5060"
|
|
||||||
proxy_backup: ""
|
|
||||||
proxy_backup_port: "5060"
|
|
||||||
outbound_proxy: "<fqdn/hostname of ippbx>"
|
|
||||||
outbound_proxy_port: "5060"
|
|
||||||
|
|
||||||
proxy_register: "1"
|
|
||||||
timer_register_expires: "120"
|
|
||||||
preferred_codec: "none"
|
|
||||||
tos_media: "5"
|
|
||||||
enable_vad: "0"
|
|
||||||
dial_template: "dialplan"
|
|
||||||
network_media_type: "auto"
|
|
||||||
autocomplete: "1"
|
|
||||||
telnet_level: "2”
|
|
||||||
|
|
||||||
cnf_join_enable: "1"
|
|
||||||
semi_attended_transfer: "0"
|
|
||||||
call_waiting: "1"
|
|
||||||
anonymous_call_block: "0"
|
|
||||||
callerid_blocking: "0"
|
|
||||||
dnd_control: "0"
|
|
||||||
|
|
||||||
dtmf_inband: "1"
|
|
||||||
dtmf_outofband: "avt"
|
|
||||||
dtmf_db_level: "3"
|
|
||||||
dtmf_avt_payload: "101"
|
|
||||||
timer_t1: "500"
|
|
||||||
timer_t2: "4000"
|
|
||||||
sip_retx: "10"
|
|
||||||
sip_invite_retx: "6"
|
|
||||||
timer_invite_expires: "180"
|
|
||||||
|
|
||||||
|
|
||||||
nat_enable: "0"
|
|
||||||
#voip_control_port: "5060"
|
|
||||||
#start_media_port: "10000"
|
|
||||||
#end_media_port: "10100"
|
|
||||||
nat_received_processing: "0"
|
|
||||||
|
|
||||||
phone_label: "<upper_right_label>"
|
|
||||||
time_zone: CET
|
|
||||||
time_format_24hr: 3
|
|
||||||
date_format: D/M/Y
|
|
||||||
sntp_mode: "directedbroadcast"
|
|
||||||
sntp_server: "<ntp_server>"
|
|
||||||
|
|
||||||
logo_url: "<logurl>"
|
|
||||||
|
|
||||||
telnet_level: "2"
|
|
||||||
phone_prompt: "Cisco79x0”
|
|
||||||
phone_password: "cisco"
|
|
||||||
enable_vad: "0"
|
|
||||||
network_media_type: "auto"
|
|
||||||
user_info: phone
|
|
||||||
image_version: "P0S3-8-12-00"
|
|
||||||
|
|
|
@ -19,189 +19,6 @@ def mac():
|
||||||
|
|
||||||
return raw_mac
|
return raw_mac
|
||||||
|
|
||||||
def getntp():
|
|
||||||
"""
|
|
||||||
geting the NTP server. Getting FQDN or IP address
|
|
||||||
:return: the NTP server
|
|
||||||
"""
|
|
||||||
while True:
|
|
||||||
ntpserver = input("NTP server : ")
|
|
||||||
if ntpserver != "":
|
|
||||||
return ntpserver
|
|
||||||
|
|
||||||
def gettimezone():
|
|
||||||
"""
|
|
||||||
Timezone Selection.
|
|
||||||
Default is GMT. (thank you cisco for making that part very long)
|
|
||||||
:return: the string of the local timezone
|
|
||||||
"""
|
|
||||||
timezone = "GMT"
|
|
||||||
offset = input("What is your GMT offset? (example for Belgium : +01:00) : ")
|
|
||||||
if offset == "-12:00":
|
|
||||||
timezone = "IDL"
|
|
||||||
elif offset == "-11:00":
|
|
||||||
timezone = "NT"
|
|
||||||
elif offset == "-10:00":
|
|
||||||
timezone = "AHST"
|
|
||||||
elif offset == "-09:30":
|
|
||||||
timezone = "IMT"
|
|
||||||
elif offset == "-09:00":
|
|
||||||
timezone = "YST"
|
|
||||||
elif offset == "-08:00":
|
|
||||||
timezone = "PST"
|
|
||||||
elif offset == "-07:00":
|
|
||||||
timezone = "MST"
|
|
||||||
elif offset == "-06:00":
|
|
||||||
timezone = "CST"
|
|
||||||
elif offset == "-05:00":
|
|
||||||
timezone = "EST"
|
|
||||||
elif offset == "-04:00":
|
|
||||||
timezone = "AST"
|
|
||||||
elif offset == "-03:30":
|
|
||||||
timezone = "NST"
|
|
||||||
elif offset == "-03:00":
|
|
||||||
timezone = "BST"
|
|
||||||
elif offset == "-02:00":
|
|
||||||
timezone = "AT"
|
|
||||||
elif offset == "-01:00":
|
|
||||||
timezone = "WAT"
|
|
||||||
elif offset == "00:00" or offset == "+00:00" or offset == "-00:00":
|
|
||||||
timezone = "GMT"
|
|
||||||
elif offset == "+01:00":
|
|
||||||
timezone = "CET"
|
|
||||||
elif offset == "+02:00":
|
|
||||||
timezone = "EET"
|
|
||||||
elif offset == "+03:00":
|
|
||||||
timezone = "BT"
|
|
||||||
elif offset == "+03:30":
|
|
||||||
timezone = "IT"
|
|
||||||
elif offset == "+04:00":
|
|
||||||
timezone = "ZP4"
|
|
||||||
elif offset == "+04:30":
|
|
||||||
timezone = "AFG"
|
|
||||||
elif offset == "+05:00":
|
|
||||||
timezone = "ZP5"
|
|
||||||
elif offset == "+05:30":
|
|
||||||
timezone = "IST"
|
|
||||||
elif offset == "+06:00":
|
|
||||||
timezone = "ZP6"
|
|
||||||
elif offset == "+06:30":
|
|
||||||
timezone = "SUM"
|
|
||||||
elif offset == "+07:00":
|
|
||||||
timezone = "WAST"
|
|
||||||
elif offset == "+08:00":
|
|
||||||
timezone = "HST"
|
|
||||||
elif offset == "+09:00":
|
|
||||||
timezone = "JST"
|
|
||||||
elif offset == "+09:30":
|
|
||||||
timezone = "CAST"
|
|
||||||
elif offset == "+10:00":
|
|
||||||
timezone = "EAST"
|
|
||||||
elif offset == "+11:00":
|
|
||||||
timezone = "EADT"
|
|
||||||
elif offset == "+12:00":
|
|
||||||
timezone = "NZST"
|
|
||||||
else:
|
|
||||||
print("invalid option")
|
|
||||||
|
|
||||||
return timezone
|
|
||||||
|
|
||||||
def getsoftwareversion():
|
|
||||||
"""
|
|
||||||
getting the software version for the phones. Needed for intial flashing (still need to document)
|
|
||||||
:return: a string that contains software version.
|
|
||||||
"""
|
|
||||||
while True:
|
|
||||||
software = input("What is the software version : ")
|
|
||||||
if software != "":
|
|
||||||
return software
|
|
||||||
|
|
||||||
def getphonename():
|
|
||||||
"""
|
|
||||||
What name would you like your phone to have (name will be shown in the upper right corner
|
|
||||||
:return: Phone name
|
|
||||||
"""
|
|
||||||
while True:
|
|
||||||
name = input("What is the phone name? (name will be shown in the upper right corner : ")
|
|
||||||
if name != "":
|
|
||||||
return name
|
|
||||||
|
|
||||||
def getproxy():
|
|
||||||
"""
|
|
||||||
This function takes the address of the PBX
|
|
||||||
:return: IP address or hostname in a string (MANDATORY)
|
|
||||||
"""
|
|
||||||
while True:
|
|
||||||
proxy = input("Enter the Hostname or IP address of the IP-PBX (proxy) : ")
|
|
||||||
if proxy != "":
|
|
||||||
return proxy
|
|
||||||
|
|
||||||
def getlineamount():
|
|
||||||
"""
|
|
||||||
Function will allow to run in a loop to get the data for all lines
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return int(input("How many phone lines do you have : "))
|
|
||||||
|
|
||||||
def getusername():
|
|
||||||
"""
|
|
||||||
can run undefined amount of times. Get's username
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return input("What is the line username : ")
|
|
||||||
|
|
||||||
def getpassword():
|
|
||||||
"""
|
|
||||||
can run undefined amount of times. Get's password
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return input("What is the line password : ")
|
|
||||||
|
|
||||||
def getlinename():
|
|
||||||
"""
|
|
||||||
can run undefined amount of times. Get's line name
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return input("line name : ")
|
|
||||||
|
|
||||||
def getlogourl():
|
|
||||||
"""
|
|
||||||
Logo URL for the PNG URL
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return input("Logo URL : ")
|
|
||||||
|
|
||||||
def generatefile(ntp_server,timezone,software_version,phonename,proxy,lineamount,logourl):
|
|
||||||
"""
|
|
||||||
Takes all the data and generates the final file
|
|
||||||
:param ntp_server:
|
|
||||||
:param timezone:
|
|
||||||
:param software_version:
|
|
||||||
:param phonename:
|
|
||||||
:param proxy:
|
|
||||||
:param lineamount:
|
|
||||||
:param logourl:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return True
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
username=[]
|
|
||||||
password=[]
|
|
||||||
linename=[]
|
|
||||||
mac_address = mac()
|
mac_address = mac()
|
||||||
ntp_server = getntp()
|
print(mac_address)
|
||||||
timezone = gettimezone()
|
|
||||||
software_version = getsoftwareversion()
|
|
||||||
phonename = getphonename()
|
|
||||||
proxy = getproxy()
|
|
||||||
lineamount = getlineamount()
|
|
||||||
for i in lineamount:
|
|
||||||
username[i] = getusername()
|
|
||||||
password[i] = getpassword()
|
|
||||||
linename[i] = getlinename()
|
|
||||||
|
|
||||||
if input("Do you have a custom logo link? (y/n) : ") == "y":
|
|
||||||
logourl = getlogourl()
|
|
||||||
|
|
||||||
generatefile(ntp_server,timezone,software_version,phonename,proxy,lineamount,logourl)
|
|
Loading…
Reference in a new issue