📄 my_iax_wrapper.h
字号:
#ifndef MY_IAX_WRAPPER_H#define MY_IAX_WRAPPER_H#include <qobject.h>#include <qvariant.h>#include <qpixmap.h>#include <qapplication.h>#include "iaxclient.h"#include <qevent.h>#include <qmutex.h>#include <qapplication.h>#include <qtimer.h>#include "My_IAX_Event.h"#include <stdarg.h>#include <stdlib.h>int iaxc_callback(iaxc_event e);class My_IAX_Wrapper: public QObject{Q_OBJECTpublic: My_IAX_Wrapper(QObject *parent = 0); ~My_IAX_Wrapper();public slots:// A global callback function used by libiaxclient virtual void hold_call(int callNo); virtual void resume_call(int callNo); virtual void interrupt_call(); virtual void reject_call(int callNo); virtual void select_call(int callNumber); virtual void transfer_call(int callNo, QString number); virtual void send_dtmf(char digit); virtual void ring(); // called by the timer virtual void startRing(); virtual void stopRing(); /* Initialization routines */ virtual bool init_iax_client(); // called from main win constructor virtual void start_iax_client(); // starts iaxclient thread virtual void stop_iax_client(); // stops iaxclient thread virtual int registerAccount(QString ServerAccName,QString ServerPasswd ,QString ServerHst); // register account virtual int unregisterAccount(int iaxRegistrationId); // unregister account //virtual void registerMultipleAccounts(); //需要改写 virtual void configureCall(int accountNumber); virtual void shutdown_iax_client(); // called from ~My_IAX_Wrapper virtual iaxc_sound* initTone(int F1, int F2, int Dur, int Len, int Repeat); virtual void debugStatistics(int callNo, int callInterval); void dial(QString accountId,QString ServerPassword,QString ServerHst, QString contactName); virtual void answer_call(int callNumber);public: // KiaxAccount* getAccountByRegistrationId(int regId); /* override eventHandling to receive events from non-GUI Threads */ virtual void customEvent(QEvent * event); //修改为QEvent int getSelectedCall(); QString getIaxClientVersion(); /* Event Handling Routines */ void handleIaxCEvent(iaxc_event e); // event callback void event_level(float in, float out); // monitors video and audio signal levels void event_registration(int id, int reply, int msgcount);// monitors registration status void event_state(int callNo, int state, char *remote, char *remote_name, char *local, char *local_context, int reg_id); void event_text(int type, char *message); void event_unknown(int type); // KiaxPrefs * getSettings(); // KiaxCallRecord* createCallRecord(QString accountId, QString name, QString number, bool outgoing); // void debug(const char* log, ...); void setShowStats(bool flag); bool getShowStats();protected slots: void callDuration(); public: bool registered; // to be sure we have a person who can receive calls QMap<int, int> callSession; //map callNo to callRecord QMutex callSessionMutex; int iaxRegistrationId;signals: /* Signals to notify the GUI */ /* Wrapper events */ //void signalCalling(QString callerId, QString callerStatus); //used only for ringing out void signalCalling(int callNumber, QString callerStatus); //used only for ringing out void signalAnsweredCall(int callNo); void signalHoldCall(int callNo); void signalResumedCall(int callNo); void signalRegistered(); void signalUnregistered(); /*Callback events */ void signalLevels(int inValue, int outValue, int threshold ); // audio and mic levels void signalOutgoingRinging(int callNo,QString remoteExten); // ringing status of the tab created by singalCalling() void signalIncomingRinging(int callNo,QString remoteExten); // create tab and set status rining void signalComplete(int callNo); // call established, ready to speak void signalInactive(int callNo); // inactive call - hangup, forwarded to signalHangup(QString) void signalTextMessage(int id, int status); // inactive call - hangup, forwarded to signalHangup(QString) void signalRegistrationAccepted(); void signalRegistrationRejected(); void signalRegistrationTimeout(); //void signalUnregistrationRequested(KiaxAccount* account); void signalRegistrationRequested( int iaxRegistrationId); //void signalRegistrationAccepted(KiaxAccount* account); //void signalRegistrationRejected(KiaxAccount* account); //void signalRegistrationTimeout(KiaxAccount* account); void signalTextMessage(QString message); void signalDebug(const char * error); void callTime(int callNo, int hours, int minutes, int seconds); // inform about the time of the call - every second void fatalError(QString message); private: /* Lower level libiaxclient routines */ void fatal_error(char *err); uint getCodecMaskFromName(QString codecName); private: struct iaxc_sound* ringInTone; struct iaxc_sound* ringOutTone; QTimer* ringTimer; QTimer* callDurationTimer; int * rtt; iaxc_netstat * localNetstat; iaxc_netstat * remoteNetstat; bool showStats; char* iaxc_ver;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -