question

Shankar Jha avatar image
Shankar Jha asked Roman Pierce published

Transfer call in softphone-js sdk

I am using https://github.com/ringcentral/ringcentral-softphone-js for one of my use case. How can I transfer call in this SDK. It seems to have message exchange with some command for voicemail. Do we have something similar for transfer?

softphonetransferring callstransfer a call
1 comment
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Tyler Liu avatar image Tyler Liu ♦ commented ·

Latest version of https://github.com/ringcentral/ringcentral-softphone-ts supports call transfer out of box!

0 Likes 0 ·
Phong Vu avatar image
Phong Vu answered

This is the call transfer API. It requires a telephony session id and a party id and only the owner of the call can transfer its call. I don't know how you make the call, but check the SIP message headers to see if you have the right telephony session id and the party id, then try to transfer using that API.

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Roman Pierce avatar image
Roman Pierce answered Roman Pierce published

@Shankar Jha did you find the session id and party id in the SIP message headers?

2 comments
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image Phong Vu ♦♦ commented ·

If you cannot get the Ids from the SIP headers (which I think they are not there), you can call this API to detect the user active calls and get the Ids from the response.

0 Likes 0 ·
Roman Pierce avatar image Roman Pierce Phong Vu ♦♦ commented ·

It seems like a bit of overhead to make an additional HTTP request just to receive ids. But We really can't find telephonySessionId and partyId in SIP headers.

Is there any way to receive those ids without additional requests?


Here is an example of SIP headers that we receive on incoming call:

SipMessage {
  subject: 'INVITE sip:a8c6a534-6a4f-449c-ad18-ce7e28373c5c@bb1776cc-9c3d-4af7-8861-92c71370a852.invalid;transport=tcp SIP/2.0',
  headers: {
    Via: 'SIP/2.0/TCP 104.245.57.195:5091;branch=z9hG4bKfka1SlkT2oI',
    To: '<sip:1811111111@11.111.11.1111>;tag=8ba4850a-354e-4443-a78d-e84b3777140e',
    From: '<sip:822222222@104.245.57.195>;tag=10.113.128.192-5070-8e54e5b1-3a84-4f',
    'Call-Id': 'e3e1395a-edfe-4f6f-b21c-505a2b39f24b',
    CSeq: '62893574 INVITE',
    'Max-Forwards': '68',
    Supported: 'replaces, timer, diversion, histinfo',
    'User-Agent': 'RC_SIPWRP_128.192-TEL',
    'p-rc-session-id': 'h67hcdocg3lnl3gdgaco',
    Allow: 'SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO',
    Contact: '<sip:822222222@104.245.57.195:5091;transport=tcp>',
    'Content-Type': 'application/sdp',
    'Call-Info': '<h67hcdocg3lnl3gdgaco>;purpose=info',
    'Content-Length': '547'
  },
  body: 'v=0\r\n' +
    'o=- 8968686937137530239 5021168539202003354 IN IP4 208.87.41.50\r\n' +
    's=SmcSip\r\n' +
    'c=IN IP4 208.87.41.50\r\n' +
    't=0 0\r\n' +
    'm=audio 22682 RTP/AVP 111 9 0 18 96 8 109 101\r\n' +
    'a=sendrecv\r\n' +
    'a=rtpmap:111 OPUS/48000/2\r\n' +
    'a=fmtp:111 useinbandfec=1;usedtx=0\r\n' +
    'a=rtpmap:9 g722/8000\r\n' +
    'a=rtpmap:0 pcmu/8000\r\n' +
    'a=rtpmap:18 g729/8000\r\n' +
    'a=fmtp:18 annexb=no\r\n' +
    'a=rtpmap:96 ilbc/8000\r\n' +
    'a=fmtp:96 mode=20\r\n' +
    'a=rtpmap:8 pcma/8000\r\n' +
    'a=rtpmap:109 OPUS/16000\r\n' +
    'a=fmtp:109 useinbandfec=1;usedtx=0\r\n' +
    'a=rtpmap:101 telephone-event/8000\r\n' +
    'a=fmtp:101 0-15\r\n' +
    'a=rtcp-fb:111 ccm tmmbr\r\n' +
    'a=rtcp-fb:109 ccm tmmbr\r\n'
}


Thanks!

0 Likes 0 ·

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys