Convert Sip to Webrtc-like call
Maybe it is a silly question, but cannot find anything. I have the opensips that handles auth and all routing, and freeswitch is responsible for handling media, prepaid and so on. Now, I want to implement browser clinent based on sip.js and therefore i pass all sip signalling through opensips's implementetion for websockets. For outgoing invites from browser clients this works. But for calls that are directed to browser clients it doesn't. I beleive that this is due to simlpe sip call does not have ice-candidates. So, the question is how to make freeswitch convert simple sip call to web-rtc oritenteated. I didn't implement mod_verto. Thanks in advance -- Kamil Nigmatullin Skype: kamil.nigmatullin
I built something similar - a sip.js-based browser coupled with a webrtc proxy using freeswitch for the media proxy (no verto), with a separate SIP signaling engine (in my case instead of opensips I used my open open source framework, called drachtio https://github.com/davehorton/drachtio-server <https://github.com/davehorton/drachtio-server>). TLDR; For the inbound call to the browser, send a 3pcc INVITE to the browser Meaning: 1. Send INVITE with no SDP to the browser 2. Get 200 OK with SDP and ICE candidates 3. Send INVITE to freeswitch with that SDP 4. Get 200 OK from freeswitch with its SDP 5. Send ACK to browser with SDP from freeswitch Freeswitch then bridges the call from the webrtc side to the sip side. FYI, my browser app can be seen at https://webrtc.drachtio.org/ <https://webrtc.drachtio.org/>, feel free to try it out, with a couple of notes: 1) only google authentication is supported 2) you need to have sip credentials from a hosted VoIP provider 3) when you first log in, select the ‘Settings’ menu from the upper right and add your sip credentials 4) its meant to be an operator type console where you can also monitor other extensions in your business using sip presence, do call pickup etc. 5) video is currently not supported Browser app is built using google polymer material design, and code is here: https://github.com/davehorton/webrtc-operator-console <https://github.com/davehorton/webrtc-operator-console> Webrtc proxy app code is here: https://github.com/davehorton/ws-proxy <https://github.com/davehorton/ws-proxy>, and as noted depends on drachtio server and freeswitch (using drachtio-fsmrf module for controlling freeswitch). For more details or help, feel free to email me directly or open issues on any of those projects. On Mar 18, 2017, at 6:03 AM, Kamil Nigmatullin <kamil.nigmatullin@gmail.com> wrote: Maybe it is a silly question, but cannot find anything. I have the opensips that handles auth and all routing, and freeswitch is responsible for handling media, prepaid and so on. Now, I want to implement browser clinent based on sip.js and therefore i pass all sip signalling through opensips's implementetion for websockets. For outgoing invites from browser clients this works. But for calls that are directed to browser clients it doesn't. I beleive that this is due to simlpe sip call does not have ice-candidates. So, the question is how to make freeswitch convert simple sip call to web-rtc oritenteated. I didn't implement mod_verto. Thanks in advance -- Kamil Nigmatullin Skype: kamil.nigmatullin _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Kamil, sip.js can register directly to FS and any calls to that user will automatically be webrtc media. Dave, Maybe submit a talk for ClueCon...... On Sat, Mar 18, 2017 at 7:47 AM Dave Horton <daveh@beachdognet.com> wrote:
I built something similar - a sip.js-based browser coupled with a webrtc proxy using freeswitch for the media proxy (no verto), with a separate SIP signaling engine (in my case instead of opensips I used my open open source framework, called drachtio https://github.com/davehorton/drachtio-server).
TLDR; For the inbound call to the browser, send a 3pcc INVITE to the browser
Meaning:
1. Send INVITE with no SDP to the browser 2. Get 200 OK with SDP and ICE candidates 3. Send INVITE to freeswitch with that SDP 4. Get 200 OK from freeswitch with its SDP 5. Send ACK to browser with SDP from freeswitch
Freeswitch then bridges the call from the webrtc side to the sip side.
FYI, my browser app can be seen at https://webrtc.drachtio.org/, feel free to try it out, with a couple of notes: 1) only google authentication is supported 2) you need to have sip credentials from a hosted VoIP provider 3) when you first log in, select the ‘Settings’ menu from the upper right and add your sip credentials 4) its meant to be an operator type console where you can also monitor other extensions in your business using sip presence, do call pickup etc. 5) video is currently not supported
Browser app is built using google polymer material design, and code is here: https://github.com/davehorton/webrtc-operator-console Webrtc proxy app code is here: https://github.com/davehorton/ws-proxy, and as noted depends on drachtio server and freeswitch (using drachtio-fsmrf module for controlling freeswitch).
For more details or help, feel free to email me directly or open issues on any of those projects.
On Mar 18, 2017, at 6:03 AM, Kamil Nigmatullin < kamil.nigmatullin@gmail.com> wrote:
Maybe it is a silly question, but cannot find anything. I have the opensips that handles auth and all routing, and freeswitch is responsible for handling media, prepaid and so on.
Now, I want to implement browser clinent based on sip.js and therefore i pass all sip signalling through opensips's implementetion for websockets. For outgoing invites from browser clients this works.
But for calls that are directed to browser clients it doesn't. I beleive that this is due to simlpe sip call does not have ice-candidates. So, the question is how to make freeswitch convert simple sip call to web-rtc oritenteated. I didn't implement mod_verto.
Thanks in advance
-- Kamil Nigmatullin Skype: kamil.nigmatullin _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II ♬ @anthmfs ♬ @FreeSWITCH ♬ ☞ http://freeswitch.org/ ☞ http://cluecon.com/ ☞ http://twitter.com/FreeSWITCH ☞ irc.freenode.net #freeswitch ☞ *http://freeswitch.org/g+ <http://freeswitch.org/g+>* ClueCon Weekly Development Call ☎ sip:888@conference.freeswitch.org ☎ +19193869900 https://www.youtube.com/watch?v=9XXgW34t40s https://www.youtube.com/watch?v=NLaDpGQuZDA
webrtc_media=true On Sat, Mar 18, 2017 at 8:50 AM Dave Horton <daveh@beachdognet.com> wrote:
I built something similar - a sip.js-based browser coupled with a webrtc proxy using freeswitch for the media proxy (no verto), with a separate SIP signaling engine (in my case instead of opensips I used my open open source framework, called drachtio https://github.com/davehorton/drachtio-server).
TLDR; For the inbound call to the browser, send a 3pcc INVITE to the browser
Meaning:
1. Send INVITE with no SDP to the browser 2. Get 200 OK with SDP and ICE candidates 3. Send INVITE to freeswitch with that SDP 4. Get 200 OK from freeswitch with its SDP 5. Send ACK to browser with SDP from freeswitch
Freeswitch then bridges the call from the webrtc side to the sip side.
FYI, my browser app can be seen at https://webrtc.drachtio.org/, feel free to try it out, with a couple of notes: 1) only google authentication is supported 2) you need to have sip credentials from a hosted VoIP provider 3) when you first log in, select the ‘Settings’ menu from the upper right and add your sip credentials 4) its meant to be an operator type console where you can also monitor other extensions in your business using sip presence, do call pickup etc. 5) video is currently not supported
Browser app is built using google polymer material design, and code is here: https://github.com/davehorton/webrtc-operator-console Webrtc proxy app code is here: https://github.com/davehorton/ws-proxy, and as noted depends on drachtio server and freeswitch (using drachtio-fsmrf module for controlling freeswitch).
For more details or help, feel free to email me directly or open issues on any of those projects.
On Mar 18, 2017, at 6:03 AM, Kamil Nigmatullin < kamil.nigmatullin@gmail.com> wrote:
Maybe it is a silly question, but cannot find anything. I have the opensips that handles auth and all routing, and freeswitch is responsible for handling media, prepaid and so on.
Now, I want to implement browser clinent based on sip.js and therefore i pass all sip signalling through opensips's implementetion for websockets. For outgoing invites from browser clients this works.
But for calls that are directed to browser clients it doesn't. I beleive that this is due to simlpe sip call does not have ice-candidates. So, the question is how to make freeswitch convert simple sip call to web-rtc oritenteated. I didn't implement mod_verto.
Thanks in advance
-- Kamil Nigmatullin Skype: kamil.nigmatullin _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
http://www.opensips.org/Documentation/Tutorials-WebSocket-2-1 On Mar 18, 2017 11:06 AM, "Michael Jerris" <mike@jerris.com> wrote:
webrtc_media=true
On Sat, Mar 18, 2017 at 8:50 AM Dave Horton <daveh@beachdognet.com> wrote:
I built something similar - a sip.js-based browser coupled with a webrtc proxy using freeswitch for the media proxy (no verto), with a separate SIP signaling engine (in my case instead of opensips I used my open open source framework, called drachtio https://github.com/davehorton/drachtio-server ).
TLDR; For the inbound call to the browser, send a 3pcc INVITE to the browser
Meaning:
1. Send INVITE with no SDP to the browser 2. Get 200 OK with SDP and ICE candidates 3. Send INVITE to freeswitch with that SDP 4. Get 200 OK from freeswitch with its SDP 5. Send ACK to browser with SDP from freeswitch
Freeswitch then bridges the call from the webrtc side to the sip side.
FYI, my browser app can be seen at https://webrtc.drachtio.org/, feel free to try it out, with a couple of notes: 1) only google authentication is supported 2) you need to have sip credentials from a hosted VoIP provider 3) when you first log in, select the ‘Settings’ menu from the upper right and add your sip credentials 4) its meant to be an operator type console where you can also monitor other extensions in your business using sip presence, do call pickup etc. 5) video is currently not supported
Browser app is built using google polymer material design, and code is here: https://github.com/davehorton/webrtc-operator-console Webrtc proxy app code is here: https://github.com/davehorton/ws-proxy, and as noted depends on drachtio server and freeswitch (using drachtio-fsmrf module for controlling freeswitch).
For more details or help, feel free to email me directly or open issues on any of those projects.
On Mar 18, 2017, at 6:03 AM, Kamil Nigmatullin < kamil.nigmatullin@gmail.com> wrote:
Maybe it is a silly question, but cannot find anything. I have the opensips that handles auth and all routing, and freeswitch is responsible for handling media, prepaid and so on.
Now, I want to implement browser clinent based on sip.js and therefore i pass all sip signalling through opensips's implementetion for websockets. For outgoing invites from browser clients this works.
But for calls that are directed to browser clients it doesn't. I beleive that this is due to simlpe sip call does not have ice-candidates. So, the question is how to make freeswitch convert simple sip call to web-rtc oritenteated. I didn't implement mod_verto.
Thanks in advance
-- Kamil Nigmatullin Skype: kamil.nigmatullin _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (5)
-
Anthony Minessale
-
Dave Horton
-
Kamil Nigmatullin
-
Michael Jerris
-
Tito Cumpen