Omnix

External Integration: SIP Telephony & Call Control

Omnix allows you to manage extensions, fetch SIP client registration credentials, and orchestrate outbound calls using the external Gateway API. This guide walks through provisioning softphones, triggering outbound dial flows, and listening to call state events.


1. Softphone Setup (SIP Credentials)

To connect an external SIP hardware device or a software dialer (e.g., Zoiper, MicroSIP) to the Omnix voice cluster, you need the extension details and active registration credentials.

Step 1: Query User Extensions

First, find out which extension is assigned to the target user or agent:

{
  "method": "OmnixGatewayRpc.getUserExtensions",
  "params": {
    "subscriptionId": "sub_123456",
    "userId": "usr_998877"
  }
}

Response:

{
  "result": {
    "extensions": [
      {
        "extensionId": "ext_554433",
        "extensionNumber": "1004",
        "status": "active"
      }
    ]
  }
}

Step 2: Fetch Registration Credentials

Query the registration credentials for this extension:

{
  "method": "OmnixGatewayRpc.getSipCredentials",
  "params": {
    "subscriptionId": "sub_123456",
    "extensionId": "ext_554433"
  }
}

Response:

{
  "result": {
    "username": "sip_usr_1004",
    "password": "secure_sip_password_abcxyz",
    "domain": "sip.your-omnix-instance.com:5060",
    "protocol": "wss"
  }
}
  • Configure these credentials into your SIP client to enable your agents to send and receive calls directly.

2. Triggering Outbound Calls (Click-to-Dial)

To initiate an outbound call programmatically from your CRM or external dashboard, trigger the dial flow.

{
  "method": "OmnixGatewayRpc.initiateOutboundCall",
  "params": {
    "subscriptionId": "sub_123456",
    "agentExtension": "1004",
    "destinationNumber": "+15559876543"
  }
}

Response:

{
  "result": {
    "callId": "call_88776655",
    "status": "ringing_agent"
  }
}

How the Outbound Dial Flow works:

  1. Omnix first calls the agent's SIP client (agentExtension: 1004).
  2. When the agent answers, the system initiates the dial to the destinationNumber.
  3. The calls are bridged together, and recording starts (if configured).

3. Controlling a Call in Progress

Use sendCallCommand to mute, hold, transfer, or terminate active phone calls.

{
  "method": "OmnixGatewayRpc.sendCallCommand",
  "params": {
    "subscriptionId": "sub_123456",
    "callId": "call_88776655",
    "command": "hold" 
  }
}

Supported Commands:

  • hold / unhold
  • mute / unmute
  • hangup
  • transfer (requires targetExtension parameter)