ICS telephony call flow guide

Conditions of use

This document provides some examples of telephony call flows on Open Touch. These examples are provided for convenience and informational purposes only. They may subject to change without any notice

Examples

Simple call
Simple call and blind transfer
Simple call deflected to another user
Simple call to multi devices
Simple call to multi devices then deflect the call to another user
Consultation call
Simple call then do hold and retrieve
Simple call then alternate
Consultation call with secret identity
Simple call with secret identity
Simple call to a busy user
Simple call and add participant
Device goes out of service
BACK
BACK

Call flow for Simple call

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002
OnCallCreated 
OnUserStateModified 
OnCallModified (/L*) 
 OnCallCreated
OnCallModified (/L*) 
 OnCallModified (/L*)
 OnUserStateModified
OnCallModified (/L*/P-) 
 OnCallRemoved
 OnUserStateModified
OnCallRemoved 
OnUserStateModified 
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
 
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
 

Call flow for Simple call and blind transfer

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/L*)  
 OnCallModified (/L*) 
 OnUserStateModified 
OnCallModified (/L*/P+-)  
 OnCallRemoved 
 OnUserStateModified 
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
 
The user icm1001 is notified that participant 1002 is replaced by user icm1003 on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "TRANSFERRED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "cause": "TRANSFERRED",
  "newDestination": "1003",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
 
The user icm1003 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G1",
  "cause": "TRANSFERRED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1003 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G1 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Simple call deflected to another user

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/P+-)  
 OnCallRemoved 
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that participant 1002 is replaced by user icm1003 on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "newDestination": "1003",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1003 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1003 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G1 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Simple call to multi devices

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002, MyTeamwork_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
 OnCallModified (/L+) 
 OnCallModified (/L-) 
OnCallModified (/P+-)  
 OnCallRemoved 
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device MyTeamwork_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "MyTeamwork_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 rings for the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 is removed from the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO"
    }
  ],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that participant 1002 is replaced by user icm1003 on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "newDestination": "1003",
  "deviceCapabilities": [
    {
      "deviceId": "MyTeamwork_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1003 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G1",
  "cause": "REDIRECTED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1003 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G1 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Simple call to multi devices then deflect the call to another user

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002, OTC_PC_1002, MyTeamwork_1002

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002
OnCallCreated 
OnUserStateModified 
OnCallModified (/L*) 
 OnCallCreated
 OnCallModified (/L+)
 OnCallModified (/L+)
OnCallModified (/L*) 
 OnCallModified (/L*)
 OnUserStateModified
 OnCallModified (/L-)
 OnCallModified (/L-)
OnCallModified (/L*/P-) 
 OnCallRemoved
 OnUserStateModified
OnCallRemoved 
OnUserStateModified 
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1002 is notified that device MyTeamwork_1002 rings for the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [
    {
      "deviceId": "MyTeamwork_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is notified that device OTC_PC_1002 rings for the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [
    {
      "deviceId": "OTC_PC_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device OTC_PC_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "OTC_PC_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
The user icm1002 is notified that device ICTouch_1002 is removed from the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO"
    }
  ],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is notified that device MyTeamwork_1002 is removed from the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [
    {
      "deviceId": "MyTeamwork_1002",
      "media": "AUDIO"
    }
  ],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "OTC_PC_1002",
      "makeCall":true
    }
  ]
}
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
 
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
 

Call flow for Consultation call

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/L*)  
 OnCallModified (/L*) 
 OnUserStateModified 
OnCallModified (/L*)  
 OnCallModified (/L*) 
OnCallCreated  
OnCallModified (/L*)  
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*/P-)  
 OnCallRemoved 
 OnUserStateModified 
OnCallRemoved  
OnCallModified  
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is HELD on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
        "retrieve":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is HELD on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1001 does an outgoing call G2 to user icm1003 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true,
        "reconnect":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified of a new incoming call G2 from user icm1001 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "transfer":true,
      "blindTransfer":true,
      "merge":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G2  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
 
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": []
}
  
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1001 is notified that participant with identifier 1003 is removed from the call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G2 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G2 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Simple call then do hold and retrieve

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002
OnCallCreated 
OnUserStateModified 
OnCallModified (/L*) 
 OnCallCreated
OnCallModified (/L*) 
 OnCallModified (/L*)
 OnUserStateModified
OnCallModified (/L*) 
 OnCallModified (/L*)
OnCallModified (/L*) 
 OnCallModified (/L*)
OnCallModified (/L*/P-) 
 OnCallRemoved
 OnUserStateModified
OnCallRemoved 
OnUserStateModified 
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
The user icm1001 is notified that device ICTouch_1001 state is HELD on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 state is HELD on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
        "retrieve":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
 
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
 

Call flow for Simple call then alternate

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/L*)  
 OnCallModified (/L*) 
 OnUserStateModified 
OnCallModified (/L*)  
 OnCallModified (/L*) 
OnCallCreated  
OnCallModified (/L*)  
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*)  
  OnCallModified (/L*)
OnCallModified (/L*)  
 OnCallModified (/L*) 
OnCallModified (/L*/P-)  
 OnCallRemoved 
 OnUserStateModified 
OnCallRemoved  
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is HELD on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
        "retrieve":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is HELD on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1001 does an outgoing call G2 to user icm1003 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true,
        "reconnect":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified of a new incoming call G2 from user icm1001 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "transfer":true,
      "blindTransfer":true,
      "merge":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G2  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that device ICTouch_1001 state is HELD on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
        "retrieve":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is HELD on call G2  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "transfer":true,
      "blindTransfer":true,
      "merge":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
 
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": []
}
  
The user icm1001 is notified that participant with identifier 1003 is removed from the call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G2 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G2 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Consultation call with secret identity

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/L*)  
 OnCallModified (/L*) 
 OnUserStateModified 
OnCallModified (/L*)  
 OnCallModified (/L*) 
OnCallCreated  
OnCallModified (/L*)  
  OnCallCreated
OnCallModified (/L*)  
  OnCallModified (/L*)
  OnUserStateModified
OnCallModified (/L*/P-)  
 OnCallRemoved 
 OnUserStateModified 
OnCallRemoved  
OnCallModified  
OnCallModified (/L*/P-)  
  OnCallRemoved
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is HELD on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
        "retrieve":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is HELD on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "HELD",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1001 does an anonymous outgoing call G2 to user icm1003 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "DIALING",
    "tags": [
      {
        "name": "anonymous",
        "value": "true",
        "visibilities": []
      }
    ],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true,
        "reconnect":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified of a new incoming call G2 from user icm1001 (anonymous) on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "anonymous":true,
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "transfer":true,
      "blindTransfer":true,
      "merge":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G2  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "HELD",
      "capabilities": {
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
 
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": []
}
  
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1001 is notified that participant with identifier 1003 is removed from the call G2
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G2",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C2",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1003"
  ],
  "deviceCapabilities": []
}
  
The user icm1003 is notified that call G2 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}
The user icm1001 is notified that call G2 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G2",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  

Call flow for Simple call with secret identity

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002
OnCallCreated 
OnUserStateModified 
OnCallModified (/L*) 
 OnCallCreated
OnCallModified (/L*) 
 OnCallModified (/L*)
 OnUserStateModified
OnCallModified (/L*/P-) 
 OnCallRemoved
 OnUserStateModified
OnCallRemoved 
OnUserStateModified 
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002
The user icm1001 does an anonymous outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [
      {
        "name": "anonymous",
        "value": "true",
        "visibilities": []
      }
    ],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
 
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified of a new incoming call G1 from user icm1001 (anonymous) on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "anonymous":true,
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
 
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
 
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
 

Call flow for Simple call to a busy user

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001
OnCallCreated
OnUserStateModified
OnCallModified (/P-)
OnCallRemoved
OnUserStateModified
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
The user icm1001 is notified that participant with identifier 1002 is removed from the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "BUSY",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "BUSY",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}

Call flow for Simple call and add participant

Configuration

User loginUser numberDevices
icm10011001ICTouch_1001
icm10021002ICTouch_1002
icm10031003ICTouch_1003

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001icm1002icm1003
OnCallCreated  
OnUserStateModified  
OnCallModified (/L*)  
 OnCallCreated 
OnCallModified (/L*)  
 OnCallModified (/L*) 
 OnUserStateModified 
OnCallModified (/P+)  
 OnCallModified (/P+) 
  OnCallCreated
OnCallModified (/P*)  
 OnCallModified (/P*) 
  OnCallModified (/L*)
  OnUserStateModified
OnCallRemoved  
OnUserStateModified  
 OnCallModified (/P-) 
  OnCallModified (/P-)
 OnCallRemoved 
 OnUserStateModified 
  OnCallModified (/L*/P-)
  OnCallRemoved
  OnUserStateModified
Note : L=Leg, P=Participant, +=Added, -=Removed, *=Modified

ICS Telephony events

icm1001icm1002icm1003
The user icm1001 does an outgoing call G1 to user icm1002 from device ICTouch_1001
{
  "eventName": "OnCallCreated",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "DIALING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "DIALING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
  
The user icm1001 is BUSY
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "BUSY"
}
  
The user icm1001 is notified that device ICTouch_1001 state is RINGING_OUTGOING on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_OUTGOING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "overflowToVoiceMail":true,
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "RINGING_OUTGOING",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified of a new incoming call G1 from user icm1001 on device ICTouch_1002 
{
  "eventName": "OnCallCreated",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "legs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
 
The user icm1001 is notified that device ICTouch_1001 state is ACTIVE on call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1001",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that device ICTouch_1002 state is ACTIVE on call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1002",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1002 is BUSY 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "BUSY"
}
 
The user icm1001 is notified that user icm1003 is added to the call G1
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "dropMe":true,
      "terminate":true,
      "startRecord":true,
      "dropParticipant":true,
      "holdParticipant":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "state": "RINGING_INCOMING",
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
The user icm1002 is notified that user icm1003 is added to the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "dropMe":true,
      "terminate":true,
      "startRecord":true,
      "dropParticipant":true,
      "holdParticipant":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "state": "RINGING_INCOMING",
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1003 is notified of a new incoming call G1 on device ICTouch_1003  
{
  "eventName": "OnCallCreated",
  "loginName": "icm1003",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "RINGING_INCOMING",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "redirect":true,
      "pickedUp":true,
      "redirectToVoiceMail":true,
      "redirectToDVA":true,
      "reject":true
    }
  },
  "initiator": "1001",
  "legs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "RINGING_INCOMING",
      "capabilities": {
        "answer":true
      }
    }
  ],
  "participants": [
    {
      "participantId": "1001",
      "identity": {
        "id": {
          "loginName": "icm1001",
          "phoneNumber": "1001",
          "instantMessagingId": "icm1001@example.com"
        },
        "firstName": "FN-1001",
        "lastName": "LN-1001",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    },
    {
      "participantId": "1002",
      "identity": {
        "id": {
          "loginName": "icm1002",
          "phoneNumber": "1002",
          "instantMessagingId": "icm1002@example.com"
        },
        "firstName": "FN-1002",
        "lastName": "LN-1002",
        "type": {
          "main": "USER"
        }
      },
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "deviceCapabilities": []
}
{
  "eventName": "OnCallModified",
  "loginName": "icm1001",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "state": "ACTIVE",
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
  
 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [
    {
      "participantId": "1003",
      "identity": {
        "id": {
          "loginName": "icm1003",
          "phoneNumber": "1003",
          "instantMessagingId": "icm1003@example.com"
        },
        "firstName": "FN-1003",
        "lastName": "LN-1003",
        "type": {
          "main": "USER"
        }
      },
      "state": "ACTIVE",
      "medias": [],
      "mediaCapabilities": [
        {
          "type": "AUDIO"
        }
      ]
    }
  ],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
 
The user icm1003 is notified that device ICTouch_1003 state is ACTIVE on call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "cause": "CONFERENCED",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "dropMe":true,
      "terminate":true,
      "startRecord":true,
      "dropParticipant":true,
      "holdParticipant":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true,
        "hold":true,
        "switchDevice":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [],
  "deviceCapabilities": []
}
The user icm1003 is BUSY  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "BUSY"
}
The user icm1001 is notified that call G1 is removed
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1001",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1001",
      "makeCall":true
    }
  ]
}
  
The user icm1001 is FREE
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1001",
  "state": "FREE"
}
  
The user icm1002 is notified that participant with identifier 1001 is removed from the call G1 
{
  "eventName": "OnCallModified",
  "loginName": "icm1002",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1002"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1001"
  ],
  "deviceCapabilities": []
}
 
The user icm1003 is notified that participant with identifier 1001 is removed from the call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "addDevice":true,
      "addParticipant":true,
      "intruded":true,
      "blindTransfer":true,
      "terminate":true,
      "startRecord":true
    }
  },
  "modifiedLegs": [],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1001"
  ],
  "deviceCapabilities": []
}
The user icm1002 is notified that call G1 is removed 
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1002",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1002",
      "makeCall":true
    }
  ]
}
 
The user icm1002 is FREE 
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1002",
  "state": "FREE"
}
 
The user icm1003 is notified that participant with identifier 1002 is removed from the call G1  
{
  "eventName": "OnCallModified",
  "loginName": "icm1003",
  "callRef": "G1",
  "callData": {
    "initialCalled": {
      "id": {
        "phoneNumber": "1003"
      }
    },
    "callUUID": "C1",
    "state": "ACTIVE",
    "tags": [],
    "capabilities": {
      "addMedias": [],
      "terminate":true
    }
  },
  "modifiedLegs": [
    {
      "deviceId": "ICTouch_1003",
      "media": "AUDIO",
      "state": "ACTIVE",
      "capabilities": {
        "drop":true
      }
    }
  ],
  "addedLegs": [],
  "removedLegs": [],
  "modifiedParticipants": [],
  "addedParticipants": [],
  "removedParticipantIds": [
    "1002"
  ],
  "deviceCapabilities": []
}
The user icm1003 is notified that call G1 is removed  
{
  "eventName": "OnCallRemoved",
  "loginName": "icm1003",
  "callRef": "G1",
  "deviceCapabilities": [
    {
      "deviceId": "ICTouch_1003",
      "makeCall":true
    }
  ]
}
The user icm1003 is FREE  
{
  "eventName": "OnUserStateModified",
  "loginName": "icm1003",
  "state": "FREE"
}

Call flow for Device goes out of service

Configuration

User loginUser numberDevices

Description

The telephony sequence is :

Summary of ICS Telephony events

icm1001
OnDeviceStateModified

ICS Telephony events

icm1001
The user icm1001 is notified that device ICTouch_1001 is in the state OUT_OF_SERVICE
{
  "eventName": "OnDeviceStateModified",
  "loginName": "icm1001",
  "deviceStates": [
    {
      "deviceId": "ICTouch_1001",
      "state": "OUT_OF_SERVICE",
      "mutable":false,
      "muted":false
    }
  ]
}