Skip to content

CallsRtc#

ื’ืจืกืช ื‘ื˜ื

ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื ืžืฆืืช ื‘ื’ืจืกืช ื‘ื˜ื. ื”ืคื•ื ืงืฆื™ื•ืช ืขืฉื•ื™ื•ืช ืœื”ืฉืชื ื•ืช ื•ืขืœื•ืœื•ืช ืœืคืขื•ืœ ื‘ืื•ืคืŸ ืœื ื™ืฆื™ื‘. ื™ื™ืชื›ืŸ ืฉื‘ืขืชื™ื“ ืชื™ื’ื‘ื” ืชืฉืœื•ื ื ื•ืกืฃ ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช.
ื ื™ืชืŸ ืœื‘ืงืฉ ื’ื™ืฉื” ืœืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื“ืจืš ื”ืชืžื™ื›ื” ื”ื˜ื›ื ื™ืช ืฉืœ GREEN-API

callsRtc ื”ื•ื ื—ื™ื‘ื•ืจ WebSocket ืฉื“ืจื›ื• ืขื•ื‘ืจ ื›ืœ ืžื” ืฉืงืฉื•ืจ ืœืฉื™ื—ื”, ืžืœื‘ื“ ืคืงื•ื“ื•ืช:

  • ื”ืฉืจืช ืžื“ื•ื•ื— ืžื” ืงื•ืจื” ื‘ืฉื™ื—ื”: ื”ื—ืœ ื—ื™ื•ื’, ื”ืชืงื‘ืœื” ืฉื™ื—ื” ื ื›ื ืกืช, ื”ืฉื™ื—ื” ื”ืชื—ื™ืœื”, ื”ืฉื™ื—ื” ื”ืกืชื™ื™ืžื”;
  • ื”ืืคืœื™ืงืฆื™ื” ื•ื”ืฉืจืช ืžืชืืžื™ื ื‘ื™ื ื™ื”ื ืืช ื”ืขื‘ืจืช ื”ืฉืžืข ื‘ื˜ื›ื ื•ืœื•ื’ื™ื™ืช WebRTC.

ื™ืฉ ืœืคืชื•ื— ืืช ื”ื—ื™ื‘ื•ืจ ืœืคื ื™ ืฉืงื•ืจืื™ื ืœืฉื™ื˜ื” ื›ืœืฉื”ื™ ืฉืœ ืฉื™ื—ื•ืช, ื•ืœื”ืฉืื™ืจ ืื•ืชื• ืคืชื•ื— ืœืื•ืจืš ื›ืœ ื”ืฉื™ื—ื”. ื”ืฉื™ื˜ื•ืช callsDial, callsAccept, callsReject ื•-callsHangUp ืžื—ื–ื™ืจื•ืช 200 OK. ืžื” ืงื•ืจื” ื‘ืฉื™ื—ื” ื‘ื”ืžืฉืš ื ื™ืชืŸ ืœืจืื•ืช ืจืง ืžื”ื”ื•ื“ืขื•ืช ื‘ื—ื™ื‘ื•ืจ ื–ื”.

ื—ื™ื‘ื•ืจ#

ื›ื“ื™ ืœืงื‘ืœ ื”ื•ื“ืขื•ืช ืขืœ ืฉื™ื—ื•ืช, ื™ืฉ ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ websocket ืœื›ืชื•ื‘ืช:

WSS
{{apiUrl}}/waInstance{{idInstance}}/callsRtc/{{apiTokenInstance}}

ื”ื›ืชื•ื‘ืช ื–ื”ื” ืœื›ืชื•ื‘ืช ืฉืœ ืฉืืจ ื”ืฉื™ื˜ื•ืช, ืจืง ื”ืกื›ืžื” ืฉื•ื ื”: ื‘ืžืงื•ื https ืžืฆื™ื™ื ื™ื wss.

ืœืงื‘ืœืช ืคืจืžื˜ืจื™ ื—ื™ื‘ื•ืจ ื”-websocket apiUrl, idInstance ื•-apiTokenInstance, ืขื™ื™ื ื• ื‘ืกืขื™ืฃ ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื.

ื”ืขืจื”

ืžื™ื“ ืœืื—ืจ ื”ื”ืชื—ื‘ืจื•ืช ื”ืฉืจืช ืฉื•ืœื— ืืช ืžืฆื‘ ื”ืฉื™ื—ื” ื”ื ื•ื›ื—ื™, ื•ืœืื—ืจ ืžื›ืŸ ืฉื•ืœื— ืื•ืชื• ื‘ื›ืœ ืฉื™ื ื•ื™. ืœื›ืŸ ืืคืœื™ืงืฆื™ื” ืฉื”ื•ืคืขืœื” ืžื—ื“ืฉ ื‘ืืžืฆืข ืฉื™ื—ื” ืžืงื‘ืœืช ืืช ื”ืžืฆื‘ ื”ื ื›ื•ืŸ ืœืœื ื‘ืงืฉื•ืช ื ื•ืกืคื•ืช.
ืื ื”ื—ื™ื‘ื•ืจ ื ื•ืชืง, ื™ืฉ ืœื™ืฆื•ืจ ืื•ืชื• ืžื—ื“ืฉ: ื”ืฉื™ื—ื” ื‘ืฉืจืช ืื™ื ื” ืžืกืชื™ื™ืžืช. ืขื ื–ืืช, ื”ืขื‘ืจืช ื”ืฉืžืข ื ืคืกืงืช โ€” ื™ื—ื“ ืขื ื”ื—ื™ื‘ื•ืจ ื”ืฉืจืช ืžืคืจืง ืืช ื’ืฉืจ ื”ืฉืžืข, ื•ืœื›ืŸ ืœืื—ืจ ื”ื”ืชื—ื‘ืจื•ืช ืžื—ื“ืฉ ื™ืฉ ืœื”ืคืขื™ืœ ืืช ื”ืฉืžืข ืžื—ื“ืฉ ื‘ืืžืฆืขื•ืช ืฉืœื™ื—ืช ื”ืฆืขื” ื—ื“ืฉื” ืœื”ืขื‘ืจืช ืฉืžืข.

ืคื•ืจืžื˜ ื”ื”ื•ื“ืขื•ืช#

ื”ื”ื•ื“ืขื•ืช ืžื•ืขื‘ืจื•ืช ื‘ืคื•ืจืžื˜ JSON. ื‘ื›ืœ ื”ื•ื“ืขื” ื™ืฉ ืฉื“ื” type, ื•ืฉืืจ ื”ืฉื“ื•ืช ืชืœื•ื™ื™ื ื‘ืขืจื›ื•: ืžืœื‘ื“ type, ื”ื•ื“ืขื” ืžื›ื™ืœื” ืœื›ืœ ื”ื™ื•ืชืจ ืฉื“ื” ื ืชื•ื ื™ื ืื—ื“, ื•ื‘ื—ืœืง ืžื”ื”ื•ื“ืขื•ืช ืื™ืŸ ืฉื“ื” ื›ื–ื” ื›ืœืœ. ืžืขืจื›ื™ ื”ื”ื•ื“ืขื•ืช ื‘ืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื ืฉื•ื ื™ื โ€” ืื™ืŸ ืคื•ืจืžื˜ ืื—ื™ื“ ืœืฉื ื™ ื”ืฆื“ื“ื™ื.

ื”ื•ื“ืขื•ืช ืžื”ืฉืจืช#

ืคืจืžื˜ืจ ืกื•ื’ ืชื™ืื•ืจ
type string ืกื•ื’ ื”ื”ื•ื“ืขื”. ืžืงื‘ืœ ืืช ื”ืขืจื›ื™ื state, answer, ice-candidate, error
state object ืžืฆื‘ ื”ืฉื™ื—ื”. ืžื•ื—ื–ืจ ืจืง ื›ืืฉืจ type = state. ื”ืฉื“ื•ืช ืžืชื•ืืจื™ื ื‘ืกืขื™ืฃ ืžืฆื‘ ื”ืฉื™ื—ื”
answer object ืชืฉื•ื‘ืช ื”ืฉืจืช ืœื”ืฆืขื” ืœื”ืขื‘ืจืช ืฉืžืข ื‘ืคื•ืจืžื˜ WebRTC. ืžื•ื—ื–ืจ ืจืง ื›ืืฉืจ type = answer. ื™ืฉ ืœื”ืขื‘ื™ืจ ืื•ืชื• ืœ-WebRTC ื›ืคื™ ืฉื”ื•ื, ืื™ืŸ ืฆื•ืจืš ืœื ืชื— ืืช ื”ืชื•ื›ืŸ
candidate object ืืคืฉืจื•ืช ืœื ืชื™ื‘ ืจืฉืช ืœื”ืขื‘ืจืช ืฉืžืข ื‘ืคื•ืจืžื˜ WebRTC (ICE candidate). ืžื•ื—ื–ืจ ืจืง ื›ืืฉืจ type = ice-candidate. ื™ืฉ ืœื”ืขื‘ื™ืจ ืื•ืชื• ืœ-WebRTC ื›ืคื™ ืฉื”ื•ื
message string ื˜ืงืกื˜ ื”ืฉื’ื™ืื”. ืžื•ื—ื–ืจ ืจืง ื›ืืฉืจ type = error. ืจืฉื™ืžืช ื”ืขืจื›ื™ื โ€” ื‘ืกืขื™ืฃ ืฉื’ื™ืื•ืช

ื”ื•ื“ืขื•ืช ืžื”ืืคืœื™ืงืฆื™ื”#

ืคืจืžื˜ืจ ืกื•ื’ ืชื™ืื•ืจ
type string ืกื•ื’ ื”ื”ื•ื“ืขื”. ืžืงื‘ืœ ืืช ื”ืขืจื›ื™ื offer, ice-candidate, stop
offer object ื”ืฆืขื” ืœื”ืขื‘ืจืช ืฉืžืข ื‘ืคื•ืจืžื˜ WebRTC. ื ืฉืœื— ื›ืืฉืจ type = offer. ืืช ื”ื”ืฆืขื” ื™ื•ืฆืจืช ืชืžื™ื“ ื”ืืคืœื™ืงืฆื™ื”, ื•ื”ืฉืจืช ืžืฉื™ื‘ ืขืœื™ื” ื‘ื”ื•ื“ืขื” ืžืกื•ื’ answer โ€” ื’ื ื‘ืฉื™ื—ื” ื ื›ื ืกืช
candidate object ืืคืฉืจื•ืช ืœื ืชื™ื‘ ืจืฉืช ืœื”ืขื‘ืจืช ืฉืžืข ื‘ืคื•ืจืžื˜ WebRTC (ICE candidate). ื ืฉืœื— ื›ืืฉืจ type = ice-candidate

ื”ื•ื“ืขื” ืžืกื•ื’ stop ื ืฉืœื—ืช ืœืœื ืฉื“ื•ืช ื ื•ืกืคื™ื โ€” {"type": "stop"} โ€” ื•ืžืฉืžืขื•ืชื” ืฉื”ืืคืœื™ืงืฆื™ื” ืื™ื ื” ืžืขื‘ื™ืจื” ืขื•ื“ ืฉืžืข.

ืžืฆื‘ ื”ืฉื™ื—ื”#

ื”ืื•ื‘ื™ื™ืงื˜ state ืžืชืืจ ืžื” ืงื•ืจื” ื›ืขืช ื‘ืฉื™ื—ื”.

ืคืจืžื˜ืจ ืกื•ื’ ืชื™ืื•ืจ
state string ืžืฆื‘ ื”ืฉื™ื—ื”. ืžืงื‘ืœ ืืช ื”ืขืจื›ื™ื:
idle โ€” ืื™ืŸ ืฉื™ื—ื”
inc-call โ€” ื”ืชืงื‘ืœื” ืฉื™ื—ื” ื ื›ื ืกืช
out-call โ€” ืžืชื‘ืฆืข ื—ื™ื•ื’ ื‘ืฉื™ื—ื” ื™ื•ืฆืืช
on-call โ€” ื”ืฉื™ื—ื” ืžืชื ื”ืœืช
info object ื ืชื•ื ื™ ื”ืฉื™ื—ื” ื•ื”ืฆื“ ื”ืฉื ื™. ืžื•ื—ื–ืจ ื‘ืžืฆื‘ื™ื inc-call, out-call ื•-on-call
reason string ืกื™ื‘ืช ืกื™ื•ื ื”ืฉื™ื—ื”. ืžื•ื—ื–ืจ ืจืง ื‘ื”ื•ื“ืขื” ืขืœ ืžืขื‘ืจ ืœืžืฆื‘ idle ื•ืจืง ืื ื”ืฉืจืช ืฆื™ื™ืŸ ืื•ืชื”

ื”ืื•ื‘ื™ื™ืงื˜ info#

ืคืจืžื˜ืจ ืกื•ื’ ืชื™ืื•ืจ
id string ืžื–ื”ื” ื”ืฉื™ื—ื”
wid string ืžื–ื”ื” ื”ืฆื“ ื”ืฉื ื™, ืœื“ื•ื’ืžื” 79001234567@c.us ืื• 120650379300963@lid
name string ืฉื ื”ืฆื“ ื”ืฉื ื™ ืžืคืจื•ืคื™ืœ ื”-WhatsApp ืฉืœื•. ืžื’ื™ืข ืจื™ืง ืื ืื™ืŸ ืฉื ื‘ืคืจื•ืคื™ืœ; ื‘ืฉื™ื—ื” ืžืžื–ื”ื” lid ื‘ื“ืจืš ื›ืœืœ ืื™ืŸ ืฉื. ื‘ืžืงืจื” ื›ื–ื” ื ื™ืชืŸ ืœืžืฆื•ื ืืช ื”ืฉื ื‘ืขืฆืžื›ื ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื” GetContacts, ืขืœ ื™ื“ื™ ื”ืฉื•ื•ืืช wid ืœืฉื“ื•ืช id ื•-newChatId ืฉืœ ืื ืฉื™ ื”ืงืฉืจ

ืกื™ื‘ื•ืช ืœืกื™ื•ื ืฉื™ื—ื”#

ืขืจืš ื”ืฉื“ื” reason ื”ื•ื ื”ื”ืกื‘ืจ ืฉืœ ื”ืฉืจืช ืœืกื™ื‘ื” ืฉื‘ื’ืœืœื” ื”ืฉื™ื—ื” ื”ืกืชื™ื™ืžื”. ืขืจื›ื™ื ื™ื“ื•ืขื™ื:

ืขืจืš ืชื™ืื•ืจ
hangup ื”ืฉื™ื—ื” ื ื•ืชืงื”
timeout ื–ืžืŸ ื”ื”ืžืชื ื” ืคื’
accepted_elsewhere ื”ืฉื™ื—ื” ื”ืชืงื‘ืœื” ื‘ืžื›ืฉื™ืจ ืื—ืจ ืฉืœ ืื•ืชื• ื—ืฉื‘ื•ืŸ, ืœื“ื•ื’ืžื” ื‘ื˜ืœืคื•ืŸ
rejected_elsewhere ื”ืฉื™ื—ื” ื ื“ื—ืชื” ื‘ืžื›ืฉื™ืจ ืื—ืจ ืฉืœ ืื•ืชื• ื—ืฉื‘ื•ืŸ
no-media ื”ืฉืžืข ืœื ื”ื•ืขื‘ืจ
connect-timeout ืœื ื ื™ืชืŸ ื”ื™ื” ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ ื‘ื–ืžืŸ ืฉื”ื•ืงืฆื‘
instance-gone ื”ืžื•ืคืข ื”ืคืš ืœืœื ื–ืžื™ืŸ
rejected:<reason> ื”ืฉื™ื—ื” ื ื“ื—ืชื”, ืœืื—ืจ ื”ื ืงื•ื“ืชื™ื™ื ื”ืฉืจืช ืžืฆื™ื™ืŸ ืืช ื”ืกื™ื‘ื”

ื”ืจืฉื™ืžื” ืคืชื•ื—ื”: ืื ื”ืชืงื‘ืœ ืขืจืš ืฉืื™ื ื• ืžื•ืคื™ืข ื‘ื˜ื‘ืœื”, ื”ืฆื™ื’ื• ืื•ืชื• ื›ืคื™ ืฉื”ื•ื ื•ืืœ ืชืชืขืœืžื• ืžืžื ื•.

ืฉื’ื™ืื•ืช#

ื”ืฉืจืช ืžื“ื•ื•ื— ืขืœ ืฉื’ื™ืื” ื‘ื”ื•ื“ืขื” ืžืกื•ื’ error, ื•ื˜ืงืกื˜ ื”ืฉื’ื™ืื” ื ืžืฆื ื‘ืฉื“ื” message.

{
    "type": "error",
    "message": "no active call"
}
ืขืจืš message ืชื™ืื•ืจ
no active call ื”ื”ืฆืขื” ืœื”ืขื‘ืจืช ืฉืžืข ื ืฉืœื—ื” ื›ืืฉืจ ืื™ืŸ ืฉื™ื—ื”. ื™ืฉ ืœื”ืžืชื™ืŸ ืชื—ื™ืœื” ืœืกื™ื•ื ื”ืฉื™ื˜ื” callsDial ืื• callsAccept, ื•ืจืง ืœืื—ืจ ืžื›ืŸ ืœืฉืœื•ื— ื”ื•ื“ืขื” ืžืกื•ื’ offer

ื‘ื ื•ืกืฃ ืœื”ื•ื“ืขื•ืช ืฉื’ื™ืื”, ื”ืฉืจืช ืขืฉื•ื™ ืœืกื’ื•ืจ ืืช ื”ื—ื™ื‘ื•ืจ. ืงื•ื“ ื”ืกื’ื™ืจื” ืžืจืื” ืื ื›ื“ืื™ ืœื”ืชื—ื‘ืจ ืžื—ื“ืฉ:

ืงื•ื“ ืกื’ื™ืจื” ืชื™ืื•ืจ
4000 ืขื“ 4999 ื”ืฉืจืช ืกื™ืจื‘: ื”ืฉื™ื—ื•ืช ืื™ื ืŸ ืžื—ื•ื‘ืจื•ืช ื‘ืžื•ืคืข ืื• ื”ื•ืฉื‘ืชื• ื‘ืฆื“ ื”ืฉืจืช. ืื™ืŸ ื˜ืขื ืœื”ืชื—ื‘ืจ ืžื—ื“ืฉ โ€” ื™ืฉ ืœื˜ืคืœ ื‘ืกื™ื‘ื”, ื•ืœืื—ืจ ืžื›ืŸ ืœืคืชื•ื— ื—ื™ื‘ื•ืจ ื—ื“ืฉ
ืงื•ื“ื™ื ืื—ืจื™ื ื ื™ืชื•ืง ื”ืชืงืฉื•ืจืช. ื™ืฉ ืœื™ืฆื•ืจ ืืช ื”ื—ื™ื‘ื•ืจ ืžื—ื“ืฉ; ื”ืฉื™ื—ื” ื”ืžืชื ื”ืœืช ื ืฉืžืจืช ื‘ืฉืจืช, ื•ื™ื”ื™ื” ืฆื•ืจืš ืœื”ืคืขื™ืœ ืืช ื”ืฉืžืข ืžื—ื“ืฉ

ื“ื•ื’ืžืื•ืช ืœื”ื•ื“ืขื•ืช#

ื”ื—ืœ ื—ื™ื•ื’ ื‘ืฉื™ื—ื” ื™ื•ืฆืืช:

{
    "type": "state",
    "state": {
        "state": "out-call"
    }
}

ื”ืฉื™ื—ื” ื”ืกืชื™ื™ืžื” ื›ื™ ื”ื™ื ื ื•ืชืงื”:

{
    "type": "state",
    "state": {
        "state": "idle",
        "reason": "hangup"
    }
}

ื”ืืคืœื™ืงืฆื™ื” ืžื“ื•ื•ื—ืช ืฉื”ื™ื ืื™ื ื” ืžืขื‘ื™ืจื” ืขื•ื“ ืฉืžืข:

{
    "type": "stop"
}