iaxvoiplink.h 2.61 KB
Newer Older
yanmorin's avatar
 
yanmorin committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 *  Copyright (C) 2006 Savoir-Faire Linux inc.
 *  Author: Yan Morin <yan.morin@savoirfairelinux.com>
 *                                                                              
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *                                                                                
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *                                                                              
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#ifndef IAXVOIPLINK_H
#define IAXVOIPLINK_H

#include "voIPLink.h"
23
#include <iax-client.h>
yanmorin's avatar
 
yanmorin committed
24

25
26
class EventThread;
class IAXCall;
yanmorin's avatar
 
yanmorin committed
27
28

/**
yanmorin's avatar
   
yanmorin committed
29
30
31
32
 * VoIPLink contains a thread that listen to external events 
 * and contains IAX Call related functions
 * @author Yan Morin <yan.morin@gmail.com>
 */
yanmorin's avatar
 
yanmorin committed
33
34
35
36
37
38
39
class IAXVoIPLink : public VoIPLink
{
public:
    IAXVoIPLink(const AccountID& accountID);

    ~IAXVoIPLink();

40
  void getEvent(void);
yanmorin's avatar
   
yanmorin committed
41
  bool init (void);
yanmorin's avatar
 
yanmorin committed
42
  bool checkNetwork (void) { return false; }
yanmorin's avatar
   
yanmorin committed
43
  void terminate (void);
yanmorin's avatar
 
yanmorin committed
44

45
46
  bool setRegister (void);
  bool setUnregister (void);
yanmorin's avatar
 
yanmorin committed
47
48
49
50
51
52
53
54
55
56
57
58

  Call* newOutgoingCall(const CallID& id, const std::string& toUrl) {return 0; }
  bool answer(const CallID& id) {return false;}

  bool hangup(const CallID& id) { return false; }
  bool cancel(const CallID& id) { return false; }
  bool onhold(const CallID& id) { return false; }
  bool offhold(const CallID& id) { return false; }
  bool transfer(const CallID& id, const std::string& to) { return false; }
  bool refuse (const CallID& id) { return false; }
  bool carryingDTMFdigits(const CallID& id, char code) { return false; }
  bool sendMessage(const std::string& to, const std::string& body) { return false; }
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

private:
  /**
   * Find a iaxcall by iax session number
   * @param session an iax_session valid pointer
   * @return iaxcall or 0 if not found
   */
  IAXCall* iaxFindCallBySession(struct iax_session *session);

  /**
   * Handle IAX Event for a call
   * @param event An iax_event pointer
   * @param call  An IAXCall pointer 
   */
  void iaxHandleCallEvent(iax_event* event, IAXCall* call);


  EventThread* _evThread;
yanmorin's avatar
 
yanmorin committed
77
78
79
};

#endif