|
From: | Tsvetan Filev |
Subject: | Re: [osip-dev] eXosip and reINVITE |
Date: | Thu, 2 Aug 2018 16:17:01 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
Hi Aymeric. You are right the real workflow should be something like this:
https://www.websequencediagrams.com/cgi-bin/cdraw?lz=cGFydGljaXBhbnQgYWxpY2UKAAUNc3Rlcmlza18xAAoNZVhvc2lwABQWMgA0DWJvYgoKIyBJbml0aWFsIGludml0ZQoAZAUgLT4AVQs6ABUHIChzZHApCgBvCgAiBQArBTogMTAwIFRyeWluZwASDwCBCwYANQ8AgSAGAFkOADcOAA8TMgBxGDIAXgoAcxcAHQVib2IAgTwPYm9iAFQOAIE7DgAKFjgwIFJpbmcAThIAeAoAGAsAgVIYADIUAIJDDgBdCwCBFBUyMDAgT0sAgXcVYm9iIDogQUNLAIIMGAAvDQCCVxQAOAcAgxEXAGUWAINkCwBuEACEHg0AgSsOAIReEgCBNAcKIyByZS0AhRAHAIQ3HmluLWRpYWxvZwCBNxsAASwAhH0PAHMLAIREJwCCUxYKAIIrJQCCdBsAglAbAIEUEACDfQYAggkXAIVZHwCENTk&s=rose
I get -3 OSIP_WRONG_STATE.
This is how my SIP messages handler looks like: CN_UBYTE handle_sip_event(const S_event_info& p_msg,
S_call_info& p_ci) const int C_sip_layer::send_ok(sip::S_call_info& p_call_info_ua1, sip::S_call_info& p_call_info_ua2) const { if(m_ctx == NULL) { return -1; } osip_message_t *l_answer; int l_i = eXosip_call_build_answer(m_ctx, p_call_info_ua1.call_event_info.tid, SIP_OK, &l_answer); if (l_i == 0) { sdp_message_t *l_remote_sdp = eXosip_get_remote_sdp_from_tid(m_ctx, p_call_info_ua2.call_event_info.tid); if(l_remote_sdp) { char* buf = nullptr; if(sdp_message_to_str (l_remote_sdp, &buf) == OSIP_SUCCESS and buf != nullptr) { osip_message_set_body(l_answer, buf, strlen(buf)); osip_message_set_content_type (l_answer, sdp_content_type_str); free(buf); } sdp_message_free(l_remote_sdp); } if(l_i = send_answer(p_call_info_ua1.call_event_info.tid, SIP_OK, p_call_info_ua1.call_event_info.engine_session_id, l_answer)) { printf("Error Send OK %d\n", l_i); } } else { printf("Error Build OK\n"); } return l_i; } On 2.08.2018 16:04, Aymeric Moizard
wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |