Hi Andr?, On 3/4/08, Andr? Teixeira <coelho at wit-software.com> wrote: > Hello, i'm new to pjsip and i am with a problem, i've searched for > examples, tried several things, but I was not able to solve it :( > > I'm trying to establish a T.38 fax session, and in order to do that it > is necessary to follow the following steps. Imagine A wants to send a > fax to B. > > > 1- A calls B, > 2- A sends a special tone to B > 3- B detects the tone > 4- B sends a reINVITE with it's fax capabilites: > > [...] > m=image <port> udptl t38 > a=T38FaxVersion:0 > a=T38MaxBitRate:14400 > a=T38FaxMaxBuffer:200 > a=T38FaxMaxDatagram:72 > a=T38FaxUdpEC:t38UDPRedundancy > a=T38FaxRateManagement:transferredTCF > > > 5- A sends 200 OK with the following information in the SDP > [...] > m=image <port> udptl t38 > > > > A B > Invite -> > <-200 OK > Special tone -> > <-INVITE > 200 ok -> > > > I think i can try two different approaches, but i'm not being able to > test neither successfully. > > 1- change the SDP from the dialog so all my following answers after my > initial Invite contain a SDP with m=image <port> udptl t38. Trying to > do that I always get an error of something related to "OFFER" > > ... > pj_strdup(pool_vars, &m_video->desc.media, &pj_str("image")); > m_video->desc.port = port; > m_video->desc.port_count = 1; > pj_strdup (pool_vars, &m_video->desc.transport, &pj_str("udptl")); > > m_video->desc.fmt_count = 1; > m_video->desc.fmt[0] = pj_str("t38"); > > pjsip_inv_set_sdp_answer(this->g_inv, local_sdp); > ... > What's the exact error code/message that you see? > > > 2- intercept the reInvite and respond with the correct SDP, I am able to > catch the INVITE from B, by listening all dialog request, BUT I have > never managed to send an answer :( > > Does anyone have any ideia how can I respond to an INVITE received > inside a dialog and how can I set the SDP to contain m=image <port> > udptl t38 > Rather than trapping all dialog events, the proper way to handle this is to override the on_rx_offer() callback of the invite session. This callback is called whenever the invite session receives new offer from remote, either in re-INVITE, UPDATE, or other means. Please see the comment/doxygen documentation of this callback for more information. cheers, -benny > Thank you very much > > Andr?