mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-21 22:17:53 +00:00
Added call info enquiry MDP message.
This commit is contained in:
parent
ea372aece2
commit
cbb4df7c11
1
serval.h
1
serval.h
@ -1158,6 +1158,7 @@ typedef struct overlay_mdp_vompevent {
|
|||||||
#define VOMPEVENT_WITHDRAWINTEREST (1<<8)
|
#define VOMPEVENT_WITHDRAWINTEREST (1<<8)
|
||||||
#define VOMPEVENT_CALLCREATED (1<<9)
|
#define VOMPEVENT_CALLCREATED (1<<9)
|
||||||
#define VOMPEVENT_PICKUP (1<<10)
|
#define VOMPEVENT_PICKUP (1<<10)
|
||||||
|
#define VOMPEVENT_CALLINFO (1<<11)
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
unsigned short audio_sample_bytes;
|
unsigned short audio_sample_bytes;
|
||||||
unsigned char local_state;
|
unsigned char local_state;
|
||||||
|
27
vomp.c
27
vomp.c
@ -261,6 +261,33 @@ int vomp_mdp_event(overlay_mdp_frame *mdp,
|
|||||||
0,"Success. You were never listening.");
|
0,"Success. You were never listening.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case VOMPEVENT_CALLINFO:
|
||||||
|
{
|
||||||
|
/* provide call endpoint info to user */
|
||||||
|
vomp_call_state *call
|
||||||
|
=vomp_find_call_by_session(mdp->vompevent.call_session_token);
|
||||||
|
if (!call)
|
||||||
|
return overlay_mdp_reply_error
|
||||||
|
(mdp_named_socket,recvaddr,recvaddrlen,4006,
|
||||||
|
"No such call");
|
||||||
|
|
||||||
|
/* collect call info and send to requestor */
|
||||||
|
overlay_mdp_frame mdpreply;
|
||||||
|
bzero(&mdpreply,sizeof(mdpreply));
|
||||||
|
mdpreply.packetTypeAndFlags=MDP_VOMPEVENT;
|
||||||
|
mdpreply.vompevent.flags=VOMPEVENT_CALLINFO;
|
||||||
|
if (call->ringing) mdpreply.vompevent.flags|=VOMPEVENT_RINGING;
|
||||||
|
if (call->audio_started) mdpreply.vompevent.flags|=VOMPEVENT_AUDIOSTREAMING;
|
||||||
|
if (call->remote.state==VOMP_STATE_CALLENDED)
|
||||||
|
mdpreply.vompevent.flags|=VOMPEVENT_CALLENDED;
|
||||||
|
bcopy(call->local.sid,mdpreply.vompevent.local_sid,SID_SIZE);
|
||||||
|
bcopy(call->remote.sid,mdpreply.vompevent.remote_sid,SID_SIZE);
|
||||||
|
bcopy(call->local.did,mdpreply.vompevent.local_did,64);
|
||||||
|
bcopy(call->remote.did,mdpreply.vompevent.remote_did,64);
|
||||||
|
|
||||||
|
return overlay_mdp_reply(mdp_named_socket,recvaddr,recvaddrlen,&mdpreply);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case VOMPEVENT_DIAL:
|
case VOMPEVENT_DIAL:
|
||||||
/* pull local_did and remote_did and start putting the call together.
|
/* pull local_did and remote_did and start putting the call together.
|
||||||
These need to be passed to the node being called to provide caller id,
|
These need to be passed to the node being called to provide caller id,
|
||||||
|
Loading…
Reference in New Issue
Block a user