summaryrefslogtreecommitdiff
path: root/src/libgsmd
diff options
context:
space:
mode:
authorerin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-12-17 09:31:02 +0000
committererin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-12-17 09:31:02 +0000
commitcbbf4601211669ededac8d41d6adaec277af3e3b (patch)
tree4a89c2808f5d40f09e7d0cafd5749e3d89915c71 /src/libgsmd
parente4fa3bc9cd52873af5cd1b3382b065778c7ebc3e (diff)
gsmd: conference call support (Sean Chiang)
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3657 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/libgsmd')
-rw-r--r--src/libgsmd/libgsmd_voicecall.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libgsmd/libgsmd_voicecall.c b/src/libgsmd/libgsmd_voicecall.c
index 214ae0c..8804cce 100644
--- a/src/libgsmd/libgsmd_voicecall.c
+++ b/src/libgsmd/libgsmd_voicecall.c
@@ -100,3 +100,28 @@ int lgsm_voice_get_status(struct lgsm_handle *lh)
{
return lgsm_send_simple(lh, GSMD_MSG_VOICECALL, GSMD_VOICECALL_GET_STAT);
}
+
+int lgsm_voice_ctrl(struct lgsm_handle *lh, const struct lgsm_voicecall_ctrl *ctrl)
+{
+ struct gsmd_msg_hdr *gmh;
+ struct gsmd_call_ctrl *gcc;
+ int rc;
+
+ gmh = lgsm_gmh_fill(GSMD_MSG_VOICECALL,
+ GSMD_VOICECALL_CTRL, sizeof(*gcc));
+ if (!gmh)
+ return -ENOMEM;
+ gcc = (struct gsmd_call_ctrl *) gmh->data;
+ gcc->proc = ctrl->proc;
+ gcc->idx = ctrl->idx;
+
+ rc = lgsm_send(lh, gmh);
+ if (rc < gmh->len + sizeof(*gmh)) {
+ lgsm_gmh_free(gmh);;
+ return -EIO;
+ }
+
+ lgsm_gmh_free(gmh);
+
+ return 0;
+}
personal git repositories of Harald Welte. Your mileage may vary