CSTA API позволяет управлять вызовами на ECSS-10, устанавливать новые вызовы, принимать/отбивать активные вызовы, управлять базовыми сервисами (HOLD/HOLE, CTR, 3WAY, CONF).
Команды для настройки API (параметры подключения) приведены в разделе /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> |