Thanks Benny ! That fixed the issue. Windows Mobile forces all traffic to flow through the network, it decides is best. It does not matter what I choose it to be. So I added a new entry to the routing table forcing a lower metric for a particular destination and it worked fine. Since RTP runs peer to peer, Windows mobile routes that through the WiFi interface. Thanks again Regards Knight On Fri, May 9, 2008 at 3:48 AM, Benny Prijono <bennylp at pjsip.org> wrote: > Hi, > > I think probably you have been going on the wrong route there. In both > SIP and media transports, there are two IP address settings: > - IP address used as the transport name (to be published in SIP > messages or SDP) > - the bound IP address > > You have been addressing the former setting, while I think the > appropriate one is the later. If you change the bound IP address, then > the transport name will automatically use that address. No need to > change source code at all. While if you only change the former (that's > what you did), then the transport will still be bound to INADDR_ANY, > so the OS will chose whatever interface it sees appropriate to send > the packet. > > Cheers > Benny > > On Fri, May 9, 2008 at 1:03 AM, Knight Tiger <caugar at gmail.com> wrote: >> Hi, >> >> I am using PJSIP on a Windows Mobile device. (I am using version 0.5.3) . >> This device has Wi-Fi and a 3G connection. When I connect through only one >> network (either 3G or Wifi), I am able to register with my SIP server. (a >> vanilla Asterisk box on the public network). >> >> I want to be able to configure such that, for SIP messages it must go >> through 3G and for RTP/media it must go through Wifi (when both interfaces >> are available). I am experimenting with a media stack that is not PJMEDIA.I >> am able to assign the WiFi interface IP address for RTP traffic. But for >> SIP, I see the following call in many places in the code. >> >> status = pj_gethostip(pj_in_addr in_addr); >> >> This function gets the IP address on the default interface (it checks for >> 0.0.0.0 and if nothing comes up, it returns 127.0.0.1) . As kludgy as it >> sounds, I went and modified everywhere this function is called and checked >> to see if I had a 3G connection, use that IP instead. >> >> in_addr.s_addr = inet_addr(char *cellular_ip_string); >> >> My Wifi has a public IP address (94.125.19.123) and the 3G provider assigns >> a private IP (10.something) >> >> I tried to register with the Asterisk server (with both interfaces active on >> my device). The phone registers but it uses the WiFi interface IP address. I >> inspected the packet and I shall reproduce the REGISTER message observed on >> the Asterisk server. >> >> >> Internet Protocol, Src: 94.125.19.123 (94.125.19.123), Dst: 74.125.19.147 >> (74.125.19.147) >> User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) >> Session Initiation Protocol >> Request-Line: REGISTER sip:myvoipserver:5060 SIP/2.0 >> Message Header >> Via: SIP/2.0/UDP >> 10.84.15.87:5060;rport;branch=z9hG4bKPj42710003ec722c6d1d79 >> Max-Forwards: 70 >> From: <sip:1001@myvoipserver>;tag=42710002ec722c6d1d79 >> To: <sip:1001 at myvoipserver> >> Call-ID: 42710001ec722c6d1d79 >> CSeq: 38210 REGISTER >> Sequence Number: 38210 >> Method: REGISTER >> User-Agent: pjsua/1.0 >> Contact: <sip:10.84.15.87:5060;transport=UDP> >> Expires: 600 >> Content-Length: 0 >> >> As you can observe, my 3G IP address is seen in the Via and contact headers >> while my Wifi IP address is seen on the IP header. I dont understand where >> did the SIP stack get this IP address from ? The entire SIP message uses the >> 3G connection IP address. In fact, I checked within the code and I find that >> wherever in_addr is used, it uses the 3G IP address. >> >> Can anyone shed some light as to why this happens ? Is there a place where I >> had neglected to change the IP address setting ? >> >> Thanks in advance, >> Regards >> Knight > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >