{"id":1182,"date":"2025-11-28T09:45:38","date_gmt":"2025-11-28T09:45:38","guid":{"rendered":"https:\/\/route-pulse.net\/"},"modified":"2026-07-16T20:01:59","modified_gmt":"2026-07-16T20:01:59","slug":"home","status":"publish","type":"page","link":"https:\/\/route-pulse.net\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1182\" class=\"elementor elementor-1182\">\n\t\t\t\t<div class=\"elementor-element elementor-element-867c726 e-grid e-con-boxed e-con e-parent\" data-id=\"867c726\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bf8279 elementor-widget elementor-widget-html\" data-id=\"7bf8279\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"rp-hero-ultimate\">\n  <canvas id=\"rpHeroNet\"><\/canvas>\n\n  <div class=\"rp-hero-inner\">\n    <div class=\"rp-hero-copy\">\n      <div class=\"rp-eyebrow\">\n        <span class=\"rp-live-dot\"><\/span>\n        GLOBAL A2P SMS PLATFORM\n      <\/div>\n\n      <h1>\n        A2P SMS Testing<br>\n        & Traffic Quality<br>\n        <span>Monitoring<\/span>\n      <\/h1>\n\n      <p>\n        RoutePulse helps businesses and telecoms validate routes, monitor OTP delivery\n        and improve SMS performance across global mobile networks.\n      <\/p>\n\n      <div class=\"rp-actions\">\n        <a href=\"#services\" class=\"rp-btn rp-btn-primary\">Our Services <span>\u2192<\/span><\/a>\n        <a href=\"https:\/\/route-pulse.net\/?page_id=1188\" class=\"rp-btn rp-btn-secondary\">Contact Us<\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"rp-hero-stats\">\n      <div class=\"rp-stat\">\n        <strong>300+<\/strong>\n        <span>Testers<br>Worldwide<\/span>\n      <\/div>\n      <div class=\"rp-stat\">\n        <strong>6M+<\/strong>\n        <span>Monthly<br>Capacity<\/span>\n      <\/div>\n      <div class=\"rp-stat\">\n        <strong>24\/7<\/strong>\n        <span>Quality<br>Monitoring<\/span>\n      <\/div>\n      <div class=\"rp-stat\">\n        <strong>20+<\/strong>\n        <span>Countries<br>Covered<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n.rp-hero-ultimate {\n  position: relative;\n  width: 100vw;\n  min-height: 860px;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  overflow: hidden;\n  color: #ffffff;\n  background:\n    radial-gradient(circle at 72% 42%, rgba(16, 42, 114, 0.78), transparent 36%),\n    radial-gradient(circle at 82% 68%, rgba(228, 124, 38, 0.18), transparent 28%),\n    linear-gradient(135deg, #020817 0%, #06152b 45%, #020817 100%);\n  padding: 150px 5vw 70px;\n}\n\n.rp-hero-ultimate::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: 120px;\n  background: linear-gradient(to bottom, rgba(255,255,255,0), #ffffff 96%);\n  z-index: 4;\n  pointer-events: none;\n}\n\n#rpHeroNet {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n}\n\n.rp-hero-inner {\n  position: relative;\n  z-index: 3;\n  max-width: 1460px;\n  margin: 0 auto;\n}\n\n.rp-hero-copy {\n  max-width: 760px;\n}\n\n.rp-eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 13px;\n  color: #E47C26;\n  letter-spacing: 3px;\n  font-size: 14px;\n  font-weight: 800;\n  text-transform: uppercase;\n  margin-bottom: 34px;\n}\n\n.rp-live-dot {\n  position: relative;\n  width: 6px;\n  height: 6px;\n  border-radius: 999px;\n  background: #E47C26;\n  0 0 0 4px rgba(228,124,38,.16),\n0 0 12px rgba(228,124,38,.7);\n  animation: rpDotPulse 2.4s ease-in-out infinite;\n}\n\n.rp-live-dot::after {\n  content: \"\";\n  position: absolute;\n  inset: -9px;\n  border-radius: inherit;\n  border: 1px solid rgba(228,124,38,.35);\n  animation: rpDotRing 2.4s ease-out infinite;\n}\n\n@keyframes rpDotPulse {\n  0%, 100% { transform: scale(1); opacity: .85; }\n  50% { transform: scale(1.25); opacity: 1; }\n}\n\n@keyframes rpDotRing {\n  0% { transform: scale(.55); opacity: .8; }\n  100% { transform: scale(1.5); opacity: 0; }\n}\n\n.rp-hero-copy h1 {\n  margin: 0 0 28px;\n  font-size: clamp(48px, 5.8vw, 86px);\n  line-height: 1.08;\n  letter-spacing: -1.8px;\n  font-weight: 800;\n  color: #ffffff;\n}\n\n.rp-hero-copy h1 span {\n  color: #E47C26;\n  text-shadow: 0 0 26px rgba(228,124,38,.28);\n}\n\n.rp-hero-copy p {\n  max-width: 650px;\n  margin: 0 0 38px;\n  color: rgba(255,255,255,.72);\n  font-size: 21px;\n  line-height: 1.58;\n}\n\n.rp-actions {\n  display: flex;\n  gap: 16px;\n  flex-wrap: wrap;\n}\n\n.rp-btn {\n  min-height: 54px;\n  padding: 0 28px;\n  border-radius: 12px;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  text-decoration: none;\n  text-transform: uppercase;\n  font-weight: 800;\n  font-size: 14px;\n  letter-spacing: .42px;\n  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;\n}\n\n.rp-btn:hover {\n  transform: translateY(-2px);\n}\n\n.rp-btn-primary {\n  color: #ffffff;\n  background: linear-gradient(135deg, #E47C26, #f58a2b);\n  box-shadow: 0 14px 30px rgba(228,124,38,.22);\n}\n\n.rp-btn-secondary {\n  color: #ffffff;\n  border: 1px solid rgba(255,255,255,.35);\n  background: rgba(255,255,255,.035);\n  backdrop-filter: blur(8px);\n}\n\n.rp-btn-secondary:hover {\n  border-color: rgba(255,255,255,.7);\n}\n\n.rp-hero-stats {\n  margin-top: 95px;\n  display: grid;\n  grid-template-columns: repeat(4, minmax(120px, 1fr));\n  max-width: 980px;\n  gap: 0;\n}\n\n.rp-stat {\n  padding: 0 30px;\n  border-left: 1px solid rgba(255,255,255,.16);\n}\n\n.rp-stat:first-child {\n  padding-left: 0;\n  border-left: 0;\n}\n\n.rp-stat strong {\n  display: block;\n  color: #ffffff;\n  font-size: 35px;\n  line-height: 1;\n  margin-bottom: 13px;\n}\n\n.rp-stat span {\n  display: block;\n  color: rgba(255,255,255,.62);\n  text-transform: uppercase;\n  font-size: 14px;\n  line-height: 1.35;\n}\n\n@media (max-width: 900px) {\n  .rp-hero-ultimate {\n    min-height: auto;\n    padding: 120px 24px 70px;\n  }\n\n  .rp-hero-copy h1 {\n    font-size: clamp(42px, 12vw, 64px);\n  }\n\n  .rp-hero-copy p {\n    font-size: 18px;\n  }\n\n  .rp-hero-stats {\n    grid-template-columns: repeat(2, 1fr);\n    gap: 28px 0;\n    margin-top: 64px;\n  }\n\n  .rp-stat:nth-child(3) {\n    padding-left: 0;\n    border-left: 0;\n  }\n}\n\n@media (max-width: 560px) {\n  .rp-hero-ultimate {\n    padding: 110px 20px 58px;\n  }\n\n  .rp-actions {\n    flex-direction: column;\n  }\n\n  .rp-btn {\n    width: 100%;\n  }\n\n  .rp-hero-stats {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 28px 0;\n    margin-top: 48px;\n  }\n\n  .rp-stat,\n  .rp-stat:nth-child(3) {\n    padding: 0 12px 0 16px;\n    border-left: 1px solid rgba(255,255,255,.16);\n  }\n\n  .rp-stat:nth-child(odd) {\n    padding-left: 0;\n    border-left: 0;\n  }\n\n  .rp-stat strong {\n    font-size: 30px;\n    margin-bottom: 10px;\n  }\n\n  .rp-stat span {\n    font-size: 12px;\n    line-height: 1.3;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  const canvas = document.getElementById(\"rpHeroNet\");\n  if (!canvas || canvas.dataset.ready) return;\n  canvas.dataset.ready = \"true\";\n\n  const ctx = canvas.getContext(\"2d\");\n  let w, h, dpr;\n  let nodes = [];\n  let packets = [];\n  let mouse = { x: 0, y: 0, active: false };\n\n  const orange = \"#E47C26\";\n  const blue = \"#1884FF\";\n  const soft = \"#7FA6D8\";\n\n  function resize() {\n    dpr = Math.min(window.devicePixelRatio || 1, 2);\n    w = canvas.offsetWidth;\n    h = canvas.offsetHeight;\n    canvas.width = w * dpr;\n    canvas.height = h * dpr;\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    createScene();\n  }\n\n  function createScene() {\n    nodes = [];\n    packets = [];\n\n    const count = window.innerWidth < 768 ? 70 : 135;\n\n    for (let i = 0; i < count; i++) {\n      const isOrange = Math.random() > 0.78;\n      const x = w * 0.34 + Math.random() * w * 0.76;\n      const y = h * 0.05 + Math.random() * h * 0.88;\n\n      nodes.push({\n        x,\n        y,\n        baseX: x,\n        baseY: y,\n        r: isOrange ? 2.8 + Math.random() * 2.5 : 1.5 + Math.random() * 1.8,\n        color: isOrange ? orange : (Math.random() > 0.55 ? blue : soft),\n        alpha: isOrange ? 0.95 : 0.65,\n        phase: Math.random() * Math.PI * 2,\n        orbit: 18 + Math.random() * 32\n      });\n    }\n\n    for (let i = 0; i < 22; i++) {\n      packets.push({\n        node: Math.floor(Math.random() * nodes.length),\n        next: Math.floor(Math.random() * nodes.length),\n        t: Math.random(),\n        speed: 0.0011 + Math.random() * 0.0014\n      });\n    }\n  }\n\n  function rgba(hex, a) {\n    const bigint = parseInt(hex.slice(1), 16);\n    const r = (bigint >> 16) & 255;\n    const g = (bigint >> 8) & 255;\n    const b = bigint & 255;\n    return `rgba(${r},${g},${b},${a})`;\n  }\n\n  function drawGlow() {\n    const g1 = ctx.createRadialGradient(w * 0.76, h * 0.46, 20, w * 0.76, h * 0.46, w * 0.45);\n    g1.addColorStop(0, \"rgba(24,132,255,.20)\");\n    g1.addColorStop(.42, \"rgba(24,132,255,.08)\");\n    g1.addColorStop(1, \"rgba(24,132,255,0)\");\n    ctx.fillStyle = g1;\n    ctx.fillRect(0, 0, w, h);\n\n    const g2 = ctx.createRadialGradient(w * 0.78, h * 0.58, 10, w * 0.78, h * 0.58, w * 0.28);\n    g2.addColorStop(0, \"rgba(228,124,38,.16)\");\n    g2.addColorStop(.48, \"rgba(228,124,38,.055)\");\n    g2.addColorStop(1, \"rgba(228,124,38,0)\");\n    ctx.fillStyle = g2;\n    ctx.fillRect(0, 0, w, h);\n  }\n\n  function update() {\n    const t = performance.now() * 0.001;\n\n    nodes.forEach(n => {\n      let tx = n.baseX + Math.sin(t * 0.45 + n.phase) * n.orbit;\n      let ty = n.baseY + Math.cos(t * 0.38 + n.phase) * (n.orbit * 0.75);\n\n      if (mouse.active) {\n        const dx = mouse.x - tx;\n        const dy = mouse.y - ty;\n        const dist = Math.sqrt(dx * dx + dy * dy) || 1;\n\n        if (dist < 260) {\n          const force = (1 - dist \/ 260) * 34;\n          tx -= (dx \/ dist) * force;\n          ty -= (dy \/ dist) * force;\n        }\n\n        tx += (mouse.x - w \/ 2) * 0.018;\n        ty += (mouse.y - h \/ 2) * 0.012;\n      }\n\n      n.x += (tx - n.x) * 0.035;\n      n.y += (ty - n.y) * 0.035;\n    });\n  }\n\n  function drawLines() {\n    for (let i = 0; i < nodes.length; i++) {\n      for (let j = i + 1; j < nodes.length; j++) {\n        const a = nodes[i];\n        const b = nodes[j];\n        const dx = a.x - b.x;\n        const dy = a.y - b.y;\n        const d = Math.sqrt(dx * dx + dy * dy);\n\n        if (d < 165) {\n          const hasOrange = a.color === orange || b.color === orange;\n          ctx.beginPath();\n          ctx.moveTo(a.x, a.y);\n          ctx.lineTo(b.x, b.y);\n          ctx.strokeStyle = hasOrange\n            ? `rgba(228,124,38,${(1 - d \/ 165) * 0.34})`\n            : `rgba(24,132,255,${(1 - d \/ 165) * 0.28})`;\n          ctx.lineWidth = hasOrange ? 1 : 0.75;\n          ctx.stroke();\n        }\n      }\n    }\n  }\n\n  function drawPackets() {\n    packets.forEach(p => {\n      const a = nodes[p.node];\n      const b = nodes[p.next];\n      if (!a || !b || a === b) return;\n\n      p.t += p.speed;\n\n      if (p.t > 1) {\n        p.t = 0;\n        p.node = p.next;\n        p.next = Math.floor(Math.random() * nodes.length);\n      }\n\n      const x = a.x + (b.x - a.x) * p.t;\n      const y = a.y + (b.y - a.y) * p.t;\n\n      ctx.beginPath();\n      ctx.fillStyle = \"rgba(228,124,38,.78)\";\n      ctx.arc(x, y, 1.45, 0, Math.PI * 2);\n      ctx.fill();\n\n      ctx.beginPath();\n      ctx.fillStyle = \"rgba(228,124,38,.09)\";\n      ctx.arc(x, y, 10, 0, Math.PI * 2);\n      ctx.fill();\n    });\n  }\n\n  function drawNodes() {\n    const t = performance.now() * 0.001;\n\n    nodes.forEach(n => {\n      const pulse = Math.sin(t * 1.8 + n.phase) * 0.35;\n      const r = n.r + pulse;\n\n      ctx.beginPath();\n      ctx.fillStyle = rgba(n.color, n.alpha);\n      ctx.arc(n.x, n.y, r, 0, Math.PI * 2);\n      ctx.fill();\n\n      if (n.color === orange) {\n        ctx.beginPath();\n        ctx.fillStyle = \"rgba(228,124,38,.13)\";\n        ctx.arc(n.x, n.y, r + 16, 0, Math.PI * 2);\n        ctx.fill();\n\n        ctx.beginPath();\n        ctx.strokeStyle = \"rgba(228,124,38,.30)\";\n        ctx.lineWidth = 1;\n        ctx.arc(n.x, n.y, r + 9, 0, Math.PI * 2);\n        ctx.stroke();\n      }\n    });\n  }\n\n  function fadeLeft() {\n    const g = ctx.createLinearGradient(0, 0, w * 0.48, 0);\n    g.addColorStop(0, \"rgba(2,8,23,.96)\");\n    g.addColorStop(.55, \"rgba(2,8,23,.62)\");\n    g.addColorStop(1, \"rgba(2,8,23,0)\");\n    ctx.fillStyle = g;\n    ctx.fillRect(0, 0, w * 0.5, h);\n  }\n\n  function animate() {\n    ctx.clearRect(0, 0, w, h);\n    drawGlow();\n    update();\n    drawLines();\n    drawPackets();\n    drawNodes();\n    fadeLeft();\n    requestAnimationFrame(animate);\n  }\n\n  window.addEventListener(\"resize\", resize);\n\n  window.addEventListener(\"mousemove\", e => {\n    const rect = canvas.getBoundingClientRect();\n    mouse.x = e.clientX - rect.left;\n    mouse.y = e.clientY - rect.top;\n    mouse.active = true;\n  });\n\n  window.addEventListener(\"mouseleave\", () => {\n    mouse.active = false;\n  });\n\n  resize();\n  animate();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c462ca3 e-grid e-con-boxed e-con e-parent\" data-id=\"c462ca3\" data-element_type=\"container\" data-e-type=\"container\" id=\"services\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-d33e0d7 e-con e-atomic-element e-flexbox-base e-d33e0d7-ea8a6c9 \" data-id=\"d33e0d7\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"d33e0d7\">\n    <div class=\"elementor-element elementor-element-b320c06 e-con-full e-flex e-con e-child\" data-id=\"b320c06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c2c042e elementor-widget elementor-widget-html\" data-id=\"c2c042e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<span class=\"route-pulse-dot\"><\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<h2 data-interaction-id=\"21599cd\" class=\"e-21599cd-3aadd5c e-heading-base\">OUR SERVICES<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d9f7479 elementor-widget__width-initial animated-slow elementor-widget-tablet__width-inherit elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"d9f7479\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Testing &amp; Monitoring\nBuilt For Telecom<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-40ff0af-db8bacd e-divider-base\" data-interaction-id=\"40ff0af\"   \/>\n\t\t\t\t<div class=\"elementor-element elementor-element-52e9c71 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"52e9c71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">RoutePulse delivers end-to-end SMS testing, <br \/>routing validation and quality monitoring <br \/>across global mobile networks.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-d6e192f e-con e-atomic-element e-flexbox-base e-d6e192f-a43731c \" data-id=\"d6e192f\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"d6e192f\">\n    <div class=\"elementor-element elementor-element-9d50eef e-con e-atomic-element e-div-block-base e-9d50eef-511b7ed issue-card \" data-id=\"9d50eef\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"9d50eef\">\n    \t\t\t<h2 data-interaction-id=\"5a26620\" class=\"e-5a26620-7025b77 rp-service-num e-heading-base\">01<\/h2>\n\t\t\t\t<div class=\"elementor-element elementor-element-9272064 elementor-widget elementor-widget-text-editor\" data-id=\"9272064\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>A2P SMS Testing<\/strong><br \/>End-to-end testing of OTP delivery, registration flows and transactional SMS.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-6a4818e e-con e-atomic-element e-div-block-base issue-card e-6a4818e-9ce25df \" data-id=\"6a4818e\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"6a4818e\">\n    \t\t\t<h2 data-interaction-id=\"cc99c23\" class=\"e-cc99c23-15f66de rp-service-num e-heading-base\">02<\/h2>\n\t\t\t\t<div class=\"elementor-element elementor-element-7410f82 elementor-widget elementor-widget-text-editor\" data-id=\"7410f82\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Traffic Quality Monitoring<\/strong><br \/>Continuous monitoring of SMS traffic quality, delivery performance and operator.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-1389ea3 e-con e-atomic-element e-div-block-base issue-card e-1389ea3-ed200a9 \" data-id=\"1389ea3\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"1389ea3\">\n    \t\t\t<h2 data-interaction-id=\"800f896\" class=\"e-800f896-233124b rp-service-num e-heading-base\">03<\/h2>\n\t\t\t\t<div class=\"elementor-element elementor-element-004592d elementor-widget elementor-widget-text-editor\" data-id=\"004592d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Routing Verification<\/strong><br \/>Validate route stability, delivery success rates and network-level performance.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-22f9d3d e-con e-atomic-element e-div-block-base issue-card e-22f9d3d-af9297e \" data-id=\"22f9d3d\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"22f9d3d\">\n    \t\t\t<h2 data-interaction-id=\"38ee57c\" class=\"e-38ee57c-af3fc3d rp-service-num e-heading-base\">04<\/h2>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1acf9a elementor-widget elementor-widget-text-editor\" data-id=\"f1acf9a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>OTP Delivery Validation<\/strong><br \/>Check OTP delivery speed, stability and route accuracy across mobile networks.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-9bef7c9 e-con e-atomic-element e-div-block-base issue-card e-9bef7c9-ae6426c \" data-id=\"9bef7c9\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"9bef7c9\">\n    \t\t\t<h2 data-interaction-id=\"c7cd025\" class=\"e-c7cd025-2cb4bcd rp-service-num e-heading-base\">05<\/h2>\n\t\t\t\t<div class=\"elementor-element elementor-element-6657fe6 elementor-widget elementor-widget-text-editor\" data-id=\"6657fe6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Automated &amp; Manual Testing<\/strong><br \/>Flexible testing models tailored to customer requirements and use cases.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-901fde9 e-grid e-con-full e-con e-parent\" data-id=\"901fde9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-9bc077f e-con e-atomic-element e-flexbox-base e-9bc077f-dac5f83 \" data-id=\"9bc077f\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"9bc077f\">\n    <div class=\"elementor-element elementor-element-cd3e6f1 e-con-full e-flex e-con e-child\" data-id=\"cd3e6f1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-52a0774 elementor-widget elementor-widget-html\" data-id=\"52a0774\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<span class=\"route-pulse-dot\"><\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<h2 data-interaction-id=\"a6306fc\" class=\"e-a6306fc-153ef28 e-heading-base\">WHY MONITORING MATTERS<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8514e28 elementor-widget__width-initial animated-slow elementor-widget-tablet__width-inherit elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8514e28\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Every SMS\nRoute\nEvery Issue<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-4243262-5186d71 e-divider-base\" data-interaction-id=\"4243262\"   \/>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4e1120 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"b4e1120\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Identify delivery failures, routing changes,<br \/>message delays and quality degradation<br \/>before they impact customers and revenue.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-15f52c5 e-grid e-con-full e-con e-child\" data-id=\"15f52c5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-11abfb7 e-con-full ct-backdrop-s ct-boxshadow ct-border-animation e-flex e-con e-child\" data-id=\"11abfb7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a9dcf3 elementor-view-stacked elementor-shape-circle elementor-widget elementor-widget-icon\" data-id=\"5a9dcf3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-exclamation-triangle\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50abfe0 elementor-widget elementor-widget-heading\" data-id=\"50abfe0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Delivery Failures<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ffcad0 elementor-widget elementor-widget-text-editor\" data-id=\"6ffcad0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Failed OTPs, missing notifications and undelivered transactional messages impacting use<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c7983bd e-con-full ct-backdrop-s ct-boxshadow ct-border-animation e-flex e-con e-child\" data-id=\"c7983bd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67901a0 elementor-view-stacked elementor-shape-circle elementor-widget elementor-widget-icon\" data-id=\"67901a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-expand-alt\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-876c33c elementor-widget elementor-widget-heading\" data-id=\"876c33c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Route Changes<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f61ca3a elementor-widget elementor-widget-text-editor\" data-id=\"f61ca3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Unexpected routing modifications and traffic shifts affecting delivery quality and costs.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-698f35d e-con-full ct-backdrop-s ct-boxshadow ct-border-animation e-flex e-con e-child\" data-id=\"698f35d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89c87b9 elementor-view-stacked elementor-shape-circle elementor-widget elementor-widget-icon\" data-id=\"89c87b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-history\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d402ecb elementor-widget elementor-widget-heading\" data-id=\"d402ecb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Message Delays<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45204df elementor-widget elementor-widget-text-editor\" data-id=\"45204df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Even successfully delivered messages can arrive too<br \/>late for authentication and time-sensitive communications.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ddb9268 e-con-full ct-backdrop-s ct-boxshadow ct-border-animation e-flex e-con e-child\" data-id=\"ddb9268\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8724ca8 elementor-view-stacked elementor-shape-circle elementor-widget elementor-widget-icon\" data-id=\"8724ca8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-sort-numeric-down-alt\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae7d6e1 elementor-widget elementor-widget-heading\" data-id=\"ae7d6e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Quality Degradation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a824970 elementor-widget elementor-widget-text-editor\" data-id=\"a824970\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Detect filtering, coverage issues and operator-specific performance problems before they affect service reliability.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e6f27b e-con e-atomic-element e-flexbox-base e-2e6f27b-e67a959 \" data-id=\"2e6f27b\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2e6f27b\">\n    <div class=\"elementor-element elementor-element-8b4a683 e-con e-atomic-element e-div-block-base \" data-id=\"8b4a683\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"8b4a683\">\n    <div class=\"elementor-element elementor-element-bcd4bef e-con e-atomic-element e-flexbox-base e-bcd4bef-013b337 \" data-id=\"bcd4bef\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bcd4bef\">\n    <div class=\"elementor-element elementor-element-0cc0330 e-con-full e-flex e-con e-child\" data-id=\"0cc0330\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb22266 elementor-widget elementor-widget-html\" data-id=\"fb22266\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<span class=\"route-pulse-dot\"><\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<h2 data-interaction-id=\"e4d56a3\" class=\"e-e4d56a3-ae1579b e-heading-base\">GLOBAL COVERAGE &amp; TESTING EXPERIENCE<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07fee43 elementor-widget__width-initial animated-slow elementor-widget-tablet__width-inherit elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"07fee43\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Testing Across 25+ Countries<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-dea88a6-52f8ad9 e-divider-base\" data-interaction-id=\"dea88a6\"   \/>\n\t\t\t\t<div class=\"elementor-element elementor-element-694c76d elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"694c76d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">RoutePulse delivers real-device testing and monitoring services across key regions, supporting operators, aggregators and enterprises worldwide.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-69efbe1 elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-html\" data-id=\"69efbe1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"rp-coverage-right\">\n  <div class=\"rp-coverage-smoke\"><\/div>\n  <canvas id=\"rpCoverageNetwork\"><\/canvas>\n\n  <div class=\"rp-coverage-regions-only\">\n    <div class=\"rp-region-light\">\n      <h3>Europe<\/h3>\n      <p>Germany<br>Italy<br>Spain<br>France<br>Netherlands<br>Poland<\/p>\n    <\/div>\n\n    <div class=\"rp-region-light\">\n      <h3>Asia<\/h3>\n      <p>Pakistan<br>Malaysia<br>Philippines<br>Uzbekistan<br>India<br>Oman<\/p>\n    <\/div>\n\n    <div class=\"rp-region-light\">\n      <h3>Africa<\/h3>\n      <p>Nigeria<br>Kenya<br>South Africa<br>Ghana<br>Egypt<br>Morocco<\/p>\n    <\/div>\n\n    <div class=\"rp-region-light\">\n      <h3>Middle East<\/h3>\n      <p>UAE<br>Saudi Arabia<br>Qatar<br>Bahrain<br>Kuwait<br>Thailand<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.rp-coverage-right {\n  position: relative;\n  width: 100%;\n  min-height: 560px;\n  overflow: hidden;\n  padding: 78px 0 70px;\n}\n\n\/* \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u043c\u044f\u0433\u043a\u0430\u044f \u0434\u044b\u043c\u043a\u0430 \u0441\u043d\u0438\u0437\u0443-\u0441\u043f\u0440\u0430\u0432\u0430 *\/\n.rp-coverage-smoke {\n  position: absolute;\n  right: -10%;\n  bottom: -8%;\n  width: 95%;\n  height: 430px;\n  background:\n    radial-gradient(ellipse at 58% 60%, rgba(228,124,38,.13), transparent 43%),\n    radial-gradient(ellipse at 52% 58%, rgba(7,18,37,.085), transparent 66%),\n    radial-gradient(ellipse at 70% 55%, rgba(80,130,220,.06), transparent 62%);\n  filter: blur(42px);\n  z-index: 1;\n  pointer-events: none;\n}\n\n#rpCoverageNetwork {\n  position: absolute;\n  right: -8%;\n  bottom: -10%;\n  width: 108%;\n  height: 92%;\n  z-index: 2;\n  opacity: .88;\n  pointer-events: none;\n}\n\n.rp-coverage-regions-only {\n  position: relative;\n  z-index: 3;\n  display: grid;\n  grid-template-columns: repeat(2, minmax(220px, 1fr));\n  gap: 58px 72px;\n  max-width: 720px;\n  margin-left: auto;\n  transform: translateY(42px);\n}\n\n.rp-region-light {\n  padding-left: 28px;\n  border-left: 1px solid rgba(7,18,37,.12);\n}\n\n.rp-region-light h3 {\n  margin: 0 0 18px;\n  color: #071225;\n  font-size: 28px;\n  font-weight: 800;\n  white-space: nowrap;\n}\n\n.rp-region-light h3::before {\n  content: \"\";\n  display: inline-block;\n  width: 9px;\n  height: 9px;\n  background: #071225;\n  border-radius: 50%;\n  margin-right: 10px;\n  vertical-align: middle;\n}\n\n.rp-region-light h3::after {\n  content: \"\";\n  display: block;\n  width: 105px;\n  height: 2px;\n  background: #E47C26;\n  margin-top: 10px;\n  box-shadow: 0 0 18px rgba(228,124,38,.22);\n}\n\n.rp-region-light p {\n  margin: 0;\n  color: #536783;\n  font-size: 17px;\n  line-height: 1.65;\n}\n\n@media (max-width: 1000px) {\n  #rpCoverageNetwork {\n    width: 115%;\n    opacity: .36;\n  }\n\n  .rp-coverage-regions-only {\n    grid-template-columns: repeat(2, 1fr);\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 560px) {\n  .rp-coverage-right {\n    min-height: auto;\n    padding: 28px 0 48px;\n  }\n\n  .rp-coverage-regions-only {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 34px 18px;\n    width: 100%;\n    max-width: none;\n    margin: 0;\n    transform: none;\n  }\n\n  .rp-region-light {\n    padding-left: 12px;\n  }\n\n  .rp-region-light h3 {\n    margin-bottom: 12px;\n    font-size: 20px;\n    line-height: 1.15;\n    white-space: normal;\n  }\n\n  .rp-region-light h3::before {\n    width: 6px;\n    height: 6px;\n    margin-right: 7px;\n  }\n\n  .rp-region-light h3::after {\n    width: 72px;\n    margin-top: 8px;\n  }\n\n  .rp-region-light p {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  #rpCoverageNetwork {\n    right: -42%;\n    bottom: -3%;\n    width: 145%;\n    height: 100%;\n    opacity: .18;\n  }\n\n  .rp-coverage-smoke {\n    right: -35%;\n    bottom: -5%;\n    width: 140%;\n    height: 70%;\n    opacity: .55;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  const canvas = document.getElementById(\"rpCoverageNetwork\");\n  if (!canvas) return;\n\n  const ctx = canvas.getContext(\"2d\");\n  let w, h, points = [];\n  let time = 0;\n  let activeRoute = 0;\n  let routeTime = 0;\n\n  const routes = [\n    [3, 8, 14, 21, 30, 42],\n    [6, 12, 19, 27, 36, 48],\n    [10, 18, 26, 35, 44, 55],\n    [16, 25, 33, 41, 50, 60]\n  ];\n\n  function resize() {\n    const dpr = window.devicePixelRatio || 1;\n    w = canvas.offsetWidth;\n    h = canvas.offsetHeight;\n    canvas.width = w * dpr;\n    canvas.height = h * dpr;\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    createPoints();\n  }\n\n  function createPoints() {\n    points = [];\n    const count = 66;\n\n    for (let i = 0; i < count; i++) {\n      const cluster = Math.random();\n\n      let x;\n      let y;\n\n      if (cluster < .55) {\n        x = w * (.40 + Math.random() * .55);\n        y = h * (.30 + Math.random() * .56);\n      } else {\n        x = w * (.20 + Math.random() * .65);\n        y = h * (.18 + Math.random() * .62);\n      }\n\n      const depth = Math.random();\n\n      points.push({\n        baseX: x,\n        baseY: y,\n        x,\n        y,\n        depth,\n        r: depth > .86 ? 3.7 : depth > .55 ? 2.7 : 1.8,\n        orange: Math.random() < .10,\n        phase: Math.random() * Math.PI * 2,\n        move: depth > .55 ? 1 : depth > .25 ? .55 : .18\n      });\n    }\n  }\n\n  function connectPoints() {\n    const links = [];\n\n    for (let i = 0; i < points.length; i++) {\n      let nearby = [];\n\n      for (let j = i + 1; j < points.length; j++) {\n        const dx = points[i].x - points[j].x;\n        const dy = points[i].y - points[j].y;\n        const dist = Math.sqrt(dx * dx + dy * dy);\n\n        if (dist < 155) {\n          nearby.push({ j, dist });\n        }\n      }\n\n      nearby\n        .sort((a, b) => a.dist - b.dist)\n        .slice(0, 3)\n        .forEach(item => links.push([i, item.j, item.dist]));\n    }\n\n    return links;\n  }\n\n  function drawLine(a, b, alpha, tint) {\n    ctx.beginPath();\n    ctx.moveTo(a.x, a.y);\n    ctx.lineTo(b.x, b.y);\n    ctx.strokeStyle = tint === \"blue\"\n      ? \"rgba(70,110,190,\" + alpha + \")\"\n      : \"rgba(7,18,37,\" + alpha + \")\";\n    ctx.lineWidth = 1;\n    ctx.stroke();\n  }\n\n  function drawSignal(a, b, progress) {\n\n    \/\/ \u043f\u043b\u0430\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0433\u043e\u043d \u0438 \u0442\u043e\u0440\u043c\u043e\u0436\u0435\u043d\u0438\u0435\n    const ease = progress < 0.5\n        ? 2 * progress * progress\n        : 1 - Math.pow(-2 * progress + 2, 2) \/ 2;\n\n    const x = a.x + (b.x - a.x) * ease;\n    const y = a.y + (b.y - a.y) * ease;\n\n    \/\/ \u043b\u0451\u0433\u043a\u043e\u0435 \"\u0434\u044b\u0445\u0430\u043d\u0438\u0435\"\n    const pulse = 4 + Math.sin(time * 10) * 0.35;\n\n    ctx.beginPath();\n    ctx.arc(x, y, pulse, 0, Math.PI * 2);\n\n    ctx.fillStyle = \"#E47C26\";\n\n    ctx.shadowColor = \"rgba(228,124,38,.45)\";\n    ctx.shadowBlur = 8;\n\n    ctx.globalAlpha = .9;\n    ctx.fill();\n\n    ctx.shadowBlur = 0;\n    ctx.globalAlpha = 1;\n\n}\n\n  function animate() {\n    time += .008;\n    routeTime += .001;\n\n    if (routeTime > 1) {\n      routeTime = 0;\n      activeRoute = (activeRoute + 1) % routes.length;\n    }\n\n    ctx.clearRect(0, 0, w, h);\n\n    points.forEach(p => {\n      p.x = p.baseX + Math.sin(time + p.phase) * (5 + p.move * 10);\n      p.y = p.baseY + Math.cos(time * .85 + p.phase) * (4 + p.move * 8);\n    });\n\n    const links = connectPoints();\n\n    links.forEach((link, index) => {\n      const a = points[link[0]];\n      const b = points[link[1]];\n      const dist = link[2];\n\n      const baseAlpha = (1 - dist \/ 155) * .16;\n      const tint = index % 11 === 0 ? \"blue\" : \"dark\";\n\n      drawLine(a, b, baseAlpha, tint);\n    });\n\n    const route = routes[activeRoute];\n    const segmentCount = route.length - 1;\n    const scaled = routeTime * segmentCount;\n    const currentSegment = Math.min(Math.floor(scaled), segmentCount - 1);\n    const localProgress = scaled - currentSegment;\n\n    const a = points[route[currentSegment]];\n    const b = points[route[currentSegment + 1]];\n\n    if (a && b) {\n      drawLine(a, b, .28, \"dark\");\n      drawSignal(a, b, localProgress);\n    }\n\n    points.forEach((p, i) => {\n      const glow = (Math.sin(time * 2.2 + p.phase) + 1) \/ 2;\n      const isRouteNode = route.includes(i);\n\n      ctx.beginPath();\n      ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);\n\n      if (p.orange || isRouteNode) {\n        ctx.fillStyle = \"#E47C26\";\n        ctx.globalAlpha = isRouteNode ? .75 + glow * .25 : .72;\n      } else {\n        ctx.fillStyle = \"#12345F\";\n        ctx.globalAlpha = p.depth > .55 ? .72 : .38;\n      }\n\n      ctx.fill();\n      ctx.globalAlpha = 1;\n    });\n\n    requestAnimationFrame(animate);\n  }\n\n  resize();\n  window.addEventListener(\"resize\", resize);\n  animate();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-3dec991 e-con e-atomic-element e-flexbox-base e-3dec991-fcebcac \" data-id=\"3dec991\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"3dec991\">\n    <div class=\"elementor-element elementor-element-37be75b e-con e-atomic-element e-div-block-base e-37be75b-9299082 \" data-id=\"37be75b\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"37be75b\">\n    <div class=\"elementor-element elementor-element-4019d03 e-con e-atomic-element e-flexbox-base e-4019d03-2b21eab \" data-id=\"4019d03\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"4019d03\">\n    <div class=\"elementor-element elementor-element-fa8e6dc e-con-full e-flex e-con e-child\" data-id=\"fa8e6dc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57c4f0b elementor-widget elementor-widget-html\" data-id=\"57c4f0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<span class=\"route-pulse-dot\"><\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<h2 data-interaction-id=\"a2284e8\" class=\"e-a2284e8-dfa4020 e-heading-base\">HOW TESTING WORKS<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f98442 elementor-widget__width-initial animated-slow elementor-widget-tablet__width-inherit elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"3f98442\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How Testing<br>Works<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-c7d9b5b-5b480eb e-divider-base\" data-interaction-id=\"c7d9b5b\"   \/>\n\t\t\t\t<div class=\"elementor-element elementor-element-80728ac elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"80728ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">A simple, structured process to help you validate routes, monitor delivery and improve SMS performance.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-84eff6b e-con e-atomic-element e-div-block-base e-84eff6b-30c22ce \" data-id=\"84eff6b\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"84eff6b\">\n    <div class=\"elementor-element elementor-element-fb31951 e-con e-atomic-element e-flexbox-base \" data-id=\"fb31951\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"fb31951\">\n    <div class=\"elementor-element elementor-element-135a11c e-con e-atomic-element e-div-block-base e-135a11c-f43e476 \" data-id=\"135a11c\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"135a11c\">\n    \t\t<div class=\"elementor-element elementor-element-524027d elementor-widget elementor-widget-html\" data-id=\"524027d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"rp-process-metrics-wrap\">\n  <div class=\"rp-metrics-label\">KEY METRICS<\/div>\n\n  <div class=\"rp-process-stats\">\n    <div class=\"rp-stat-item\">\n      <div class=\"rp-stat-number\">300+<\/div>\n      <div class=\"rp-stat-label\">Real Devices<\/div>\n    <\/div>\n\n    <div class=\"rp-stat-item\">\n      <div class=\"rp-stat-number\">250+<\/div>\n      <div class=\"rp-stat-label\">Services in Tests<\/div>\n    <\/div>\n\n    <div class=\"rp-stat-item\">\n      <div class=\"rp-stat-number\">2M+<\/div>\n      <div class=\"rp-stat-label\">Tests \/ Month<\/div>\n    <\/div>\n\n    <div class=\"rp-stat-item\">\n      <div class=\"rp-stat-number\">99.9%<\/div>\n      <div class=\"rp-stat-label\">Route Visibility<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.rp-process-metrics-wrap {\n  width: 100%;\n  max-width: 700px;\n  margin: 0 auto 42px;\n}\n\n.rp-metrics-label {\n    margin-bottom: 10px;\n\n    color: #9BA6BA;\n\n    font-size: 10px;\n\n    font-weight: 500;\n\n    letter-spacing: .35em;\n\n    text-transform: uppercase;\n}\n\n.rp-process-stats {\n  width: 100%;\n  min-height: 104px;\n  padding: 22px 26px;\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  border-radius: 24px;\n  position: relative;\n  overflow: hidden;\n\n  background:\n    radial-gradient(circle at 10% 100%,\n      rgba(228,124,38,.075) 0%,\n      rgba(228,124,38,.035) 24%,\n      transparent 56%),\n\n    radial-gradient(circle at 94% 0%,\n      rgba(78,132,255,.055) 0%,\n      rgba(78,132,255,.025) 30%,\n      transparent 62%),\n\n    linear-gradient(\n      180deg,\n      rgba(255,255,255,1) 0%,\n      rgba(255,255,255,.99) 48%,\n      rgba(252,253,255,1) 100%\n    );\n\n  border: 1px solid rgba(18,40,75,.04);\n\n  box-shadow:\n    0 10px 28px rgba(34,60,80,.032),\n    0 2px 8px rgba(34,60,80,.018);\n}\n\n.rp-process-stats::before {\n  content: \"\";\n  position: absolute;\n  inset: -120px;\n  background:\n    radial-gradient(circle,\n      rgba(255,255,255,.78) 0%,\n      rgba(255,255,255,0) 66%);\n  filter: blur(72px);\n  pointer-events: none;\n}\n\n.rp-stat-item {\n  position: relative;\n  z-index: 2;\n  padding: 0 22px;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n}\n\n.rp-stat-item:not(:last-child) {\n  border-right: 1px solid rgba(7,18,37,.095);\n}\n\n.rp-stat-number {\n  color: #C7772B;\n  font-size: 35px;\n  line-height: 1;\n  font-weight: 800;\n  letter-spacing: -0.7px;\n  margin-bottom: 16px;\n  white-space: nowrap;\n}\n\n.rp-stat-label {\n  color: #6E7C95;\n  font-size: 15.5px;\n  line-height: 1.42;\n  font-weight: 500;\n}\n\n.rp-process-stats {\n  transition: transform .35s ease, box-shadow .35s ease;\n}\n\n.rp-process-stats:hover {\n  transform: translateY(-2px);\n  box-shadow:\n    0 14px 34px rgba(34,60,80,.04),\n    0 3px 10px rgba(34,60,80,.022);\n}\n\n@media (max-width: 900px) {\n  .rp-process-metrics-wrap {\n    max-width: 100%;\n  }\n\n  .rp-process-stats {\n    grid-template-columns: repeat(2, 1fr);\n    padding: 24px;\n  }\n\n  .rp-stat-item {\n    padding: 22px;\n  }\n\n  .rp-stat-item:nth-child(2) {\n    border-right: none;\n  }\n\n  .rp-stat-item:nth-child(1),\n  .rp-stat-item:nth-child(2) {\n    border-bottom: 1px solid rgba(7,18,37,.09);\n  }\n}\n\n@media (max-width: 560px) {\n  .rp-process-stats {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    padding: 16px;\n    border-radius: 20px;\n  }\n\n  .rp-stat-item {\n    padding: 18px 10px;\n    align-items: center;\n    text-align: center;\n    border-bottom: none;\n  }\n\n  .rp-stat-item:nth-child(odd) {\n    border-right: 1px solid rgba(7,18,37,.09);\n  }\n\n  .rp-stat-item:nth-child(even) {\n    border-right: none;\n  }\n\n  .rp-stat-item:nth-child(1),\n  .rp-stat-item:nth-child(2) {\n    border-bottom: 1px solid rgba(7,18,37,.09);\n  }\n\n  .rp-stat-number {\n    font-size: 30px;\n    margin-bottom: 10px;\n  }\n\n  .rp-stat-label {\n    font-size: 13px;\n    line-height: 1.35;\n  }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0002d5e e-con e-atomic-element e-flexbox-base e-0002d5e-a5788a2 \" data-id=\"0002d5e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0002d5e\">\n    \t\t\t<h2 data-interaction-id=\"9db7b69\" class=\"e-9db7b69-76e3122 e-heading-base\">Send Destination List<\/h2>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-61eecf7 elementor-widget elementor-widget-text-editor\" data-id=\"61eecf7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Provide target countries, operators and testing requirements.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-044b04b e-con e-atomic-element e-flexbox-base \" data-id=\"044b04b\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"044b04b\">\n    <div class=\"elementor-element elementor-element-9a675eb e-con e-atomic-element e-div-block-base e-9a675eb-c4a51b2 \" data-id=\"9a675eb\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"9a675eb\">\n    <div class=\"elementor-element elementor-element-138bb0c e-con e-atomic-element e-flexbox-base e-138bb0c-6ea9838 \" data-id=\"138bb0c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"138bb0c\">\n    \t\t\t<h2 data-interaction-id=\"00f44a0\" class=\"e-00f44a0-bcc6c97 e-heading-base\">RoutePulse Executes Tests<\/h2>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-7352af0 elementor-widget elementor-widget-text-editor\" data-id=\"7352af0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Real-device testing across live networks and routes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-05756b2 e-con e-atomic-element e-flexbox-base \" data-id=\"05756b2\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"05756b2\">\n    <div class=\"elementor-element elementor-element-f6f2d3e e-con e-atomic-element e-div-block-base e-f6f2d3e-9f46419 \" data-id=\"f6f2d3e\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"f6f2d3e\">\n    <div class=\"elementor-element elementor-element-4e127b7 e-con e-atomic-element e-flexbox-base e-4e127b7-968353c \" data-id=\"4e127b7\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"4e127b7\">\n    \t\t\t<h2 data-interaction-id=\"64f5220\" class=\"e-64f5220-c134799 e-heading-base\">Results &amp; Analysis<\/h2>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-8223288 elementor-widget elementor-widget-text-editor\" data-id=\"8223288\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Detailed delivery reports and route performance insights.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-d9e92c6 e-con e-atomic-element e-flexbox-base \" data-id=\"d9e92c6\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"d9e92c6\">\n    <div class=\"elementor-element elementor-element-a7e5819 e-con e-atomic-element e-div-block-base e-a7e5819-a65184c \" data-id=\"a7e5819\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"a7e5819\">\n    <div class=\"elementor-element elementor-element-4eed54c e-con e-atomic-element e-flexbox-base e-4eed54c-cb5984c \" data-id=\"4eed54c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"4eed54c\">\n    \t\t\t<h2 data-interaction-id=\"927dc65\" class=\"e-927dc65-9acb3de e-heading-base\">Optimization &amp; Monitoring<\/h2>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-6ccb882 elementor-widget elementor-widget-text-editor\" data-id=\"6ccb882\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"1539\" data-end=\"1601\">Continuous monitoring and routing improvement recommendations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-4618490 e-con e-atomic-element e-div-block-base e-4618490-f327ae7 \" data-id=\"4618490\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"4618490\">\n    <div class=\"elementor-element elementor-element-56fedf4 e-con-full e-flex e-con e-child\" data-id=\"56fedf4\" data-element_type=\"container\" data-e-type=\"container\" id=\"about\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0a6c68a elementor-widget elementor-widget-html\" data-id=\"0a6c68a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<span class=\"route-pulse-dot\"><\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<h2 data-interaction-id=\"ee7db87\" class=\"e-ee7db87-dc7bdbf e-heading-base\">WHY ROUTEPULSE<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe058e0 elementor-widget__width-initial elementor-widget-tablet__width-inherit animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"fe058e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Built For\nReal Traffic<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-1f3550e-ee1dab8 e-divider-base\" data-interaction-id=\"1f3550e\"   \/>\n\t\t<div class=\"elementor-element elementor-element-e3a8030 e-con e-atomic-element e-div-block-base e-e3a8030-537077b \" data-id=\"e3a8030\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"e3a8030\">\n    <div class=\"elementor-element elementor-element-8410d96 e-con e-atomic-element e-flexbox-base e-8410d96-1d2b2d8 \" data-id=\"8410d96\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8410d96\">\n    \t\t<div class=\"elementor-element elementor-element-6ec4707 elementor-widget elementor-widget-text-editor\" data-id=\"6ec4707\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca9426c elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"ca9426c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Dedicated Support<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-654d6fa e-con e-atomic-element e-flexbox-base e-654d6fa-d26bd32 \" data-id=\"654d6fa\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"654d6fa\">\n    \t\t<div class=\"elementor-element elementor-element-ddb3d2f elementor-widget elementor-widget-text-editor\" data-id=\"ddb3d2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4583a26 elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"4583a26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Traffic monitoring<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-577c086 e-con e-atomic-element e-flexbox-base e-577c086-63c8472 \" data-id=\"577c086\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"577c086\">\n    \t\t<div class=\"elementor-element elementor-element-bbaf933 elementor-widget elementor-widget-text-editor\" data-id=\"bbaf933\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e145b0f elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e145b0f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Global Coverage<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-5def1e7 e-con e-atomic-element e-div-block-base e-5def1e7-40e95b2 \" data-id=\"5def1e7\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"5def1e7\">\n    <div class=\"elementor-element elementor-element-74c7b24 e-con e-atomic-element e-flexbox-base e-74c7b24-51e28d5 e-74c7b24-51e28d5 \" data-id=\"74c7b24\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"74c7b24\">\n    \t\t<div class=\"elementor-element elementor-element-bd2958c elementor-widget elementor-widget-text-editor\" data-id=\"bd2958c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6ca7cd elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"d6ca7cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Detailed Reporting<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-0204a5e e-con e-atomic-element e-flexbox-base e-0204a5e-0a9e98e \" data-id=\"0204a5e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0204a5e\">\n    \t\t<div class=\"elementor-element elementor-element-73ddd58 elementor-widget elementor-widget-text-editor\" data-id=\"73ddd58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-be71c39 elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"be71c39\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Real-device testing<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-8f639e6 e-con e-atomic-element e-flexbox-base e-8f639e6-572a2a1 \" data-id=\"8f639e6\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8f639e6\">\n    \t\t<div class=\"elementor-element elementor-element-3bc980a elementor-widget elementor-widget-text-editor\" data-id=\"3bc980a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u25cf<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5ad39e elementor-widget-tablet__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"a5ad39e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Route validation<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-f7fdf8c e-flex e-con-boxed e-con e-parent\" data-id=\"f7fdf8c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f674064 e-con e-atomic-element e-div-block-base e-f674064-fc93341 \" data-id=\"f674064\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"f674064\">\n    <div class=\"elementor-element elementor-element-0ccbd36 e-con e-atomic-element e-div-block-base \" data-id=\"0ccbd36\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"0ccbd36\">\n    \t\t<div class=\"elementor-element elementor-element-6393bff elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6393bff\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Let's Build Better\nMessaging Togeth<\/h2>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-1322e9c elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-widget elementor-widget-html\" data-id=\"1322e9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"rp-cta-mini-manual\">\n  <canvas id=\"rpCtaMiniManual\"><\/canvas>\n<\/div>\n\n<style>\n.rp-cta-mini-manual {\n  position: relative;\n  width: 100%;\n  height: 360px;\n  pointer-events: none;\n  overflow: hidden;\n}\n\n#rpCtaMiniManual {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  display: block;\n}\n\n@media (max-width: 1024px) {\n  .rp-cta-mini-manual {\n    height: 320px;\n  }\n}\n\n@media (max-width: 767px) {\n  .rp-cta-mini-manual {\n    height: 250px;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  const canvas = document.getElementById(\"rpCtaMiniManual\");\n  if (!canvas || canvas.dataset.ready) return;\n\n  canvas.dataset.ready = \"true\";\n\n  const wrapper = canvas.parentElement;\n  const ctx = canvas.getContext(\"2d\");\n\n  let w = 0;\n  let h = 0;\n  let dpr = 1;\n\n  function resize() {\n    dpr = Math.min(window.devicePixelRatio || 1, 2);\n\n    w = Math.max(wrapper.clientWidth, 1);\n    h = Math.max(wrapper.clientHeight, 1);\n\n    canvas.width = Math.round(w * dpr);\n    canvas.height = Math.round(h * dpr);\n\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n  }\n\n  function orangeNode(x, y, pulse, scale = 1) {\n    ctx.beginPath();\n    ctx.arc(x, y, (25 + pulse * 2.2) * scale, 0, Math.PI * 2);\n    ctx.fillStyle = \"rgba(228,124,38,.055)\";\n    ctx.fill();\n\n    ctx.beginPath();\n    ctx.arc(x, y, (15 + pulse * 1.2) * scale, 0, Math.PI * 2);\n    ctx.fillStyle = \"rgba(228,124,38,.11)\";\n    ctx.fill();\n\n    ctx.beginPath();\n    ctx.arc(x, y, 7.5 * scale, 0, Math.PI * 2);\n    ctx.fillStyle = \"rgba(228,124,38,.16)\";\n    ctx.fill();\n\n    ctx.beginPath();\n    ctx.arc(x, y, (4.8 + pulse * .18) * scale, 0, Math.PI * 2);\n    ctx.fillStyle = \"#E47C26\";\n    ctx.shadowColor = \"rgba(228,124,38,.55)\";\n    ctx.shadowBlur = 16;\n    ctx.fill();\n    ctx.shadowBlur = 0;\n  }\n\n  function blueNode(x, y, scale = 1) {\n    ctx.beginPath();\n    ctx.arc(x, y, 2.8 * scale, 0, Math.PI * 2);\n    ctx.fillStyle = \"rgba(126,160,210,.58)\";\n    ctx.fill();\n  }\n\n  function line(a, b, orange) {\n    ctx.beginPath();\n    ctx.moveTo(a.x, a.y);\n    ctx.lineTo(b.x, b.y);\n\n    ctx.strokeStyle = orange\n      ? \"rgba(228,124,38,.18)\"\n      : \"rgba(70,120,210,.20)\";\n\n    ctx.lineWidth = orange ? 1 : .85;\n    ctx.stroke();\n  }\n\n  function animate() {\n    ctx.clearRect(0, 0, w, h);\n\n    const t = performance.now() \/ 1000;\n    const scale = Math.max(.65, Math.min(1, w \/ 520));\n\n    const O1 = { x: w * .28, y: h * .30 };\n    const O2 = { x: w * .72, y: h * .42 };\n    const O3 = { x: w * .50, y: h * .73 };\n\n    const B1 = { x: w * .07, y: h * .43 };\n    const B2 = { x: w * .93, y: h * .20 };\n    const B3 = { x: w * .14, y: h * .82 };\n    const B4 = { x: w * .88, y: h * .82 };\n    const B5 = { x: w * .52, y: h * .08 };\n\n    line(O1, B1, false);\n    line(O1, O2, true);\n    line(O2, B2, false);\n    line(O2, O3, true);\n    line(O3, B3, false);\n    line(O3, B4, false);\n    line(B5, O1, false);\n\n    orangeNode(O1.x, O1.y, Math.sin(t * 1.6), 1.25 * scale);\n    orangeNode(O2.x, O2.y, Math.sin(t * 1.6 + 1.2), .90 * scale);\n    orangeNode(O3.x, O3.y, Math.sin(t * 1.6 + 2.3), 1.08 * scale);\n\n    blueNode(B1.x, B1.y, scale);\n    blueNode(B2.x, B2.y, scale);\n    blueNode(B3.x, B3.y, scale);\n    blueNode(B4.x, B4.y, scale);\n    blueNode(B5.x, B5.y, scale);\n\n    requestAnimationFrame(animate);\n  }\n\n  window.addEventListener(\"resize\", resize);\n\n  if (\"ResizeObserver\" in window) {\n    new ResizeObserver(resize).observe(wrapper);\n  }\n\n  resize();\n  animate();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-d51646e e-con e-atomic-element e-div-block-base e-d51646e-d34cdd5 \" data-id=\"d51646e\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"d51646e\">\n    <div class=\"elementor-element elementor-element-4f46c53 e-con e-atomic-element e-div-block-base e-4f46c53-6f6b2b1 \" data-id=\"4f46c53\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"4f46c53\">\n    \t\t<div class=\"elementor-element elementor-element-53d3747 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"53d3747\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ready to validate routes, monitor traffic quality<br \/>and improve SMS delivery performance?<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-cdf4fc4 elementor-position-inline-start elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"cdf4fc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-envelope\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tinfo@routepulse.com\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>GLOBAL A2P SMS PLATFORM A2P SMS Testing &#038; Traffic Quality Monitoring RoutePulse helps businesses and telecoms validate routes, monitor OTP delivery and improve SMS performance across global mobile networks. Our Services \u2192 Contact Us 300+ TestersWorldwide 6M+ MonthlyCapacity 24\/7 QualityMonitoring 20+ CountriesCovered OUR SERVICES Testing &amp; Monitoring Built For Telecom RoutePulse delivers end-to-end SMS testing, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_angie_page":false,"_gspb_post_css":"","footnotes":""},"class_list":["post-1182","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","vertical_spacing_source":"custom","content_area_spacing":"none","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/pages\/1182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/route-pulse.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1182"}],"version-history":[{"count":862,"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/pages\/1182\/revisions"}],"predecessor-version":[{"id":2425,"href":"https:\/\/route-pulse.net\/index.php?rest_route=\/wp\/v2\/pages\/1182\/revisions\/2425"}],"wp:attachment":[{"href":"https:\/\/route-pulse.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}