Powered by AppSignal & Oban Pro

CPE Client Session (optional networked demo)

livebook/05_cpe_client_session.livemd

CPE Client Session (optional networked demo)

> This notebook starts a local HTTP listener (Bandit) and performs a one-shot TR-069 session.

Setup and start ACS + Finch

Mix.install([
  {:caretaker, path: "."}
])

require Logger

{:ok, sup} =
  Supervisor.start_link(
    [
      {Bandit, plug: Caretaker.ACS.Server, port: 4051},
      {Finch, name: Caretaker.Finch},
      {Caretaker.ACS.Session, []}
    ],
    strategy: :one_for_one
  )

Run one-shot session

{:ok, result} =
  Caretaker.CPE.Client.run_session(
    "http://localhost:4051/cwmp",
    device_id: %{
      manufacturer: "Acme",
      oui: "A1B2C3",
      product_class: "Router",
      serial_number: "XYZ123"
    },
    max_retries: 2,
    timeout: 3000
  )

Logger.info("Session result=#{inspect(result)}")
result

Teardown (optional)

Process.exit(sup, :normal)
:ok