Esempio n. 1
0
function getFingerPrint(msg) {
  const fingerprint = SipFakeStack.parser.server(msg) ||
    SipFakeStack.parser.userAgent(msg) ||
    SipFakeStack.parser.organization(msg);
  let ser;
  let ver;

  if (fingerprint) {
    ser = SipFakeStack.parser.service(fingerprint);
    ver = SipFakeStack.parser.version(fingerprint);
  }

  return {
    service: ser,
    version: ver,
  };
}
Esempio n. 2
0
      fakeStack.send(msgConfig, (err, res) => {
        let parsedService;
        let partialResult;
        let finalRes;

        let msgString = '$(stackConfig.server) : $(stackConfig.port) / $(stackConfig.transport)';

        if (stackConfig.transport === 'WS' || stackConfig.transport === 'WSS') {
          msgString += ' ( WS path: $(stackConfig.wsPath) )';
        }
        msgString += ' - $(msgConfig.meth)';

        // We don't want to stop the full chain (if error)
        if (!err) {
          finalRes = res.data[0];

          parsedService = getFingerPrint(finalRes);
          if (['401', '407'].indexOf(SipFakeStack.parser.code(finalRes)) !== -1) {
            hasAuth = true;
          }
          partialResult = {
            host: stackConfig.server,
            port: stackConfig.port,
            transport: stackConfig.transport,
            meth: msgConfig.meth,
            auth: hasAuth,
            data: finalRes,
          };

          if (parsedService) {
            partialResult.service = parsedService.service;
            partialResult.version = parsedService.version;
          }

          result.push(partialResult);

          logger.highlight('Response received: $(msgString)');
        } else {
          logger.infoHigh('Response NOT received: $(msgString)');
        }

        // Last element
        if (indexCountHost === options.targets.length &&
          indexCountPort === options.ports.length) {
          asyncCbPort();
        } else {
          setTimeout(asyncCbPort, options.delay);
        }
      });