Hi all,
I'm sending an invite with this function:
---------------------------8<------------------------------------
void si_invite(si_t *si, const char* destination)
{
si_oper_t* op = si_oper_create(si, SIP_METHOD_INVITE, destination,
TAG_END());
if (!op) {
printf("%s: failed to create an operation\n", si->name);
return;
}
printf("%s: sending the invite to %s...\n", si->name, destination);
nua_invite(op->handle)
NUTAG_MEDIA_ENABLE(1),
SOATAG_USER_SDP_STR("m=audio 5004 RTP/AVP 0 8"),
TAG_END());
}
---------------------------8<------------------------------------
I have this handler called by the nua event callback function:
---------------------------------8<-------------------------------
void app_i_state(int status,
char const *phrase,
nua_t *nua,
nua_magic_t *magic,
nua_handle_t *nh,
nua_hmagic_t *hmagic,
sip_t const *sip,
tagi_t tags[])
{
char const *l_sdp = NULL, *r_sdp = NULL;
int audio = nua_active_inactive, video = nua_active_inactive, chat
= nua_active_inactive;
int offer_recv = 0, answer_recv = 0, offer_sent = 0, answer_sent = 0;
int state = nua_callstate_init;
tl_gets(tags,
NUTAG_CALLSTATE_REF(state),
NUTAG_OFFER_RECV_REF(offer_recv),
NUTAG_ANSWER_RECV_REF(answer_recv),
NUTAG_OFFER_SENT_REF(offer_sent),
NUTAG_ANSWER_SENT_REF(answer_sent),
SOATAG_LOCAL_SDP_STR_REF(l_sdp),
SOATAG_REMOTE_SDP_STR_REF(r_sdp),
TAG_END());
printf("Call-State: '%s'\n", nua_callstate_name(state));
if (l_sdp) {
printf("local SDP updated:\n%s\n", l_sdp);
}
if (r_sdp) {
printf("remote SDP updated:\n%s\n", r_sdp);
}
}
---------------------------------8<-------------------------------
I'm seeing this dialog:
SIP/SDP -->
<--- SIP 180 Ringing
<---- SIP/SDP 200 OK
---> SIP ACK 200 OK
Since I'm receiving this SDP message:
v=0
o=MxSIP 0 312671187 IN IP4 10.88.3.204
s=SIP Call
c=IN IP4 10.XX.X.204
t=0 0
m=audio 3000 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
I would like to be able to disable one of the above two possible
streams, for example selecting just one with
an SDP like this:
v=0
o=- 7540392608856471085 7407346358474901725 IN IP4 10.XX.X.67
s=-
c=IN IP4 10.XX.X.67
t=0 0
m=audio 5004 RTP/AVP 0
a=rtpmap: 0 PCMU/8000
a=sendrcv
.
In other words I would like to override the default behaviour, which
consists in sending immediately the ACK for the remote SDP offer,
when I would like to keep continuing with the S/O negotiation.
Can you give me some indication regarding how to achieve that?
Many thanks in advance, regards.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sofia-sip-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel