FWilke
March 18, 2022, 7:01am
1
Hi,
some of our customers CPEs access our ACS through NAT. What’s more, most don’t support STUN. Therefore we are unable to properly interact with the CPE in a customer support session.
A solution that came to our minds is that a support agent could tick a box on the CPE page so that the next time the CPE sends its inform request the connection is kept alive rather than closed following the information exchange. Afterwards, the support agent could interact with the CPE through this connection.
Have we overlooked something or do you think this is possible?
Thanks a lot and Kind regards,
Fredrik
zaidka
April 4, 2022, 5:33pm
2
The connection is automatically closed at the end of every inform session. No way for either side to force it to remain open in any meaningful way.
FWilke
April 5, 2022, 9:20am
3
Hi Zaid,
thank you very much for your response. Sadly I don’t understand your point about automatic connection closure. In this inform dialog it seems like the connection is forcefully closed by the server:
event: incoming HTTP request
timestamp: 2022-04-05T08:47:11.068Z
remoteAddress: "::ffff:20.79.187.160"
deviceId: 202BC1-BM632w-000000
connection: 2022-04-05T08:47:11.068Z
localPort: 7547
method: POST
url: /
headers:
content-length: "2075"
content-type: text/xml; charset="utf-8"
authorization: Basic OEtBOFdBMTE1MTEwMDA0Mzo=
cookie: session=6d600599ce7c8507
host: acs.filiago.de:7547
connection: keep-alive
body: >-
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cwmp="urn:dslforum-org:cwmp-1-0"><soap-env:Header><cwmp:ID
soap-env:mustUnderstand="1">fhnbzeas</cwmp:ID></soap-env:Header><soap-env:Body><cwmp:Inform><DeviceId><Manufacturer>Huawei
Technologies Co.,
Ltd.</Manufacturer><OUI>202BC1</OUI><ProductClass>BM632w</ProductClass><SerialNumber>000000</SerialNumber></DeviceId><Event
soap-enc:arrayType="cwmp:EventStruct[1]"><EventStruct><EventCode>2
PERIODIC</EventCode><CommandKey/></EventStruct></Event><MaxEnvelopes>1</MaxEnvelopes><CurrentTime>2022-04-05T08:47:11.053Z</CurrentTime><RetryCount>0</RetryCount><ParameterList
soap-enc:arrayType="cwmp:ParameterValueStruct[16]"><ParameterValueStruct><Name>InternetGatewayDevice.DeviceInfo.SpecVersion</Name><Value
xsi:type="xsd:string">1.0</Value></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.DeviceInfo.HardwareVersion</Name><Value
xsi:type="xsd:string">00040501</Value></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.DeviceInfo.SoftwareVersion</Name><Value
xsi:type="xsd:string">V100R001IRQC56B017</Value></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.DeviceInfo.ProvisioningCode</Name><Value
xsi:type="xsd:string"/></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.ManagementServer.ParameterKey</Name><Value
xsi:type="xsd:string"/></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.ManagementServer.ConnectionRequestURL</Name><Value
xsi:type="xsd:string">http://192.168.112.3:44505/</Value></ParameterValueStruct><ParameterValueStruct><Name>InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress</Name><Value
xsi:type="xsd:string">172.3.89.139</Value></ParameterValueStruct></ParameterList></cwmp:Inform></soap-env:Body></soap-env:Envelope>
---
event: outgoing HTTP response
timestamp: 2022-04-05T08:47:11.069Z
remoteAddress: "::ffff:20.79.187.160"
deviceId: 202BC1-BM632w-000000
connection: 2022-04-05T08:47:11.068Z
statusCode: 200
headers:
content-length: 528
server: GenieACS/1.2.8+20220123125718
soapserver: GenieACS/1.2.8+20220123125718
content-type: text/xml; charset="utf-8"
set-cookie: session=10def2951e2a424b
body: >-
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cwmp="urn:dslforum-org:cwmp-1-0"><soap-env:Header><cwmp:ID
soap-env:mustUnderstand="1">fhnbzeas</cwmp:ID></soap-env:Header><soap-env:Body><cwmp:InformResponse><MaxEnvelopes>1</MaxEnvelopes></cwmp:InformResponse></soap-env:Body></soap-env:Envelope>
---
event: incoming HTTP request
timestamp: 2022-04-05T08:47:11.070Z
remoteAddress: "::ffff:20.79.187.160"
deviceId: 202BC1-BM632w-000000
connection: 2022-04-05T08:47:11.068Z
localPort: 7547
method: POST
url: /
headers:
content-length: "0"
content-type: text/xml; charset="utf-8"
authorization: Basic OEtBOFdBMTE1MTEwMDA0Mzo=
cookie: session=10def2951e2a424b
host: acs.filiago.de:7547
connection: keep-alive
body: ""
---
event: outgoing HTTP response
timestamp: 2022-04-05T08:47:11.074Z
remoteAddress: "::ffff:20.79.187.160"
deviceId: 202BC1-BM632w-000000
connection: 2022-04-05T08:47:11.068Z
statusCode: 204
headers:
content-length: 0
server: GenieACS/1.2.8+20220123125718
soapserver: GenieACS/1.2.8+20220123125718
connection: close
body: ""
Couldn’t the connection header in the last HTTP response be changed to keep-alive ?
Alternatively, couldn’t we send arbitrary messages over the connection to keep it alive?
We’re aware that implementing such changes would require significant effort and would therefore like to iterate on this before starting to implement them, so thanks a lot for your time and support!
Fredrik