I'm glad it worked for you.
Hi Kristian,You're right, what I want is a WebRTC SDP, which FreeSWITCH is clearly capable of generating as it does this with the default configuration by default if port 5066 is enabled for the ws-binding parameter.To answer your question, OverSIP sits in front of Opensips between the Chrome client and Opensips. Chrome can only register with a SIP endpoint using websockets, so OverSIP listens on a TCP/WS port and passes the SIP messages to Opensips.BANDWIDTH.com --udp--> FreeSWITCH -udp--> Opensips -udp--> OverSIP --ws--> Chrome WebRTC client.It looks like what I was missing was the <action application="export" data="media_webrtc=true"/> and using application export instead of set. I was able to get an inbound call routed to my Chrome client, answer it, and experience two way audio.Thanks again! :)JamesOn Sat, Sep 28, 2013 at 12:46 PM, Kristian Kielhofner <kris@kriskinc.com> wrote:James,
There's quite a bit of detail omitted here but a few points:
- avpf=yes on your gateway definition isn't doing anything.
- Have you tried exporting media_webrtc=true before bridging back to Opensips?
- Try exporting the actual variables, not including variable_ :
<action application="answer" /> <!-- This probably shouldn't be
<extension name="bandwidth.com inbound bridge">
<condition field="destination_number" expression="^\+1(5035551212)$">
here either -->
<action application="export" data="sip_auth_username=11234"/>
<action application="export" data="sip_auth_password=password"/>
<action application="export" data="media_webrtc=true"/>
<action application="bridge"- While you do want an "SAVPF INVITE" you really want a WebRTC SDP,
data="sofia/external/ws-Opensips/11234@54.X.X.75"/>
</condition>
</extension>
which includes much much more than just SAVPF.
- You'll probably want to do all other sorts of codec manipulation,
fixups, etc when bridging between typical SIP endpoints and WebRTC
endpoints. Look into late negotiation and every codec
variable/setting you can find.
- You may want to re-consider the interaction and authentication
between OpenSIPS and FreeSWITCH.
Also, what are you using OverSIP for in this scenario?
On Fri, Sep 27, 2013 at 8:26 PM, James Mortensen
<james.mortensen@synclio.com> wrote:
> Hello,
>
> I have a bandwidth.com number pointed to opensips, and a WebRTC peer
> registered with Opensips. I'm trying to dial the 10 digit number from a
> cell phone and connect the call through FreeSWITCH to the Chrome WebRTC
> client.
>
>
> I defined opensips as a gateway, in the external profile:
>
> <include>
> <gateway name="ws-Opensips">
> <!-- <param name="from-user" value="fromuser"/> -->
> <param name="from-domain" value="54.X.X.75"/>
> <param name="proxy" value="54.X.X.75"/>
> <param name="expire-seconds" value="600"/>
> <param name="register" value="false"/>
> <param name="retry_seconds" value="30"/>
> <param name="extension" value="18257773456"/>
> <param name="context" value="public"/>
> <param name="avpf" value="yes"/>
> <param name="username" value="11234"/>
> <param name="password" value="password"/>
> </gateway>
> </include>
>
>
> In the public dialplan context, I added in a condition to catch the INVITE
> coming in from opensips and pass it to a context I've called
> "default-inbound". See the second condition:
>
> <extension name="from_opensips">
> <condition field="network_addr" expression="^54\.X\.X\.75$"
> break="never"> <!--CUSTOMIZE-->
> <action application="transfer" data="${destination_number} XML
> default"/>
> </condition>
> <condition field="network_addr" expression="^54\.X\.X\.111$">
> <!--CUSTOMIZE Use a third context here -->
> <action application="transfer" data="${destination_number} XML
> default-inbound"/>
> </condition>
> </extension>
>
>
> Then, in the default-inbound context, I match the dialed number, answer the
> call leg from the PSTN, and then try to transfer back through opensips to
> oversip and to Chrome. The problem is that I either end up sending back AVP
> INVITES, or Opensips refuses to authenticate the user.
>
> <extension name="