CSTA API позволяет управлять вызовами на ECSS-10, устанавливать новые вызовы, принимать/отбивать активные вызовы, управлять базовыми сервисами (HOLD/HOLE, CTR, 3WAY, CONF).
Команды для настройки API (параметры подключения) приведены в разделе Команды настройки API CSTA.
Протокол CSTA на уровне ECSS-10 работает поверх TCP, как описано в ECMA 323 Annex J.2 (TCP without SOAP). Формат пакета запроса/ответа следующий:
| 0 1 | 2 3 | 4 5 6 7 | 8 . . . | | 0 0 | Length | Invoke ID | XML message body |
Invoke ID :: string(), "0000" - "9999". Invoke ID = 9999 используется в случае посылки событий от ECSS-10 на клиента.
Поддерживаемые методы/события
Start application session request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <StartApplicationSession xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session" xmlns:ns1="http://www.eltex.org/csta"> <applicationInfo> <applicationID>Eltex ECSS-10 CSTA adapter</applicationID> <applicationSpecificInfo> <ns1:SessionLoginInfo xmlns:ns1="http://www.eltex.org/csta"> <ns1:userName>p.city</ns1:userName> <ns1:password>1234</ns1:password> </ns1:SessionLoginInfo> </applicationSpecificInfo> </applicationInfo> <requestedProtocolVersions> <protocolVersion>http://www.ecma-international.org/standards/ecma-323/csta/ed3</protocolVersion> </requestedProtocolVersions> <requestedSessionDuration>300</requestedSessionDuration> </StartApplicationSession>
Start application session positive response XML:
<?xml version="1.0"?> <StartApplicationSessionPosResponse xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-354/appl_session start-application-session.xsd"> <sessionID>f76e5fe9c5e0d444</sessionID> <actualProtocolVersion>http://www.ecma-international.org/standards/ecma-323/csta/ed3</actualProtocolVersion> <actualSessionDuration>300</actualSessionDuration> </StartApplicationSessionPosResponse>
Prolonge application session request XML:
<?xml version="1.0"?> <ResetApplicationSessionTimer xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-354/appl_session reset-application-session-timer.xsd"> <sessionID>f76e5fe9c5e0d444</sessionID> <requestedSessionDuration>500</requestedSessionDuration> </ResetApplicationSessionTimer>
Prolonge application session positive response XML:
<?xml version="1.0"?> <ResetApplicationSessionTimerPosResponse xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-354/appl_session reset-application-session-timer.xsd"> <actualSessionDuration>500</actualSessionDuration> </ResetApplicationSessionTimerPosResponse>
Stop application session request XML:
<StopApplicationSession xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session"> <sessionID>f76e5fe9c5e0d444</sessionID> <sessionEndReason> <definedEndReason>normal</definedEndReason> </sessionEndReason> </StopApplicationSession>
Stop application session positive request XML:
<?xml version="1.0"?> <StopApplicationSessionPosResponse xmlns="http://www.ecma-international.org/standards/ecma-354/appl_session" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-354/appl_session stop-application-session.xsd"/>
Subscribe on events from device with number 725 request XML:
<MonitorStart xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <monitorObject> <deviceObject typeOfNumber="dialingNumber">725</deviceObject> </monitorObject> <requestedMonitorFilter> <callcontrol> <bridged>true</bridged> <callCleared>false</callCleared> <conferenced>false</conferenced> <connectionCleared>false</connectionCleared> <delivered>false</delivered> <digitsDialed>true</digitsDialed> <diverted>true</diverted> <established>false</established> <failed>true</failed> <held>true</held> <networkCapabilitiesChanged>true</networkCapabilitiesChanged> <networkReached>true</networkReached> <offered>true</offered> <originated>false</originated> <queued>true</queued> <retrieved>true</retrieved> <serviceInitiated>false</serviceInitiated> <transferred>false</transferred> </callcontrol> </requestedMonitorFilter> </MonitorStart>
Subscribe on events from device with number 725 response XML:
<?xml version="1.0"?> <MonitorStartResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 monitor-start.xsd"> <monitorCrossRefID>DMON:f76e605590f2bc03</monitorCrossRefID> </MonitorStartResponse>
ServiceInitiatedEvent - out call from monitored number:
<?xml version="1.0"?> <ServiceInitiatedEvent xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 service-initiated-event.xsd"> <monitorCrossRefID>DMON:f76e9c86851a2adc</monitorCrossRefID> <initiatedConnection> <deviceID typeOfNumber="dialingNumber">725:::MV80MTQ4Nzg5MjgwQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk3ODIyMzA2MDQ1MDMxMDIw#MzE3MDY1Nzk5NA==</deviceID> <callID>f76e9d66720eb32d</callID> </initiatedConnection> <initiatingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">725:::MV80MTQ4Nzg5MjgwQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk3ODIyMzA2MDQ1MDMxMDIw#MzE3MDY1Nzk5NA==</deviceIdentifier> </initiatingDevice> <calledDevice> <notKnown/> </calledDevice> <cause>newCall</cause> </ServiceInitiatedEvent>
DeliveredEvent
<?xml version="1.0"?> <DeliveredEvent xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 delivered-event.xsd"> <monitorCrossRefID>DMON:f76e9c7a2075e497</monitorCrossRefID> <connection> <deviceID typeOfNumber="dialingNumber">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceID> <callID>f76e9d66720eb32d</callID> </connection> <alertingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceIdentifier> </alertingDevice> <callingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">725:::MV80MTQ4Nzg5MjgwQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk3ODIyMzA2MDQ1MDMxMDIw#MzE3MDY1Nzk5NA==</deviceIdentifier> </callingDevice> <calledDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceIdentifier> </calledDevice> <lastRedirectionDevice> <notKnown/> </lastRedirectionDevice> <cause>newCall</cause> </DeliveredEvent>
EstablishedEvent
<?xml version="1.0"?> <EstablishedEvent xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 established-event.xsd"> <monitorCrossRefID>DMON:f76e9c7a2075e497</monitorCrossRefID> <establishedConnection> <deviceID typeOfNumber="dialingNumber">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceID> <callID>f76e9d66720eb32d</callID> </establishedConnection> <answeringDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceIdentifier> </answeringDevice> <callingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceIdentifier> </callingDevice> <calledDevice> <notKnown/> </calledDevice> <lastRedirectionDevice> <notKnown/> </lastRedirectionDevice> <cause>normal</cause> </EstablishedEvent>
OriginatedEvent
<?xml version="1.0"?> <OriginatedEvent xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 originated-event.xsd"> <monitorCrossRefID>DMON:f76e9c86851a2adc</monitorCrossRefID> <originatedConnection> <deviceID typeOfNumber="dialingNumber">725:::MV80MTQ4Nzg5MjgwQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk3ODIyMzA2MDQ1MDMxMDIw#MzE3MDY1Nzk5NA==</deviceID> <callID>f76e9d66720eb32d</callID> </originatedConnection> <callingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">725:::MV80MTQ4Nzg5MjgwQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk3ODIyMzA2MDQ1MDMxMDIw#MzE3MDY1Nzk5NA==</deviceIdentifier> </callingDevice> <calledDevice> <notKnown/> </calledDevice> <localConnectionInfo>connected</localConnectionInfo> <cause>normal</cause> </OriginatedEvent>
ConnectionClearedEvent
<?xml version="1.0"?> <ConnectionClearedEvent xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 connection-cleared-event.xsd"> <monitorCrossRefID>DMON:f76e9c7a2075e497</monitorCrossRefID> <droppedConnection> <deviceID typeOfNumber="dialingNumber">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceID> <callID>f76e9d66720eb32d</callID> </droppedConnection> <releasingDevice> <deviceIdentifier typeOfNumber="dialingNumber" mediaClass="notKnown" bitRate="constant">722:::QkE6Zjc2ZTlkNjY3MjBlYjMyZDpmNzZlOWQ3MDE2MWNmM2Q3#ZWNzc08xNTEwNzk3ODIyNDgyMTE2MDExODI3MTE=#MUZtNVFIVWVwVXI1Yw==</deviceIdentifier> </releasingDevice> <cause>normalClearing</cause> <extensions> <privateData> <string>release_initiator=system;</string> </privateData> </extensions> </ConnectionClearedEvent>
Make out call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MakeCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <callingDevice typeOfNumber="dialingNumber">725</callingDevice> <calledDirectoryNumber typeOfNumber="dialingNumber">722</calledDirectoryNumber> </MakeCall>
Make out call response XML:
<?xml version="1.0"?> <MakeCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 make-call.xsd"> <callingDevice> <deviceID typeOfNumber="dialingNumber">725:::QkE6Zjc2ZjI1NDBlYmU5MGY0NjpmNzZmMjU0MjUwYTAzODll#ZWNzc08xNTEwNzk4NDA1ODI3ODI4MDE2MTE2MTE=#MTEyMzg5MDIxMQ==</deviceID> <callID>f76f2540ebe90f46</callID> </callingDevice> </MakeCallResponse>
Hold call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <HoldCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <callToBeHeld> <deviceID typeOfNumber="dialingNumber">725:::QkE6Zjc2ZjI1NDBlYmU5MGY0NjpmNzZmMjU0MjUwYTAzODll#ZWNzc08xNTEwNzk4NDA1ODI3ODI4MDE2MTE2MTE=#MTEyMzg5MDIxMQ==</deviceID> <callID>f76f2540ebe90f46</callID> </callToBeHeld> <connectionReservation>false</connectionReservation> </HoldCall>
Hold call response XML:
<?xml version="1.0"?> <HoldCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 hold-call.xsd"/>
UnHold call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RetrieveCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <callToBeRetrieved> <deviceID typeOfNumber="dialingNumber">725:::QkE6Zjc2ZjI1NDBlYmU5MGY0NjpmNzZmMjU0MjUwYTAzODll#ZWNzc08xNTEwNzk4NDA1ODI3ODI4MDE2MTE2MTE=#MTEyMzg5MDIxMQ==</deviceID> <callID>f76f2540ebe90f46</callID> </callToBeRetrieved> </RetrieveCall>>
UnHold call response XML:
<?xml version="1.0"?> <RetrieveCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 retrieve-call.xsd"/>
Clear connection request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ClearConnection xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <connectionToBeCleared> <deviceID typeOfNumber="dialingNumber">722:::QkE6Zjc2ZjUzZDlhODk3NzIyODpmNzZmNTNlM2QzMjVmNGJh#ZWNzc08xNTEwNzk4NjA2MTEwMDUzMDE3NTg2MTE=#MzVhdnllOXJ5MTgzZQ==</deviceID> <callID>f76f53d9a8977228</callID> </connectionToBeCleared> </ClearConnection>
Clear connection response XML:
<?xml version="1.0"?> <ClearConnectionResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 clear-connection.xsd"/>
Clear call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ClearCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <callToBeCleared> <deviceID typeOfNumber="dialingNumber">722:::QkE6Zjc2ZjY1OWYzZWMxOGY1NTpmNzZmNjVhOTc2MDhiZjU1#ZWNzc08xNTEwNzk4NjgyNDM5NTg0MDE4MTY0MTE=#akQ2RlM0NURLN3B2Yw==</deviceID> <callID>f76f659f3ec18f55</callID> </callToBeCleared> </ClearCall>
Clear call response XML:
<?xml version="1.0"?> <ClearCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 clear-call.xsd"/>
Get calls on device requst XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SnapshotDevice xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <snapshotObject typeOfNumber="dialingNumber">725</snapshotObject> </SnapshotDevice>
Get calls on device response XML:
<?xml version="1.0"?> <SnapshotDeviceResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 snapshot-device.xsd"> <crossRefIDorSnapshotData> <snapshotData> <snapshotDeviceResponseInfo> <connectionIdentifier> <deviceID typeOfNumber="dialingNumber">725:::MV8xNDY1Mzg4MjgyQDEwLjEwMC4xMDEuMjY=#ZWNzc0kxNTEwNzk4NzkyMTAwODI5MDMxMDMw#NDAzODU3NTA5OQ==</deviceID> <callID>f76f7f32a8b2112e</callID> </connectionIdentifier> <localCallState> <compoundCallState> <localConnectionState>alerting</localConnectionState> <localConnectionState>alerting</localConnectionState> </compoundCallState> </localCallState> </snapshotDeviceResponseInfo> </snapshotData> </crossRefIDorSnapshotData> </SnapshotDeviceResponse>
Answer call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AnswerCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <callToBeAnswered> <deviceID typeOfNumber="dialingNumber">725:::QkE6Zjc2Zjk4MDM4NjBjMjZkZjpmNzZmOTgwZTZmMzk4ZDgz#ZWNzc08xNTEwNzk4ODk4ODgzOTA1MDE5NzQ5MTE=#MzEzMjc2MjM0NA==</deviceID> <callID>f76f9803860c26df</callID> </callToBeAnswered> </AnswerCall>
Answer call response XML:
<?xml version="1.0"?><AnswerCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 answer-call.xsd"/>
Transfer call request XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SingleStepTransferCall xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"> <activeCall> <deviceID typeOfNumber="dialingNumber">725:::QkE6Zjc2ZmI2ZDRhNjViNzE0NzpmNzZmYjZkNjZmNjY2YTRi#ZWNzc08xNTEwNzk5MDMxMDgyOTg4MDIwNzYzMTE=#MzUyODQwMTIyNg==</deviceID> <callID>f76fb6d4a65b7147</callID> </activeCall> <transferredTo typeOfNumber="dialingNumber">723</transferredTo> </SingleStepTransferCall>
Transfer call response XML:
<?xml version="1.0"?> <SingleStepTransferCallResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ecma-international.org/standards/ecma-323/csta/ed3 single-step-transfer.xsd"> <transferredCall> <deviceID typeOfNumber="dialingNumber">723:::QkE6Zjc2ZmI2ZDRhNjViNzE0NzpmNzZmYjc4ODI4MGU1MmY2#ZWNzc08xNTEwNzk5MDM0MDY4MDEyMDIwNzk4MTE=#S3JIVWMzY0tRYVpVRA==</deviceID> <callID>f76fb6d4a65b7147</callID> </transferredCall> </SingleStepTransferCallResponse>