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 на клиента.

Поддерживаемые методы/события

  1. 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>
    XML
  2. 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>
    XML
  3. 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>
    XML
  4. 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>
    XML
  5. 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>
    XML
  6. 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"/>
    XML
  7. 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>
    XML
  8. 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>
    XML
  9. 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>
    XML
  10. 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>
    XML
  11. 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>
    XML
  12. 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>
    XML
  13. 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>
    XML
  14. 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>
    XML
  15. 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>
    XML
  16. 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>
    XML
  17. 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"/>
    XML
  18. 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>>
    XML
  19. 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"/>
    XML
  20. 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>
    XML
  21. 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"/>
    XML
  22. 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>
    XML
  23. 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"/>
    XML
  24. 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>
    XML
  25. 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>
    XML
  26. 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>
    XML
  27. 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"/>
    XML
  28. 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>
    XML
  29. 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>
    XML