<?xml version='1.0' encoding='UTF-8'?>
<fingerprints matches="sip_header.server" protocol="sip" database_type="service">
  <!--
  SIP Server header values are matched against these patterns to fingerprint SIP devices.
  -->

  <!-- Cisco/Tandberg Products -->

  <fingerprint pattern="^Cisco-SIPGateway/IOS-(\S+)\.x$">
    <description>Cisco IOS SIP Gateway w/ Vague Version</description>
    <example os.version="12">Cisco-SIPGateway/IOS-12.x</example>
    <param pos="0" name="service.vendor" value="Cisco"/>
    <param pos="0" name="service.family" value="IOS"/>
    <param pos="0" name="service.product" value="IOS"/>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.family" value="IOS"/>
    <param pos="0" name="os.product" value="IOS"/>
    <param pos="0" name="os.certainty" value="0.8"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:cisco:ios:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.device" value="Router"/>
  </fingerprint>

  <fingerprint pattern="^Cisco-SIPGateway/IOS-(\S+)$">
    <description>Cisco IOS SIP Gateway w/ Full Version</description>
    <example os.version="15.2.4.M3">Cisco-SIPGateway/IOS-15.2.4.M3</example>
    <example os.version="15.2.2.T1">Cisco-SIPGateway/IOS-15.2.2.T1</example>
    <example os.version="15.2.3.T">Cisco-SIPGateway/IOS-15.2.3.T</example>
    <example os.version="15.4.3.S5">Cisco-SIPGateway/IOS-15.4.3.S5</example>
    <example os.version="15.6.3.M0a">Cisco-SIPGateway/IOS-15.6.3.M0a</example>
    <example os.version="16.3.6">Cisco-SIPGateway/IOS-16.3.6</example>
    <param pos="0" name="service.vendor" value="Cisco"/>
    <param pos="0" name="service.family" value="IOS"/>
    <param pos="0" name="service.product" value="IOS"/>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.family" value="IOS"/>
    <param pos="0" name="os.product" value="IOS"/>
    <param pos="0" name="os.certainty" value="1.0"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:cisco:ios:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.device" value="Router"/>
  </fingerprint>

  <fingerprint pattern="^Cisco-CP-?(\d+G?)(?:-\S+)?/([\d\.]+)">
    <description>Cisco CP VoIP Phone</description>
    <example hw.model="7960G" hw.version="8.0">Cisco-CP7960G/8.0</example>
    <example hw.model="7912" hw.version="8.0.1">Cisco-CP7912/8.0.1-060412A</example>
    <example hw.model="7821" hw.version="11.0.0">Cisco-CP-7821-3PCC/11.0.0</example>
    <example hw.model="6841" hw.version="11.1.1">Cisco-CP-6841-3PCC/11.1.1 (00727826a4e1) (sip68xx.11-1-1MPP-897.loads)</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="CP"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="hw.model"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <!-- The next few Linksys fingerprints could be merged but are split to enable CPEs -->

  <fingerprint pattern="^(?:[\dA-F]{1,64} )?Linksys/RT31P2-([\d.]+)\(\w+\)$">
    <description>Linksys RT31P2</description>
    <example os.version="3.1.9">Linksys/RT31P2-3.1.9(LId)</example>
    <example os.version="3.1.6">Linksys/RT31P2-3.1.6(LI)</example>
    <example os.version="3.1.6">001310E72B51 Linksys/RT31P2-3.1.6(LI)</example>
    <param pos="0" name="os.vendor" value="Linksys"/>
    <param pos="0" name="os.product" value="RT31P2 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="hw.vendor" value="Linksys"/>
    <param pos="0" name="hw.product" value="RT31P2"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:linksys:rt31p2:-"/>
  </fingerprint>

  <fingerprint pattern="^Cisco/SPA122-([\d.]+)\(\w+\)[\w-]*$">
    <description>Cisco SPA122</description>
    <example os.version="1.3.5">Cisco/SPA122-1.3.5(004p)</example>
    <example os.version="1.3.5">Cisco/SPA122-1.3.5(004p)_BestGo</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.product" value="SPA122 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:cisco:spa122_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="SPA122"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:cisco:spa122:-"/>
  </fingerprint>

  <fingerprint pattern="^Cisco/SPA112-([\d.SR]+)\(\w+\)[\w-]*$">
    <description>Cisco SPA112</description>
    <example os.version="1.4.1SR1">Cisco/SPA112-1.4.1SR1(002)d-hisec</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.product" value="SPA112 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:cisco:spa112_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="SPA112"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:cisco:spa112:-"/>
  </fingerprint>

  <fingerprint pattern="(?:Cisco|Linksys)/(SPA\d+[DG]?\d?)-([\d\.a-zA-Z]+)">
    <description>Cisco/Linksys SPA VoIP Phone</description>
    <example hw.model="SPA922" hw.version="6.1.5">PhoneSystems.net aabbccddeeff Linksys/SPA922-6.1.5(a)</example>
    <example hw.model="SPA232D" hw.version="1.4.1">Cisco/SPA232D-1.4.1(002_282)</example>
    <example hw.model="SPA504G" hw.version="7.5.2">Cisco/SPA504G-7.5.2</example>
    <example hw.model="SPA525G2" hw.version="7.6.1">Cisco/SPA525G2-7.6.1</example>
    <example hw.model="SPA922" hw.version="6.1.5">Linksys/SPA922-6.1.5</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="SPA"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="hw.model"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="(?:Cisco|Linksys)(?: |/)(PAP2T?)(?:-|/)(\S+)$">
    <description>Cisco/Linksys VoIP / Internet Phone adapter</description>
    <example hw.version="3.1.22(LS)" hw.model="PAP2">PhoneSystems.net aabbccddeeff Linksys/PAP2-3.1.22(LS)</example>
    <example hw.version="3.1.9(LSc)" hw.model="PAP2">aabbccddeeff Linksys/PAP2-3.1.9(LSc)</example>
    <example hw.version="3.52.12X" hw.model="PAP2T">Linksys PAP2T/3.52.12X</example>
    <example hw.version="2.0.10(LSb)" hw.model="PAP2">iLinksys/PAP2-2.0.10(LSb)</example>
    <example hw.version="3.1.16(LS)" hw.model="PAP2T">Linksys/PAP2T-3.1.16(LS)</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.device" value="VoIP"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="Internet Phone Adapter"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="hw.model"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="^Cisco/(SRP\d+)-([\d\.]+)">
    <description>Cisco Services Ready Platforms (SRP) Router</description>
    <example hw.model="SRP541" hw.version="1.2.6">Cisco/SRP541-1.2.6(003)</example>
    <example hw.model="SRP527" hw.version="1.02.03">Cisco/SRP527-1.02.03(002)</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.device" value="Router"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="SRP"/>
    <param pos="0" name="hw.device" value="Router"/>
    <param pos="1" name="hw.model"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="(?:Cisco|Linksys)/(WRP\d+)-(\S+)$">
    <description>Cisco/Linksys WRP Wireless Router</description>
    <example hw.version="2.00.26" hw.model="WRP400">aabbccddeeff_FinalStage_Linksys/WRP400-2.00.26</example>
    <example hw.version="1.01.08" hw.model="WRP200">Linksys/WRP200-1.01.08</example>
    <example hw.version="1.00.05B2" hw.model="WRP400">Linksys/WRP400-1.00.05B2</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.device" value="Router"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.product" value="Wireless Router"/>
    <param pos="0" name="hw.device" value="Router"/>
    <param pos="1" name="hw.model"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="^TANDBERG\/(\d+) \((X\d+\S*).*\) ?(.*)$">
    <description>Cisco TelePresence Expressway</description>
    <example os.version="X7.3.7.01c84fd" tandberg.model="528" hw.model="Cisco-EX60">TANDBERG/528 (X7.3.7.01c84fd) Cisco-EX60</example>
    <example os.version="X12.5.2" tandberg.model="4137" hw.model="">TANDBERG/4137 (X12.5.2 (TEST SW))</example>
    <example os.version="X8.2.1" tandberg.model="4130" hw.model="">TANDBERG/4130 (X8.2.1)</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.family" value="TelePresence"/>
    <param pos="0" name="os.product" value="Expressway"/>
    <param pos="1" name="tandberg.model"/>
    <param pos="2" name="os.version"/>
    <param pos="3" name="hw.model"/>
  </fingerprint>

  <fingerprint pattern="^TANDBERG\/(\d+) \((ce\d+\S*).*\) ?(.*)$">
    <description>Cisco TelePresence Collaboration Endpoint (RoomOS)</description>
    <example os.version="ce9.15.0.d97b604b745" tandberg.model="529" hw.model="Cisco-RoomKit">TANDBERG/529 (ce9.15.0.d97b604b745) Cisco-RoomKit</example>
    <example os.version="ce9.15.0.d97b604b745" tandberg.model="529" hw.model="">TANDBERG/529 (ce9.15.0.d97b604b745)</example>
    <param pos="0" name="os.vendor" value="Cisco"/>
    <param pos="0" name="os.family" value="TelePresence"/>
    <param pos="0" name="os.product" value="Collaboration Endpoint"/>
    <param pos="1" name="tandberg.model"/>
    <param pos="2" name="os.version"/>
    <param pos="3" name="hw.model"/>
  </fingerprint>
  
  <fingerprint pattern="^(TANDBERG\/(\d+)) \(((?:[abd-zA-WZ]|XC)*\d+\S*).*\) ?(?:Cisco-)?(.*)$">
    <description>Cisco/Tandberg TelePresence</description>
    <example os.version="TC7.0.2.aecf2d9" tandberg.model="519" hw.product="TANDBERG/519" hw.series="">TANDBERG/519 (TC7.0.2.aecf2d9)</example>
    <example os.version="TC5.1.4.295090" hw.product="TANDBERG/516" tandberg.model="516" hw.series="">TANDBERG/516 (TC5.1.4.295090)</example>
    <example os.version="TCNC5.1.4.295090" hw.product="TANDBERG/517" tandberg.model="517" hw.series="">TANDBERG/517 (TCNC5.1.4.295090)</example>
    <example os.version="TE4.2.0.259927" hw.product="TANDBERG/517" tandberg.model="517" hw.series="">TANDBERG/517 (TE4.2.0.259927)</example>
    <example os.version="F9.1" hw.product="TANDBERG/517" tandberg.model="517" hw.series="">TANDBERG/517 (F9.1)</example>
    <example os.version="2.3(1.31)" hw.product="TANDBERG/517" tandberg.model="517" hw.series="RoomKit">TANDBERG/517 (2.3(1.31)) Cisco-RoomKit</example>
    <example os.version="6.0(.5)(6)" hw.product="TANDBERG/517" tandberg.model="517" hw.series="">TANDBERG/517 (6.0(.5)(6))</example>
    <example os.version="2.3.1.31" hw.product="TANDBERG/517" tandberg.model="517" hw.series="RoomKit">TANDBERG/517 (2.3.1.31) RoomKit</example>
    <example os.version="XC2.2.1-b2bua-1.0" tandberg.model="4353" hw.series="">TANDBERG/4353 (XC2.2.1-b2bua-1.0)</example>
    <param pos="0" name="os.vendor" value="Tandberg"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="2" name="tandberg.model"/>
    <param pos="3" name="os.version"/>
    <param pos="4" name="hw.series"/>
    <param pos="0" name="hw.vendor" value="Cisco"/>
    <param pos="0" name="hw.family" value="TelePresence"/>
    <param pos="0" name="hw.device" value="Video Conferencing"/>
    <param pos="1" name="hw.product"/>
  </fingerprint>
  <!-- NEC -->

  <fingerprint pattern="^NEC SL2100/([\d.]+)$">
    <description>NEC SL2100 Communications Server</description>
    <example os.version="2.1">NEC SL2100/2.1</example>
    <param pos="0" name="os.vendor" value="NEC"/>
    <param pos="0" name="os.product" value="SL2100 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.device" value="SIP Gateway"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:nec:sl2100_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="NEC"/>
    <param pos="0" name="hw.family" value="SL2100"/>
    <param pos="0" name="hw.product" value="SL2100"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:nec:sl2100:-"/>
  </fingerprint>

  <fingerprint pattern="^NEC (Aspire [WU]X) ([\d.]+)(?:/\d\.\d)?$">
    <description>NEC UNIVERGE Aspire WX or UX SIP Gateway</description>
    <example hw.product="Aspire WX" os.version="02.00.00">NEC Aspire WX 02.00.00</example>
    <example hw.product="Aspire UX" os.version="08.00.00">NEC Aspire UX 08.00.00/2.1</example>
    <param pos="0" name="os.vendor" value="NEC"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="hw.vendor" value="NEC"/>
    <param pos="0" name="hw.family" value="UNIVERGE"/>
    <param pos="1" name="hw.product"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
  </fingerprint>

  <!-- The next few NEC fingerprints could be merged but are split to enable CPEs -->

  <fingerprint pattern="^NEC(?:-i)? SV9100-(?:NA|GE) ([\d.]+)(?:/\d\.\d)?$">
    <description>NEC UNIVERGE 9100 SIP Gateway</description>
    <example os.version="08.00.65">NEC SV9100-NA 08.00.65/2.1</example>
    <example os.version="09.00.60">NEC SV9100-GE 09.00.60/2.1</example>
    <param pos="0" name="os.vendor" value="NEC"/>
    <param pos="0" name="os.product" value="SV9100 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:nec:sv9100_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="NEC"/>
    <param pos="0" name="hw.family" value="UNIVERGE"/>
    <param pos="0" name="hw.product" value="SV9100"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:nec:sv9100:-"/>
  </fingerprint>

  <fingerprint pattern="^NEC(?:-i)? SV8100-(?:NA|GE) ([\d.]+)(?:/\d\.\d)?$">
    <description>NEC UNIVERGE 8100 SIP Gateway</description>
    <example os.version="08.00.65">NEC SV8100-GE 08.00.65/2.1</example>
    <example os.version="09.50">NEC-i SV8100-NA 09.50/2.1</example>
    <example os.version="10.12">NEC SV8100-NA 10.12/2.1</example>
    <param pos="0" name="os.vendor" value="NEC"/>
    <param pos="0" name="os.product" value="SV8100 Firmware"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:nec:sv8100_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="NEC"/>
    <param pos="0" name="hw.family" value="UNIVERGE"/>
    <param pos="0" name="hw.product" value="SV8100"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:nec:sv8100:-"/>
  </fingerprint>

  <!-- Grandstream -->

  <!-- The next few fingerprints could be merged but are split to enable CPEs -->

  <fingerprint pattern="^Grandstream UCM6208V(\d\.\d\w) ([\d.]+)$">
    <description>Grandstream UCM 6208</description>
    <example hw.version="1.4A" os.version="1.0.16.20">Grandstream UCM6208V1.4A 1.0.16.20</example>
    <param pos="0" name="os.vendor" value="Grandstream"/>
    <param pos="0" name="os.product" value="UCM6208 Firmware"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="os.device" value="SIP Gateway"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:grandstream:ucm6208_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Grandstream"/>
    <param pos="0" name="hw.product" value="UCM6208"/>
    <param pos="1" name="hw.version"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:grandstream:ucm6208:{hw.version}"/>
  </fingerprint>

  <fingerprint pattern="^Grandstream UCM6204V(\d\.\d\w) ([\d.]+)$">
    <description>Grandstream UCM 6204</description>
    <example hw.version="1.4A" os.version="1.0.15.16">Grandstream UCM6204V1.4A 1.0.15.16</example>
    <param pos="0" name="os.vendor" value="Grandstream"/>
    <param pos="0" name="os.product" value="UCM6204 Firmware"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="os.device" value="SIP Gateway"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:grandstream:ucm6204_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Grandstream"/>
    <param pos="0" name="hw.product" value="UCM6204"/>
    <param pos="1" name="hw.version"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:grandstream:ucm6204:{hw.version}"/>
  </fingerprint>

  <fingerprint pattern="^Grandstream UCM6202V(\d\.\d\w) ([\d.]+)$">
    <description>Grandstream UCM 6202</description>
    <example hw.version="1.4A" os.version="1.0.15.16">Grandstream UCM6202V1.4A 1.0.15.16</example>
    <param pos="0" name="os.vendor" value="Grandstream"/>
    <param pos="0" name="os.product" value="UCM6202 Firmware"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="os.device" value="SIP Gateway"/>
    <param pos="0" name="os.cpe23" value="cpe:/o:grandstream:ucm6202_firmware:{os.version}"/>
    <param pos="0" name="hw.vendor" value="Grandstream"/>
    <param pos="0" name="hw.product" value="UCM6202"/>
    <param pos="1" name="hw.version"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.cpe23" value="cpe:/h:grandstream:ucm6202:{hw.version}"/>
  </fingerprint>

  <fingerprint pattern="^Grandstream (UCM6\d\d\d)V(\d\.\d\w) ([\d.]+)$">
    <description>Grandstream UCM 6xxx series generic</description>
    <example hw.product="UCM6102" os.version="1.0.6.10" hw.version="1.5A">Grandstream UCM6102V1.5A 1.0.6.10</example>
    <example hw.product="UCM6302" hw.version="1.2B" os.version="1.0.3.10">Grandstream UCM6302V1.2B 1.0.3.10</example>
    <example hw.product="UCM6510" os.version="1.0.14.23" hw.version="1.4B">Grandstream UCM6510V1.4B 1.0.14.23</example>
    <param pos="0" name="os.vendor" value="Grandstream"/>
    <param pos="3" name="os.version"/>
    <param pos="0" name="os.device" value="SIP Gateway"/>
    <param pos="0" name="hw.vendor" value="Grandstream"/>
    <param pos="1" name="hw.product"/>
    <param pos="2" name="hw.version"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
  </fingerprint>

  <!-- Various -->

  <fingerprint pattern="EnGenius_Router$">
    <description>EnGenius DuraFon IP Phone</description>
    <example>EnGenius_Router</example>
    <param pos="0" name="hw.vendor" value="enGenius"/>
    <param pos="0" name="hw.product" value="DuraFon"/>
    <param pos="0" name="hw.device" value="VoIP"/>
  </fingerprint>

  <fingerprint pattern="(?i)^Huawei (SoftX\d+) (?:V\d.*)$">
    <description>Huawei Softswitch</description>
    <example hw.model="SoftX3000">Huawei SoftX3000 V300R006</example>
    <param pos="0" name="hw.vendor" value="Huawei"/>
    <param pos="0" name="hw.device" value="Telecom"/>
    <param pos="0" name="hw.product" value="Softswitch"/>
    <param pos="1" name="hw.model"/>
  </fingerprint>

  <fingerprint pattern="(?i)^SIP/1.0 \(Huawei\)$">
    <description>Huawei generic</description>
    <example>SIP/1.0 (Huawei)</example>
    <param pos="0" name="hw.vendor" value="Huawei"/>
  </fingerprint>

  <fingerprint pattern="^M5T SIP(?: Stack|-UA SAFE)/v?([\d\.]+)">
    <description>Media5 Corporation SIP Stack</description>
    <example service.version="4.1.2.2">M5T SIP Stack/4.1.2.2</example>
    <example service.version="3.6.4.8">M5T SIP-UA SAFE/v3.6.4.8</example>
    <example service.version="4.1.2.2">M5T SIP Stack/4.1.2.2alliu</example>
    <param pos="0" name="service.vendor" value="Media5 Corporation"/>
    <param pos="0" name="service.product" value="SIP Stack"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="hw.device" value="VoIP"/>
  </fingerprint>

  <fingerprint pattern="^Tilgin Vood ([^_\s]+)">
    <description>Tilgin Vood</description>
    <example hw.model="HG238x">Tilgin Vood HG238x_ESx000-02_07_03_26</example>
    <example hw.model="HG27xx">Tilgin Vood HG27xx</example>
    <example hw.model="452W">Tilgin Vood 452W_S_3_4_2_RC_2</example>
    <param pos="0" name="hw.vendor" value="Tilgin"/>
    <param pos="0" name="hw.product" value="Vood"/>
    <param pos="1" name="hw.model"/>
  </fingerprint>

  <fingerprint pattern="^(F\d{3})/VT?(\d(?:[\d\.A-Z]+))$">
    <description>ZTE GPON Router</description>
    <example hw.product="F620" hw.version="3.30.20P5T4S">F620/V3.30.20P5T4S</example>
    <example hw.product="F660" hw.version="2.22.21P1T14S">F660/V2.22.21P1T14S</example>
    <example hw.product="F668" hw.version="2.30.22P1T9">F668/VT2.30.22P1T9</example>
    <param pos="0" name="hw.vendor" value="ZTE"/>
    <param pos="0" name="hw.device" value="Router"/>
    <param pos="1" name="hw.product"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="^ZXDSL (\S+)/V?(\d(?:[\d\.A-Z_]+))$">
    <description>ZTE ZXDSL router</description>
    <example hw.product="931VII" hw.version="2.0.00.OTET06">ZXDSL 931VII/V2.0.00.OTET06</example>
    <param pos="0" name="hw.vendor" value="ZTE"/>
    <param pos="0" name="hw.device" value="Router"/>
    <param pos="0" name="hw.family" value="ZXDSL"/>
    <param pos="1" name="hw.product"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="^(?:ZXHN )?(H\d{3}N)/V?(\d(?:[\d\.A-Z_]+))$">
    <description>ZTE ZXHN router</description>
    <example hw.product="H218N" hw.version="1.02.01_ERS">ZXHN H218N/V1.02.01_ERS</example>
    <example hw.product="H367N" hw.version="1.0.4">ZXHN H367N/V1.0.4</example>
    <example hw.product="H218N" hw.version="1.02.01">ZXHN H218N/V1.02.01</example>
    <example hw.product="H208N" hw.version="1.0.2T02">ZXHN H208N/V1.0.2T02</example>
    <example hw.product="H368N" hw.version="1.10.00T10">H368N/V1.10.00T10</example>
    <param pos="0" name="hw.vendor" value="ZTE"/>
    <param pos="0" name="hw.device" value="Router"/>
    <param pos="0" name="hw.family" value="ZXHN"/>
    <param pos="1" name="hw.product"/>
    <param pos="2" name="hw.version"/>
  </fingerprint>

  <fingerprint pattern="^Aastra ([^/]+)/([a-zA-Z0-9\.\-]+)$">
    <description>Aastra IP Phone</description>
    <example hw.product="6865i" os.version="4.2.0.2023">Aastra 6865i/4.2.0.2023</example>
    <param pos="0" name="os.vendor" value="Aastra"/>
    <param pos="0" name="os.family" value="VoIP"/>
    <param pos="0" name="os.product" value="VoIP"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Aastra"/>
    <param pos="0" name="hw.family" value="VoIP"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="hw.product"/>
  </fingerprint>

  <fingerprint pattern="^(?:Audiocodes-Sip-Gateway-)?(\S{1,64}) FX[A-Z_]+/v.(\S+)$">
    <description>Audiocodes-Sip-Gateway</description>
    <example hw.product="MP-124" os.version="6.00A.034.003">Audiocodes-Sip-Gateway-MP-124 FXS/v.6.00A.034.003</example>
    <example hw.product="MP-124" os.version="6.60A.342.003">MP-124 FXS/v.6.60A.342.003</example>
    <example hw.product="MP-114" os.version="6.60A.241.010">MP-114 FXS_FXO/v.6.60A.241.010</example>
    <param pos="0" name="os.vendor" value="AudioCodes"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="hw.vendor" value="AudioCodes"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="1" name="hw.product"/>
  </fingerprint>

  <fingerprint pattern="^Wildix GW-(\S+)$">
    <description>Wildix SIP Gateway</description>
    <example os.version="5.0.3.42145">Wildix GW-5.0.3.42145</example>
    <param pos="0" name="os.vendor" value="Wildix"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Wildix"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.product" value="SIP Gateway"/>
  </fingerprint>

  <fingerprint pattern="^Wildix GW ([\d.~a-h]+)$">
    <description>Wildix SIP Gateway - timestamp/build variant</description>
    <example os.version="20201008.1~a2e84be1">Wildix GW 20201008.1~a2e84be1</example>
    <param pos="0" name="os.vendor" value="Wildix"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Wildix"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.product" value="SIP Gateway"/>
  </fingerprint>

  <fingerprint pattern="^Wildix GW$">
    <description>Wildix SIP Gateway w/o Version</description>
    <example>Wildix GW</example>
    <param pos="0" name="os.vendor" value="Wildix"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="0" name="hw.vendor" value="Wildix"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.product" value="SIP Gateway"/>
  </fingerprint>

  <fingerprint pattern="^PBX-IP Media Gateway/([\d.]+)$">
    <description>Dialogic Media Gateway w Version</description>
    <example os.version="2.1">PBX-IP Media Gateway/2.1</example>
    <param pos="0" name="os.vendor" value="Dialogic"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Dialogic"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.product" value="Media Gateway"/>
  </fingerprint>

  <fingerprint pattern="^Asterisk PBX (\S+)$">
    <description>Asterisk PBX w/ Version</description>
    <example service.version="13.18.0-6.7.1.1.rl.1538157944.1c65507">Asterisk PBX 13.18.0-6.7.1.1.rl.1538157944.1c65507</example>
    <example service.version="16.2.1~dfsg-1">Asterisk PBX 16.2.1~dfsg-1</example>
    <param pos="0" name="service.vendor" value="Asterisk"/>
    <param pos="0" name="service.family" value="PBX"/>
    <param pos="0" name="service.product" value="PBX"/>
    <param pos="1" name="service.version"/>
  </fingerprint>

  <fingerprint pattern="^Asterisk PBX$">
    <description>Asterisk PBX w/o Version</description>
    <example>Asterisk PBX</example>
    <param pos="0" name="service.vendor" value="Asterisk"/>
    <param pos="0" name="service.family" value="PBX"/>
    <param pos="0" name="service.product" value="PBX"/>
  </fingerprint>

  <fingerprint pattern="^FPBX-(\S+)$">
    <description>FreePBX</description>
    <example service.version="12.0.70(11.20.0)">FPBX-12.0.70(11.20.0)</example>
    <example service.version="2.11.0(11.20.0)">FPBX-2.11.0(11.20.0)</example>
    <param pos="0" name="service.vendor" value="FreePBX"/>
    <param pos="0" name="service.family" value="PBX"/>
    <param pos="0" name="service.product" value="PBX"/>
    <param pos="1" name="service.version"/>
  </fingerprint>

  <!-- Kamailio seems to be a successor to OpenSER and perhaps OpenSIPS? -->

  <fingerprint pattern="^[Kk]amailio \(([\d.]+)(?:-tls|-notls)? \(x86_64/linux\)\)$">
    <description>Kamailio Kamailio - Linux on x86_64</description>
    <example service.version="4.4.4">kamailio (4.4.4 (x86_64/linux))</example>
    <param pos="0" name="service.vendor" value="Kamailio"/>
    <param pos="0" name="service.product" value="Kamailio"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:kamailio:kamailio:{service.version}"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86_64"/>
  </fingerprint>

  <fingerprint pattern="^[Kk]amailio \(([\d.]+)(?:-tls|-notls)? \(i386/linux\)\)$">
    <description>Kamailio Kamailio - Linux on x86</description>
    <example service.version="1.5.2">Kamailio (1.5.2-notls (i386/linux))</example>
    <param pos="0" name="service.vendor" value="Kamailio"/>
    <param pos="0" name="service.product" value="Kamailio"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:kamailio:kamailio:{service.version}"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86"/>
  </fingerprint>

  <fingerprint pattern="^OpenSIPS \(([\d.]+)(?:-tls|-notls)? \(x86_64/linux\)\)$">
    <description>OpenSIPS OpenSIPS - Linux on x86_64</description>
    <example service.version="1.7.2">OpenSIPS (1.7.2-notls (x86_64/linux))</example>
    <example service.version="1.11.11">OpenSIPS (1.11.11-tls (x86_64/linux))</example>
    <example service.version="2.2.7">OpenSIPS (2.2.7 (x86_64/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSIPS"/>
    <param pos="0" name="service.product" value="OpenSIPS"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:opensips:opensips:{service.version}"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86_64"/>
  </fingerprint>

  <fingerprint pattern="^OpenSIPS \(([\d.]+)(?:-tls|-notls)? \(i386/linux\)\)$">
    <description>OpenSIPS OpenSIPS - Linux on x86</description>
    <example service.version="1.8.2">OpenSIPS (1.8.2-notls (i386/linux))</example>
    <example service.version="1.11.3">OpenSIPS (1.11.3-tls (i386/linux))</example>
    <example service.version="2.3.3">OpenSIPS (2.3.3 (i386/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSIPS"/>
    <param pos="0" name="service.product" value="OpenSIPS"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:opensips:opensips:{service.version}"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86"/>
  </fingerprint>

  <fingerprint pattern="^OpenSIPS \(([\d.]+)(?:-tls|-notls)? \(arm(?:v4tl|v7l)?/linux\)\)$">
    <description>OpenSIPS OpenSIPS - Linux on ARM</description>
    <example service.version="2.2.2">OpenSIPS (2.2.2 (arm/linux))</example>
    <example service.version="1.6.0">OpenSIPS (1.6.0-notls (armv4tl/linux))</example>
    <example service.version="1.11.5">OpenSIPS (1.11.5-tls (armv7l/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSIPS"/>
    <param pos="0" name="service.product" value="OpenSIPS"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:opensips:opensips:{service.version}"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="ARM"/>
  </fingerprint>

  <fingerprint pattern="(?i)^OpenSER \(([\d.]+)(?:-tls|-notls)? \(sh4/linux\)\)$">
    <description>OpenSER OpenSER - Linux on Renesas SH4</description>
    <example service.version="1.3.2">OpenSER (1.3.2-notls (sh4/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSER"/>
    <param pos="0" name="service.product" value="OpenSER"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
  </fingerprint>

  <fingerprint pattern="(?i)^OpenSER \(([\d.]+)(?:-tls|-notls)? \(x86_64/linux\)\)$">
    <description>OpenSER OpenSER - Linux on x86_64</description>
    <example service.version="1.1.0">OpenSer (1.1.0-notls (x86_64/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSER"/>
    <param pos="0" name="service.product" value="OpenSER"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86_64"/>
  </fingerprint>

  <fingerprint pattern="(?i)^OpenSER \(([\d.]+)(?:-tls|-notls)? \(i386/linux\)\)$">
    <description>OpenSER OpenSER - Linux on x86</description>
    <example service.version="1.3.0">OpenSER (1.3.0-notls (i386/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSER"/>
    <param pos="0" name="service.product" value="OpenSER"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="x86"/>
  </fingerprint>

  <fingerprint pattern="(?i)^OpenSER \(([\d.]+)(?:-tls|-notls)? \(arm/linux\)\)$">
    <description>OpenSER OpenSER - Linux on ARM</description>
    <example service.version="1.3.2">OpenSER (1.3.2-tls (arm/linux))</example>
    <param pos="0" name="service.vendor" value="OpenSER"/>
    <param pos="0" name="service.product" value="OpenSER"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="os.family" value="Linux"/>
    <param pos="0" name="os.product" value="Linux"/>
    <param pos="0" name="os.arch" value="ARM"/>
  </fingerprint>

  <!-- This match covers multiple product families and should be split up further -->

  <fingerprint pattern="^Algo-([^/]+)/(.*)$">
    <description>Algo SIP Device</description>
    <example hw.product="8186" os.version="1.7">Algo-8186/1.7</example>
    <param pos="0" name="os.vendor" value="Algo"/>
    <param pos="0" name="os.family" value="SIP Device"/>
    <param pos="2" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Algo"/>
    <param pos="0" name="hw.family" value="SIP Device"/>
    <param pos="0" name="hw.device" value="SIP Device"/>
    <param pos="1" name="hw.product"/>
  </fingerprint>

  <fingerprint pattern="^(?:SIParator|Ingate-Firewall)/(\S+)$">
    <description>Ingate SIParator Firewall</description>
    <example os.version="5.0.10">Ingate-Firewall/5.0.10</example>
    <example os.version="6.0.4">SIParator/6.0.4</example>
    <param pos="0" name="os.vendor" value="Ingate"/>
    <param pos="0" name="os.family" value="SIP Gateway"/>
    <param pos="1" name="os.version"/>
    <param pos="0" name="hw.vendor" value="Ingate"/>
    <param pos="0" name="hw.family" value="SIP Gateway"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
    <param pos="0" name="hw.product" value="SIParator Firewall"/>
  </fingerprint>

  <fingerprint pattern="^CommuniGatePro/(\d\.[\w.]+)$">
    <description>Communigate Pro</description>
    <example service.version="6.2.14">CommuniGatePro/6.2.14</example>
    <example service.version="6.3c1m">CommuniGatePro/6.3c1m</example>
    <param pos="0" name="service.vendor" value="Communigate"/>
    <param pos="0" name="service.family" value="Pro"/>
    <param pos="0" name="service.product" value="Communigate Pro"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:communigate:communigate_pro:{service.version}"/>
  </fingerprint>

  <fingerprint pattern="^STARFACE PBX$">
    <description>STARFACE GmhH STARFACE PBX</description>
    <example>STARFACE PBX</example>
    <param pos="0" name="service.vendor" value="STARFACE GmhH"/>
    <param pos="0" name="service.family" value="SIP Server"/>
    <param pos="0" name="service.product" value="STARFACE PBX"/>
  </fingerprint>

  <fingerprint pattern="^FortiVoice-([\w-]+)$">
    <description>Fortinet FortiVoice</description>
    <example hw.product="200D">FortiVoice-200D</example>
    <example hw.product="VM-Azure">FortiVoice-VM-Azure</example>
    <example hw.product="1000E">FortiVoice-1000E</example>
    <param pos="0" name="service.vendor" value="Fortinet"/>
    <param pos="0" name="service.product" value="FortiVoice"/>
    <param pos="0" name="service.device" value="SIP Gateway"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:fortinet:fortivoice:-"/>
    <param pos="0" name="hw.vendor" value="Fortinet"/>
    <param pos="0" name="hw.family" value="FortiVoice"/>
    <param pos="1" name="hw.product"/>
    <param pos="0" name="hw.device" value="SIP Gateway"/>
  </fingerprint>

  <fingerprint pattern="^Freeswitch ([\d.]+)$">
    <description>FreeSWITCH FreeSWITCH</description>
    <example service.version="2.0.0">Freeswitch 2.0.0</example>
    <param pos="0" name="service.vendor" value="FreeSWITCH"/>
    <param pos="0" name="service.product" value="FreeSWITCH"/>
    <param pos="1" name="service.version"/>
    <param pos="0" name="service.device" value="SIP Gateway"/>
    <param pos="0" name="service.cpe23" value="cpe:/a:freeswitch:freeswitch:{service.version}"/>
  </fingerprint>

  <fingerprint pattern="^(OpenStage|OpenScape)_(\d+)_(V\d \S+) ">
    <description>Unify OpenStage VoIP Phone 1</description>
    <example hw.family="OpenStage" unify.model="40" os.version="V3 R5.13.0">OpenStage_40_V3 R5.13.0      SIP  190111</example>
    <param pos="0" name="os.vendor" value="Unify"/>
    <param pos="0" name="os.product" value="{hw.family} {unify.model} Firmware"/>
    <param pos="0" name="hw.vendor" value="Unify"/>
    <param pos="0" name="hw.product" value="{hw.family} {unify.model}"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="hw.family"/>
    <param pos="2" name="unify.model"/>
    <param pos="3" name="os.version"/>
  </fingerprint>

  <fingerprint pattern="^Desk_Phone_IP_(CP\d+[EXT]?)_(V\d \S+) ">
    <description>Unify OpenStage VoIP Phone 2</description>
    <example unify.model="CP200" os.version="V1 R6.14.0">Desk_Phone_IP_CP200_V1 R6.14.0      SIP  190802</example>
    <example unify.model="CP400" os.version="V1 R6.14.0">Desk_Phone_IP_CP400_V1 R6.14.0      SIP  190802</example>
    <example unify.model="CP600" os.version="V1 R6.14.0">Desk_Phone_IP_CP600_V1 R6.14.0      SIP  190802</example>
    <param pos="0" name="os.vendor" value="Unify"/>
    <param pos="0" name="hw.vendor" value="Unify"/>
    <param pos="0" name="hw.family" value="OpenScape Desk Phone"/>
    <param pos="0" name="hw.product" value="{hw.family} {unify.model}"/>
    <param pos="0" name="hw.device" value="VoIP"/>
    <param pos="1" name="unify.model"/>
    <param pos="2" name="os.version"/>
  </fingerprint>

  <fingerprint pattern="^Eltex (ESR-\d\w{1,4})$">
    <description>Eltex ESR model service gateway</description>
    <example hw.product="ESR-12V">Eltex ESR-12V</example>
    <param pos="0" name="os.vendor" value="Eltex"/>
    <param pos="0" name="os.device" value="Router"/>
    <param pos="0" name="os.product" value="{hw.product} Firmware"/>
    <param pos="0" name="hw.vendor" value="Eltex"/>
    <param pos="1" name="hw.product"/>
    <param pos="0" name="hw.device" value="Router"/>
  </fingerprint>

</fingerprints>
