Hi,

IMO when the header includes "Require: 100REL" then the PRACK should
be sent, but I found the oSIP implementation do a trick that when it
find the response head includes a RSeq field.

It is right?

  {
    osip_header_t *rseq;

    osip_message_header_get_byname (je->response, "RSeq", 0, &rseq);
    if (rseq != NULL && rseq->hvalue != NULL)
      {
        /* try sending a PRACK */
        osip_message_t *prack = NULL;
        int i;

        eXosip_lock ();
        i = eXosip_call_build_prack (ca->tid, &prack);
        if (i != 0)
          {
            OSIP_TRACE (osip_trace
                        (__FILE__, __LINE__, OSIP_WARNING, NULL,
                         "Failed to build PRACK request\n"));
        } else
          {
            eXosip_call_send_prack (ca->tid, prack);
          }

        eXosip_unlock ();
      }
  }

-- 
Chief Programmer,
Abai Studio,
China
Focus on Linux, VoIP, Entertainment
_______________________________________________
Sip-implementors mailing list
Sip-implementors@cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to