[reSIProcate] Specifying actual sip server - different from resolved "To" URI

John Draper lists at webcrunchers.com
Tue Feb 14 18:36:36 CST 2006


I have a question about the RFC3261

The RFC States:

 >18.1.1 Sending Requests (7th paragraph states...)

 >Before a request is sent, the client transport MUST insert a value of
 >the "sent-by" field into the Via header field.  This field contains
 >an IP address or host name, and port.

If I were to set it to the host IP address (of the actual SIP server I'm
actually sending to),  is this supposed to "override" the IP address
resolved from DNS lookup in the "To" field?   I actually need
to override the DNS lookup of the URI in the To field, because
this would resolve to a different server.

IE:  sip:john at mydomain.com would resolve to a web server at that
domain, and the SIP server is on a different machine.

If I were to set this "sent-by" field in the "Via" header,  what
is the syntax...  I think its....

regMessage.header(h_Via).sentHost() = "213.34.56.78";   <--- this is the 
real SIP server.
regMessage.header(h_Via).sentPort() = 5060;

I would do this before sending the regMessage to register.

Or....

I also heard about the "maddr" parameter.  Like when used like this....

sip:alice at atlanta.com;maddr=239.255.255.1;ttl=15

IntegerParameter
================
  RFC name:

  Description:
    Integer
  Example:
    sip:alice at atlanta.com;maddr=239.255.255.1;ttl=15
  Parts:
    accessor                reSIP type      settable
    ------------------------------------------------
    value()                 int             yes
  RFC parameters:
    duration
    expiration
    expires
    retry-after
    ttl

How do I set the "maddr" in my "To" field?  Assuming I have
a regMessage.header(h_To)....

Do I do it like this?

regMessage.header(h_To).Value = "maddr=239.255.255.1;ttl=15"

And will this be "added" to the To field or appended to
sip:alice at atlanta.com?

Or do I have to include the full field value like this?

regMessage.header(h_To).Value = 
"sip:alice at atlanta.com;maddr=239.255.255.1;ttl=15"

Or do I do this?

Via& myVia(regMessage.header(h_Vias).front());
myVia.senthost() = "213.45.67.8";

I suppose I should test to see of the "Vias" exist first,   right?

So I would do....   

if (regMessage.header(h_Vias).Size()) > 0) {
    Via& myVia(regMessage.header(h_Vias).front());
    myVia.senthost() = "213.45.67.8"                               
}

Is this the proper use of syntax on this?

John



More information about the resiprocate-devel mailing list