< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] SDP Contents not getting created.....



On 2005.12.10, at 02:57 , John Draper wrote:



- Don’t build SDP as ASCII, use the API in the SdpContents class.

I would if I knew how, or could find some example code that does this. I did find the BasicCall.cxx code, but I couldn't figure out how to use %s string substitution, and had asked list people this very question, but got no volunteers to tell me how,
so I'm stumbling along trying things until I get it right.



testSdp.cxx --
  sdp.session().connection().getAddress() = Data("10.1.1.1");
etc.

- Just because a test driver messes around with ASCII to SdpContents conversion doesn’t mean it’s a good idea.

I'm sure it isn't, I just don't know better because I haven't found out how to do things, so I'm having to do a lot of experimenting, and am now (FINALLY) able to break the program at key places with the source level debugger and examine data. I just recently got to this level of progress, and it's now made it a lot easier for me to analyse whats going on.

For instance, in my application, my recipient has a SIP address pointing to a domain that is NOT the SIP server. They (my company) are not using DNS SRV, but I figured out that I can do this.... to.param(p_maddr) = "213.167.79.25"; to force it to use this IP as the SIP server I want. I don't know if this is the "proper" way to do this, but it does work, and I'm sending out the proper INVITE message and it goes to the right server, but when I ommitted this statement, it went to our web site, because the code tried to resolve the "domain.com" domain name, which pointed to their web server, which
obviously not where I want to sent the INVITE request.

If you've read my earlier postings, you'll see my asking for the proper way to do this.

- Read the Data class definition, it covers Data manipulation (which you almost never need) adequately.

I have.... over and over. But I couldn't figure out how to specify string substitution by inserting an IP address into a %s format using the construct in the BasicCall.cxx.


Because %foo is a C-ism and this stack is C++. Learn how to use std::string, resip::Data is quite similar in many ways.

Care to tell me how? I would like to code this properly of course... I only did it that way because I couldn't think of any other way to do it. The test code does not need
to do string substitution like I do.


You don't either -- see testSdp.cxx or SdpContents for the methods / etc.