Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Video: H.264, VP8
  • Audio: G.711, Speex, Opus

Supported RTMP codecs

  • Video: H.264
  • Audio: AAC, G.711, Speex

...

REST-methods and response statuses

REST-methodExample of REST-queryExample of REST-response bodyResponse status
/call/startup
Code Block
languagejs
themeRDark
{  
   "callId":"123456711",
   "callee":"10000",
   "toStream":"stream1",
   "rtmpUrl":"rtmp://localhost:1935/live/",
   "rtmpStream":"rtmp_stream1",
   "hasAudio":"true",
   "hasVideo":"true",
   "sipLogin":"10009",  "sipAuthenticationName":"10009",
 "sipPassword":"1234",
"sipDomain":"226.226.225.226",
"sipOutboundProxy":"226.226.225.226",
   "sipPort":"5060",
"appKey":"defaultApp",
"sipRegisterRequired":"false"
}

{}


200 - The call is accepted for processing

409 - Conflict with an existing RTMP URL

/call/find
Code Block
languagejs
themeRDark
{"status" : "ESTABLISHED"}

or

{"callId":"R08NQya-5NMe5v7q-JNkboaS-CGMlFi"}
Code Block
languagejs
themeRDark
[{
"custom": {},
"nodeId": null,
"appKey": null,
"sessionId": null,
"callId": "R08NQya-5NMe5v7q-JNkboaS-CGMlFi",
"parentCallId": null,
"incoming": false,
"status": "ESTABLISHED",
"sipStatus": 200,
"rtmpUrl": null,
"rtmpStream": null,
"streamName": null,
"rtmpStreamStatus": null,
"caller": "001",
"callee": "002",
"hasAudio": true,
"hasVideo": false,
"sdp": null,
"visibleName": "001",
"inviteParameters": null,
"mediaProvider": "Flash",
"sipMessageRaw": null,
"isMsrp": false,
"target": null,
"holdForTransfer": false
}]

200 - call is found
404 - call with the given parameters is not found

/call/find_all

{}

Code Block
languagejs
themeRDark
[{
"custom": {},
"nodeId": null,
"appKey": null,
"sessionId": null,
"callId": "R08NQya-5NMe5v7q-JNkboaS-CGMlFi",
"parentCallId": null,
"incoming": false,
"status": "ESTABLISHED",
"sipStatus": 200,
"rtmpUrl": null,
"rtmpStream": null,
"streamName": null,
"rtmpStreamStatus": null,
"caller": "001",
"callee": "002",
"hasAudio": true,
"hasVideo": false,
"sdp": null,
"visibleName": "001",
"inviteParameters": null,
"mediaProvider": "Flash",
"sipMessageRaw": null,
"isMsrp": false,
"target": null,
"holdForTransfer": false
}]

200 - calls are found
404 - calls are not found

/call/terminate
Code Block
languagejs
themeRDark
{"callId" : "becee2c0-13b4-11e7-b817-c1649197cae8"}


200 - call is terminated
404 - call is not found

/call/send_dtmf
Code Block
languagejs
themeRDark
{
"callId" : "52173e00-13b6-11e7-b817-c1649197cae8",
"dtmf":"9",
"type":"RFC2833"
}


200 - DTMF is sent


404 - call is not found/call/inject_stream Code Block
languagejs
themeRDark
{ "callId": "ad5ac8a0-b518-11e7-82c7-999b45e427ba", "streamName": "mixer1_stream" }


200 - audio stream is added to the call

404 - call is not found

Parameters

Parameter nameDescriptionExample

callId

SIP Call ID - a unique identifier string

Xq2tlLcX89tTjaji
calleeSIP callee10001
toStreamName of the stream on the WCS server the call is published tocall_stream1
rtmpUrlRTMP URL - address of the RTMP server

rtmp://rtmp-server.flashphoner.com:1935/live

Here live - is the name of the RTMP application.
Also, in RTMP URL the instance name and the query string can be specified, for example:
rtmp://rtmp-server.flashphoner.com:1935/live/_definst_?param1=value1&param2=value2

rtmpStreamName of the RTMP stream on the RTMP serverstreamName2
hasAudioIf true, SDP will have the 'sendrecv' parameter in audio. If false, it gets 'recvonly'.true
hasVideoIf true, SDP will have the 'sendrecv' parameter in video. If false, it gets 'recvonly'.true
statusCall status on the WCS server

ESTABLISHED

The complete list of statuses is available in the Call Flow (see the CallStatusEvent method).

sipStatusAssociated SIP-status200
rtmpStreamStatusStatus of the RTMP stream

RTMP_STREAM_ACTIVE

RTMP_STREAM_WAIT - RTMP-stream is initializing
RTMP_STREAM_ACTIVE - RTMP-stream has initialized and connection is established
RTMP_CONNECTION_LOST - RTMP-connection is lost
RTMP_CONNECTION_FAILED - RTMP-connection was not established

callerSIP caller
visibleNameDisplayed name of the caller
mediaProviderNOT USEDNOT USED

SDP parameters recvonly and sendrecv

...

Code Block
languagejs
themeRDark
session.createStream({constraints:{audio:true,video:false}}).play();

3. It's impossible to make a SIP call if 'SIP Login' and 'SIP Authentification name' fields are incorrect

...

Solution: according to the standard, 'SIP Login' and 'SIP Authentification Authentication name' should not contain any of unescaped spaces and special symbols and should not be enclosed in angle brackets '<>'.

...

Code Block
languagejs
themeRDark
sipLogin='Ralf_C12441'
sipAuthenticationName='Ralf_C'
sipPassword='demo'
sipVisibleName='Ralf C'

4. RTP traffic buffering should be enabled in some cases when republishing SIP as Stream or SIP as RTMP

Symptoms: audio and video may be out of sync when playing a SIP call stream

Solution: update WCS  to build 5.2.1910 and enable RTP traffic buffering

Code Block
themeRDark
rtp_in_buffer=true