The Daily transport implementation enables real-time audio and video communication in your Pipecat iOS applications using Daily’s WebRTC infrastructure.

Installation

Add the Daily transport package to your project:
.package(url: "https://github.com/pipecat-ai/pipecat-client-ios-daily.git", from: "1.0.0")

// Add to your target dependencies
.target(name: "YourApp", dependencies: [
    .product(name: "PipecatClientIOSDaily", package: "pipecat-client-ios-daily")
])

Usage

Create a client using the Daily transport:
import PipecatClientIOS
import PipecatClientIOSDaily

let pipecatClientOptions = PipecatClientOptions.init(
    transport: DailyTransport.init(),
    enableMic: currentSettings.enableMic,
    enableCam: false,
)
self.pipecatClientIOS = PipecatClient.init(
    options: pipecatClientOptions
)
let startBotParams = APIRequest.init(endpoint: URL(string: $PIPECAT_API_URL + "/connect")!)
self.pipecatClientIOS?.startBotAndConnect(startBotParams: startBotParams) { (result: Result<DailyTransportConnectionParams, AsyncExecutionError>) in
    switch result {
    case .failure(let error):
        // handle error
    case .success(_):
        // handle success
    }
}

Configuration

Your server endpoint should return Daily-specific configuration:
// Example server response
{
    "url": "https://your-domain.daily.co/room-name",
    "token": "your-daily-token"
}

API Reference

Daily Transport Reference

Complete API documentation for the Daily transport implementation