The EpSignal protocol is available on AppWebsocket connections to innovaphone PBX objects, if the object is enabled for the EpSignal api. It allows an application to insert itself into the signaling path of this device. All signaling messages to or from the device are then sent on this protocol. Signaling messages may be sent to the device or to the PBX.

This way the application may monitor any signaling done by the device, by forwarding the messages in both directions, or it may start signaling to the device or to the PBX on behalf of the device.

General structure

    "api": "EpSignal",
    "src": string,
    "mt": string,

To address this interface the value "EpSignal" has tp be used for the api property
The AppWebsocket src mechanism is supported on the interface. So a src property may be used
The message type identifies the requested operation
Messages to the PBX Messages from the PBX
Objects - recurring definitions


    "api": "Api",
    "mt": "Attach",
    "hw": HardwareId

With this message the application attaches itself to a device addressed by hw

Hardware Id used to address the device. This is the name also used for the VOIP registration of a device. Typically the MAC address of the device.


    "api": "EpSignal",
    "mt": "AttachResult",
    "err": Error,
    "stun": string,
    "turn": string,
    "turnUsr": string,
    "turnPwd": string,

Result of the Attach operation

If this property is present the Attach operation failed.
A list of STUN servers as IP addresses or host names, seperated by semicolon
A list of TURN servers as IP addresses or host names, seperated by semicolon
The user name to be used with TURN
The password to be used with TURN
Prefix to be used to dial an international number from this node, including any trunk prefix
Prefix to be used to dial a national number from this node, including any trunk prefix
Prefix to be used to dial a subscriber number from this node, including any trunk prefix
Area code to be assumed for the user
Country code to be assumed for the user


    "api": "EpSignal",
    "mt": "Attached",

Indicates that the interface attached itself to a device. This may be delayed if no device was registered to the PBX at the time of the Attach. As soon as a device registers the interface attaches to it.


    "api": "EpSignal",
    "mt": "Detached",

Indicates that the interface detached itself from a device. This happens when the device unregisters from the PBX.


    "api": "EpSignal",
    "mt": "Sync",
    "call": CallId,
    "info": Info

Information about an existing call at at the time of the attach.

The call Id, which may be used for signaling messages related to this call.
More information about the call.


    "api": "EpSignal",
    "mt": "Signaling",
    "to": Direction,
    "call": CallId,
    "sig": Signal

This message is used to transfer Signaling messages coded according to the innovaphone Json signaling protocol.

Boolean property, which if present and true indicates that the message is in the direction to the endpoint. For messages received by the application this means the message is from the PBX. For messages sent by the application the message is sent toward the device.
Integer which identifies the call. To avoid conflicts a negativ number should be chosen for any call originating from the application. For messages received by the application the number received can be used when forwarding the message.
The signaling message as innovaphone Signaling object.



For the signaling messages the standard innovaphone Json Signaling objects are used


More information about the call

    "channel": Channel,
    "in": Direction,
    "state": CallState,
    "remote": Remote
Integer indicating the channel number. If this is a call without media, channel is 0. For VOIP endpoints a channel with media is always signaled with a channel of -1.
Boolean value indicating the direction of the call as seen from the device. A value of true means an incoming call, this means a call to the device.
A string indicating the state of the call. The following values are used:
nullIdle call, should not happen
setupA call was initiated
setup-ackA call was initiated, but more dialing information may be needed
call-procDialing information is complete
alertThe called party alerted
connectedThe call is connected
disconnectedThe remote party disconnected the call
disconnectingThe local device disconnected the call
parkedThe call was parked
The remote party of the call

Information about the remote party of a call

    "num": Number,
    "sip": SipUri,
    "dn": DisplayName,
The Number as dialed to the remote party, or received as calling party
SIP URI of the remote party. May be only the user part if on local domain
Display name of the remote party, as received with a Name Identification facility