How to make RTC VOIP functionality work with Vonage?


RTC uses standard based SIP signaling and RTP/RTCP media streams to provide VOIP functionality. To verify this, I carried out a little experiment to see if RTC works with existing VOIP services like Vonage. Guess what? It did :).


Here are the steps to configure RTC to make it work with Vonage. Please note that these are trial & error steps and the experiment was mainly to validate RTC’s implementation with a consumer VOIP service. I tried this in 2006 and hence these steps may change if Vonage changed its configuration (server address/port, authentication, transport protocol, etc.) since then:


1.                Use your Vonage client account information to create the RTC profile. Here is the sample profile that I used:


<provision key=’1232ab03′ name=’Vonage’ >


<user name = ‘Vonage User’ account=’<11 digit phone number>‘ password=’<password>‘ uri=’sip:<11 digit phone number>@216.115.20.41′ allowedauth=‘digest’/>


<sipsrv addr=’216.115.20.41:5061‘ protocol=‘UDP’ role=’proxy’>


<session party=’First’ type=’pc2pc’ />


</sipsrv>


<sipsrv addr=’216.115.20.41:5061‘ protocol=’UDP’ role=’registrar’/>


</provision>


 


Fill in <11 digit phone number> and <password> with the information that you have from Vonage.


216.115.20.41 is the Vonage proxy/registrar server address that I saw was being used for my account. Verify if this is still valid or if you have a DNS name for the Vonage server, put that info instead of the IP address.


2.                Use UDP as the transport protocol (Set in the profile above)


3.                Use symmetric UDP for SIP signaling. i.e. During RTC initialization, use the following initialization RTC flag: RTCIF_ENABLE_SYMMETRIC_UDP_SIGNALING


a.      Use static local source port (5060) to listen to all incoming request i.e. During RTC initialization, use the following flag during initialization: RTCIF_PREFER_STATIC_PORT_FOR_SYMMETRIC_UDP


4.                Used digest as authentication protocol (Set in the profile above)


5.                Use server destination port as 5061 (Set in the profile above)


And Voila! RTC works with Vonage. I experimented before and after NAT case and it worked for both. 


Please note: The above test was a pure proof of concept, to test RTC’s standardized SIP implementation withh existing services like Vonage. The scenario is neither officially supported by Microsoft nor Vonage.


 

Comments (6)

  1. Shiang says:

    I’m having problem dialing out from the VOIP program running on Windows CE 6.0

    where can I get some help?

    I’m able to recieve calls from the SIP server

    but when I try dialing out, the status will just show “contacting proxy server…”

    and nothing happens from there…

    where can I get some help?

    Thanks in advance

     

    <<Rajesh>> You can use network capture tools like WireShark to capture SIP traffic. That way, you can figure out where the problem is. Whether RTC is sending SIP messages or not, or if RTC is not getting any response back and hence the call status doesnt proceed further. 

  2. Sleuth255 says:

    Back in June, Vonage stopped working with the built in WM6 Internet Calling app.  This may be the issue.

    How would one set RTC initialization flags for Symetric UDP using the built in VoIPPhoneCanvas app?

    Also, aren’t RTCIF_ENABLE_SYMMETRIC_UDP_SIGNALING & RTCIF_PREFER_STATIC_PORT_FOR_SYMMETRIC_UDP mutually exclusive?  Here is the link that seems to say this:

    http://msdn2.microsoft.com/en-US/library/aa921900.aspx

     

    <<Rajesh>> The above 2 flags are not mutually exclusive. The MSDN documentation is incorrect. Thanks for pointing it out. Here is how you can set RTC initialization flags. Set the following reg key with the RTC initailization flag values and restart VOIP service.:

    [HKEY_LOCAL_MACHINESystemVoIPSIP]

       “RTCInitFlags”=dword:<value you want>

    Vonage stopped working for me as well. Vonage may now be blocking non-Vonage phones.

  3. stephane.duprat says:

    Hi,

    we have a problem with SIP in Windows Mobile 6.

    We can talk but we not hear nothing.

    An Idea ?

    Thanks for advance.

     

    <<Rajesh>> Check my reply to David’s comment here:

     http://blogs.msdn.com/cenet/archive/2006/12/08/rtc-1-5-useful-registry-keys.aspx

  4. Sleuth255 says:

    Interestingly, I’ve been working with the sample GSM610 ACM codec as a plugin to the CE RTC and initially I had the same issue (can talk but can’t hear anything).  A clue to the problem ended up being the size of the buffer sent to the decoder which is always smaller (about half the size) than the codec’s GSM610BLOCKALIGNMENT (bytes/block) value of 65.  In this case, the integer divide of inputbuffersize / bytesperblock equals 0 and so the decode routine would just exit.  When I changed the code to make a fraction of a block = 1 instead of 0 I got inbound audio.  

    My current issue is that both inbound and outbound audio are garbled.  I’m still working on this but suspect either a RTC v1.5.5374 bug or a variance in the way RTC hands off information to the codec (which wasn’t designed as an RTC ACM plugin).

     

    <<Rajesh>> Are you talking about the CE GSM codec? Or a 3rd party codec? The pluggable codec interface of RTC has been tested with the CE GSM 610 codec and it is working. If the codec is a 3rd party codec, I suspect that the pluggable codec is probably not handling the RTC hand off data in the right way.

  5. Dan. says:

    I’ve tested both Rajesh’s config and Sleuth’s config (posted on xda-developers), as of January 2008, neither of them are working with Vonage with my WM6 Smartphone.  Other VoIP providers work, so Vonage seems to be doing some mischief.

    -Dan <11011011>