Conscience Core
CscVocalPhoneCallEmitter.h
Go to the documentation of this file.
1 #ifndef CscVocalPhoneCallEmitter_H_
2 #define CscVocalPhoneCallEmitter_H_
3 
4 #include "ConscienceCore/ArtificialIntelligence/CscNotifications.h"
5 #include "CscCommon.h"
6 
7 #define VONAGE_MAX_RETRY 3
8 
10 
12  optional<int> retryCount = {};
14  map<string,string> additionalInfos;
15  };
16 
18  public:
19  virtual void callAndSay(const string &text, const vector<string> &phoneNumbers, const VocalPhoneCallOptions &options) = 0;
20 
22 
23  static CscVocalPhoneCallEmitter *usingVonage(const string &vonageAppId, const fs::path &publicKey, const fs::path &privateKey, const string &fromPhoneNumber);
24  private:
25  class DisabledEmitter;
26  class VonageEmitter;
27  };
28 
30  void callAndSay(const string &text, const vector<string> &phoneNumbers, const VocalPhoneCallOptions &options) override;
31  };
32 
34  public:
35  VonageEmitter(const string &vonageAppId, const fs::path &publicKey, const fs::path &privateKey, const string &fromPhoneNumber);
36  void callAndSay(const string &text, const vector<string> &phoneNumbers, const VocalPhoneCallOptions &options) override;
37  private:
38 
39  string fromPhoneNumber;
40  string appId;
41  string publicKey;
42  string privateKey;
43  unique_ptr<CscLogger> logger;
44  void sendPhoneCallFailedNotification(const map<string, string> &additionalInfos);
45  void doCallAndSay(int attemptIndex, const string &text, const string &phoneNumber, const VocalPhoneCallOptions &options);
46  };
47 }
48 
49 #endif
conscience_server::communication::phone::CscVocalPhoneCallEmitter::usingVonage
static CscVocalPhoneCallEmitter * usingVonage(const string &vonageAppId, const fs::path &publicKey, const fs::path &privateKey, const string &fromPhoneNumber)
Definition: CscVocalPhoneCallEmitter.cpp:34
conscience_server::communication::phone::VocalPhoneCallOptions::retryPeriodSeconds
int retryPeriodSeconds
Definition: CscVocalPhoneCallEmitter.h:13
conscience_server::communication::phone::VocalPhoneCallOptions::retryCount
optional< int > retryCount
Definition: CscVocalPhoneCallEmitter.h:12
conscience_server::communication::phone::VocalPhoneCallOptions::additionalInfos
map< string, string > additionalInfos
Definition: CscVocalPhoneCallEmitter.h:14
conscience_server::communication::phone::CscVocalPhoneCallEmitter::none
static CscVocalPhoneCallEmitter * none()
Definition: CscVocalPhoneCallEmitter.cpp:26
conscience_server::communication::phone::CscVocalPhoneCallEmitter::VonageEmitter::callAndSay
void callAndSay(const string &text, const vector< string > &phoneNumbers, const VocalPhoneCallOptions &options) override
Definition: CscVocalPhoneCallEmitter.cpp:47
CscCommon.h
conscience_server::communication::phone::CscVocalPhoneCallEmitter::callAndSay
virtual void callAndSay(const string &text, const vector< string > &phoneNumbers, const VocalPhoneCallOptions &options)=0
conscience_server::communication::phone::CscVocalPhoneCallEmitter::VonageEmitter::VonageEmitter
VonageEmitter(const string &vonageAppId, const fs::path &publicKey, const fs::path &privateKey, const string &fromPhoneNumber)
Definition: CscVocalPhoneCallEmitter.cpp:38
conscience_server::communication::phone::CscVocalPhoneCallEmitter::DisabledEmitter
Definition: CscVocalPhoneCallEmitter.h:29
conscience_server::communication::phone::VocalPhoneCallOptions
Definition: CscVocalPhoneCallEmitter.h:11
conscience_server::communication::phone::CscVocalPhoneCallEmitter
Definition: CscVocalPhoneCallEmitter.h:17
conscience_server::communication::phone::CscVocalPhoneCallEmitter::VonageEmitter
Definition: CscVocalPhoneCallEmitter.h:33
conscience_server::communication::phone
Definition: CscVocalPhoneCallEmitter.cpp:17